{
    "openapi": "3.0.1",
    "info": {
      "title": "Standard Agent Data Service",
      "description": "",
      "contact": {
        "name": "Bastian Solutions - Software",
        "email": ""
      },
      "version": "v0.0.1"
    },
    "paths": {
      "/set/agentStatus": {
        "post": {
          "tags": [
            "DataService"
          ],
          "summary": "Update the agent status",
          "operationId": "SetAgentStatus",
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Requests.UpdateAgentDataCommand"
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "The work is successfully queued."
            },
            "400": {
              "description": "Bad request.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Error"
                  }
                }
              }
            },
            "500": {
              "description": "The work failed to be queued.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Error"
                  }
                }
              }
            }
          }
        }
      },
      "/set/taskStatus": {
        "post": {
          "tags": [
            "DataService"
          ],
          "summary": "Update the task status",
          "operationId": "SetTaskStatus",
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Requests.UpdateTaskDataCommand"
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "The work is successfully queued."
            },
            "400": {
              "description": "Bad request.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Error"
                  }
                }
              }
            },
            "500": {
              "description": "The work failed to be queued.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Error"
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Agent": {
          "type": "object",
          "properties": {
            "activeTaskId": {
              "type": "string",
              "nullable": true
            },
            "batteryChargePercent": {
              "type": "number",
              "format": "float"
            },
            "eStopped": {
              "type": "boolean"
            },
            "id": {
              "type": "string",
              "nullable": true
            },
            "inventory": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.InventoryPosition"
              },
              "nullable": true
            },
            "lastMessageTime": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "locationId": {
              "type": "string",
              "nullable": true
            },
            "position": {
              "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Position"
            },
            "rotation": {
              "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Rotation"
            },
            "status": {
              "type": "integer",
              "format": "int32"
            },
            "type": {
              "type": "string",
              "nullable": true
            },
            "customDetails": {
              "type": "object",
              "additionalProperties": { },
              "nullable": true
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.AgentTask": {
          "type": "object",
          "properties": {
            "actionIndex": {
              "type": "integer",
              "format": "int32"
            },
            "agentId": {
              "type": "string",
              "nullable": true
            },
            "createdDate": {
              "type": "string",
              "format": "date-time"
            },
            "endDate": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "startDate": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "taskId": {
              "type": "string",
              "nullable": true
            },
            "taskStatus": {
              "type": "integer",
              "format": "int32"
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "integer",
              "format": "int32"
            },
            "message": {
              "type": "string",
              "nullable": true
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.InventoryPosition": {
          "type": "object",
          "properties": {
            "inventoryId": {
              "type": "string",
              "nullable": true
            },
            "positionId": {
              "type": "string",
              "nullable": true
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Position": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "format": "double"
            },
            "y": {
              "type": "number",
              "format": "double"
            },
            "z": {
              "type": "number",
              "format": "double"
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Rotation": {
          "type": "object",
          "properties": {
            "w": {
              "type": "number",
              "format": "double"
            },
            "x": {
              "type": "number",
              "format": "double"
            },
            "y": {
              "type": "number",
              "format": "double"
            },
            "z": {
              "type": "number",
              "format": "double"
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Requests.UpdateAgentDataCommand": {
          "type": "object",
          "properties": {
            "agentData": {
              "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.Agent"
            },
            "endpointAddress": {
              "type": "string",
              "nullable": true
            }
          },
          "additionalProperties": false
        },
        "Bastian.Maestro.StandardAgent.Api.Abstractions.Requests.UpdateTaskDataCommand": {
          "type": "object",
          "properties": {
            "endpointAddress": {
              "type": "string",
              "nullable": true
            },
            "taskData": {
              "$ref": "#/components/schemas/Bastian.Maestro.StandardAgent.Api.Abstractions.Models.AgentTask"
            }
          },
          "additionalProperties": false
        }
      }
    }
  }