{
  "openapi": "3.0.0",
  "info": {
    "title": "Sensor Orchestrator",
    "description": "Configuration management and sensor orchestration service",
    "version": "2021.12.0"
  },
  "tags": [
    {
      "name": "v3"
    }
  ],
  "paths": {
    "/api/orchestrate/v3/agents": {
      "get": {
        "summary": "Retrieve all agents",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentListResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No agent configurations are provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "page",
          "in": "query",
          "required": false,
          "description": "Page number - zero counting",
          "default": 0,
          "schema": {
            "type": "integer"
          }
        },
        {
          "name": "limit",
          "in": "query",
          "required": false,
          "description": "Page size",
          "default": 1000,
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/orchestrate/v3/agents/{agentId}": {
      "parameters": [
        {
          "name": "agentId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Retrieve an agent by agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched agent document for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an agent specified by the provided agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted agent with given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/configuration": {
      "post": {
        "summary": "Create an agent configuration",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentConfigCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Agent configuration create request successfully processed",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentConfigResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "description": "The Connector being provisioned already exists",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve all agent configurations",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentConfigListResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No agent configurations are provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "page",
          "in": "query",
          "required": false,
          "description": "Page number - zero counting",
          "default": 0,
          "schema": {
            "type": "integer"
          }
        },
        {
          "name": "limit",
          "in": "query",
          "required": false,
          "description": "Page size",
          "default": 1000,
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/orchestrate/v3/agents/configuration/{agentId}": {
      "parameters": [
        {
          "name": "agentId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Retrieve an agent configuration by agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched configuration for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentConfigResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update an agent configuration specified by the provided agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentConfigUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated agent configuration for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentConfigResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request data does not pass validation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "description": "Incorrect revision number passed in to the agent configuration being updated",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an agent configuration specified by the provided agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted agent configuration for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentConfigResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/{agentId}/command": {
      "parameters": [
        {
          "name": "agentId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Sends a given command to be run for the agent specified by agentId",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentCommandRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Run agent command request successfully processed",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/requestId"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/sessions": {
      "get": {
        "summary": "Retrieve all sessions",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionListResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No sessions are provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "page",
          "in": "query",
          "required": false,
          "description": "Page number - zero counting",
          "default": 0,
          "schema": {
            "type": "integer"
          }
        },
        {
          "name": "limit",
          "in": "query",
          "required": false,
          "description": "Page size",
          "default": 1000,
          "schema": {
            "type": "integer"
          }
        }
      ],
      "post": {
        "summary": "Create agent sessions",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentSessionListCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Agent sessions create request successfully processed",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/session": {
      "post": {
        "summary": "Create an agent session",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentSessionCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Agent session create request successfully processed",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update an agent session.",
        "tags": [
          "AgentServiceV3"
        ],
        "requestBody": {
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/AgentSessionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated agent session",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request data does not pass validation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent configuration is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "description": "Incorrect revision number passed in for session being updated",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/session/{sessionId}": {
      "parameters": [
        {
          "name": "sessionId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Retrieve an agent session by sessionId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched sessions for given sessionId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified session is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an agent session by sessionId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted agent configuration with given sessionId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified session is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/sessions/{agentId}": {
      "parameters": [
        {
          "name": "agentId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Retrieve agent sessions by agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched sessions for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionListResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent is not provisioned",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete all sessions for the provided agentId.",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted sessions for given agentId",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSessionListResponse"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent is not found",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/sessionstatus/{sessionId}": {
      "parameters": [
        {
          "name": "sessionId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Retrieves the session status for session with sessionId",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Session Status successfully retrieved",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified session is not found",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/orchestrate/v3/agents/{agentId}/secrets": {
      "parameters": [
        {
          "name": "agentId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Generates and returns the agent secrets required to start an agent",
        "tags": [
          "AgentServiceV3"
        ],
        "responses": {
          "200": {
            "description": "Secrets successfully generated",
            "content": {
              "text/yaml": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSecrets"
                }
              }
            }
          },
          "400": {
            "description": "Invalid payload provided",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Requestor does not have authorization to perform this action",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The specified agent is not found",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AgentUpdateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to update an existing agent",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "id",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agents"
                ]
              },
              "id": {
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "_rev": {
                    "type": "string",
                    "description": "Value used to ensure updates to this object are handled in order."
                  },
                  "agentName": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/AgentMetadata"
                  }
                }
              }
            }
          }
        }
      },
      "AgentCreateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to create an agent",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agents"
                ]
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "agentName": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/AgentMetadata"
                  }
                }
              }
            }
          }
        }
      },
      "AgentListResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Agent"
            }
          }
        }
      },
      "AgentResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Agent"
          }
        }
      },
      "AgentConfigUpdateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to update an existing agent configuration",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "id",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentConfigs"
                ]
              },
              "id": {
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "_rev": {
                    "type": "string",
                    "description": "Value used to ensure updates to this object are handled in order."
                  },
                  "agentId": {
                    "type": "string"
                  },
                  "dataGateway": {
                    "$ref": "#/components/schemas/dataGatewayConfig"
                  },
                  "reflector": {
                    "$ref": "#/components/schemas/agentReflectors"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/AgentMetadata"
                  },
                  "identification": {
                    "$ref": "#/components/schemas/AgentConfigIdentification"
                  }
                }
              }
            }
          }
        }
      },
      "AgentConfigCreateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to create an agent configuration",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentConfigs"
                ]
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string"
                  },
                  "dataGateway": {
                    "$ref": "#/components/schemas/dataGatewayConfig"
                  },
                  "reflector": {
                    "$ref": "#/components/schemas/agentReflectors"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/AgentMetadata"
                  },
                  "identification": {
                    "$ref": "#/components/schemas/AgentConfigIdentification"
                  }
                }
              }
            }
          }
        }
      },
      "AgentConfigListResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentConfig"
            }
          }
        }
      },
      "AgentConfigResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AgentConfig"
          }
        }
      },
      "AgentCommand": {
        "description": "Execute a command on the agent.",
        "type": "object",
        "required": [
          "command"
        ],
        "properties": {
          "command": {
            "$ref": "#/components/schemas/command"
          },
          "args": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "List of arguments, dependent on the test.  Execute the command on a test or on a session. Use appropriate argument.",
              "properties": {
                "type": {
                  "$ref": "#/components/schemas/commandType"
                },
                "sessionId": {
                  "$ref": "#/components/schemas/sessionId"
                },
                "overrides": {
                  "$ref": "#/components/schemas/override"
                },
                "populateFields": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "networkMtuBytes",
                      "networkBottleneckBandwidthBitsPerSec",
                      "networkRttMs"
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "AgentCommandRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to create a command for the agent to run",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentCommands"
                ]
              },
              "attributes": {
                "$ref": "#/components/schemas/AgentCommand"
              }
            }
          }
        }
      },
      "AgentConfigIdentification": {
        "type": "object",
        "description": "Identification Information",
        "properties": {
          "agentName": {
            "type": "string"
          }
        }
      },
      "AgentSecrets": {
        "type": "object",
        "description": "Secrets required to start an agent",
        "required": [
          "agentConfig"
        ],
        "properties": {
          "agentConfig": {
            "type": "object",
            "required": [
              "identification"
            ],
            "properties": {
              "identification": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string",
                    "format": "uuid",
                    "descripton": "UUID of the agent"
                  },
                  "authenticationToken": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "Agent": {
        "type": "object",
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "agents"
            ]
          },
          "id": {
            "type": "string"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "_rev": {
                "type": "string",
                "description": "Value used to ensure updates to this object are handled in order."
              },
              "agentId": {
                "type": "string"
              },
              "agentName": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "metadata": {
                "$ref": "#/components/schemas/AgentMetadata"
              },
              "agentConfigRevision": {
                "type": "string"
              },
              "agentConfigRevisionAck": {
                "type": "string"
              }
            }
          }
        }
      },
      "AgentConfig": {
        "type": "object",
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "agentConfigs"
            ]
          },
          "id": {
            "type": "string"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "_rev": {
                "type": "string",
                "description": "Value used to ensure updates to this object are handled in order."
              },
              "agentId": {
                "type": "string"
              },
              "dataGateway": {
                "$ref": "#/components/schemas/dataGatewayConfig"
              },
              "reflector": {
                "$ref": "#/components/schemas/agentReflectors"
              },
              "metadata": {
                "$ref": "#/components/schemas/AgentMetadata"
              },
              "identification": {
                "$ref": "#/components/schemas/AgentConfigIdentification"
              }
            }
          }
        }
      },
      "AgentMetadata": {
        "type": "object"
      },
      "AgentSession": {
        "type": "object",
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "agentSessions"
            ]
          },
          "id": {
            "type": "string"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "_rev": {
                "type": "string",
                "description": "Value used to ensure updates to this object are handled in order."
              },
              "agentId": {
                "type": "string"
              },
              "session": {
                "$ref": "#/components/schemas/session"
              }
            }
          }
        }
      },
      "AgentSessionListResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentSession"
            }
          }
        }
      },
      "AgentSessionResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AgentSession"
          }
        }
      },
      "AgentSessionCreateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to create an agent session",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentSessions"
                ]
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string"
                  },
                  "session": {
                    "$ref": "#/components/schemas/session"
                  }
                }
              }
            }
          }
        }
      },
      "AgentSessionUpdateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to update an existing agent session",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "id",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentSessions"
                ]
              },
              "id": {
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "_rev": {
                    "type": "string",
                    "description": "Value used to ensure updates to this object are handled in order."
                  },
                  "agentId": {
                    "type": "string"
                  },
                  "session": {
                    "$ref": "#/components/schemas/session"
                  }
                }
              }
            }
          }
        }
      },
      "AgentSessionListCreateRequest": {
        "type": "object",
        "required": [
          "data"
        ],
        "description": "Object used to bulk create sessions",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "agentSessionLists"
                ]
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string"
                  },
                  "sessionlist": {
                    "$ref": "#/components/schemas/sessions"
                  }
                }
              }
            }
          }
        }
      },
      "SessionStatusResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "id",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "sessionStatuses"
                ]
              },
              "attributes": {
                "$ref": "#/components/schemas/sessionStatus"
              }
            }
          }
        }
      },
      "dataGatewayConfig": {
        "description": "Configuration elements for the data gateway.",
        "type": "object",
        "properties": {
          "server": {
            "type": "string",
            "description": "IP or FQDN for the data broker to connect to."
          },
          "port": {
            "type": "number",
            "default": 55888,
            "minimum": 1024,
            "maximum": 65535,
            "description": "The data broker connection port."
          },
          "dataBrokerUseSsl": {
            "type": "boolean",
            "description": "Enable secure connection."
          },
          "dataBrokerSslAllowSelfsigned": {
            "type": "boolean",
            "description": "Allow self signed certificates on the secure connection."
          },
          "dataBrokerSslAllowInsecureCerts": {
            "type": "boolean",
            "description": "Allow insecure certificates to be used for the secure connection."
          },
          "dataBrokerSslAllowExpiredCerts": {
            "type": "boolean",
            "description": "Allow the use of expired certificates on secure connections."
          },
          "dataBrokerSslSkipHostnameCheck": {
            "type": "boolean",
            "description": "Skip hostname/Common Name check on secure connection."
          },
          "pdgMetricsEnabled": {
            "type": "boolean",
            "default": false,
            "description": "ENGINEERING ONLY Send internal performance data metrics."
          },
          "brokerATO": {
            "type": "number",
            "default": 5,
            "minimum": 1,
            "description": "ENGINEERING ONLY Set the ack timeout value in seconds. To disable please use AGENT_PDG_ACK_ENABLE=false."
          },
          "brokerATOMaxCount": {
            "type": "number",
            "default": 2,
            "minimum": 1,
            "description": "ENGINEERING ONLY Set the maximum number of ack timeouts before disconnect."
          }
        }
      },
      "reflectorType": {
        "type": "string",
        "enum": [
          "twampIpv4",
          "twampIpv6",
          "echoUdpIpv4",
          "echoUdpIpv6",
          "echoIcmpIpv4",
          "echoIcmpIpv6"
        ],
        "description": "Reflector type TWAMP IPv4/6, Echo UDP IPv4/6 or Echo ICMP IPv4/6",
        "example": "twampIpv4"
      },
      "reflector": {
        "description": "TWAMP and Echo reflectors",
        "required": [
          "reflectorType",
          "enable"
        ],
        "type": "object",
        "properties": {
          "reflectorType": {
            "$ref": "#/components/schemas/reflectorType"
          },
          "enable": {
            "type": "boolean"
          }
        }
      },
      "agentReflectors": {
        "description": "Performance monitoring agent reflector configuration",
        "type": "object",
        "properties": {
          "reflectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reflector"
            }
          }
        }
      },
      "command": {
        "type": "string",
        "enum": [
          "start",
          "stop"
        ]
      },
      "commandType": {
        "type": "string",
        "enum": [
          "throughput",
          "baseline"
        ],
        "description": "Type of test to run. This field is specific to each service.",
        "example": "baseline"
      },
      "sessionId": {
        "type": "string",
        "format": "uuid",
        "description": "Session identifier.",
        "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
      },
      "sessionType": {
        "type": "string",
        "enum": [
          "tcp-throughput",
          "twamp-stateful",
          "twamp-stateless",
          "echo-udp",
          "echo-icmp",
          "path-trace"
        ],
        "description": "Type of session or test"
      },
      "throughput": {
        "description": "RFC 6349 TCP throughput test session configuration",
        "type": "object",
        "properties": {
          "testServerAddress": {
            "type": "string",
            "description": "IP address of the test server.",
            "example": "13.0.0.9"
          },
          "testServerPort": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "default": 5201,
            "description": "IP port of the test server"
          },
          "testReverse": {
            "type": "boolean",
            "default": false,
            "description": "False means TCP traffic from agent-to-server."
          },
          "testDurationSecs": {
            "type": "integer",
            "minimum": 1,
            "maximum": 86400,
            "default": 60,
            "description": "Duration in seconds for the throughput test. testDurationSecs is ignored by the baseline test."
          },
          "testReportIntervalSecs": {
            "type": "number",
            "example": 1.5,
            "minimum": 1,
            "maximum": 60,
            "default": 1,
            "description": "Throughput test metrics reporting interval in seconds. testReportIntervalSecs is ignored by the baseline test."
          },
          "testParallel": {
            "type": "integer",
            "minimum": 1,
            "maximum": 128,
            "default": 1,
            "description": "The number of simultaneous connections to make to the server."
          },
          "testDscp": {
            "type": "integer",
            "minimum": 0,
            "maximum": 63,
            "default": 0,
            "description": "The Differentiated Services Code Point values in the IP header."
          },
          "testTracerouteDestPort": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "default": 33434,
            "description": "Destination IP port of the tracetroute probe. Usually, testTracerouteDestPort = testServerPort."
          },
          "networkMaxRateBitsPerSec": {
            "type": "integer",
            "minimum": 0,
            "default": 0,
            "example": 280000000,
            "description": "Maximum rate in bits-per-second in baseline and throughput test phase. Zero means unbound."
          },
          "networkMtuBytes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9000,
            "example": 1500,
            "description": "Maximum Transmission Unit in bytes. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
          },
          "networkBottleneckBandwidthBitsPerSec": {
            "type": "integer",
            "minimum": 0,
            "example": 250000000,
            "description": "TCP bottleneck bandwidth in bits-per-second. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
          },
          "networkRttMs": {
            "type": "number",
            "minimum": 0,
            "example": 0.44,
            "description": "Round-trip time in milliseconds. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
          }
        }
      },
      "override": {
        "type": "object",
        "required": [
          "sessionType"
        ],
        "properties": {
          "sessionType": {
            "$ref": "#/components/schemas/sessionType"
          },
          "throughput": {
            "$ref": "#/components/schemas/throughput"
          }
        }
      },
      "requestId": {
        "type": "string",
        "format": "uuid",
        "descriptions": "Unique identifier of a request.",
        "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
      },
      "sessionName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64,
        "description": "User-friendly session name, default generated by the agent",
        "example": "myTwampSession, Ottawa-to-Kanata"
      },
      "period": {
        "type": "string",
        "description": "once, to run a finite duration test. continuous, to run the test continuously (e.g. TWAMP). repeat, to repeat the finite duration test indefinitely (e.g. throughput)",
        "enum": [
          "continuous",
          "once",
          "repeat"
        ]
      },
      "twamp": {
        "description": "TWAMP performance monitoring session configuration",
        "required": [
          "reflectorAddr"
        ],
        "type": "object",
        "properties": {
          "senderAddr": {
            "type": "string",
            "description": "TWAMP sender IPv4, IPv6 address or FQDN",
            "example": "8.8.8.8"
          },
          "senderPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "description": "TWAMP sender port number, default generated by agent",
            "example": 15000
          },
          "senderPayloadSize": {
            "type": "integer",
            "format": "int32",
            "minimum": 41,
            "maximum": 1472,
            "description": "TWAMP payload size in bytes, default 82",
            "example": 82
          },
          "senderRate": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 1000,
            "description": "TWAMP packet rate in PPS, default 10",
            "example": 10
          },
          "senderDscp": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 63,
            "description": "TWAMP sender DSCP value, default 0 (CS0)",
            "example": 32
          },
          "senderTtl": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 255,
            "description": "TWAMP sender TTL value, default 255",
            "example": 255
          },
          "senderVprio": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 7,
            "description": "TWAMP sender VLAN prio, default 0",
            "example": 0
          },
          "reflectorAddr": {
            "type": "string",
            "description": "TWAMP reflector IPv4, IPv6 address or FQDN",
            "example": "8.8.8.8"
          },
          "reflectorPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "description": "TWAMP reflector port number, default 862",
            "example": 862
          },
          "reportInterval": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 900,
            "description": "Reporting interval in seconds, default 30",
            "example": 30
          },
          "controlAddr": {
            "type": "string",
            "description": "TWAMP control server IPv4, IPv6 address or FQDN",
            "example": "8.8.8.8"
          },
          "controlPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "description": "TWAMP control server port number, default 862",
            "example": 862
          },
          "controlDscp": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 63,
            "description": "TWAMP control connection DSCP value, default 0 (CS0)",
            "example": 0
          },
          "controlVprio": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 7,
            "description": "TWAMP control connection VLAN prio, default 0",
            "example": 0
          },
          "controlLegacy": {
            "type": "boolean",
            "description": "TWAMP control legacy mode, default false",
            "example": false
          }
        }
      },
      "echo": {
        "description": "Echo performance monitoring session configuration",
        "required": [
          "reflectorAddr"
        ],
        "type": "object",
        "properties": {
          "senderAddr": {
            "type": "string",
            "description": "Echo sender IPv4 address or FQDN",
            "example": "8.8.8.8"
          },
          "senderPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "description": "Echo UDP sender port number, default generated by agent",
            "example": 15000
          },
          "senderPayloadSize": {
            "type": "integer",
            "format": "int32",
            "minimum": 20,
            "maximum": 1472,
            "description": "Echo payload size in bytes, default 82",
            "example": 82
          },
          "senderRate": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 1000,
            "description": "Echo packet rate in PPS, default 10",
            "example": 10
          },
          "senderDscp": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 63,
            "description": "Echo sender DSCP value, default 0 (CS0)",
            "example": 32
          },
          "senderTtl": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 255,
            "description": "Echo sender TTL value, default 255",
            "example": 255
          },
          "senderVprio": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 7,
            "description": "Echo sender VLAN prio, default 0",
            "example": 0
          },
          "reflectorAddr": {
            "type": "string",
            "description": "Echo reflector IPv4 address or FQDN",
            "example": "8.8.8.8"
          },
          "reflectorPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "description": "Echo UDP reflector port number, default 7",
            "example": 7
          },
          "reportInterval": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 900,
            "description": "Reporting interval in seconds, default 30",
            "example": 30
          }
        }
      },
      "traceAlgorithm": {
        "type": "string",
        "enum": [
          "paris-traceroute"
        ],
        "description": "Trace algoritm",
        "example": "paris"
      },
      "traceType": {
        "type": "string",
        "enum": [
          "udp",
          "icmp",
          "tcp"
        ],
        "default": "udp",
        "description": "Trace type",
        "example": "udp"
      },
      "trace": {
        "description": "Trace session configuration",
        "required": [
          "destination"
        ],
        "type": "object",
        "properties": {
          "destination": {
            "type": "string",
            "description": "Trace IPv4 address, IPv6 address or FQDN",
            "example": "8.8.8.8"
          },
          "destinationPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "default": 33457,
            "description": "Destination port number",
            "example": 33457
          },
          "senderPort": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 65535,
            "default": 33456,
            "description": "sender port number",
            "example": 33456
          },
          "algorithm": {
            "$ref": "#/components/schemas/traceAlgorithm"
          },
          "type": {
            "$ref": "#/components/schemas/traceType"
          },
          "probingRate": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 99,
            "default": 10,
            "description": "probing rate. Probes per second"
          },
          "senderTtlMin": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 255,
            "default": 1,
            "description": "Start the first probe from this TTL instead of 1"
          },
          "senderTtlMax": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 255,
            "default": 30,
            "description": "Set the max number of hops to be reached"
          },
          "senderDscp": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 63,
            "default": 0,
            "description": "DSCP value used by the IP probes, value 0 means CS0"
          },
          "probesPerHop": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 255,
            "default": 3,
            "description": "number of probes sent per hop"
          },
          "maxUndiscovered": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 255,
            "default": 3,
            "description": "maximum number of consecutive unresponsive hops causing test abort"
          },
          "waitSec": {
            "type": "number",
            "minimum": 0,
            "default": 5,
            "description": "number of seconds to wait for a probe response"
          },
          "testDurationSec": {
            "type": "number",
            "minimum": 0,
            "default": 180,
            "description": "timeout in seconds of the measurement (pass 0 to set it to infinity)",
            "example": 60
          }
        }
      },
      "session": {
        "description": "configuration of a session.",
        "type": "object",
        "required": [
          "sessionName",
          "sessionType",
          "period",
          "enable"
        ],
        "properties": {
          "sessionName": {
            "$ref": "#/components/schemas/sessionName"
          },
          "sessionId": {
            "$ref": "#/components/schemas/sessionId"
          },
          "sessionType": {
            "$ref": "#/components/schemas/sessionType"
          },
          "enable": {
            "type": "boolean"
          },
          "period": {
            "$ref": "#/components/schemas/period"
          },
          "twamp": {
            "$ref": "#/components/schemas/twamp"
          },
          "echo": {
            "$ref": "#/components/schemas/echo"
          },
          "throughput": {
            "$ref": "#/components/schemas/throughput"
          },
          "trace": {
            "$ref": "#/components/schemas/trace"
          }
        }
      },
      "sessions": {
        "description": "agent sessions",
        "type": "object",
        "properties": {
          "sessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/session"
            }
          }
        }
      },
      "runId": {
        "type": "string",
        "format": "uuid",
        "description": "Run instance identifier.",
        "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
      },
      "status": {
        "type": "string",
        "enum": [
          "waiting",
          "running",
          "stopped",
          "error"
        ],
        "description": "Status of a running test or session."
      },
      "statusMessage": {
        "type": "string",
        "description": "Optional field with supplementation information.",
        "example": "Unable to connect."
      },
      "captureTime": {
        "description": "The time at which the data is captured. RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z",
        "type": "string"
      },
      "sessionStatus": {
        "description": "Status of a session.",
        "type": "object",
        "required": [
          "sessionId",
          "status"
        ],
        "properties": {
          "sessionId": {
            "$ref": "#/components/schemas/sessionId"
          },
          "runId": {
            "$ref": "#/components/schemas/runId"
          },
          "status": {
            "$ref": "#/components/schemas/status"
          },
          "statusMessage": {
            "$ref": "#/components/schemas/statusMessage"
          },
          "captureTime": {
            "$ref": "#/components/schemas/captureTime"
          }
        }
      }
    }
  }
}