{ "openapi": "3.0.3", "info": { "title": "7SIGNAL API", "description": "This is the 7SIGNAL public API for interacting with the 7SIGNAL Platform", "version": "2.21.1", "contact": { "email": "info@7signal.com" }, "license": { "name": "All Rights Reserved", "url": "https://www.7signal.com/contact" } }, "servers": [ { "url": "https://api-v2.7signal.com", "description": "7SIGNAL API Gateway (production)" } ], "paths": { "/oauth2/token": { "post": { "summary": "OAuth2 Token Endpoint", "operationId": "oauth2-token-endpoint", "description": "The API requires a JWT bearer token. To fetch one, you may use this endpoint which supports the standard OAuth2 client credentials grant flow.", "requestBody": { "$ref": "#/components/requestBodies/oauth2.OAuth2ClientCredentialsRequest" }, "responses": { "200": { "description": "Success. A JWT token has been granted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/oauth2.OAuth2AccessTokenResponse" } } } }, "400": { "description": "There was a [problem with the request](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/oauth2.OAuth2AccessTokenError" } } } } }, "security": [], "tags": [ "Authentication" ] } }, "/access/{userId}/summary": { "get": { "operationId": "access-summary-get-a1b2", "tags": [ "Access" ], "summary": "List the access summary for the given user", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.AccessSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/access-points/agents": { "get": { "summary": "List the Agent Access Points", "operationId": "agent-access-points", "description": "Page through all of the Agent Access Points", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "bssids", "in": "query", "description": "Filter by specific BSSID MAC addresses. Provide a comma-separated list of BSSID strings to return only access points with those BSSIDs.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.GetAgentAccessPointsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "AccessPoints" ] }, "post": { "operationId": "PathAccessPointsAgents-post-n7p8", "summary": "Creates one or many Agent Access Points", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.PostAgentAccessPointsRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.GetAgentAccessPointsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] } }, "/access-points/agents/{accessPointId}": { "get": { "summary": "Fetch the specified Access Point", "operationId": "agent-access-point", "description": "Fetch the specified Access Point", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "accessPointId", "in": "path", "description": "Fetch the specific access Point referenced by its id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.GetAgentAccessPointResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "AccessPoints" ] }, "put": { "operationId": "PathAccessPointsAgent-put-q9r0", "summary": "Replace the specified Access Point with the details in the payload", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "accessPointId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.AgentAccessPointRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] }, "patch": { "operationId": "PathAccessPointsAgent-patch-s1t2", "summary": "Update the specified Access Point with the details in the payload, name being required", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "accessPointId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.AgentAccessPointRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] }, "delete": { "operationId": "PathAccessPointsAgent-delete-u3v4", "summary": "Delete the Access Point specified by the UUID", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "accessPointId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] } }, "/access-points/sensors": { "get": { "summary": "List the Sensor Access Points", "operationId": "sensor-access-points", "description": "Page through all of the Sensor Access Points", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "serviceAreaId", "in": "query", "description": "Filter the specific access point referenced by its service area id", "required": false, "schema": { "type": "number" } }, { "name": "sensorId", "in": "query", "description": "Filter the specific access point referenced by its sensor id", "required": false, "schema": { "type": "number" } }, { "name": "excludeDefaultServiceArea", "in": "query", "description": "Exclude the default service area from the results unless it is explicitly requested via sensorId or serviceAreaId", "required": false, "schema": { "type": "boolean" } }, { "name": "signalStrengthMin", "in": "query", "description": "Filter access points whose average signal strength is below this threshold in dBm (e.g. -70). Only applies when sensorId is also provided.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.GetSensorAccessPointsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "AccessPoints" ] } }, "/access-points/sensors/{accessPointId}": { "get": { "summary": "Fetch the specified Sensor Access Point", "operationId": "sensor-access-point", "description": "Fetch the specified Sensor Access Point", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "accessPointId", "in": "path", "description": "Fetch the specific access point referenced by its id", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.GetSensorAccessPointResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "AccessPoints" ] }, "patch": { "operationId": "PathAccessPointsSensor-patch-w5x6", "summary": "Update the alias of the specified Access Point", "parameters": [ { "name": "accessPointId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/access-points.SensorAccessPointPatchRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] }, "delete": { "operationId": "PathAccessPointsSensor-delete-y7z8", "summary": "Unbind the specified access point from its managing sensor", "description": "Removes the association between the access point and its managing sensor. The access point is not deleted from the database.", "parameters": [ { "name": "accessPointId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "AccessPoints" ] } }, "/adapter-driver-report": { "get": { "summary": "Retrieve Adapter/Driver Report", "operationId": "adapter-driver-report-list", "description": "Fetch a paginated report of adapter/driver pairs and their roaming performance, aggregated across all organizations.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/adapter-driver-report.SearchValueParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/adapter-driver-report.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/adapter-driver-report.AdapterDriverReportListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Adapter Driver Report" ] } }, "/adapter-driver-report/summary": { "get": { "summary": "Retrieve Adapter/Driver Report Summary", "operationId": "adapter-driver-report-summary", "description": "Fetch summary statistics for the adapter/driver report, aggregated across all organizations.", "security": [ { "oauth2": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/adapter-driver-report.AdapterDriverReportSummary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Adapter Driver Report" ] } }, "/adapter-driver-report/org": { "get": { "summary": "Retrieve Adapter/Driver Report by Organization", "operationId": "adapter-driver-report-org-list", "description": "Fetch a paginated report of adapter/driver pairs and their roaming performance for a single organization.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/adapter-driver-report.SearchValueParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/adapter-driver-report.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/adapter-driver-report.AdapterDriverReportListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Adapter Driver Report" ] } }, "/adapter-driver-report/org/summary": { "get": { "summary": "Retrieve Adapter/Driver Report Summary by Organization", "operationId": "adapter-driver-report-org-summary", "description": "Fetch summary statistics for the adapter/driver report for a single organization.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/adapter-driver-report.AdapterDriverReportSummary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Adapter Driver Report" ] } }, "/apikeys": { "get": { "operationId": "apikeys-get-e5f6", "tags": [ "API Keys" ], "summary": "List all accessible ApiKeys, optionally filtered by permissions, ids, createdBys and organizationsIds", "parameters": [ { "name": "permissions", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "createdBys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "organizationIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelApiKey" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "apikeys-post-g7h8", "tags": [ "API Keys" ], "summary": "Create an ApiKey and make it available for usage", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ApiKeyRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/apikeys/{apikeyId}": { "get": { "operationId": "apikeys-with-id-get-i9j0", "tags": [ "API Keys" ], "summary": "List the specific ApiKey identified by its UUID, and its associated Permissions", "parameters": [ { "name": "apikeyId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "delete": { "operationId": "apikeys-with-id-delete-k1l2", "tags": [ "API Keys" ], "summary": "Delete the ApiKey specified by the UUID", "parameters": [ { "name": "apikeyId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/audit/agents": { "get": { "summary": "Agent Audit Entries", "operationId": "agent-audits", "description": "Fetch Agent Audit record entries", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/audits.StartTimeRangeParam" }, { "$ref": "#/components/parameters/audits.EndTimeRangeParam" }, { "$ref": "#/components/parameters/audits.ActorParam" }, { "$ref": "#/components/parameters/audits.ActionParam" }, { "$ref": "#/components/parameters/audits.SourceParam" }, { "$ref": "#/components/parameters/audits.InitiatedParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/audits.AuditsAgentsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Audit" ] } }, "/change-events/sensors": { "get": { "summary": "List the change events for the specified element", "operationId": "sensor-change-events", "description": "Retrieves change events for the specified sensor or network element. Valid combinations include: Access Point only, Eye only, Access Point with Eye, Network only, or Network with Service Area", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "sensorId", "in": "query", "description": "Filter the change events for element referenced by its sensor id", "required": false, "schema": { "type": "number" } }, { "name": "accessPointId", "in": "query", "description": "Filter the change events for element referenced by its access point", "required": false, "schema": { "type": "number" } }, { "name": "networkId", "in": "query", "description": "Filter the change events for element referenced by its network", "required": false, "schema": { "type": "number" } }, { "name": "serviceAreaId", "in": "query", "description": "Filter the change events for element referenced by its networkId and serviceAreaId", "required": false, "schema": { "type": "number" } }, { "name": "from", "in": "query", "description": "The time in milliseconds from the epoch from which change events are fetched (the lower bound). Defaults to the previous 24 hours.", "required": false, "schema": { "type": "integer", "format": "int64" } }, { "name": "to", "in": "query", "description": "The time in milliseconds from the epoch up to which change events are fetched (the upper bound). Defaults to the present now.", "required": false, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/change-events.GetChangeEventsSensorResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ChangeEvents" ] } }, "/clients/sensors": { "get": { "summary": "List the Sensor Clients", "operationId": "sensor-clients", "description": "Page through all of the Sensor Clients", "security": [ { "oauth2": [ "read" ] } ], "parameters": [ { "$ref": "#/components/parameters/clients.ToRequestParam" }, { "$ref": "#/components/parameters/clients.FromRequestParam" }, { "$ref": "#/components/parameters/clients.MacRequestParam" }, { "$ref": "#/components/parameters/clients.VendorRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/clients.GetSensorClientsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Clients" ] } }, "/default-configurations/sensors": { "get": { "summary": "List the Sensor Default Configurations", "operationId": "default-configurations-sensors", "description": "Lists the configuration bundles that can be referenced by a Service Area or Organization's defaultConfigurationId", "security": [ { "oauth2": [] } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/default-configurations.GetSensorDefaultConfigurationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "tags": [ "DefaultConfigurations" ] } }, "/default-configurations/sensors/{configurationId}": { "get": { "summary": "Fetch the specified Sensor Default Configuration", "operationId": "default-configuration-sensor", "description": "Fetch details about a single default configuration", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/default-configurations.SensorDefaultConfigurationId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/default-configurations.GetSensorDefaultConfigurationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "DefaultConfigurations" ] } }, "/eyeris/analysis/stream": { "post": { "tags": [ "Eyeris" ], "summary": "Request Eyeris Analysis with Streaming Response", "description": "Use this endpoint to initiate an analysis using Eyeris with a streaming response. This endpoint will remain connected and stream the response from Eyeris back to the client until it is finished. The response uses the [Server Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) format.", "operationId": "eyeris-stream-qp5E", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyeris.EyerisCreateStreamRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "headers": { "Eyeris-Request-Id": { "schema": { "type": "string" }, "description": "Request ID" }, "Eyeris-Request-Queue-Id": { "schema": { "type": "string" }, "description": "Request Queue ID" }, "Eyeris-Response-Id": { "schema": { "type": "string" }, "description": "Response ID" } }, "content": { "text/event-stream": { "schema": { "$ref": "#/components/schemas/eyeris.EyerisSseEmitter" } } } } }, "security": [ { "oauth2": [] } ] } }, "/eyeris/agents/client-analysis": { "post": { "operationId": "eyeris-client-analysis-post-y7z8", "tags": [ "Eyeris" ], "summary": "Request Eyeris Analysis", "description": "Use this endpoint to initiate an analysis using Eyeris. This endpoint will respond as soon as the request for analysis has been received by Eyeris. Analysis can take a little time though, so you need to poll the `GET /eyeris/agents/client-analysis/{requestId}` endpoint using the Request ID received with the response from the POST request. The response from the GET request will include the Eyeris analysis when it is ready. For more information, refer to [Request Eyeris Analysis Results](#/Eyeris/get_eyeris_agents_client_analysis__requestId_).", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyeris.EyerisAnalysisRequest" }, "examples": { "roaming-analysis": { "summary": "Eyeris Roaming Analysis", "value": { "agentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "ROAMING", "from": "1740106800000", "to": "1740114000000" } }, "congestion-analysis": { "summary": "Eyeris Congestion Analysis", "value": { "agentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "CONGESTION", "from": "1740106800000", "to": "1740114000000" } }, "coverage-analysis": { "summary": "Eyeris Coverage Analysis", "value": { "agentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "COVERAGE", "from": "1740106800000", "to": "1740114000000" } }, "interference-analysis": { "summary": "Eyeris Interference Analysis", "value": { "agentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "INTERFERENCE", "from": "1740106800000", "to": "1740114000000" } } } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyeris.EyerisAnalysisResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/eyeris/agents/client-analysis/{requestId}": { "get": { "operationId": "eyeris-client-analysis-with-id-get-a9b0", "tags": [ "Eyeris" ], "summary": "Request Eyeris Analysis Results", "description": "Poll this endpoint to get the result of the analysis using the `requestId` obtained from the `POST /eyeris/agents/start-analysis` endpoint. For more information, refer to [Request Eyeris Analysis](#/Eyeris/post_eyeris_agents_client_analysis).", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "requestId", "in": "path", "description": "Fetch the specific analysis result referenced by its id.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "requestQueueId", "in": "query", "description": "ID of the request in the internal queue supplied by the analysis request.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "responseId", "in": "query", "description": "Sometimes supplied by the analysis request. This is available when the response has been cached and the ID is immediately available. When clients supply this value, the server can find the response more directly.", "required": false, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success. The response from the LLM. This response may include formatted date strings which will be in ISO-8601 format and UTC as the timezone, for example, 2007-03-01T13:00:00Z.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyeris.EyerisAnalysisRequestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } } } }, "/eyes": { "get": { "summary": "Summary of Eyes", "operationId": "eyes-summary", "description": "Fetch a summary of all registered Eyes", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.OrganizationIdRequestParam" }, { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/eyes.EyesSummaryRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.SummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/agents": { "get": { "summary": "List the Agent Eyes available", "operationId": "eyes-agents", "description": "Page through all of the registered Eyes. **Important:** When sorting by score and paging through results, you must retain a consistent scoreSortStart and scoreSortEnd time range from one call to the next, or results from paging will be unstable.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/eyes.LicenseConstraintRequestParam" }, { "$ref": "#/components/parameters/eyes.ClientNameRequestParam" }, { "$ref": "#/components/parameters/eyes.NicknameRequestParam" }, { "$ref": "#/components/parameters/eyes.PlatformRequestParam" }, { "$ref": "#/components/parameters/eyes.LastSSIDRequestParam" }, { "$ref": "#/components/parameters/eyes.LastLocationRequestParam" }, { "name": "lastLocationId", "in": "query", "description": "Filter on the last location ID seen", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "scoreSortStart", "in": "query", "description": "Start time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "name": "scoreSortEnd", "in": "query", "description": "End time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesAgentsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] }, "patch": { "summary": "Patch multiple Eye Agents", "operationId": "patch-eyes-agents", "description": "Patch the specified Eye Agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "description": "A list of the agents and the data to update.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PatchBatchEyesAgentRequest" }, "examples": { "license-multiple": { "summary": "License multiple devices", "value": [ { "agentId": "ebd0ffed-66ad-4a7b-a9d8-02245b3ede2c", "isLicensed": true }, { "agentId": "99b76dd0-4d26-40c7-b292-a330ce19f188", "isLicensed": true } ] }, "unlicense-multiple": { "summary": "Unlicense multiple device", "value": [ { "agentId": "ebd0ffed-66ad-4a7b-a9d8-02245b3ede2c", "isLicensed": false }, { "agentId": "99b76dd0-4d26-40c7-b292-a330ce19f188", "isLicensed": false } ] }, "set-nicknames": { "summary": "Update multiple nicknames", "value": [ { "agentId": "ebd0ffed-66ad-4a7b-a9d8-02245b3ede2c", "nickname": "Agent 007" }, { "agentId": "99b76dd0-4d26-40c7-b292-a330ce19f188", "nickname": "Agent 002" } ] }, "delete-agents": { "summary": "Delete multiple agents", "value": [ { "agentId": "ebd0ffed-66ad-4a7b-a9d8-02245b3ede2c", "autoUninstall": true, "pendingDelete": true }, { "agentId": "99b76dd0-4d26-40c7-b292-a330ce19f188", "autoUninstall": false, "pendingDelete": true } ] } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PatchEyesAgentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/agents/search": { "get": { "summary": "Search for Agent Eyes", "operationId": "eyes-agents-search", "description": "Search for registered Agent Eyes", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "q", "in": "query", "description": "One or more search terms. This will execute a fuzzy search with the given terms and can partial or full agent names, nicknames, MAC addresses, IDs, local IPs, and/or external IPs.", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of search results to return.", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 25 } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesAgentsSearchResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/agents/{agentId}": { "get": { "summary": "Fetch the specified Eyes Agent", "operationId": "eyes-agent", "description": "Fetch the registered Eyes Agent", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/eyes.RequiredAgentId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesAgentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] }, "patch": { "summary": "Patch the specified Eyes Agent", "operationId": "patch-eyes-agent", "description": "Patch the specified Eyes Agent", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/eyes.RequiredAgentId" } ], "requestBody": { "description": "Agent fields to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PatchEyesAgentRequest" }, "examples": { "license": { "summary": "License a device", "value": { "isLicensed": true } }, "unlicense": { "summary": "Unlicense a device", "value": { "isLicensed": false } }, "set-nickname": { "summary": "Set a nickname", "value": { "nickname": "Agent 007" } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PatchEyesAgentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] }, "delete": { "summary": "Delete an Eyes Agent", "operationId": "delete-eyes-agent", "description": "Delete the specified Eyes Agent", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/eyes.DeleteAgentId" }, { "$ref": "#/components/parameters/eyes.AutoUninstall" } ], "responses": { "202": { "description": "Accepted. Client to be deleted in the future." }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors": { "get": { "summary": "List the Sensor Eyes available", "operationId": "eyes-sensors", "description": "Page through all of the registered Eyes", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "excludeDefaultServiceArea", "in": "query", "description": "Exclude the default service area from the results", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesSensorsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/{sensorId}": { "get": { "summary": "Fetch the specified Eyes Sensor", "operationId": "eyes-sensor", "description": "Fetch the registered Eyes Sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesSensorResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] }, "patch": { "summary": "Patch the specified Eyes Sensor", "operationId": "patch-eyes-sensor", "description": "Patch the specified Eyes Sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" } ], "requestBody": { "description": "Sensor fields to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PatchEyesSensorRequest" }, "examples": { "normal-mode": { "summary": "Led status to normal mode", "value": { "ledStatus": "NORMAL_MODE" } }, "blinking": { "summary": "Led status to blinking", "value": { "ledStatus": "BLINKING" } }, "off": { "summary": "Led status to off", "value": { "ledStatus": "OFF" } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.GetEyesSensorResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/{sensorId}/automated-testing": { "get": { "summary": "Get the status of automated test on Sensor", "operationId": "get-eyes-sensor-automated-testing", "description": "Get the status of automated test on Sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.EyesSensorAutomatedTestStatus" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] }, "post": { "summary": "Start or stopping automated test on Sensor", "operationId": "post-eyes-sensor-automated-testing", "description": "Start or stopping automated test on Sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.EyesSensorAutomatedTestRequest" }, "examples": { "START_AUTOMATED_TESTING": { "summary": "Start automated testing", "value": { "action": "START_AUTOMATED_TESTING" } }, "STOP_AUTOMATED_TESTING": { "summary": "Stop automated testing", "value": { "action": "STOP_AUTOMATED_TESTING" } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.EyesSensorAutomatedTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/{sensorId}/packet-captures": { "get": { "summary": "List packet capture tests for sensor", "operationId": "get-eyes-sensor-pcaps", "description": "Retrieve a paginated list of packet capture and access point traffic test pcaps for a sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" }, { "$ref": "#/components/parameters/eyes.PcapChannelRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapApIdRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapBandRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapStartRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapEndRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapPageRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapSizeRequestParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PacketCaptureListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/{sensorId}/packet-captures/{testKey}/download": { "get": { "summary": "Download packet capture file", "operationId": "get-eyes-sensor-pcap-download", "description": "Downloads the pcap file for the specified sensor and test key", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/eyes.RequiredSensorId" }, { "$ref": "#/components/parameters/eyes.RequiredTestKey" } ], "responses": { "200": { "description": "pcap file returned", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "application/vnd.tcpdump.pcap": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/packet-captures": { "get": { "summary": "List packet capture tests across all sensors", "operationId": "get-eyes-packet-captures-global", "description": "Retrieve a paginated, cross-sensor list of packet capture and access point traffic test pcaps. Omitting sensorId returns results across all sensors; providing it scopes to one sensor.", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "sensorId", "in": "query", "required": false, "description": "Scope results to a single sensor. Omit for cross-sensor results.", "schema": { "type": "integer" } }, { "$ref": "#/components/parameters/eyes.PcapChannelRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapApIdRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapBandRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapStartRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapEndRequestParam" }, { "name": "testType", "in": "query", "required": false, "description": "Filter by test type", "schema": { "type": "string", "enum": [ "PacketCapture", "AccessPointTraffic" ] } }, { "name": "searchValue", "in": "query", "required": false, "description": "Free-text search across sensor name, AP name, ESSID, and BSSID", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/eyes.PcapPageRequestParam" }, { "$ref": "#/components/parameters/eyes.PcapSizeRequestParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.PacketCaptureListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Eyes" ] } }, "/eyes/sensors/registration": { "post": { "summary": "Register a new Eye Sensor", "operationId": "register-eyes-sensor", "description": "Register a new Eye Sensor", "security": [ { "oauth2": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.RegistrationRequestBody" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/eyes.RegistrationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "tags": [ "Eyes" ] } }, "/groups": { "get": { "operationId": "groups-get-m3n4", "tags": [ "Groups" ], "summary": "List all accessible Groups", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "keys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "organizationIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "instanceIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelGroup" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/groups/{groupId}": { "get": { "operationId": "groups-with-id-get-o5p6", "tags": [ "Groups" ], "summary": "Get a specific Group by UUID", "parameters": [ { "name": "groupId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.Group" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/impact/agents": { "get": { "summary": "Retrieve Agent Impact", "operationId": "impact-agents", "description": "Retrieve per-agent impact metrics within a time range.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/impact.FromRequestParam" }, { "$ref": "#/components/parameters/impact.ToRequestParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/impact.GetAgentImpactResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Impact" ] } }, "/impact/agents/by-status": { "get": { "summary": "Retrieve Agent Impact by Status", "operationId": "impact-agents-by-status", "description": "Retrieve an aggregated summary of agent impact metrics grouped by impacted-minutes status.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/impact.FromRequestParam" }, { "$ref": "#/components/parameters/impact.ToRequestParam" }, { "$ref": "#/components/parameters/impact.MinImpactedMinutesParam" }, { "$ref": "#/components/parameters/impact.MaxImpactedMinutesParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/impact.AgentSummary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Impact" ] } }, "/impact/agents/summary": { "get": { "summary": "Retrieve Agent Impact Summary", "operationId": "impact-agents-summary", "description": "Retrieve a summary of agent impact metrics within a time range.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/impact.FromRequestParam" }, { "$ref": "#/components/parameters/impact.ToRequestParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/impact.GetAgentSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Impact" ] } }, "/impact/agents/time-series": { "get": { "summary": "Retrieve Agent Impact Time Series", "operationId": "impact-agents-time-series", "description": "Retrieve a time series of agent impact metrics with configurable granularity.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/impact.FromRequestParam" }, { "$ref": "#/components/parameters/impact.ToRequestParam" }, { "$ref": "#/components/parameters/impact.TimezoneParam" }, { "$ref": "#/components/parameters/impact.GranularityParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/impact.GetAgentTimeSeriesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Impact" ] } }, "/impact/locations": { "get": { "summary": "Retrieve Location Impact", "operationId": "impact-locations", "description": "Retrieve per-location impact metrics within a time range.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/impact.FromRequestParam" }, { "$ref": "#/components/parameters/impact.ToRequestParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/impact.GetLocationImpactResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Impact" ] } }, "/incidents/agents": { "get": { "summary": "List the Agent Incidents", "operationId": "agent-incidents", "description": "Page through all of the Agent Incidents for the given time period", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/incidents.ToRequestParam" }, { "$ref": "#/components/parameters/incidents.FromRequestParam" }, { "name": "location_id", "in": "query", "description": "location id", "required": false, "schema": { "type": "string", "format": "uuid" } }, { "$ref": "#/components/parameters/common.SortOrderParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/incidents.GetIncidentsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Incidents" ] } }, "/incidents/agents/{incidentId}": { "get": { "summary": "Fetch the specified Agent Incident", "operationId": "agent-incident", "description": "Fetch the specified Agent Incident", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "incidentId", "in": "path", "description": "Fetch the specific incident referenced by its id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/incidents.GetIncidentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Incidents" ] } }, "/alerting/alert-rules": { "get": { "summary": "List alert rules", "operationId": "list-alert-rules", "description": "Page through the alert rules for an organization, optionally filtering by metric, enabled state, and name", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/alert-rules.MetricFilterParam" }, { "$ref": "#/components/parameters/alert-rules.EnabledFilterParam" }, { "$ref": "#/components/parameters/alert-rules.NameFilterParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.GetAlertRulesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Alert Rules" ] }, "post": { "summary": "Create an alert rule", "operationId": "create-alert-rule", "description": "Create a new alert rule for an organization", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleRequest" }, "examples": { "minimal": { "summary": "Minimal \u2014 required fields only", "value": { "metric": "client_health_score", "dimensionSet": [ "network", "band" ], "aggregationFunction": "avg", "thresholdValue": 70.0, "thresholdOperator": "<" } }, "full": { "summary": "Full \u2014 with overrides and notifications", "value": { "name": "Low client health on guest network", "metric": "client_health_score", "dimensionSet": [ "network", "band" ], "aggregationFunction": "avg", "thresholdValue": 70.0, "thresholdOperator": "<", "pendingPeriodSeconds": 600, "missingDataPolicy": "ignore", "enabled": true, "notificationConfig": { "deliveries": [ { "kind": "email", "address": "neteng@example.com" }, { "kind": "servicenow", "mdsConfigId": "abc-123", "organizationName": "globalcorp" } ] } } } } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Alert Rules" ] } }, "/alerting/alert-rules/summary": { "get": { "summary": "Get an alert rules summary", "operationId": "alert-rules-summary", "description": "Fetch aggregate counts of the alert rules for an organization", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRulesSummary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Alert Rules" ] } }, "/alerting/alert-rules/{id}": { "get": { "summary": "Fetch the specified alert rule", "operationId": "get-alert-rule", "description": "Fetch a single alert rule by its id", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The alert rule id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Alert Rules" ] }, "put": { "summary": "Replace an alert rule", "operationId": "update-alert-rule", "description": "Fully replace an existing alert rule", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The alert rule id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleRequest" }, "examples": { "minimal": { "summary": "Minimal \u2014 required fields only", "value": { "metric": "client_health_score", "dimensionSet": [ "network", "band" ], "aggregationFunction": "avg", "thresholdValue": 70.0, "thresholdOperator": "<" } }, "full": { "summary": "Full \u2014 with overrides and notifications", "value": { "name": "Low client health on guest network", "metric": "client_health_score", "dimensionSet": [ "network", "band" ], "aggregationFunction": "avg", "thresholdValue": 70.0, "thresholdOperator": "<", "pendingPeriodSeconds": 600, "missingDataPolicy": "ignore", "enabled": true, "notificationConfig": { "deliveries": [ { "kind": "email", "address": "neteng@example.com" }, { "kind": "servicenow", "mdsConfigId": "abc-123", "organizationName": "globalcorp" } ] } } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Alert Rules" ] }, "delete": { "summary": "Delete an alert rule", "operationId": "delete-alert-rule", "description": "Delete an existing alert rule", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The alert rule id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Alert Rules" ] } }, "/alerting/alert-rules/{id}/enabled": { "patch": { "summary": "Enable or disable an alert rule", "operationId": "patch-alert-rule-enabled", "description": "Toggle the enabled state of an alert rule", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The alert rule id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.EnabledRequest" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-rules.AlertRuleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Alert Rules" ] } }, "/alerting/incidents": { "get": { "summary": "List incidents", "operationId": "list-alerting-incidents", "description": "Page through alert-rule incidents for an organization, with optional filtering", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/alert-incidents.StatusFilterParam" }, { "$ref": "#/components/parameters/alert-incidents.MetricFilterParam" }, { "$ref": "#/components/parameters/alert-incidents.DimensionKeyFilterParam" }, { "$ref": "#/components/parameters/alert-incidents.RuleIdFilterParam" }, { "$ref": "#/components/parameters/alert-incidents.StartedAfterParam" }, { "$ref": "#/components/parameters/alert-incidents.StartedBeforeParam" }, { "$ref": "#/components/parameters/alert-incidents.ResolvedAfterParam" }, { "$ref": "#/components/parameters/alert-incidents.ResolvedBeforeParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-incidents.GetIncidentsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Incidents (Alerting)" ] } }, "/alerting/incidents/by-rule": { "get": { "summary": "List incidents aggregated by rule", "operationId": "list-alerting-incidents-by-rule", "description": "Fetch incident counts grouped by the alert rule that produced them", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/alert-incidents.FromParam" }, { "$ref": "#/components/parameters/alert-incidents.ToParam" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-incidents.GetIncidentsByRuleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Incidents (Alerting)" ] } }, "/alerting/incidents/summary": { "get": { "summary": "Get an incidents summary", "operationId": "alerting-incidents-summary", "description": "Fetch aggregate counts of the alert-rule incidents for an organization", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-incidents.IncidentsSummary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "Incidents (Alerting)" ] } }, "/alerting/incidents/{id}": { "get": { "summary": "Fetch the specified incident", "operationId": "get-alerting-incident", "description": "Fetch a single incident by its id", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The incident id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-incidents.IncidentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Incidents (Alerting)" ] } }, "/alerting/incidents/{id}/resolve": { "post": { "summary": "Resolve an incident", "operationId": "resolve-alerting-incident", "description": "Manually resolve an active incident", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "id", "in": "path", "description": "The incident id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/alert-incidents.IncidentResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" }, "409": { "description": "Conflict - the incident is already resolved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common.ResponseStatusException" } } } } }, "tags": [ "Incidents (Alerting)" ] } }, "/kpis/agents": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all agents", "operationId": "agent-kpis-all", "description": "Page through KPI data for all agents by location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.EventTypeFilter" }, { "$ref": "#/components/parameters/kpis.SSIDFilter" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.IncludeClientCount" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetAgentKPIsGlobalResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/agents/access-points": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all agents by access point", "operationId": "agent-kpis-by-access-point", "description": "Page through KPI data for all agents by access point", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.EventTypeFilter" }, { "$ref": "#/components/parameters/kpis.SSIDFilter" }, { "$ref": "#/components/parameters/kpis.LocationFilter" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.IncludeClientCount" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetAgentKPIsAccessPointsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/agents/adapter-drivers": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all agents by adapter and driver", "operationId": "agent-kpis-by-adapter-drivers", "description": "Page through KPI data for all agents by adapter and driver", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.EventTypeFilter" }, { "$ref": "#/components/parameters/kpis.SSIDFilter" }, { "$ref": "#/components/parameters/kpis.LocationFilter" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.IncludeClientCount" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetAgentKPIsAdapterDriversResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/agents/locations": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all agents by location", "operationId": "agent-kpis-by-location", "description": "Page through KPI data for all agents by location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.EventTypeFilter" }, { "$ref": "#/components/parameters/kpis.SSIDFilter" }, { "$ref": "#/components/parameters/kpis.LocationFilter" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.IncludeClientCount" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetAgentKPIsLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/agents/client-capabilities": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all agents by client capabilities", "operationId": "agent-kpis-by-client-capability", "description": "Page through KPI data for all agents by client capability", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/kpis.ClientCapabilityType" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetAgentKPIsClientCapabilitiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/organizations": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all sensors by organization", "operationId": "sensor-kpis-by-organization", "description": "Page through KPI data for all sensors by organization", "security": [ { "oauth2": [ "read" ] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.OrgKpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.ClientMac" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/access-points/{accessPointId}": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all sensors by access point", "operationId": "sensor-kpis-by-access-point", "description": "Page through KPI data for all sensors by access point", "security": [ { "oauth2": [ "read" ] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.AccessPointId" }, { "$ref": "#/components/parameters/kpis.APKpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.ClientMac" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/dest-nw-band-loc/{targetId}": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all sensors by destination, network, band, and location", "operationId": "sensor-kpis-by-destination-network-band-location", "description": "Page through KPI data for all sensors by destination network, band, and location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.TargetId" }, { "$ref": "#/components/parameters/kpis.LocationIdFilter" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.KpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/locations/{locationId}": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all sensors by location", "operationId": "sensor-kpis-by-location", "description": "Page through KPI data for all sensors by location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.LocationId" }, { "$ref": "#/components/parameters/kpis.KpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.ClientMac" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/eyes/{sensorId}": { "get": { "deprecated": true, "summary": "Retrieve KPI data for a specific sensor", "operationId": "sensor-kpis-by-eye", "description": "Page through KPI data for a specific sensor", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.SensorId" }, { "$ref": "#/components/parameters/kpis.KpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.ClientMac" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/kpis/sensors/service-areas/{serviceAreaId}": { "get": { "deprecated": true, "summary": "Retrieve KPI data for all sensors by service area", "operationId": "sensor-kpis-by-service-area", "description": "Page through KPI data for all sensors by service area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/kpis.ServiceAreaId" }, { "$ref": "#/components/parameters/kpis.KpiCodes" }, { "$ref": "#/components/parameters/kpis.FromRequestParam" }, { "$ref": "#/components/parameters/kpis.ToRequestParam" }, { "$ref": "#/components/parameters/kpis.NetworkIdFilter" }, { "$ref": "#/components/parameters/kpis.ClientMac" }, { "$ref": "#/components/parameters/kpis.BandFilter" }, { "$ref": "#/components/parameters/kpis.Averaging" }, { "$ref": "#/components/parameters/kpis.TimeLimit" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/kpis.GetSensorsKPIsTopologiesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "KPIs" ] } }, "/integrations/meraki/configs": { "get": { "operationId": "meraki-integration-config-get", "tags": [ "Integration Configs" ], "summary": "List all accessible meraki integration configurations", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "createdBys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "organizationIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelMerakiIntegrationConfig" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "meraki-integration-config-post", "tags": [ "Integration Configs" ], "summary": "Create a meraki integration configuration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfigRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfigResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/integrations/meraki/configs/{id}": { "get": { "operationId": "meraki-integration-config-with-id-get", "tags": [ "Integration Configs" ], "summary": "List the specific meraki integration configuration identified by its UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfigResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "put": { "operationId": "meraki-integration-config-with-id-put", "tags": [ "Integration Configs" ], "summary": "Replace the configurable parameters of a meraki integration configuration specified by its UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfigPutRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfigResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "delete": { "operationId": "meraki-integration-config-with-id-delete", "tags": [ "Integration Configs" ], "summary": "Delete the meraki integration configuration specified by the UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/locations/agents": { "get": { "summary": "List the Agent Locations", "operationId": "agent-locations-get", "description": "Page through all of the Agent Locations", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetAgentLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Locations" ] }, "post": { "summary": "Creates an Agent Location", "operationId": "agent-locations-post", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.AgentLocationRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.AgentLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] } }, "/locations/agents/{locationId}": { "get": { "summary": "Fetch the specified Agent Location", "operationId": "agent-location-get", "description": "Fetch the specified Agent Location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "locationId", "in": "path", "description": "Fetch the specific Location referenced by its id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetAgentLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Locations" ] }, "put": { "summary": "Replace the specified Agent Location with the details in the payload", "operationId": "agent-location-put", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "locationId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.AgentLocationRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.AgentLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] }, "delete": { "summary": "Delete the Agent Location specified by the UUID", "operationId": "agent-location-delete", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "locationId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] } }, "/locations/sensors": { "get": { "summary": "List the Sensor Locations", "operationId": "sensor-locations-get", "description": "Page through all of the Sensor Locations", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "query", "description": "Filter the specific location by its parent location id", "required": false, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetSensorLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Locations" ] }, "post": { "summary": "Creates Sensor Locations", "operationId": "sensor-locations-post", "description": "Returns the new locations, required fields: name, and exactly one of parentOrganizationId/parentLocationId. The timeZone field accepts a timezone value like \"UTC\", \"EST\", or \"GMT\", or \"INHERIT\"/omit to leave it unset - \"INHERIT\" only resolves to a real ancestor's timezone when created with parentLocationId; under parentOrganizationId there's no parent Location to inherit from, so it falls back to the default timezone instead. The countryCode field accepts a CountryCode value - either its ISO 3166-1 alpha-2 code (e.g. \"US\") or its constant name (e.g. \"UNITED_STATES\"), case-insensitive", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.PostSensorLocationsRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetSensorLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] }, "put": { "summary": "Updates Sensor Locations", "operationId": "sensor-locations-put", "description": "Returns the updated locations, required fields: name. The timeZone field accepts a timezone value like \"UTC\", \"EST\", or \"GMT\", or \"INHERIT\"/omit to leave it unset - \"INHERIT\" only resolves to a real ancestor's timezone when created with parentLocationId; a top-level location under an Organization has no parent Location to inherit from, so it falls back to the default timezone instead. The countryCode field accepts a CountryCode value - either its ISO 3166-1 alpha-2 code (e.g. \"US\") or its enum constant name (e.g. \"UNITED_STATES\"), case-insensitive", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.PutSensorLocationsRequest" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetSensorLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] }, "delete": { "summary": "Deletes Sensor Locations", "operationId": "sensor-locations-delete", "parameters": [ { "$ref": "#/components/parameters/locations.DeleteSensorLocationIds" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] } }, "/locations/sensors/{locationId}": { "get": { "summary": "Fetch the specified Sensor Location", "operationId": "sensor-location", "description": "Fetch the specified Sensor Location", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "path", "description": "Fetch the specific location by its id", "required": true, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetSensorLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Locations" ] }, "put": { "summary": "Update the specified Sensor Location", "operationId": "sensor-location-put", "description": "Returns the updated location, required fields: name. The timeZone field accepts a timezone value like \"UTC\", \"EST\", or \"GMT\", or \"INHERIT\"/omit to leave it unset - \"INHERIT\" only resolves to a real ancestor's timezone when created with parentLocationId; a top-level location under an Organization has no parent Location to inherit from, so it falls back to the default timezone instead. The countryCode field accepts a CountryCode value - either its ISO 3166-1 alpha-2 code (e.g. \"US\") or its enum constant name (e.g. \"UNITED_STATES\"), case-insensitive", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/locations.SensorLocationId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.SensorSingleUpdateLocationRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/locations.GetSensorLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Locations" ] }, "delete": { "summary": "Delete the specified Sensor Location", "operationId": "sensor-location-delete", "description": "Delete the specified Sensor Location", "parameters": [ { "$ref": "#/components/parameters/locations.SensorLocationId" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Locations" ] } }, "/network-keys/sensors": { "get": { "summary": "List the Sensor Network Keys", "operationId": "sensor-network-keys", "description": "Page through all of the Sensor Network Keys", "security": [ { "oauth2": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.GetNetworkKeysResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Network Keys" ] }, "post": { "operationId": "PathNetworkKeysSensors-post-nk1s2", "summary": "Creates a Sensor Network Key", "description": "Creates a new Sensor Network Key. Request shape is resolved from 'type' - see the request examples.", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.PostNetworkKeyRequest" }, "examples": { "wpa1-passphrase": { "summary": "WPA1 with a passphrase", "value": { "type": "WPA1", "name": "corp-wifi-legacy", "usePassphrase": true, "passphraseOrPsk": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa2-passphrase": { "summary": "WPA2 with a passphrase", "value": { "type": "WPA2", "name": "corp-wifi", "usePassphrase": true, "passphraseOrPsk": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-mixed": { "summary": "WPA3 in Mixed WPA3/WPA2-PSK mode", "value": { "type": "WPA3", "name": "corp-wifi-wpa3-mixed", "passphraseOrPsk": "SuperSecret123", "pure": false, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-pure": { "summary": "WPA3 in WPA3-only mode", "value": { "type": "WPA3", "name": "corp-wifi-wpa3-only", "passphraseOrPsk": "SuperSecret123", "pure": true, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-owe": { "summary": "WPA3 OWE (Opportunistic Wireless Encryption)", "value": { "type": "WPA3_OWE", "name": "guest-wifi-owe", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-tls": { "summary": "WPA_EAP with EAP-TLS", "value": { "type": "WPA_EAP", "eapMethod": "EAP_TLS", "name": "corp-wifi-eap-tls", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "subKeyId": 5, "certificateProperties": { "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyPassword": "keySecret123" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-peap": { "summary": "WPA_EAP with EAP-PEAP (inner authentication: TLS)", "value": { "type": "WPA_EAP", "eapMethod": "EAP_PEAP", "name": "corp-wifi-eap-peap", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "peapLabel": "CLIENT_EAP_ENCRYPTION", "peapVersion": "V0", "subKeyId": 5, "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "innerAuthentication": { "method": "TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-ttls": { "summary": "WPA_EAP with EAP-TTLS (inner authentication: EAP-TLS)", "value": { "type": "WPA_EAP", "eapMethod": "EAP_TTLS", "name": "corp-wifi-eap-ttls", "wpaVersion": "WPA2", "identity": "user@corp.example", "anonymousIdentity": "anon@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "subKeyId": 5, "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "innerAuthentication": { "method": "EAP_TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-psk": { "summary": "WPA_EAP with EAP-PSK", "value": { "type": "WPA_EAP", "eapMethod": "EAP_PSK", "name": "corp-wifi-eap-psk", "wpaVersion": "WPA2", "identity": "user@corp.example", "nai": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "preSharedKey": "0123456789ABCDEF0123456789ABCDEF", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-fast": { "summary": "WPA_EAP with EAP-FAST", "value": { "type": "WPA_EAP", "eapMethod": "EAP_FAST", "name": "corp-wifi-eap-fast", "wpaVersion": "WPA2", "identity": "user@corp.example", "anonymousIdentity": "anon@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "tlsVersion": "TLS_1_2", "pacFile": { "fileName": "pac.bin", "certificateBytes": "cGFjLWJ5dGVz" }, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-leap": { "summary": "WPA_EAP with LEAP", "value": { "type": "WPA_EAP", "eapMethod": "LEAP", "name": "corp-wifi-leap", "wpaVersion": "WPA1", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_1", "password": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-mschapv2": { "summary": "WPA_EAP with EAP-MSCHAPv2", "value": { "type": "WPA_EAP", "eapMethod": "EAP_MSCHAP_V2", "name": "corp-wifi-mschapv2", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-scep": { "summary": "WPA_EAP_SCEP", "value": { "type": "WPA_EAP_SCEP", "name": "corp-wifi-scep", "wpaVersion": "WPA2", "scepUrl": "https://scep.corp.example/pkiclient.exe", "challengePassword": "SuperSecret123", "caFingerprint": "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD", "subjectName": "CN=eye-{serial},O=Corp Inc", "subjectAltName": "eye-{serial}.corp.example", "keySize": "RSA_2048", "renewalThresholdPercent": 33, "eapolVersion": "EAPOL_VERSION_2", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "subKeyId": 5 } }, "ieee8021x-eap-tls": { "summary": "IEEE_802_1X with EAP-TLS", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_TLS", "name": "ieee-eap-tls", "identity": "user@corp.example", "allowAny": false, "certificateProperties": { "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyPassword": "keySecret123" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-peap": { "summary": "IEEE_802_1X with EAP-PEAP (inner authentication: TLS)", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_PEAP", "name": "ieee-eap-peap", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "peapLabel": "CLIENT_EAP_ENCRYPTION", "peapVersion": "V0", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "innerAuthentication": { "method": "TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-ttls": { "summary": "IEEE_802_1X with EAP-TTLS (inner authentication: EAP-TLS) - clientCertificate is required for this template's EAP_TTLS, unlike WPA_EAP's", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_TTLS", "name": "ieee-eap-ttls", "identity": "user@corp.example", "allowAny": false, "anonymousIdentity": "anon@corp.example", "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "innerAuthentication": { "method": "EAP_TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-leap": { "summary": "IEEE_802_1X with LEAP", "value": { "type": "IEEE_802_1X", "eapMethod": "LEAP", "name": "ieee-leap", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-mschapv2": { "summary": "IEEE_802_1X with EAP-MSCHAPv2", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_MSCHAP_V2", "name": "ieee-mschapv2", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "open-http": { "summary": "OPEN_HTTP", "value": { "type": "OPEN_HTTP", "name": "corp-open-http", "authenticationUrl": "https://auth.corp.example/login", "requireServerCertificateCheck": true, "postData": "username=${username}&password=${password}", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "clientCertificateFileType": "PEM", "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyFileType": "DER" } }, "http-authentication": { "summary": "HTTP_AUTHENTICATION", "value": { "type": "HTTP_AUTHENTICATION", "name": "corp-http-auth", "targetUrl": "https://portal.corp.example/login", "requireServerCertificateCheck": true, "contentOnTargetUrlPage": "Please sign in", "contentOnLoginPage": "Enter your credentials", "contentOnSuccessfulLogin": "Login successful", "contentOnUnSuccessfulLogin": "Login failed", "secureProtocol": "TLSv1_2", "userAgent": "CUSTOM_USER_AGENT", "customUserAgent": "SevenSignalEye/1.0", "loginPages": [ { "fields": [ { "name": "username", "value": "guest" }, { "name": "password", "value": "guest" } ] } ], "logoutPages": [ { "fields": [ { "name": "action", "value": "logout" } ] } ], "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "clientCertificateFileType": "PEM", "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyFileType": "DER" } }, "raw": { "summary": "RAW", "value": { "type": "RAW", "name": "corp-raw-supplicant", "subKeyId": 5, "keyFileContent": "ap_scan=1\nctrl_interface=/tmp/wpactrl\nfast_reauth=1\nnetwork={\n ssid=__SSID__\n bssid=__BSSID__\n scan_freq=2412\n key_mgmt=WPA-PSK WPA-PSK-SHA256 FT-PSK\n psk=\"7signallab\"\n proto=RSN\n scan_ssid=1\n ieee80211w=2\n}" } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.GetNetworkKeyResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Network Keys" ] } }, "/network-keys/sensors/templates": { "get": { "summary": "List the Sensor Network Key templates", "operationId": "sensor-network-key-templates", "description": "Lists the pre-built network key templates. These can be used for creating HTTP_AUTHENTICATION network keys.", "security": [ { "oauth2": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.GetNetworkKeysResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Network Keys" ] } }, "/network-keys/sensors/{networkKeyId}": { "get": { "summary": "Fetch the specified Sensor Network Key", "operationId": "sensor-network-key", "description": "Fetch the specified Sensor Network Key", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "networkKeyId", "in": "path", "description": "Fetch the specific network key referenced by its id", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.GetNetworkKeyResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Network Keys" ] }, "put": { "operationId": "PathNetworkKeysSensor-put-nk3s4", "summary": "Replace the specified Sensor Network Key with the details in the payload", "description": "Full replace, not a patch - provide the complete desired state on every call.", "parameters": [ { "name": "networkKeyId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.PutNetworkKeyRequest" }, "examples": { "wpa1-passphrase": { "summary": "WPA1 with a passphrase", "value": { "type": "WPA1", "name": "corp-wifi-legacy", "usePassphrase": true, "passphraseOrPsk": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa2-passphrase": { "summary": "WPA2 with a passphrase", "value": { "type": "WPA2", "name": "corp-wifi", "usePassphrase": true, "passphraseOrPsk": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-mixed": { "summary": "WPA3 in Mixed WPA3/WPA2-PSK mode", "value": { "type": "WPA3", "name": "corp-wifi-wpa3-mixed", "passphraseOrPsk": "SuperSecret123", "pure": false, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-pure": { "summary": "WPA3 in WPA3-only mode", "value": { "type": "WPA3", "name": "corp-wifi-wpa3-only", "passphraseOrPsk": "SuperSecret123", "pure": true, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa3-owe": { "summary": "WPA3 OWE (Opportunistic Wireless Encryption)", "value": { "type": "WPA3_OWE", "name": "guest-wifi-owe", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-tls": { "summary": "WPA_EAP with EAP-TLS", "value": { "type": "WPA_EAP", "eapMethod": "EAP_TLS", "name": "corp-wifi-eap-tls", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "subKeyId": 5, "certificateProperties": { "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyPassword": "keySecret123" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-peap": { "summary": "WPA_EAP with EAP-PEAP (inner authentication: TLS)", "value": { "type": "WPA_EAP", "eapMethod": "EAP_PEAP", "name": "corp-wifi-eap-peap", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "peapLabel": "CLIENT_EAP_ENCRYPTION", "peapVersion": "V0", "subKeyId": 5, "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "innerAuthentication": { "method": "TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-ttls": { "summary": "WPA_EAP with EAP-TTLS (inner authentication: EAP-TLS)", "value": { "type": "WPA_EAP", "eapMethod": "EAP_TTLS", "name": "corp-wifi-eap-ttls", "wpaVersion": "WPA2", "identity": "user@corp.example", "anonymousIdentity": "anon@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "subKeyId": 5, "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "innerAuthentication": { "method": "EAP_TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-psk": { "summary": "WPA_EAP with EAP-PSK", "value": { "type": "WPA_EAP", "eapMethod": "EAP_PSK", "name": "corp-wifi-eap-psk", "wpaVersion": "WPA2", "identity": "user@corp.example", "nai": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "preSharedKey": "0123456789ABCDEF0123456789ABCDEF", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-fast": { "summary": "WPA_EAP with EAP-FAST", "value": { "type": "WPA_EAP", "eapMethod": "EAP_FAST", "name": "corp-wifi-eap-fast", "wpaVersion": "WPA2", "identity": "user@corp.example", "anonymousIdentity": "anon@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "tlsVersion": "TLS_1_2", "pacFile": { "fileName": "pac.bin", "certificateBytes": "cGFjLWJ5dGVz" }, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-leap": { "summary": "WPA_EAP with LEAP", "value": { "type": "WPA_EAP", "eapMethod": "LEAP", "name": "corp-wifi-leap", "wpaVersion": "WPA1", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_1", "password": "SuperSecret123", "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-mschapv2": { "summary": "WPA_EAP with EAP-MSCHAPv2", "value": { "type": "WPA_EAP", "eapMethod": "EAP_MSCHAP_V2", "name": "corp-wifi-mschapv2", "wpaVersion": "WPA2", "identity": "user@corp.example", "allowAny": false, "eapolVersion": "EAPOL_VERSION_2", "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "subKeyId": 5, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "wpa-eap-scep": { "summary": "WPA_EAP_SCEP", "value": { "type": "WPA_EAP_SCEP", "name": "corp-wifi-scep", "wpaVersion": "WPA2", "scepUrl": "https://scep.corp.example/pkiclient.exe", "challengePassword": "SuperSecret123", "caFingerprint": "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD", "subjectName": "CN=eye-{serial},O=Corp Inc", "subjectAltName": "eye-{serial}.corp.example", "keySize": "RSA_2048", "renewalThresholdPercent": 33, "eapolVersion": "EAPOL_VERSION_2", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "subKeyId": 5 } }, "ieee8021x-eap-tls": { "summary": "IEEE_802_1X with EAP-TLS", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_TLS", "name": "ieee-eap-tls", "identity": "user@corp.example", "allowAny": false, "certificateProperties": { "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyPassword": "keySecret123" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-peap": { "summary": "IEEE_802_1X with EAP-PEAP (inner authentication: TLS)", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_PEAP", "name": "ieee-eap-peap", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "peapLabel": "CLIENT_EAP_ENCRYPTION", "peapVersion": "V0", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "innerAuthentication": { "method": "TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-ttls": { "summary": "IEEE_802_1X with EAP-TTLS (inner authentication: EAP-TLS) - clientCertificate is required for this template's EAP_TTLS, unlike WPA_EAP's", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_TTLS", "name": "ieee-eap-ttls", "identity": "user@corp.example", "allowAny": false, "anonymousIdentity": "anon@corp.example", "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "innerAuthentication": { "method": "EAP_TLS", "caCertificate": { "fileName": "inner-ca.pem", "certificateBytes": "aW5uZXItY2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "inner-client.pem", "certificateBytes": "aW5uZXItY2xpZW50LWJ5dGVz" }, "privateKey": { "fileName": "inner-key.pem", "certificateBytes": "aW5uZXIta2V5LWJ5dGVz" }, "privateKeyPassword": "innerKeySecret" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-leap": { "summary": "IEEE_802_1X with LEAP", "value": { "type": "IEEE_802_1X", "eapMethod": "LEAP", "name": "ieee-leap", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "ieee8021x-eap-mschapv2": { "summary": "IEEE_802_1X with EAP-MSCHAPv2", "value": { "type": "IEEE_802_1X", "eapMethod": "EAP_MSCHAP_V2", "name": "ieee-mschapv2", "identity": "user@corp.example", "allowAny": false, "password": "SuperSecret123", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "customFields": [ { "scope": "GLOBAL", "name": "site", "value": "hq" } ] } }, "open-http": { "summary": "OPEN_HTTP", "value": { "type": "OPEN_HTTP", "name": "corp-open-http", "authenticationUrl": "https://auth.corp.example/login", "requireServerCertificateCheck": true, "postData": "username=${username}&password=${password}", "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "clientCertificateFileType": "PEM", "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyFileType": "DER" } }, "http-authentication": { "summary": "HTTP_AUTHENTICATION", "value": { "type": "HTTP_AUTHENTICATION", "name": "corp-http-auth", "targetUrl": "https://portal.corp.example/login", "requireServerCertificateCheck": true, "contentOnTargetUrlPage": "Please sign in", "contentOnLoginPage": "Enter your credentials", "contentOnSuccessfulLogin": "Login successful", "contentOnUnSuccessfulLogin": "Login failed", "secureProtocol": "TLSv1_2", "userAgent": "CUSTOM_USER_AGENT", "customUserAgent": "SevenSignalEye/1.0", "loginPages": [ { "fields": [ { "name": "username", "value": "guest" }, { "name": "password", "value": "guest" } ] } ], "logoutPages": [ { "fields": [ { "name": "action", "value": "logout" } ] } ], "caCertificate": { "fileName": "ca.pem", "certificateBytes": "Y2EtYnl0ZXM=" }, "clientCertificate": { "fileName": "client.pem", "certificateBytes": "Y2xpZW50LWJ5dGVz" }, "clientCertificateFileType": "PEM", "privateKey": { "fileName": "key.pem", "certificateBytes": "a2V5LWJ5dGVz" }, "privateKeyFileType": "DER" } }, "raw": { "summary": "RAW", "value": { "type": "RAW", "name": "corp-raw-supplicant", "subKeyId": 5, "keyFileContent": "ap_scan=1\nctrl_interface=/tmp/wpactrl\nfast_reauth=1\nnetwork={\n ssid=__SSID__\n bssid=__BSSID__\n scan_freq=2412\n key_mgmt=WPA-PSK WPA-PSK-SHA256 FT-PSK\n psk=\"7signallab\"\n proto=RSN\n scan_ssid=1\n ieee80211w=2\n}" } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network-keys.GetNetworkKeyResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Network Keys" ] }, "delete": { "operationId": "PathNetworkKeysSensor-delete-nk5s6", "summary": "Delete the Sensor Network Key specified by the id", "description": "Fails with a conflict if the key is still bound to a wireless network or a sensor.", "parameters": [ { "name": "networkKeyId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" }, "409": { "description": "Conflict - the network key is still in use by a wireless network or a sensor" } }, "security": [ { "oauth2": [] } ], "tags": [ "Network Keys" ] } }, "/networks/agents": { "get": { "summary": "List the Agent Networks", "operationId": "agent-networks", "description": "Page through all of the Agent Networks", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "networkName", "in": "query", "description": "Fetch the list of networks filtered by network name", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetAgentNetworksResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Networks" ] }, "post": { "operationId": "PathNetworksAgents-post-c1d2", "summary": "Creates one or many Agent Networks", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.PostAgentNetworksRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetAgentNetworksResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] } }, "/networks/agents/{networkId}": { "get": { "summary": "Fetch the specified Network", "operationId": "agent-network", "description": "Fetch the specified Network", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "networkId", "in": "path", "description": "Fetch the specific network referenced by its id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetAgentNetworkResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Networks" ] }, "put": { "operationId": "PathNetworksAgent-put-e3f4", "summary": "Replace the specified Network with the details in the payload", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "networkId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.AgentNetworkRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] }, "delete": { "operationId": "PathNetworksAgent-delete-g5h6", "summary": "Delete the Network specified by the UUID", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "networkId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] } }, "/networks/sensors": { "get": { "summary": "List the Sensor Networks", "operationId": "sensor-networks", "description": "Page through all of the Sensor Networks", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "includeUnbound", "in": "query", "description": "List every network regardless of Service Area binding", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetSensorNetworksResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Networks" ] }, "post": { "operationId": "PathNetworksSensors-post-n1s2", "summary": "Creates a Sensor Network", "description": "Creates a new Sensor Network. Required fields: name, networkKeyId", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.PostSensorNetworkRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetSensorNetworkResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] } }, "/networks/sensors/{networkId}": { "get": { "summary": "Fetch the specified Sensor Network", "operationId": "sensor-network", "description": "Fetch the specified Sensor Network", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "networkId", "in": "path", "description": "Fetch the specific network referenced by its id", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetSensorNetworkResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Networks" ] }, "put": { "operationId": "PathNetworksSensor-put-n3s4", "summary": "Replace the specified Sensor Network with the details in the payload", "description": "Full replace, not a patch - provide the complete desired state on every call.", "parameters": [ { "name": "networkId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.PutSensorNetworkRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/networks.GetSensorNetworkResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] }, "delete": { "operationId": "PathNetworksSensor-delete-n5s6", "summary": "Delete the Sensor Network specified by the id", "parameters": [ { "name": "networkId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Networks" ] } }, "/on-demand-tests/sensors/active-tests": { "get": { "summary": "List active on-demand tests", "operationId": "on-demand-tests-active-tests-list", "description": "Retrieve a paginated list of active on-demand test metadata with filtering options", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "sensorId", "in": "query", "required": true, "description": "Filter by sensor ID", "schema": { "type": "integer", "format": "int64" } }, { "name": "testType", "in": "query", "required": true, "description": "Filter by test type", "schema": { "type": "string", "enum": [ "PING", "HTTP_DOWNLOAD", "HTTP_UPLOAD", "IPERF3", "SPEEDTEST", "TRACEROUTE", "MOS", "UDP_DOWNLOAD", "UDP_UPLOAD", "TCP_DOWNLOAD", "TCP_UPLOAD", "WEB_DOWNLOAD" ] } }, { "name": "channel", "in": "query", "required": false, "description": "Filter by WiFi channel number", "schema": { "type": "integer" } }, { "name": "apId", "in": "query", "required": false, "description": "Filter by access point ID", "schema": { "type": "integer" } }, { "name": "band", "in": "query", "required": false, "description": "Filter by frequency band (2.4, 5, or 6 GHz)", "schema": { "type": "string", "enum": [ "2.4", "5", "6", "all" ] } }, { "name": "start", "in": "query", "required": false, "description": "Start time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, { "name": "end", "in": "query", "required": false, "description": "End time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "description": "Page number (zero-based)", "schema": { "type": "integer", "default": 0 } }, { "name": "size", "in": "query", "required": false, "description": "Page size", "schema": { "type": "integer", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.ActiveTestsListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/packet-capture": { "get": { "summary": "List packet capture tests", "operationId": "on-demand-tests-pcap-list", "description": "Retrieve a paginated list of packet capture test metadata with filtering options", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "sensorId", "in": "query", "required": false, "description": "Filter by sensor (eye) ID", "schema": { "type": "integer", "format": "int64" } }, { "name": "channel", "in": "query", "required": false, "description": "Filter by channel number", "schema": { "type": "integer" } }, { "name": "apId", "in": "query", "required": false, "description": "Filter by access point ID", "schema": { "type": "integer" } }, { "name": "band", "in": "query", "required": false, "description": "Filter by frequency band (2.4, 5, or 6 GHz)", "schema": { "type": "string", "enum": [ "2.4", "5", "6", "all" ] } }, { "name": "start", "in": "query", "required": false, "description": "Start time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, { "name": "end", "in": "query", "required": false, "description": "End time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "description": "Page number (zero-based)", "schema": { "type": "integer", "default": 0 } }, { "name": "size", "in": "query", "required": false, "description": "Page size", "schema": { "type": "integer", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PacketCaptureListResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/packet-capture": { "post": { "summary": "Trigger packet capture test", "operationId": "on-demand-tests-pcap", "description": "Triggers a Packet Capture test for a given sensor and returns a Test ID for fetching results later. The capture duration must be 3600 seconds or less.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PacketCaptureTestRequest" }, "examples": { "packet-capture-channel-mode": { "summary": "Channel Mode", "value": { "mode": "CHANNEL", "accessPointId": 5, "captureTimeSeconds": 10, "captureFilter": "", "band": 5, "channel": 36 } }, "packet-capture-access-point-mode": { "summary": "Access Point Mode", "value": { "mode": "ACCESS_POINT", "accessPointId": 123, "captureTimeSeconds": 10, "captureFilter": "", "band": 2.4, "channel": 0 } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/packet-capture/{testId}": { "get": { "summary": "Get packet capture status", "operationId": "on-demand-tests-pcap-status", "description": "Get packet capture status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PacketCaptureTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/packet-capture/{testId}/download": { "get": { "summary": "Get packet capture file", "operationId": "on-demand-tests-pcap-file", "description": "Get packet capture file for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "pcap file returned", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } }, "application/vnd.tcpdump.pcap": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" }, "403": { "$ref": "#/components/responses/common.403Forbidden" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/ping": { "post": { "summary": "Trigger ping test", "operationId": "on-demand-tests-ping", "description": "Triggers a Ping test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PingTestRequest" }, "examples": { "ping-test-with-sonar": { "summary": "Ping test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 101, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": null, "testEndpoint": { "testHost": null, "sonarId": 1001, "resolveDNSOnSensor": true, "pingEndpointId": null }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "payloadSizeBytes": 32, "intervalMilliseconds": 1000, "timeoutMilliseconds": 1000, "testCount": 10, "qosCategory": 0 } }, "ping-test-with-test-host": { "summary": "Ping test using explicit test host (change accessPointId and testHost as needed)", "value": { "testType": "WLAN", "accessPointId": 102, "testEndpoint": { "testHost": "8.8.8.8", "sonarId": null, "resolveDNSOnSensor": false, "pingEndpointId": null }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "payloadSizeBytes": 32, "intervalMilliseconds": 1000, "timeoutMilliseconds": 1000, "testCount": 10, "qosCategory": 0 } }, "ping-test-with-ping-endpoint": { "summary": "Ping test using predefined ping endpoint (change accessPointId and pingEndpointId as needed)", "value": { "testType": "WLAN", "accessPointId": 103, "testEndpoint": { "testHost": null, "sonarId": null, "resolveDNSOnSensor": true, "pingEndpointId": 55 }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "payloadSizeBytes": 150, "intervalMilliseconds": 1000, "timeoutMilliseconds": 1000, "testCount": 10, "qosCategory": 0 } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/ping/{testId}": { "get": { "summary": "Get ping status", "operationId": "on-demand-tests-ping-status", "description": "Get ping status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PingTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/ping-gateway": { "post": { "summary": "Trigger ping default gateway test", "operationId": "on-demand-tests-ping-gateway", "description": "Triggers a Ping default gateway test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PingGatewayTestRequest" }, "examples": { "ping-gateway-test": { "summary": "Ping default gateway test (change accessPointId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "payloadSizeBytes": "32", "intervalMilliseconds": 1000, "timeoutMilliseconds": 1000, "testCount": 10, "qosCategory": "BEST_EFFORT_0" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/ping-gateway/{testId}": { "get": { "summary": "Get ping default gateway status", "operationId": "on-demand-tests-ping-gateway-status", "description": "Get ping default gateway status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.PingTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/http-download": { "post": { "summary": "Trigger http download test", "operationId": "on-demand-tests-http-download", "description": "Triggers a Http download test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.HttpTestRequest" }, "examples": { "http-download-test-with-sonar": { "summary": "Http download test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 101, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": null, "testEndpoint": { "testHost": null, "sonarId": 1001, "resolveDNSOnSensor": true }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "durationSeconds": "2", "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0 } }, "http-download-test-with-test-host": { "summary": "Http download test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 102, "testEndpoint": { "testHost": "8.8.8.8", "testPort": "80", "sonarId": null, "resolveDNSOnSensor": false }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "durationSeconds": "2", "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0 } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/http-download/{testId}": { "get": { "summary": "Get Http download status and results", "operationId": "on-demand-tests-http-download-status", "description": "Get Http download status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.HttpDownloadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/http-upload": { "post": { "summary": "Trigger http upload test", "operationId": "on-demand-tests-http-upload", "description": "Triggers a Http upload test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.HttpTestRequest" }, "examples": { "http-upload-test-with-sonar": { "summary": "Http upload test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 101, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": null, "testEndpoint": { "testHost": null, "sonarId": 1001, "resolveDNSOnSensor": true }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "durationSeconds": "2", "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0 } }, "http-upload-test-with-test-host": { "summary": "Http upload test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 102, "testEndpoint": { "testHost": "8.8.8.8", "testPort": "80", "sonarId": null, "resolveDNSOnSensor": false }, "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "durationSeconds": "2", "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0 } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/http-upload/{testId}": { "get": { "summary": "Get Http upload status and results", "operationId": "on-demand-tests-http-upload-status", "description": "Get Http upload status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.HttpUploadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/iperf3": { "post": { "summary": "Trigger iperf3 test", "operationId": "on-demand-tests-iperf3", "description": "Triggers an Internet performance test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.Iperf3TestRequest" }, "examples": { "iperf3-test-with-default-options": { "summary": "iperf3 test with default options (change accessPointId and testEndpoint as needed)", "value": { "testType": "WLAN", "accessPointId": 230960, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": "192.168.1.157" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/iperf3/{testId}": { "get": { "summary": "Get Iperf3 status and results", "operationId": "on-demand-tests-iperf3-status", "description": "Get Iperf3 status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.Iperf3TestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/speedtest": { "post": { "summary": "Trigger speedtest", "operationId": "on-demand-tests-speedtest", "description": "Triggers a speedtest for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestRequest" }, "examples": { "speedtest-with-default-options": { "summary": "speedtest with default options (change accessPointId as needed)", "value": { "testType": "WLAN", "accessPointId": 230960, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true } } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/speedtest/{testId}": { "get": { "summary": "Get speedtest status and results", "operationId": "on-demand-tests-speedtest-status", "description": "Get speedtest status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/traceroute": { "post": { "summary": "Trigger Traceroute test", "operationId": "on-demand-tests-traceroute", "description": "Triggers a traceroute test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TracerouteTestRequest" }, "examples": { "traceroute-test-with-sonar": { "summary": "traceroute test with default options (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230960, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "minimumTtl": 1, "maximumTtl": 255, "queriesPerHop": 5, "timeoutMilliseconds": 2000, "testTimeoutSeconds": 20, "qosCategory": "BEST_EFFORT_0" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/traceroute/{testId}": { "get": { "summary": "Get traceroute test status and results", "operationId": "on-demand-tests-traceroute-status", "description": "Get traceroute test status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TracerouteTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/mos": { "post": { "summary": "Trigger Mos/VoIP test", "operationId": "on-demand-tests-mos", "description": "Triggers a Mos/VoIP test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.MosTestRequest" }, "examples": { "mos-test-with-sonar": { "summary": "Mos/VoIP test with default options (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230960, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "direction": "DOWNLINK", "codec": "PCM_LINEAR_16", "fec": "NO_FEC", "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "sender": { "packetSizeBytes": 188, "sendTimeSeconds": 30, "streamIntervalMilliseconds": 20, "samplingIntervalSeconds": 5 }, "receiver": { "port": 0, "windowSizeSeconds": 10, "samplingIntervalSeconds": 1, "dejitteringBufferMilliseconds": 120, "timeoutSeconds": 30 } } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/mos/{testId}": { "get": { "summary": "Get Mos/VoIP test status and results", "operationId": "on-demand-tests-mos-status", "description": "Get Mos/VoIP test status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.MosTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/udp-download": { "post": { "summary": "Trigger udp download test", "operationId": "on-demand-tests-udp-download", "description": "Triggers a Udp download test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.UdpDownloadTestRequest" }, "examples": { "udp-download-test-with-sonar": { "summary": "Udp download test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "packetSize": "SMALL_PACKET_SIZE", "testCount": 1, "senderPort": 0, "receiverPort": 0, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "downloadMegabytes": "4" } }, "udp-download-test-with-test-host": { "summary": "Udp download test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "testHost": "192.168.1.157", "testPort": 80 }, "packetSize": "SMALL_PACKET_SIZE", "testCount": 1, "senderPort": 0, "receiverPort": 0, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "downloadMegabytes": "4" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/udp-download/{testId}": { "get": { "summary": "Get Udp download status and results", "operationId": "on-demand-tests-udp-download-status", "description": "Get Udp download status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.UdpDownloadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/udp-upload": { "post": { "summary": "Trigger udp upload test", "operationId": "on-demand-tests-udp-upload", "description": "Triggers a Udp upload test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.UdpUploadTestRequest" }, "examples": { "udp-upload-test-with-sonar": { "summary": "Udp upload test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "packetSize": "SMALL_PACKET_SIZE", "testCount": 1, "senderPort": 0, "receiverPort": 0, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "uploadMegabytes": "4" } }, "udp-upload-test-with-test-host": { "summary": "Udp upload test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "testHost": "192.168.1.157", "testPort": 80 }, "packetSize": "SMALL_PACKET_SIZE", "testCount": 1, "senderPort": 0, "receiverPort": 0, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "uploadMegabytes": "4" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/udp-upload/{testId}": { "get": { "summary": "Get Udp upload status and results", "operationId": "on-demand-tests-udp-upload-status", "description": "Get Udp upload status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.UdpUploadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/tcp-download": { "post": { "summary": "Trigger tcp download test", "operationId": "on-demand-tests-tcp-download", "description": "Triggers a Tcp download test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TcpDownloadTestRequest" }, "examples": { "tcp-download-test-with-sonar": { "summary": "Tcp download test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "downloadMegabytes": "4" } }, "tcp-download-test-with-test-host": { "summary": "Tcp download test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "testHost": "192.168.1.157", "testPort": 80 }, "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "downloadMegabytes": "4" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/tcp-download/{testId}": { "get": { "summary": "Get Tcp download status and results", "operationId": "on-demand-tests-tcp-download-status", "description": "Get Tcp download status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TcpDownloadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/tcp-upload": { "post": { "summary": "Trigger tcp upload test", "operationId": "on-demand-tests-tcp-upload", "description": "Triggers a Tcp upload test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TcpUploadTestRequest" }, "examples": { "tcp-upload-test-with-sonar": { "summary": "Tcp upload test using Sonar endpoint (change accessPointId and sonarId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "sonarId": 2147481002, "resolveDNSOnSensor": true }, "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "uploadMegabytes": "4" } }, "tcp-upload-test-with-test-host": { "summary": "Tcp upload test using explicit test host (change accessPointId and testHost/testPort as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "testEndpoint": { "testHost": "192.168.1.157", "testPort": 80 }, "testCount": 1, "qosCategory": "BEST_EFFORT_0", "sonarDSCP": 0, "uploadMegabytes": "4" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/tcp-upload/{testId}": { "get": { "summary": "Get Tcp upload status and results", "operationId": "on-demand-tests-tcp-upload-status", "description": "Get Tcp upload status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.TcpUploadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/web-download": { "post": { "summary": "Trigger web download test", "operationId": "on-demand-tests-web-download", "description": "Triggers a Web download test for a given sensor and returns a Test ID for fetching results later.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilterForRunTest" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.WebDownloadTestRequest" }, "examples": { "web-download-test-with-webserver": { "summary": "Web download test using Web server endpoint (change accessPointId and webServerId as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "proxyServerUrl": "string", "timeoutSeconds": 60, "webServerId": 2147481002, "resolveDNSOnSensor": false } }, "web-download-test-with-test-hosts": { "summary": "Web download test using explicit test hosts (change accessPointId and testHosts as needed)", "value": { "testType": "WLAN", "accessPointId": 230959, "maxAttachTimeoutMilliseconds": 20000, "maxIpAddressWaitTimeMilliseconds": 60000, "customMacAddress": "00:00:00:00:00:00", "ipAddress": { "ipProtocol": "IPV4", "useDhcp": true }, "proxyServerUrl": "string", "timeoutSeconds": 60, "testHosts": [ "www.google.com", "www.yahoo.com" ], "resolveDNSOnSensor": false } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/on-demand-tests/sensors/{sensorId}/web-download/{testId}": { "get": { "summary": "Get Web download status and results", "operationId": "on-demand-tests-web-download-status", "description": "Get Web download status for the specified sensor and test ID", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/on-demand-tests.SensorIdFilter" }, { "$ref": "#/components/parameters/on-demand-tests.TestIdFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/on-demand-tests.WebDownloadTestStatusResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "OnDemandTests" ] } }, "/organizations": { "get": { "operationId": "organizations-get-q7r8", "tags": [ "Organizations" ], "summary": "List all accessible Organizations", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "names", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "mobileEyeOrgCodes", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelOrganization" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/organizations/{organizationId}": { "get": { "operationId": "organizations-with-id-get-s9t0", "tags": [ "Organizations" ], "summary": "List the specific Organization identified by its UUID", "parameters": [ { "name": "organizationId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.Organization" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/organizations/{organizationId}/features": { "get": { "operationId": "organizations-with-id-get-features-get-u1v2", "tags": [ "Organizations" ], "summary": "List all the features mapped to the Organization specified by the UUID", "parameters": [ { "name": "organizationId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelFeature" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/permissions": { "get": { "operationId": "permissions-get-w3x4", "tags": [ "Permissions" ], "summary": "List all accessible Permissions", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "keys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "isPublic", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelPermission" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/permissions/{permissionId}": { "get": { "operationId": "permissions-with-id-get-y5z6", "tags": [ "Permissions" ], "summary": "List the specific Permission identified by its UUID", "parameters": [ { "name": "permissionId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.Permission" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/roles": { "get": { "operationId": "roles-get-a7b8", "tags": [ "Roles" ], "summary": "List all accessible Roles", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "keys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "isPublic", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelRole" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/roles/{roleId}": { "get": { "operationId": "roles-with-id-get-c9d0", "tags": [ "Roles" ], "summary": "List the specific Role identified by its UUID", "parameters": [ { "name": "roleId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.RoleResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/scans/agents": { "get": { "summary": "Retrieve scan data for an agent", "operationId": "scans-agents", "description": "Fetch paginated scan data collected by a specific agent", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/scans.AgentIdRequestParam" }, { "$ref": "#/components/parameters/scans.StartTimeRequestParam" }, { "$ref": "#/components/parameters/scans.EndTimeRequestParam" }, { "$ref": "#/components/parameters/scans.PageRequestParam" }, { "$ref": "#/components/parameters/scans.SizeRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/scans.AgentsScanDataResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Scans" ] } }, "/scans/sensors": { "get": { "summary": "Retrieve scan data for a sensor", "operationId": "scans-sensors", "description": "Fetch paginated scan data collected by a specific sensor (eye)", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/scans.SensorIdRequestParam" }, { "$ref": "#/components/parameters/scans.StartTimeRequestParam" }, { "$ref": "#/components/parameters/scans.EndTimeRequestParam" }, { "$ref": "#/components/parameters/scans.PageRequestParam" }, { "$ref": "#/components/parameters/scans.SizeRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/scans.SensorsScanDataResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Scans" ] } }, "/service-areas/agents": { "get": { "summary": "List the Agent Service Areas", "operationId": "agent-service-areas-get", "description": "Page through all of the Agent Service Areas", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "serviceAreaIds", "in": "query", "description": "Filter by specific service area IDs. Provide a comma-separated list of service area UUIDs to return only those service areas.", "schema": { "type": "string" } }, { "name": "searchValue", "in": "query", "description": "Filter by service area name where the name contains this case insensitive value", "schema": { "type": "string" } }, { "name": "scoreSortStart", "in": "query", "description": "Start time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "name": "scoreSortEnd", "in": "query", "description": "End time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "name": "sort", "in": "query", "description": "Sorting supports multiple properties: repeat 'sort' param e.g. sort=name,asc&sort=createdAt,desc. Special value 'score' sorts service areas by average Experience Score. It requires scoreSortStart & scoreSortEnd (epoch millis) and cannot be combined with other sorts. Examples: sort=score,desc", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetAgentServiceAreasResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "post": { "summary": "Creates Agent Service Areas", "operationId": "agent-service-areas-post", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.PostAgentServiceAreasRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetAgentServiceAreasResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "ServiceAreas" ] }, "put": { "summary": "Updates Agent Service Areas", "operationId": "agent-service-areas-put", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.PutAgentServiceAreasRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetAgentServiceAreasResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "ServiceAreas" ] }, "delete": { "summary": "Deletes Agent Service Areas", "operationId": "agent-service-areas-delete", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/service-areas.DeleteAgentServiceAreaIdList" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "ServiceAreas" ] } }, "/service-areas/agents/{serviceAreaId}": { "get": { "summary": "Fetch the specified Agent Service Area", "operationId": "agent-service-area-get", "description": "Fetch the specified Agent Service Area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/service-areas.AgentServiceAreaId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetAgentServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "put": { "summary": "Update the specified Agent Service Area", "operationId": "agent-service-area-put", "description": "Update the specified Agent Service Area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/service-areas.AgentServiceAreaId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.AgentSingleUpdateServiceAreaRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetAgentServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "delete": { "summary": "Delete the specified Agent Service Area", "operationId": "agent-service-area-delete", "description": "Delete the specified Agent Service Area", "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/service-areas.AgentServiceAreaId" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "ServiceAreas" ] } }, "/service-areas/sensors": { "get": { "summary": "List the Sensor Service Areas", "operationId": "sensor-service-areas", "description": "Page through all of the Sensor Service Areas", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "query", "description": "Filter the specific service area by its location id", "required": false, "schema": { "type": "number" } }, { "name": "excludeDefaultServiceArea", "in": "query", "description": "Exclude the default service area from the results", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreasResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "post": { "summary": "Creates a Sensor Service Area", "operationId": "sensor-service-areas-post", "description": "Returns the new service area, required fields: name, parentLocationId", "security": [ { "oauth2": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.PostSensorServiceAreaRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "tags": [ "ServiceAreas" ] } }, "/service-areas/sensors/{serviceAreaId}": { "get": { "summary": "Fetch the specified Service Area", "operationId": "sensor-service-area", "description": "Fetch the specified Topology Service Area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "put": { "summary": "Update the specified Sensor Service Area", "operationId": "sensor-service-area-put", "description": "Returns the updated service area, required fields: name", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.PutSensorServiceAreaRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "delete": { "summary": "Delete the specified Sensor Service Area", "operationId": "sensor-service-area-delete", "description": "Recursively removes everything under this service area (Eyes, etc.)", "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "ServiceAreas" ] } }, "/service-areas/sensors/{serviceAreaId}/eyes": { "post": { "summary": "Add Eyes to a service area", "operationId": "sensor-service-area-add-eyes", "description": "Moves the given Eyes into this service area from wherever they currently are. Returns the updated service area. There is no separate \"remove\" endpoint - an Eye always belongs to some service area, so removing it from one only makes sense as adding it to another, which this same endpoint does", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.PostSensorServiceAreaSensorsRequest" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] } }, "/service-areas/sensors/{serviceAreaId}/networks/{networkId}": { "post": { "summary": "Bind a wireless network to a service area", "operationId": "sensor-service-area-bind-network", "description": "Returns the updated service area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" }, { "$ref": "#/components/parameters/service-areas.SensorNetworkId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] }, "delete": { "summary": "Unbind a wireless network from a service area", "operationId": "sensor-service-area-unbind-network", "description": "Returns the updated service area", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/service-areas.SensorServiceAreaId" }, { "$ref": "#/components/parameters/service-areas.SensorNetworkId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/service-areas.GetSensorServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "ServiceAreas" ] } }, "/integrations/servicenow/configs": { "get": { "operationId": "servicenow-integration-config-get", "tags": [ "Integration Configs" ], "summary": "List all accessible ServiceNow integration configurations", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "createdBys", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "organizationIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "mobileEyeOrgCode", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "sapphireGroups", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "sapphireInstances", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelServiceNowIntegrationConfig" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "servicenow-integration-config-post", "tags": [ "Integration Configs" ], "summary": "Create a ServiceNow integration configuration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigWithOrgId" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/integrations/servicenow/configs/{id}": { "get": { "operationId": "servicenow-integration-config-with-id-get", "tags": [ "Integration Configs" ], "summary": "List the specific ServiceNow integration configuration identified by its UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfig" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "put": { "operationId": "servicenow-integration-config-with-id-put", "tags": [ "Integration Configs" ], "summary": "Replace the configurable parameters of a ServiceNow integration configuration specified by its UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigWithOrgId" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "patch": { "operationId": "servicenow-integration-config-with-id-patch", "tags": [ "Integration Configs" ], "summary": "Patch the configurable parameters of a ServiceNow integration configuration specified by its UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigPatchRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfigWithOrgId" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "delete": { "operationId": "servicenow-integration-config-with-id-delete", "tags": [ "Integration Configs" ], "summary": "Delete the ServiceNow integration configuration specified by the UUID", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/summaries/users": { "get": { "operationId": "users-summary-get-i7j8", "tags": [ "Summaries" ], "summary": "Gets the summary of the logged in user for the given organization or the primary organization if not specified.", "parameters": [ { "name": "organizationId", "in": "query", "required": false, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/summaries.UserSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/targets/sensors": { "get": { "summary": "List the Sensor Targets", "operationId": "sensor-targets", "description": "Page through all of the Sensor Targets", "security": [ { "oauth2": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.GetSensorTargetsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Targets" ] }, "post": { "summary": "Creates a Sensor Target", "operationId": "sensor-targets-create", "description": "Returns the new target. Required fields: targetType, name. dnsName is additionally required for WEB_SERVER/IPERF3_SERVER; for SONAR/PING_ENDPOINT, at least one of dnsName/ipV4Address/ipV6Address is required", "security": [ { "oauth2": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.PostSensorTargetRequest" }, "examples": { "sonar-dns-name": { "summary": "Sonar - addressed by DNS name", "value": { "targetType": "SONAR", "name": "sonar-east-1", "description": "East coast monitoring sonar", "dnsName": "sonar-east-1.internal.7signal.com", "tcpPort": 80 } }, "sonar-ipv4": { "summary": "Sonar - addressed by IPv4", "value": { "targetType": "SONAR", "name": "sonar-east-1", "description": "East coast monitoring sonar", "ipV4Address": "10.0.1.25", "tcpPort": 80 } }, "sonar-ipv6": { "summary": "Sonar - addressed by IPv6", "value": { "targetType": "SONAR", "name": "sonar-east-1", "description": "East coast monitoring sonar", "ipV6Address": "2001:db8::1", "tcpPort": 80 } }, "web-server": { "summary": "Web URL", "value": { "targetType": "WEB_SERVER", "name": "web-url-1", "description": "Company intranet portal", "dnsName": "https://intranet.example.com" } }, "ping-endpoint-dns-name": { "summary": "Ping Endpoint Server - addressed by DNS name", "value": { "targetType": "PING_ENDPOINT", "name": "ping-endpoint-1", "description": "Datacenter gateway ping target", "dnsName": "gateway.internal.example.com" } }, "ping-endpoint-ipv4": { "summary": "Ping Endpoint Server - addressed by IPv4", "value": { "targetType": "PING_ENDPOINT", "name": "ping-endpoint-1", "description": "Datacenter gateway ping target", "ipV4Address": "10.0.2.1" } }, "ping-endpoint-ipv6": { "summary": "Ping Endpoint Server - addressed by IPv6", "value": { "targetType": "PING_ENDPOINT", "name": "ping-endpoint-1", "description": "Datacenter gateway ping target", "ipV6Address": "2001:db8::2" } }, "iperf3-server-default-port": { "summary": "Iperf3 Server - default port (5201) when tcpPort is omitted", "value": { "targetType": "IPERF3_SERVER", "name": "iperf3-server-1", "description": "Throughput test target", "dnsName": "iperf3.example.com" } }, "iperf3-server-custom-port": { "summary": "Iperf3 Server - explicit custom port", "value": { "targetType": "IPERF3_SERVER", "name": "iperf3-server-1", "description": "Throughput test target", "dnsName": "iperf3.example.com", "tcpPort": 5202 } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.GetSensorTargetResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "tags": [ "Targets" ] } }, "/targets/sensors/{targetId}": { "get": { "summary": "Fetch the specified Sensor Target", "operationId": "sensor-target", "description": "Fetch the specified Sensor Target", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/targets.SensorTargetId" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.GetSensorTargetResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Targets" ] }, "put": { "summary": "Update the specified Sensor Target", "operationId": "sensor-target-update", "description": "Returns the updated target, required fields: name. dnsName/ipV4Address/ipV6Address fully replace the existing values (omitting one clears it) - dnsName is required for WEB_SERVER/IPERF3_SERVER; for SONAR/PING_ENDPOINT, at least one of dnsName/ipV4Address/ipV6Address is required. tcpPort is left unchanged when omitted", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/targets.SensorTargetId" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.PutSensorTargetRequest" }, "examples": { "sonar-dns-name": { "summary": "Sonar - re-addressed by DNS name, port changed", "value": { "name": "sonar-east-1", "description": "East coast monitoring sonar (updated)", "dnsName": "sonar-east-1.internal.7signal.com", "tcpPort": 8080 } }, "sonar-ipv4": { "summary": "Sonar - re-addressed by IPv4, port changed", "value": { "name": "sonar-east-1", "description": "East coast monitoring sonar (updated)", "ipV4Address": "10.0.1.26", "tcpPort": 8080 } }, "sonar-ipv6": { "summary": "Sonar - re-addressed by IPv6, port changed", "value": { "name": "sonar-east-1", "description": "East coast monitoring sonar (updated)", "ipV6Address": "2001:db8::1", "tcpPort": 8080 } }, "web-server": { "summary": "Web URL", "value": { "name": "web-url-1", "description": "Company intranet portal (updated)", "dnsName": "https://intranet.example.com/portal" } }, "ping-endpoint-dns-name": { "summary": "Ping Endpoint Server - re-addressed by DNS name", "value": { "name": "ping-endpoint-1", "description": "Datacenter gateway ping target (updated)", "dnsName": "gateway.internal.example.com" } }, "ping-endpoint-ipv4": { "summary": "Ping Endpoint Server - re-addressed by IPv4", "value": { "name": "ping-endpoint-1", "description": "Datacenter gateway ping target (updated)", "ipV4Address": "10.0.2.2" } }, "ping-endpoint-ipv6": { "summary": "Ping Endpoint Server - re-addressed by IPv6", "value": { "name": "ping-endpoint-1", "description": "Datacenter gateway ping target (updated)", "ipV6Address": "2001:db8::2" } }, "iperf3-server-port-unchanged": { "summary": "Iperf3 Server - name/description only, tcpPort omitted so it's left unchanged", "value": { "name": "iperf3-server-1", "description": "Throughput test target (updated)", "dnsName": "iperf3.example.com" } }, "iperf3-server-custom-port": { "summary": "Iperf3 Server - port explicitly changed", "value": { "name": "iperf3-server-1", "description": "Throughput test target (updated)", "dnsName": "iperf3.example.com", "tcpPort": 5202 } } } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/targets.GetSensorTargetResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Targets" ] }, "delete": { "summary": "Delete the specified Sensor Target", "operationId": "sensor-target-delete", "description": "Fails if the target is still referenced by a Test Profile", "parameters": [ { "$ref": "#/components/parameters/targets.SensorTargetId" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ], "tags": [ "Targets" ] } }, "/time-series/agents/discrete": { "get": { "summary": "Retrieve Time Series with discrete aggregation for agents", "operationId": "time-series-agents-discrete", "description": "Page through Time Series with discrete aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.TimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.AggregateFunctionsDiscreteFilter" }, { "$ref": "#/components/parameters/time-series.MetricsDiscreteFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesDiscreteResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/discrete/{groupByDimension}": { "get": { "summary": "Retrieve Time Series with discrete aggregation for agents", "operationId": "time-series-agents-discrete-group-by", "description": "Page through Time Series with discrete aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.AgentsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.TimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.AggregateFunctionsDiscreteFilter" }, { "$ref": "#/components/parameters/time-series.MetricsDiscreteFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesDiscreteGroupByResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/histogram/{groupByDimension}": { "get": { "summary": "Retrieve Time Series Histogram for agents", "operationId": "time-series-agents-histogram", "description": "Page through Time Series histogram for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.AgentsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.TimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.MetricHistogramFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesHistogramResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/numeric-summary/{groupByDimension}": { "get": { "summary": "Retrieve Time Series with numeric summary aggregation for agents", "operationId": "time-series-agents-numeric-summary", "description": "Page through Time Series with numeric summary aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.AgentsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.AgentsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.MetricsNumericFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesNumericSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/numeric-summary": { "get": { "summary": "Retrieve Time Series with overall numeric summary aggregation for agents", "operationId": "time-series-agents-overall-numeric-summary", "description": "Page through Time Series with overall numeric summary aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.AgentsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.MetricsNumericFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesOverallNumericSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/numeric": { "get": { "summary": "Retrieve Time Series with numeric aggregation for agents", "operationId": "time-series-agents-numeric", "description": "Page through Time Series with numeric aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.TimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.AgentsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.MetricsNumericFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesNumericResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/numeric/{groupByDimension}": { "get": { "summary": "Retrieve Time Series with numeric aggregation for agents", "operationId": "time-series-agents-numeric-group-by", "description": "Page through Time Series with numeric aggregation for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.AgentsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.TimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.AgentsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.MetricsNumericFilter" }, { "$ref": "#/components/parameters/time-series.DeviceIdsFilter" }, { "$ref": "#/components/parameters/time-series.BssidsFilter" }, { "$ref": "#/components/parameters/time-series.LocationsFilter" }, { "$ref": "#/components/parameters/time-series.NetworksFilter" }, { "$ref": "#/components/parameters/time-series.BandsFilter" }, { "$ref": "#/components/parameters/time-series.TargetsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformsFilter" }, { "$ref": "#/components/parameters/time-series.PlatformVersionsFilter" }, { "$ref": "#/components/parameters/time-series.MakesFilter" }, { "$ref": "#/components/parameters/time-series.ModelsFilter" }, { "$ref": "#/components/parameters/time-series.DriverProvidersFilter" }, { "$ref": "#/components/parameters/time-series.DriverVersionsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesNumericGroupByResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/agents/metric-types": { "get": { "summary": "Retrieve details of all or a subset of the Metric Types", "operationId": "time-series-agents-metric-types", "description": "Page through Metric Types for agents", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.AgentsMetricTypesFilter" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetAgentTimeSeriesMetricTypesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/sensors/numeric-summary": { "get": { "summary": "Retrieve Time Series with overall numeric summary aggregation for sensors", "operationId": "time-series-sensors-overall-numeric-summary", "description": "Page through Time Series with overall numeric summary aggregation for sensors", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.SensorsTimeSeriesOrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.SensorsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.SensorMetricsKPIFilter" }, { "$ref": "#/components/parameters/time-series.SensorLocationIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorServiceAreaIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorAccessPointIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorNetworkIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorBandFilter" }, { "$ref": "#/components/parameters/time-series.SensorClientMacsFilter" }, { "$ref": "#/components/parameters/time-series.SensorVendorsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetSensorTimeSeriesOverallNumericSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/sensors/numeric-summary/{groupByDimension}": { "get": { "summary": "Retrieve Time Series with numeric summary aggregation for sensors", "operationId": "time-series-sensors-numeric-summary", "description": "Page through Time Series with numeric summary aggregation for sensors", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.SensorsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/time-series.SensorsTimeSeriesOrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.SensorsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.SensorMetricsKPIFilter" }, { "$ref": "#/components/parameters/time-series.SensorLocationIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorServiceAreaIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorAccessPointIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorNetworkIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorBandFilter" }, { "$ref": "#/components/parameters/time-series.SensorClientMacsFilter" }, { "$ref": "#/components/parameters/time-series.SensorVendorsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetSensorTimeSeriesNumericSummaryResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/sensors/numeric": { "get": { "summary": "Retrieve Time Series with numeric aggregation for sensors by organization", "operationId": "time-series-sensors-overall-numeric", "description": "Page through Time Series with numeric aggregation for sensors by organization", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.SensorsTimeSeriesOrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.SensorTimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.SensorsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.SensorMetricsKPIFilter" }, { "$ref": "#/components/parameters/time-series.SensorLocationIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorServiceAreaIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorAccessPointIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorNetworkIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorBandFilter" }, { "$ref": "#/components/parameters/time-series.SensorClientMacsFilter" }, { "$ref": "#/components/parameters/time-series.SensorVendorsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetSensorsTimeSeriesNumericResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/sensors/numeric/{groupByDimension}": { "get": { "summary": "Retrieve Time Series with numeric aggregation for sensors by the given grouping", "operationId": "time-series-sensors-numeric", "description": "Page through Time Series with numeric aggregation for sensors by the given grouping", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/time-series.SensorsGroupByDimensionFilter" }, { "$ref": "#/components/parameters/time-series.SensorsTimeSeriesOrganizationRequestParam" }, { "$ref": "#/components/parameters/time-series.FromRequestParam" }, { "$ref": "#/components/parameters/time-series.ToRequestParam" }, { "$ref": "#/components/parameters/time-series.SensorTimeBucketFilter" }, { "$ref": "#/components/parameters/time-series.SensorsAggregateFunctionsNumericFilter" }, { "$ref": "#/components/parameters/time-series.SensorMetricsKPIFilter" }, { "$ref": "#/components/parameters/time-series.SensorLocationIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorServiceAreaIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorAccessPointIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorNetworkIdsFilter" }, { "$ref": "#/components/parameters/time-series.SensorBandFilter" }, { "$ref": "#/components/parameters/time-series.SensorClientMacsFilter" }, { "$ref": "#/components/parameters/time-series.SensorVendorsFilter" }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetSensorsTimeSeriesNumericGroupByResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/time-series/sensors/metric-types": { "get": { "summary": "Retrieve details of all or a subset of the Metric Types", "operationId": "time-series-sensors-metric-types", "description": "Page through Metric Types for sensors", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "metricTypes", "in": "query", "description": "Filter data returned by one or more metric types", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/time-series.GetSensorTimeSeriesMetricTypesResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "TimeSeries" ] } }, "/topologies/agents/locations": { "get": { "deprecated": true, "summary": "List the Agent Topology Locations", "operationId": "agent-topology-locations", "description": "Page through all of the Agent Topology Locations. **Important:** When sorting by score and paging through results, you must retain a consistent scoreSortStart and scoreSortEnd time range from one call to the next, or results from paging will be unstable.", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "locationIds", "in": "query", "description": "Filter by specific location IDs. Provide a comma-separated list of location UUIDs to return only those locations.", "schema": { "type": "string" } }, { "name": "searchValue", "in": "query", "description": "Filter by location name where the name contains this case insensitive value", "schema": { "type": "string" } }, { "name": "scoreSortStart", "in": "query", "description": "Start time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "name": "scoreSortEnd", "in": "query", "description": "End time for score-based sorting (epoch milliseconds) - required when sorting by 'score'", "schema": { "type": "number" } }, { "name": "sort", "in": "query", "description": "Sorting supports multiple properties: repeat 'sort' param e.g. sort=name,asc&sort=createdAt,desc. Special value 'score' sorts locations by average Experience Score. It requires scoreSortStart & scoreSortEnd (epoch millis) and cannot be combined with other sorts. Examples: sort=score,desc", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/common.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetAgentTopologyLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/agents/locations/{locationId}": { "get": { "deprecated": true, "summary": "Fetch the specified Topology Location", "operationId": "agent-topology-location", "description": "Fetch the specified Topology Location", "security": [ { "oauth2": [] } ], "parameters": [ { "$ref": "#/components/parameters/common.OrganizationRequestParam" }, { "name": "locationId", "in": "path", "description": "Fetch the specific topology location by its id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetAgentTopologyLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/locations": { "get": { "deprecated": true, "summary": "List the Sensor Topology Locations", "operationId": "sensor-topology-locations", "description": "Page through all of the Sensor Topology Locations", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "query", "description": "Filter the specific topology location by its parent location id", "required": false, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/locations/{locationId}": { "get": { "deprecated": true, "summary": "Fetch the specified Topology Location", "operationId": "sensor-topology-location", "description": "Fetch the specified Topology Location", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "path", "description": "Fetch the specific topology location by its id", "required": true, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/serviceAreas": { "get": { "deprecated": true, "summary": "List the Sensor Topology Service Areas", "operationId": "sensor-topology-service-areas", "description": "Page through all of the Sensor Topology Service Areas", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "locationId", "in": "query", "description": "Filter the specific topology service area by its location id", "required": false, "schema": { "type": "number" } }, { "name": "excludeDefaultServiceArea", "in": "query", "description": "Exclude the default service area from the results", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyServiceAreasResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/serviceAreas/{serviceAreaId}": { "get": { "deprecated": true, "summary": "Fetch the specified Topology Service Area", "operationId": "sensor-topology-service-area", "description": "Fetch the specified Topology Service Area", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "serviceAreaId", "in": "path", "description": "Fetch the specific topology service area by its id", "required": true, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyServiceAreaResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/accessPoints": { "get": { "deprecated": true, "summary": "List the Sensor Topology Access Points", "operationId": "sensor-topology-access-points", "description": "Page through all of the Sensor Topology Access Points", "security": [ { "oauth2": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyLocationsResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/topologies/sensors/accessPoints/{accessPointId}": { "get": { "deprecated": true, "summary": "List the Sensor Topology Access Point", "operationId": "sensor-topology-access-point", "description": "Fetch the specified Topology Access Point", "security": [ { "oauth2": [] } ], "parameters": [ { "name": "accessPointId", "in": "path", "description": "Fetch the specific topology access point by its id", "required": true, "schema": { "type": "number" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/topologies.GetSensorTopologyLocationResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "tags": [ "Topologies" ] } }, "/users": { "get": { "operationId": "users-get-e1f2", "tags": [ "Users" ], "summary": "List all accessible Users", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "name": "roles", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "permissions", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "emails", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "firstNames", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "lastNames", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "auth0Ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [] } }, { "name": "organizationIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" }, "default": [] } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelUser" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "users-post-g3h4", "tags": [ "Users" ], "summary": "Create a User in Metadata service and mark it as 'invited'.\nUser info will be synchronized when the user logs into Auth0", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UserRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UserResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}": { "get": { "operationId": "users-with-id-get-i5j6", "tags": [ "Users" ], "summary": "List the specific User identified by its UUID", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UserResponse" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "delete": { "operationId": "users-with-id-delete-k7l8", "tags": [ "Users" ], "summary": "Delete the User specified by the UUID", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/groups": { "get": { "operationId": "users-with-id-get-groups-get-c5d6", "tags": [ "Users" ], "summary": "List all the groups mapped to the User specified by the UUID", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelGroup" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "put": { "operationId": "users-with-id-get-groups-put-e7f8", "tags": [ "Users" ], "summary": "Replace User mapping with one or more Groups in the given payload", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UsersGroupsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "users-with-id-get-groups-post-g9h0", "tags": [ "Users" ], "summary": "Map User to one or more Groups", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UsersGroupsRequest" } } }, "required": true }, "responses": { "201": { "description": "Created" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/groups/{groupId}": { "delete": { "operationId": "users-with-id-get-groups-with-id-delete-m5n6", "tags": [ "Users" ], "summary": "Unmap Group from the User", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "groupId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/organizations": { "get": { "operationId": "users-with-id-get-organizations-get-w9x0", "tags": [ "Users" ], "summary": "List all the organizations mapped to the User specified by the UUID", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "primary", "in": "query", "description": "Filter by primary. True will return the mapped primary organization or else return all the mapped organizations.", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "mobileEyeEnabled", "in": "query", "description": "Filter by mobile eye enabled. True will return mapped mobile eye enabled organizations or else return all the mapped organizations.", "required": false, "schema": { "type": "boolean", "default": false } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelUserOrganization" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "put": { "operationId": "users-with-id-get-organizations-put-y1z2", "tags": [ "Users" ], "summary": "Replace User mapping with one or more Organizations in the given payload", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.OrganizationsUsersRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "users-with-id-get-organizations-post-a3b4", "tags": [ "Users" ], "summary": "Map User to one or more Organizations", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.OrganizationsUsersRequest" } } }, "required": true }, "responses": { "201": { "description": "Created" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/organization/{organizationId}": { "delete": { "operationId": "users-with-id-get-organizations-with-id-delete-k3l4", "tags": [ "Users" ], "summary": "Unmap organization from the User", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "organizationId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/permissions": { "get": { "operationId": "users-with-id-get-permissions-get-q3r4", "tags": [ "Users" ], "summary": "List all the permissions(assigned via the role and directly) mapped to the User specified by the UUID", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "$ref": "#/components/parameters/metadata.PageRequestParam" }, { "$ref": "#/components/parameters/common.PerPageRequestParam" }, { "$ref": "#/components/parameters/common.SortOrderParam" }, { "$ref": "#/components/parameters/common.SortFieldParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.PageModelPermission" } } } }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "put": { "operationId": "users-with-id-get-permissions-put-s5t6", "tags": [ "Users" ], "summary": "Replace User mapping with one or more Permissions in the given payload", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UsersPermissionsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "post": { "operationId": "users-with-id-get-permissions-post-u7v8", "tags": [ "Users" ], "summary": "Map User to one or more Permissions", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UsersPermissionsRequest" } } }, "required": true }, "responses": { "201": { "description": "Created" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/permission/{permissionId}": { "delete": { "operationId": "users-with-id-get-permissions-with-id-delete-i1j2", "tags": [ "Users" ], "summary": "Unmap Permission from the User", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "permissionId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } }, "/users/{userId}/role": { "put": { "operationId": "users-with-id-get-role-put-m9n0", "tags": [ "Users" ], "summary": "Update user's Role and Synchronize in Auth0", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/metadata.UsersRoleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/common.400BadRequestResponse" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] }, "delete": { "operationId": "users-with-id-get-role-delete-o1p2", "tags": [ "Users" ], "summary": "Remove user's Role and Synchronize in Auth0", "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "404": { "$ref": "#/components/responses/common.404NotFoundResponse" } }, "security": [ { "oauth2": [] } ] } } }, "components": { "schemas": { "oauth2.OAuth2AccessTokenResponse": { "type": "object", "required": [ "token_type", "access_token" ], "properties": { "token_type": { "type": "string" }, "access_token": { "type": "string" }, "expires_in": { "type": "integer" }, "refresh_token": { "type": "string" }, "scope": { "type": "array", "items": { "type": "string" } } } }, "oauth2.OAuth2AccessTokenError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string", "description": "error message", "enum": [ "invalid_request", "invalid_client", "invalid_grant", "unauthorized_client", "unsupported_grant_type", "invalid_scope" ] }, "error_description": { "type": "string", "description": "Human-readable ASCII text providing additional information" }, "error_uri": { "type": "string", "description": "A URI identifying a human-readable web page with information about the error" } } }, "metadata.AccessSummaryResponse": { "type": "object", "properties": { "sapphireApplication": { "$ref": "#/components/schemas/metadata.SapphireApplication" }, "mobileEyeApplication": { "$ref": "#/components/schemas/metadata.MobileEyeApplication" }, "userManagementApplication": { "$ref": "#/components/schemas/metadata.UserManagementApplication" }, "sapphireReDirectorApplication": { "$ref": "#/components/schemas/metadata.SapphireReDirectorApplication" }, "userNotifications": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.UserNotifications" } } } }, "metadata.SapphireApplication": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "instances": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Instance" } } } }, "metadata.Instance": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "url": { "type": "string" } } }, "metadata.MobileEyeApplication": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "organizations": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Organization" } } } }, "metadata.Organization": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "connectionId": { "type": "string" }, "mobileEyeOrgCode": { "type": "string" } } }, "metadata.UserManagementApplication": { "type": "object", "properties": { "enabled": { "type": "boolean" } } }, "metadata.SapphireReDirectorApplication": { "type": "object", "properties": { "enabled": { "type": "boolean" } } }, "metadata.UserNotifications": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "text": { "type": "string" } } }, "common.ResponseStatusException": { "type": "object", "required": [ "timestamp", "status", "error", "path", "requestId" ], "properties": { "timestamp": { "type": "string", "format": "date-time" }, "status": { "type": "integer" }, "error": { "type": "string" }, "message": { "type": "string" }, "path": { "type": "string" }, "requestId": { "type": "string" } } }, "access-points.GetAgentAccessPointsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/access-points.AgentAccessPoint" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "access-points.AgentAccessPoint": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "controller": { "type": "string" }, "overTheAirName": { "type": "string" }, "modifiedBy": { "type": "string" }, "macAddress": { "type": "string" }, "locationId": { "deprecated": true, "type": "string", "format": "uuid", "description": "Deprecated: use serviceAreaId instead." }, "serviceAreaId": { "type": "string", "format": "uuid" }, "bssids": { "type": "array", "items": { "$ref": "#/components/schemas/access-points.AgentAccessPointBssid" } } } }, "access-points.AgentAccessPointBssid": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "bssid": { "type": "string" }, "band": { "type": "string" } } }, "common.Pagination": { "type": "object", "required": [ "perPage", "page", "total", "pages" ], "properties": { "perPage": { "type": "integer", "example": 10 }, "page": { "type": "integer", "description": "The current page number. The first page is 1", "minimum": 1, "example": 2 }, "total": { "type": "integer", "example": 45 }, "pages": { "type": "integer", "example": 5 } } }, "access-points.PostAgentAccessPointsRequest": { "type": "array", "items": { "$ref": "#/components/schemas/access-points.AgentAccessPointRequest" } }, "access-points.AgentAccessPointRequest": { "type": "object", "properties": { "name": { "type": "string" }, "controller": { "type": "string" }, "locationId": { "type": "string", "format": "uuid" }, "bssids": { "type": "array", "items": { "$ref": "#/components/schemas/access-points.AgentAccessPointBssidRequest" } } } }, "access-points.AgentAccessPointBssidRequest": { "type": "object", "properties": { "bssid": { "type": "string" }, "band": { "type": "string" } } }, "access-points.GetAgentAccessPointResponse": { "$ref": "#/components/schemas/access-points.AgentAccessPoint" }, "access-points.GetSensorAccessPointsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/access-points.SensorAccessPoint" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "access-points.SensorAccessPoint": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "bssid": { "type": "string" }, "description": { "type": "string" }, "serviceAreaId": { "type": "number" }, "serviceAreaName": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "number", "example": 5 }, "managed": { "type": "string" }, "managingEyeId": { "type": "number" }, "essid": { "type": "string" }, "frequency": { "type": "number" }, "channelNumber": { "type": "string" }, "accessPointState": { "type": "string" }, "accessPointStatus": { "type": "string" } } }, "access-points.GetSensorAccessPointResponse": { "$ref": "#/components/schemas/access-points.SensorAccessPoint" }, "access-points.SensorAccessPointPatchRequest": { "type": "object", "properties": { "accessPointAlias": { "type": "string" } } }, "adapter-driver-report.AdapterDriverReportListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/adapter-driver-report.AdapterDriverEntry" } }, "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" } } }, "adapter-driver-report.AdapterDriverEntry": { "type": "object", "properties": { "driverProvider": { "type": "string" }, "driverVersion": { "type": "string" }, "totalRoamingSamples": { "type": "integer", "format": "int64" }, "goodRoamingSamples": { "type": "integer", "format": "int64" }, "goodRoamingPct": { "type": "number" }, "vintageDate": { "type": "string", "format": "date-time" }, "deviceCount": { "type": "integer", "format": "int64" } } }, "common.ZeroBasedPagination": { "type": "object", "properties": { "perPage": { "type": "integer", "description": "Number of records per page" }, "page": { "type": "integer", "description": "Current page number (0-based)" }, "total": { "type": "integer", "description": "Total number of records available" }, "pages": { "type": "integer", "description": "Total number of pages" } } }, "adapter-driver-report.AdapterDriverReportSummary": { "type": "object", "properties": { "totalSamples": { "type": "integer", "format": "int64" }, "uniquePairs": { "type": "integer", "format": "int64" }, "deviceCount": { "type": "integer", "format": "int64" } } }, "metadata.PageModelApiKey": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.ApiKey" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.ApiKey": { "required": [ "organization" ], "type": "object", "properties": { "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" }, "group": { "$ref": "#/components/schemas/metadata.AggregateReferenceGroupUUID" }, "id": { "type": "string", "format": "uuid" }, "apiKey": { "type": "string" }, "createdBy": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "isSystem": { "type": "boolean" } } }, "metadata.AggregateReferenceOrganizationUUID": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } } }, "metadata.AggregateReferenceGroupUUID": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } } }, "metadata.Pagination": { "type": "object", "properties": { "perPage": { "type": "integer", "format": "int32" }, "page": { "type": "integer", "format": "int32", "minimum": 0, "description": "The current page number. The first page is supposed to be 1, but some endpoints mistakenly treat the first page as 0. This is a known issue and will be fixed in the next major API release." }, "total": { "type": "integer", "format": "int64" }, "pages": { "type": "integer", "format": "int32" } } }, "metadata.ApiKeyRequest": { "required": [ "organizationId" ], "type": "object", "properties": { "organizationId": { "type": "string", "format": "uuid" }, "sapphireGroupId": { "type": "string", "format": "uuid" }, "roleId": { "type": "string", "format": "uuid" }, "permissionIds": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "description": { "type": "string" } } }, "metadata.ApiKeyResponse": { "type": "object", "properties": { "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" }, "group": { "$ref": "#/components/schemas/metadata.AggregateReferenceGroupUUID" }, "id": { "type": "string", "format": "uuid" }, "apiKey": { "type": "string" }, "createdBy": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "isSystem": { "type": "boolean" }, "clientSecret": { "type": "string" }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Permission" } } } }, "metadata.Permission": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "key": { "type": "string" }, "description": { "type": "string" }, "isPublic": { "type": "boolean" } } }, "audits.AuditsAgentsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/audits.AuditAgentRecord" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "audits.AuditAgentRecord": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "timestamp": { "type": "string", "format": "date-time" }, "organizationName": { "type": "string" }, "actor": { "type": "string", "description": "User or system component responsible for the record" }, "action": { "type": "string", "description": "The action take. i.e. what happened" }, "details": { "type": "object", "description": "Details about the event. This is a free form object that can vary based on the action and source" }, "source": { "type": "string", "description": "The area of the system from which the event originated" }, "initiated": { "type": "string", "description": "How this event was initiated" } } }, "change-events.GetChangeEventsSensorResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/change-events.ChangeEventsSensor" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "change-events.ChangeEventsSensor": { "type": "object", "properties": { "timestamp": { "type": "integer", "format": "int64", "description": "Timestamp in milliseconds since epoch (Unix time)", "example": 1750821376000 }, "name": { "type": "string", "description": "Name of the change event" }, "element": { "type": "string", "description": "Name of the element" }, "parentElement": { "type": "string", "description": "Name of the parent element" }, "description": { "type": "string", "description": "Description of the change event" } } }, "clients.GetSensorClientsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/clients.SensorClient" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "clients.SensorClient": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "macAddress": { "type": "string" }, "description": { "type": "string" }, "user": { "type": "string" }, "vendor": { "type": "string" } } }, "common.Range": { "type": "object", "required": [ "to", "toAsDateString", "from", "fromAsDateString", "total", "duration", "durationAsString" ], "properties": { "to": { "type": "integer", "example": 1674055815825 }, "toAsDateString": { "type": "string", "format": "date-time", "example": "2023-01-18T15:51:20.437Z[UTC]" }, "from": { "type": "integer", "example": 1674055815825 }, "fromAsDateString": { "type": "string", "format": "date-time", "example": "2023-01-17T15:51:20.438Z[UTC]" }, "total": { "type": "integer", "example": 5 }, "duration": { "type": "integer", "example": 60000 }, "durationAsString": { "type": "string", "example": "60 seconds" } } }, "default-configurations.GetSensorDefaultConfigurationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/default-configurations.SensorDefaultConfiguration" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "default-configurations.SensorDefaultConfiguration": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "testProfileTemplateId": { "type": "number", "description": "id of the Test Profile Template applied by this configuration, if any" }, "otaConfigurationId": { "type": "number", "description": "id of the OTA (over-the-air) configuration applied by this configuration, if any" }, "alarmGroupId": { "type": "number", "description": "id of the alarm group applied by this configuration, if any" }, "sonarId": { "type": "number", "description": "id of the Sonar configuration applied by this configuration, if any" }, "pingEndPointId": { "type": "number", "description": "id of the ping endpoint applied by this configuration, if any" }, "webServerId": { "type": "number", "description": "id of the web server test target applied by this configuration, if any" }, "slaGroupId": { "type": "number", "description": "id of the SLA group applied by this configuration, if any" } } }, "default-configurations.GetSensorDefaultConfigurationResponse": { "$ref": "#/components/schemas/default-configurations.SensorDefaultConfiguration" }, "eyeris.EyerisCreateStreamRequest": { "type": "object", "properties": { "promptTypeKey": { "type": "string" }, "inputData": { "type": "object" } } }, "eyeris.EyerisSseEmitter": { "type": "array", "items": { "type": "string", "description": "Chunk of the response message" }, "example": [ "data:# Wi-Fi Network Analysis", "data:", "data:## SUMMARY", "data:The device experienced a brief 2-minute connectivity problem", "data:", "data:## RECOMMENDATIONS", "data:", "data:No device-side changes are recommended. The brief disruption followed by sustained 100% SLA indicates normal operation was quickly established and maintained." ] }, "eyeris.EyerisAnalysisRequest": { "required": [ "agentId", "type", "from", "to" ], "type": "object", "properties": { "agentId": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "ROAMING", "CONGESTION", "COVERAGE", "INTERFERENCE" ] }, "from": { "description": "The time in milliseconds from the epoch from which the analysis should start", "type": "string", "format": "datetime" }, "to": { "description": "The time in milliseconds from the epoch till which the analysis should be done.", "type": "string", "format": "datetime" } } }, "eyeris.EyerisAnalysisResponse": { "type": "object", "properties": { "requestId": { "type": "string", "format": "uuid" }, "requestQueueId": { "type": "string", "format": "uuid" }, "responseId": { "type": "string", "format": "uuid" } } }, "eyeris.EyerisAnalysisRequestResponse": { "type": "object", "properties": { "response": { "type": "string" }, "requestId": { "type": "string", "format": "uuid" }, "responseId": { "type": "string", "format": "uuid" } } }, "eyes.SummaryResponse": { "type": "object", "properties": { "agents": { "$ref": "#/components/schemas/eyes.AgentsSummaryResponse" }, "sensors": { "$ref": "#/components/schemas/eyes.SensorsSummaryResponse" } } }, "eyes.AgentsSummaryResponse": { "type": "object", "required": [ "organizationName", "deviceCount" ], "properties": { "organizationName": { "type": "string" }, "deviceCount": { "type": "integer" }, "licenseSummary": { "$ref": "#/components/schemas/eyes.AgentsLicenseSummary" }, "platformSummary": { "type": "object", "additionalProperties": { "type": "integer" }, "example": { "android": 100, "linux": 25, "mac": 75, "windows": 50 } } } }, "eyes.AgentsLicenseSummary": { "type": "object", "required": [ "packageName", "totalLicenses", "usedLicenses", "freeLicenses" ], "properties": { "packageName": { "type": "string", "example": "enterprise" }, "totalLicenses": { "type": "integer", "example": 1000 }, "usedLicenses": { "type": "integer", "example": 750 }, "freeLicenses": { "type": "integer", "example": 250 } } }, "eyes.SensorsSummaryResponse": { "type": "object", "properties": { "deviceCount": { "type": "integer", "example": 300 }, "deviceStatusSummary": { "type": "object", "additionalProperties": { "type": "integer" }, "example": { "active": 150, "passive": 75, "unconfigured": 50, "maintenance": 25 } }, "modelSummary": { "type": "object", "additionalProperties": { "type": "integer" }, "example": { "6300": 10, "2200": 5, "250": 2 } } } }, "eyes.GetEyesAgentsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/eyes.EyesAgent" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "eyes.EyesAgent": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "readOnly": true, "example": "10040f8d-7bf0-42bc-97fb-978cca9d15ba" }, "name": { "type": "string", "maxLength": 256, "example": "desktop-1234.company.example.com", "description": "For Linux/Mac/Windows, it is the hostname. For Android, it is the user supplied hostname or the mac address or agent ID if a user defined value is not set." }, "manufacturer": { "type": "string", "maxLength": 256, "example": "samsung" }, "model": { "type": "string", "maxLength": 256, "example": "SM-G930V" }, "platform": { "type": "string", "maxLength": 256, "example": "android" }, "version": { "description": "Device OS version", "type": "string", "maxLength": 256, "example": "7.0" }, "mac": { "type": "string", "maxLength": 18, "example": "48:49:11:46:53:30" }, "lastSeen": { "type": "integer", "example": 1672456149773, "description": "milliseconds since the epoch" }, "lastSsid": { "type": "string", "example": "foo-ssid.5G" }, "lastTestSeen": { "type": "integer", "example": 1672456149773, "description": "milliseconds since the epoch" }, "lastAgentVersion": { "type": "string", "example": "4.7.2+6217" }, "remoteIpAddress": { "type": "string", "example": "198.51.100.25" }, "numberOfTxSpatialStreams": { "type": "integer", "example": "2" }, "numberOfRxSpatialStreams": { "type": "integer", "example": "2" }, "lastDefinedLocationId": { "type": "string", "format": "uuid", "example": "3d44b634-653c-4b04-ac63-b1b9c65e2e73" }, "locationPermissionStatus": { "type": "string", "enum": [ "GRANTED", "DENIED", "NOT_REQUESTED" ], "description": "Result of permission check to read account data. If unset, then not application for the given platform." }, "readAccountPermissionStatus": { "type": "string", "enum": [ "GRANTED", "DENIED", "NOT_REQUESTED" ], "description": "Result of permission check to read account data. If unset, then not application for the given platform." }, "backgroundLocationPermissionStatus": { "type": "string", "enum": [ "GRANTED", "DENIED", "NOT_REQUESTED" ], "description": "Result of permission check to read account data. If unset, then not application for the given platform." }, "writeExternalStoragePermissionStatus": { "type": "string", "enum": [ "GRANTED", "DENIED", "NOT_REQUESTED" ], "description": "Result of permission check to read account data. If unset, then not application for the given platform." }, "lastBssid": { "type": "string", "example": "88:74:4E:61:8D:2D" }, "localIpAddress": { "type": "string", "example": "198.168.0.25" }, "isLicensed": { "type": "boolean", "description": "Indicates if this agent licensed. True means licensed. False means not licensed.", "default": "false" }, "lastDefinedLocation": { "type": "string", "description": "Friendly name of the last defined location", "example": "Corporate Office" }, "marketModel": { "type": "string", "maxLength": 256, "example": "Samsung Galaxy S7 (SM-G930V)" } } }, "eyes.PatchBatchEyesAgentRequest": { "type": "array", "items": { "type": "object", "required": [ "agentId" ], "properties": { "agentId": { "type": "string", "format": "uuid", "description": "The UUID of the agent to update." }, "isLicensed": { "type": "boolean", "description": "The license state of the agent. True is licensed and false is unlicensed." }, "nickname": { "type": "string", "description": "The nickname of an agent." }, "pendingDelete": { "type": "boolean", "description": "Used in conjunction with agentId, when set and the value is true this indicates that the agent referenced will be deleted." }, "autoUninstall": { "type": "boolean", "description": "Used in conjunction with pendingDelete, when set and the value is true an attempt to auto-uninstall the agent software from the device will be made as the device is deleted. If set to false, then no attempt will be made to uninstall agent software. Auto-uninstall is not available for Android and Linux agents." } } } }, "eyes.PatchEyesAgentResponse": { "type": "object", "properties": {} }, "eyes.GetEyesAgentsSearchResponse": { "type": "object", "properties": { "count": { "type": "integer", "description": "The number of results returned.", "example": 1 }, "results": { "type": "array", "items": { "type": "object", "properties": { "agent": { "$ref": "#/components/schemas/eyes.EyesAgentSearch" } } } } } }, "eyes.EyesAgentSearch": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 256, "example": "desktop-1234.company.example.com", "description": "For Linux/Mac/Windows, it is the hostname. For Android, it is the user supplied hostname or the mac address or agent ID if a user defined value is not set." }, "nickname": { "type": "string", "maxLength": 256, "example": "desktop-1234", "description": "The nickname assigned to this agent." }, "ssid": { "type": "string", "example": "foo-ssid.5G" }, "bssid": { "type": "string", "example": "88:74:4E:61:8D:2D" }, "ip": { "type": "string", "example": "198.51.100.25" }, "mac": { "type": "string", "maxLength": 18, "example": "48:49:11:46:53:30" }, "platform": { "type": "string", "maxLength": 256, "example": "android" }, "type": { "type": "string", "enum": [ "bssid", "client" ] }, "uniqueId": { "type": "string", "format": "uuid", "example": "10040f8d-7bf0-42bc-97fb-978cca9d15ba" } } }, "eyes.GetEyesAgentResponse": { "$ref": "#/components/schemas/eyes.EyesAgent" }, "eyes.PatchEyesAgentRequest": { "type": "object", "properties": { "isLicensed": { "type": "boolean", "description": "The license state of the agent. True is licensed and false is unlicensed." }, "nickname": { "type": "string", "description": "The nickname of an agent." } } }, "eyes.GetEyesSensorsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/eyes.EyesSensor" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "eyes.EyesSensor": { "type": "object", "properties": { "commonId": { "type": "integer", "readOnly": true, "example": 1001 }, "commonName": { "type": "string", "description": "Name of the Sensor", "example": "Golden Eye" }, "description": { "type": "string", "description": "Description of the Sensor" }, "parentLocationId": { "type": "integer", "description": "Parent Location's ID" }, "parentLocationName": { "type": "string", "description": "Parent Location's Name", "example": "Default" }, "parentServiceAreaId": { "type": "string", "description": "Parent Service Area's ID" }, "parentServiceAreaName": { "type": "string", "description": "Parent Service Area's Name", "example": "Office" }, "eyeStatus": { "type": "string", "description": "Sensor Status", "enum": [ "ACTIVE", "PASSIVE", "UNCONFIGURED", "MAINTENANCE" ] }, "ledStatus": { "type": "string", "description": "Sensor LED Status", "enum": [ "NORMAL_MODE", "BLINKING", "OFF" ] }, "eyeSoftware": { "type": "string", "description": "Sensor software version" }, "hardwareVersion": { "type": "string", "description": "Sensor hardware version" }, "ipV4Address": { "type": "string", "format": "ipv4", "description": "IP v4 Address of the Sensor", "example": "10.10.10.10" }, "lastTestResultStoredTimestamp": { "type": "string", "format": "date-time" }, "topologyType": { "type": "string", "description": "Topology type", "enum": [ "EYE" ] }, "antennaArray": { "type": "boolean" }, "timeZone": { "type": "string", "description": "Timezone of the Sensor", "example": "America/New_York" }, "vht160Support": { "type": "boolean" }, "ethernetMACAddress": { "type": "string", "description": "MAC Address of the Ethernet adapter" }, "wlan24MACAddress": { "type": "string", "description": "MAC Address of the 2.4GHZ wireless adapter" }, "wlan5MACAddress": { "type": "string", "description": "MAC Address of the 5GHZ wireless adapter" } } }, "eyes.GetEyesSensorResponse": { "$ref": "#/components/schemas/eyes.EyesSensor" }, "eyes.PatchEyesSensorRequest": { "type": "object", "properties": { "ledStatus": { "type": "string", "description": "The LED status of the sensor. NORMAL_MODE, BLINKING or OFF.", "enum": [ "NORMAL_MODE", "BLINKING", "OFF" ] } } }, "eyes.EyesSensorAutomatedTestStatus": { "type": "object", "properties": { "eyeName": { "type": "string" }, "testProfileName": { "type": "string" }, "testStatus": { "type": "string", "enum": [ "STOPPED", "PAUSED", "RUNNING", "STOPPING", "UNKNOWN" ] }, "currentTestStatus": { "type": "string", "example": "Test started" }, "currentAccessPoint": { "type": "string" }, "currentTestRunning": { "type": "string" } } }, "eyes.EyesSensorAutomatedTestRequest": { "type": "object", "properties": { "action": { "type": "string", "description": "The automated test action to be performed - START_AUTOMATED_TESTING or STOP_AUTOMATED_TESTING", "enum": [ "START_AUTOMATED_TESTING", "STOP_AUTOMATED_TESTING" ] } } }, "eyes.EyesSensorAutomatedTestResponse": { "type": "object", "properties": { "action": { "type": "string", "description": "The automated test action to be performed - START_AUTOMATED_TESTING or STOP_AUTOMATED_TESTING", "enum": [ "START_AUTOMATED_TESTING", "STOP_AUTOMATED_TESTING" ] }, "result": { "type": "string", "description": "The result of starting or stopping the automated test", "example": "SUCCESS" } } }, "eyes.PacketCaptureListResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" }, "items": { "type": "array", "description": "List of packet capture test metadata", "items": { "$ref": "#/components/schemas/eyes.PacketCaptureItem" } } } }, "eyes.PacketCaptureItem": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier for the test" }, "testKey": { "type": "string", "format": "uuid", "description": "UUID key for the test" }, "testId": { "type": "integer", "format": "int64", "description": "Numeric test ID" }, "testType": { "type": "string", "enum": [ "PacketCapture", "AccessPointTraffic" ], "description": "Type of packet capture test" }, "eyeId": { "type": "integer", "format": "int64", "description": "ID of the sensor (eye) that performed the test" }, "eyeUuid": { "type": "string", "format": "uuid", "description": "UUID of the sensor" }, "eyeName": { "type": "string", "description": "Name of the sensor" }, "orgUuid": { "type": "string", "format": "uuid", "description": "UUID of the organization" }, "apId": { "type": "integer", "description": "Access point ID" }, "ssid": { "type": "string", "description": "SSID of the access point" }, "bssid": { "type": "string", "description": "BSSID (MAC address) of the access point" }, "associatedAccessPoints": { "type": "array", "description": "Access points associated with the test, index-aligned with their SSID/BSSID/name. Only populated for AccessPointTraffic-type rows; PacketCapture-type rows use the single apId/ssid/bssid fields above instead.", "items": { "$ref": "#/components/schemas/eyes.AssociatedAccessPoint" } }, "band": { "type": "string", "enum": [ "2.4", "5", "6", "N/A" ], "description": "Frequency band" }, "channel": { "type": "integer", "description": "WiFi channel number" }, "gid": { "type": "integer", "description": "Group ID" }, "resultsFileS3Key": { "type": "string", "description": "S3 key for the PCAP file" }, "createdAt": { "type": "string", "format": "date-time", "description": "Test creation timestamp (UTC)" }, "hostname": { "type": "string", "description": "Hostname of the sensor" } } }, "eyes.AssociatedAccessPoint": { "type": "object", "properties": { "apId": { "type": "integer", "description": "Access point ID" }, "ssid": { "type": "string", "description": "SSID of the access point" }, "bssid": { "type": "string", "description": "BSSID (MAC address) of the access point" }, "apName": { "type": "string", "description": "Name of the access point" } } }, "eyes.RegistrationRequestBody": { "type": "object", "properties": { "macAddress": { "type": "string", "description": "The MAC address of the Eye" }, "serialNumber": { "type": "string", "description": "The Serial Number of the Eye" }, "groupId": { "type": "string", "format": "uuid", "description": "The Group ID where the Eye should be located" } } }, "eyes.RegistrationResponse": { "type": "object", "properties": { "macAddress": { "type": "string", "description": "The MAC address of the Eye" }, "serialNumber": { "type": "string", "description": "The Serial Number of the Eye" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "metadata.PageModelGroup": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Group" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.Group": { "type": "object", "properties": { "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" }, "instance": { "$ref": "#/components/schemas/metadata.AggregateReferenceInstanceUUID" }, "id": { "type": "string", "format": "uuid" }, "key": { "type": "string" }, "displayName": { "type": "string" } } }, "metadata.AggregateReferenceInstanceUUID": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } } }, "impact.GetAgentImpactResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/impact.AgentImpactRow" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "impact.AgentImpactRow": { "type": "object", "properties": { "deviceId": { "type": "string" }, "deviceName": { "type": "string", "nullable": true }, "minutesImpactedExperienceScore": { "type": "integer", "format": "int64" }, "minutesImpactedRoaming": { "type": "integer", "format": "int64" }, "minutesImpactedCoverage": { "type": "integer", "format": "int64" }, "minutesImpactedCongestion": { "type": "integer", "format": "int64" }, "minutesImpactedInterference": { "type": "integer", "format": "int64" }, "minutesImpactedConnectivity": { "type": "integer", "format": "int64" }, "minutesMonitored": { "type": "integer", "format": "int64" } } }, "impact.AgentSummary": { "type": "object", "properties": { "minutesImpactedExperienceScore": { "type": "integer", "format": "int64" }, "minutesImpactedRoaming": { "type": "integer", "format": "int64" }, "minutesImpactedCoverage": { "type": "integer", "format": "int64" }, "minutesImpactedCongestion": { "type": "integer", "format": "int64" }, "minutesImpactedInterference": { "type": "integer", "format": "int64" }, "minutesImpactedConnectivity": { "type": "integer", "format": "int64" }, "minutesMonitored": { "type": "integer", "format": "int64" }, "deviceCount": { "type": "integer", "format": "int64" } } }, "impact.GetAgentSummaryResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/impact.AgentSummary" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "impact.GetAgentTimeSeriesResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/impact.AgentTimeSeriesRow" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "impact.AgentTimeSeriesRow": { "type": "object", "properties": { "timestamp": { "type": "integer", "format": "int64" }, "minutesImpactedExperienceScore": { "type": "integer", "format": "int64" }, "minutesImpactedRoaming": { "type": "integer", "format": "int64" }, "minutesImpactedCoverage": { "type": "integer", "format": "int64" }, "minutesImpactedCongestion": { "type": "integer", "format": "int64" }, "minutesImpactedInterference": { "type": "integer", "format": "int64" }, "minutesImpactedConnectivity": { "type": "integer", "format": "int64" }, "minutesMonitored": { "type": "integer", "format": "int64" }, "deviceCount": { "type": "integer", "format": "int64" } } }, "impact.GetLocationImpactResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/impact.LocationImpactRow" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "impact.LocationImpactRow": { "type": "object", "properties": { "locationId": { "type": "string" }, "locationName": { "type": "string", "nullable": true }, "minutesImpactedExperienceScore": { "type": "integer", "format": "int64" }, "minutesImpactedRoaming": { "type": "integer", "format": "int64" }, "minutesImpactedCoverage": { "type": "integer", "format": "int64" }, "minutesImpactedCongestion": { "type": "integer", "format": "int64" }, "minutesImpactedInterference": { "type": "integer", "format": "int64" }, "minutesImpactedConnectivity": { "type": "integer", "format": "int64" }, "minutesMonitored": { "type": "integer", "format": "int64" } } }, "incidents.GetIncidentsResponse": { "type": "object", "properties": { "range": { "$ref": "#/components/schemas/common.Range" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/incidents.NestedIncident" } } } }, "incidents.NestedIncident": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "startTimestamp": { "type": "string", "format": "date-time" }, "asOfTimestamp": { "type": "string", "format": "date-time" }, "endTimestamp": { "type": "string", "format": "date-time" }, "timestampDeterminedToBeIncident": { "type": "string", "format": "date-time" }, "organizationName": { "type": "string" }, "type": { "type": "string" }, "location": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "number", "enum": [ 2.4, 5.0, 6.0 ] }, "countImpacted": { "type": "number" }, "populationCount": { "type": "number" }, "thresholds": { "type": "object", "properties": { "warningThreshold": { "type": "number" }, "criticalThreshold": { "type": "number" }, "successRateThreshold": { "type": "number" }, "minPopulationCount": { "type": "number" }, "minCountImpacted": { "type": "number" }, "minPercentImpacted": { "type": "number" }, "minIncidentDurationMinutes": { "type": "number" } } }, "locationName": { "type": "string" } } }, "incidents.GetIncidentResponse": { "$ref": "#/components/schemas/incidents.FlatIncident" }, "incidents.FlatIncident": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "startTimestamp": { "type": "string", "format": "date-time" }, "asOfTimestamp": { "type": "string", "format": "date-time" }, "endTimestamp": { "type": "string", "format": "date-time" }, "timestampDeterminedToBeIncident": { "type": "string", "format": "date-time" }, "organizationName": { "type": "string" }, "type": { "type": "string" }, "location": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "number", "enum": [ 2.4, 5.0, 6.0 ] }, "countImpacted": { "type": "number" }, "populationCount": { "type": "number" }, "successRateThreshold": { "type": "number" }, "minPopulationCount": { "type": "number" }, "minCountImpacted": { "type": "number" }, "minPercentImpacted": { "type": "number" }, "minIncidentDurationMinutes": { "type": "number" }, "warningThreshold": { "type": "number" }, "criticalThreshold": { "type": "number" }, "locationName": { "type": "string" } } }, "alert-rules.GetAlertRulesResponse": { "type": "object", "required": [ "results", "pagination" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/alert-rules.AlertRuleResponse" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "alert-rules.AlertRuleResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "metric": { "type": "string" }, "dimensionSet": { "type": "array", "items": { "$ref": "#/components/schemas/alert-rules.Dimension" } }, "dimensionFilters": { "type": "object", "nullable": true, "additionalProperties": true }, "aggregationFunction": { "$ref": "#/components/schemas/alert-rules.AggregationFunction" }, "thresholdValue": { "type": "number", "format": "double" }, "thresholdOperator": { "$ref": "#/components/schemas/alert-rules.ThresholdOperator" }, "pendingPeriodSeconds": { "type": "integer" }, "missingDataPolicy": { "$ref": "#/components/schemas/alert-rules.MissingDataPolicy" }, "notificationConfig": { "$ref": "#/components/schemas/alert-rules.NotificationConfig" }, "enabled": { "type": "boolean" }, "locationSelection": { "type": "object", "nullable": true, "additionalProperties": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "alert-rules.Dimension": { "type": "string", "description": "A dimension the metric can be grouped/keyed by", "enum": [ "device_id", "bssid", "network", "band", "location_id", "target" ] }, "alert-rules.AggregationFunction": { "type": "string", "description": "How matching samples are aggregated before the threshold comparison", "enum": [ "avg", "min", "max" ] }, "alert-rules.ThresholdOperator": { "type": "string", "description": "The comparison operator applied between the aggregated value and the threshold", "enum": [ "<", "<=", ">", ">=" ] }, "alert-rules.MissingDataPolicy": { "type": "string", "description": "How missing data is treated while evaluating the rule", "enum": [ "ignore", "good", "bad" ] }, "alert-rules.NotificationConfig": { "type": "object", "required": [ "deliveries" ], "properties": { "deliveries": { "type": "array", "items": { "$ref": "#/components/schemas/alert-rules.Delivery" } } } }, "alert-rules.Delivery": { "type": "object", "description": "A single notification target, discriminated by `kind`", "required": [ "kind" ], "discriminator": { "propertyName": "kind" }, "oneOf": [ { "type": "object", "required": [ "kind", "url", "auth" ], "properties": { "kind": { "type": "string", "enum": [ "webhook" ] }, "name": { "type": "string" }, "url": { "type": "string", "description": "http or https URL with no spaces", "pattern": "^https?://\\S+$" }, "auth": { "$ref": "#/components/schemas/alert-rules.WebhookAuth" }, "format": { "$ref": "#/components/schemas/alert-rules.WebhookFormat" } } }, { "type": "object", "required": [ "kind", "address" ], "properties": { "kind": { "type": "string", "enum": [ "email" ] }, "name": { "type": "string" }, "address": { "type": "string", "format": "email" } } }, { "type": "object", "required": [ "kind", "mdsConfigId", "organizationName" ], "properties": { "kind": { "type": "string", "enum": [ "servicenow" ] }, "name": { "type": "string" }, "mdsConfigId": { "type": "string" }, "organizationName": { "type": "string" } } } ] }, "alert-rules.WebhookAuth": { "type": "object", "description": "Authentication mode for a webhook delivery, discriminated by `type`. Credentials are referenced by Secrets Manager ARN; the secret value is never stored here.", "required": [ "type" ], "discriminator": { "propertyName": "type" }, "oneOf": [ { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "NONE" ] } } }, { "type": "object", "required": [ "type", "username", "passwordSecretArn" ], "properties": { "type": { "type": "string", "enum": [ "BASIC" ] }, "username": { "type": "string" }, "passwordSecretArn": { "type": "string", "description": "Secrets Manager ARN holding the password", "pattern": "^arn:aws:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:.+" } } }, { "type": "object", "required": [ "type", "tokenSecretArn" ], "properties": { "type": { "type": "string", "enum": [ "TOKEN" ] }, "tokenSecretArn": { "type": "string", "description": "Secrets Manager ARN holding the token", "pattern": "^arn:aws:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:.+" } } } ] }, "alert-rules.WebhookFormat": { "type": "string", "description": "Per-destination payload shape for a webhook delivery. Defaults to generic when omitted.", "enum": [ "generic", "slack" ] }, "alert-rules.AlertRuleRequest": { "type": "object", "description": "Body for creating (POST) or replacing (PUT) an alert rule. Enum fields use their wire values exactly as listed (e.g. \">\", \"avg\", \"ignore\" in lowercase), not the uppercase names.", "required": [ "metric", "dimensionSet", "aggregationFunction", "thresholdValue", "thresholdOperator" ], "properties": { "name": { "type": "string", "description": "Optional human-readable name for the rule." }, "metric": { "type": "string", "minLength": 1, "description": "Required. Non-blank metric name to evaluate." }, "dimensionSet": { "type": "array", "minItems": 1, "uniqueItems": true, "description": "Required. At least one dimension the metric is grouped/keyed by.", "items": { "$ref": "#/components/schemas/alert-rules.Dimension" } }, "dimensionFilters": { "type": "object", "nullable": true, "additionalProperties": true, "description": "Optional free-form JSON object narrowing which series the rule applies to." }, "aggregationFunction": { "allOf": [ { "$ref": "#/components/schemas/alert-rules.AggregationFunction" } ], "description": "Required. How matching samples are aggregated before the threshold comparison." }, "thresholdValue": { "type": "number", "format": "double", "description": "Required. Value the aggregated metric is compared against." }, "thresholdOperator": { "allOf": [ { "$ref": "#/components/schemas/alert-rules.ThresholdOperator" } ], "description": "Required. Comparison operator applied between the aggregated value and thresholdValue." }, "pendingPeriodSeconds": { "type": "integer", "minimum": 1, "default": 300, "description": "Optional. How long (seconds) the condition must hold before an incident is raised. Minimum 1; defaults to 300." }, "missingDataPolicy": { "allOf": [ { "$ref": "#/components/schemas/alert-rules.MissingDataPolicy" } ], "default": "ignore", "description": "Optional. How missing data is treated during evaluation. Defaults to ignore." }, "notificationConfig": { "allOf": [ { "$ref": "#/components/schemas/alert-rules.NotificationConfig" } ], "description": "Optional. Notification targets fired when the rule breaches." }, "locationSelection": { "type": "object", "nullable": true, "additionalProperties": true, "description": "Optional free-form JSON describing which locations the rule applies to." }, "enabled": { "type": "boolean", "default": true, "description": "Optional. Whether the rule is active. Defaults to true." } }, "example": { "name": "Low client health on guest network", "metric": "client_health_score", "dimensionSet": [ "network", "band" ], "aggregationFunction": "avg", "thresholdValue": 70.0, "thresholdOperator": "<", "pendingPeriodSeconds": 600, "missingDataPolicy": "ignore", "enabled": true, "notificationConfig": { "deliveries": [ { "kind": "email", "address": "neteng@example.com" }, { "kind": "servicenow", "mdsConfigId": "abc-123", "organizationName": "globalcorp" } ] } } }, "alert-rules.AlertRulesSummary": { "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int64" }, "activeCount": { "type": "integer", "format": "int64" }, "disabledCount": { "type": "integer", "format": "int64" } } }, "alert-rules.EnabledRequest": { "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" } } }, "alert-incidents.GetIncidentsResponse": { "type": "object", "required": [ "results", "pagination" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/alert-incidents.IncidentResponse" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "alert-incidents.IncidentResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "ticketId": { "type": "string" }, "ruleId": { "type": "string", "format": "uuid" }, "metric": { "type": "string" }, "dimensionSet": { "type": "array", "items": { "$ref": "#/components/schemas/alert-incidents.Dimension" } }, "dimensionKey": { "type": "string" }, "startedAt": { "type": "integer", "format": "int64", "description": "Epoch millis" }, "resolvedAt": { "type": "integer", "format": "int64", "nullable": true, "description": "Epoch millis" }, "resolutionReason": { "allOf": [ { "$ref": "#/components/schemas/alert-incidents.ResolutionReason" } ], "nullable": true }, "triggerValue": { "type": "number", "format": "double", "nullable": true }, "resolveValue": { "type": "number", "format": "double", "nullable": true }, "snapshot": { "$ref": "#/components/schemas/alert-incidents.IncidentSnapshot" } } }, "alert-incidents.Dimension": { "type": "string", "description": "A dimension the metric is grouped/keyed by", "enum": [ "device_id", "bssid", "network", "band", "location_id", "target" ] }, "alert-incidents.ResolutionReason": { "type": "string", "description": "Why an incident was resolved", "enum": [ "cleared", "cleared_by_user", "rule_deleted", "rule_config_changed", "insufficient_data", "location_deleted", "rule_disabled" ] }, "alert-incidents.IncidentSnapshot": { "type": "object", "description": "The rule configuration captured at the time the incident was raised", "properties": { "thresholdValue": { "type": "number", "format": "double" }, "thresholdOperator": { "$ref": "#/components/schemas/alert-incidents.ThresholdOperator" }, "aggregationFunction": { "$ref": "#/components/schemas/alert-incidents.AggregationFunction" }, "pendingPeriodSeconds": { "type": "integer" }, "dimensionFilters": { "type": "object", "nullable": true, "additionalProperties": true } } }, "alert-incidents.ThresholdOperator": { "type": "string", "enum": [ "<", "<=", ">", ">=" ] }, "alert-incidents.AggregationFunction": { "type": "string", "enum": [ "avg", "min", "max" ] }, "alert-incidents.GetIncidentsByRuleResponse": { "type": "array", "items": { "$ref": "#/components/schemas/alert-incidents.IncidentByRuleResponse" } }, "alert-incidents.IncidentByRuleResponse": { "type": "object", "properties": { "ruleId": { "type": "string", "format": "uuid" }, "rule": { "type": "object", "properties": { "metric": { "type": "string" }, "dimensionSet": { "type": "array", "items": { "$ref": "#/components/schemas/alert-incidents.Dimension" } }, "thresholdValue": { "type": "number", "format": "double" }, "thresholdOperator": { "$ref": "#/components/schemas/alert-incidents.ThresholdOperator" } } }, "incidentCount": { "type": "integer", "format": "int64" }, "activeCount": { "type": "integer", "format": "int64" } } }, "alert-incidents.IncidentsSummary": { "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int64" }, "activeCount": { "type": "integer", "format": "int64" } } }, "kpis.GetAgentKPIsGlobalResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIGlobal" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.AgentKPIGlobal": { "type": "object", "properties": { "clientCount": { "type": "number" }, "types": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIType" } } } }, "kpis.AgentKPIType": { "type": "object", "properties": { "id": { "type": "string", "format": "string" }, "criticalSum": { "type": "number" }, "warningSum": { "type": "number" }, "goodSum": { "type": "number" } } }, "kpis.GetAgentKPIsAccessPointsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIAccessPoint" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.AgentKPIAccessPoint": { "type": "object", "properties": { "bssid": { "type": "string" }, "clientCount": { "type": "number" }, "types": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIType" } } } }, "kpis.GetAgentKPIsAdapterDriversResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIAdapterDriver" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.AgentKPIAdapterDriver": { "type": "object", "properties": { "driverProvider": { "type": "string" }, "driverVersion": { "type": "string" }, "clientCount": { "type": "number" }, "types": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIType" } } } }, "kpis.GetAgentKPIsLocationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPILocation" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.AgentKPILocation": { "type": "object", "properties": { "location": { "type": "string" }, "locationName": { "type": "string" }, "clientCount": { "type": "number" }, "types": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIType" } } } }, "kpis.GetAgentKPIsClientCapabilitiesResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.AgentKPIClientCapability" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.AgentKPIClientCapability": { "type": "object", "properties": { "clientCount30Days": { "type": "number" }, "clientCount90Days": { "type": "number" }, "clientPercent30Days": { "type": "number" }, "clientPercent90Days": { "type": "number" }, "licensedClientCount30Days": { "type": "number" }, "licensedClientCount90Days": { "type": "number" }, "licensedClientPercent30Days": { "type": "number" }, "licensedClientPercent90Days": { "type": "number" } } }, "kpis.GetSensorsKPIsTopologiesResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/kpis.KPITopology" } }, "range": { "$ref": "#/components/schemas/common.Range" } } }, "kpis.KPITopology": { "type": "object", "properties": { "kpiCode": { "type": "string", "description": "The KPI code for this result" }, "name": { "type": "string", "description": "The name of the report" }, "description": { "type": "string", "description": "The description of the report" }, "measurements24GHz": { "type": "array", "description": "The list of measurements for the 2.4GHz band", "items": { "type": "object", "properties": { "kpiValue": { "type": "number" }, "status": { "type": "string" }, "created_at": { "type": "string", "format": "datetime" } } } }, "measurements5GHz": { "type": "array", "description": "The list of measurements for the 5GHz band", "items": { "type": "object", "properties": { "kpiValue": { "type": "number" }, "status": { "type": "string" }, "created_at": { "type": "string", "format": "datetime" } } } }, "measurements6GHz": { "type": "array", "description": "The list of measurements for the 5GHz band", "items": { "type": "object", "properties": { "kpiValue": { "type": "number" }, "status": { "type": "string" }, "created_at": { "type": "string", "format": "datetime" } } } }, "units": { "type": "string", "description": "The units of the KPI" }, "slaTargetValue": { "type": "number", "description": "The SLA target value for the KPI" }, "topologyObject": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "topologyType": { "type": "string" }, "parentLocationId": { "type": "number" }, "description": { "type": "string" } } }, "reportedWirelessNetwork": { "type": "object", "description": "The reported wireless network for the KPI" }, "status": { "type": "number", "description": "The SLA target value for the KPI" }, "slaParameters": { "type": "object", "description": "The SLA parameters for the KPI" } } }, "metadata.PageModelMerakiIntegrationConfig": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.MerakiIntegrationConfig" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.MerakiIntegrationConfig": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "runOption": { "type": "string" }, "scheduledOption": { "type": "string" }, "agentsEnabled": { "type": "boolean" }, "agentsFullSynchronization": { "type": "boolean" }, "sensorsEnabled": { "type": "boolean" }, "createdBy": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" }, "apiKeyId": { "$ref": "#/components/schemas/metadata.AggregateReferenceApiKeyUUID" }, "group": { "$ref": "#/components/schemas/metadata.AggregateReferenceGroupUUID" } } }, "metadata.AggregateReferenceApiKeyUUID": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } } }, "metadata.MerakiIntegrationConfigRequest": { "required": [ "apiKey", "runOption", "scheduledOption" ], "type": "object", "properties": { "apiKey": { "type": "string" }, "runOption": { "type": "string", "enum": [ "ONE_TIME", "SCHEDULED" ] }, "scheduledOption": { "type": "string", "enum": [ "DISABLED", "DAILY", "WEEKLY", "MONTHLY" ] }, "agentsEnabled": { "type": "boolean" }, "agentsFullSynchronization": { "type": "boolean" }, "sensorsEnabled": { "type": "boolean" }, "scheduledDayOfWeek": { "type": "integer" }, "scheduledWeekOfMonth": { "type": "integer" }, "organizationId": { "type": "string", "format": "uuid" }, "sapphireGroupId": { "type": "string", "format": "uuid" } } }, "metadata.MerakiIntegrationConfigResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "merakiApiKey": { "type": "string" }, "clientId": { "type": "string" }, "clientSecret": { "type": "string" }, "runOption": { "type": "string" }, "scheduledOption": { "type": "string" }, "agentsEnabled": { "type": "boolean" }, "agentsFullSynchronization": { "type": "boolean" }, "sensorsEnabled": { "type": "boolean" }, "scheduledDayOfWeek": { "type": "integer" }, "scheduledWeekOfMonth": { "type": "integer" }, "createdBy": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" }, "apiKey": { "$ref": "#/components/schemas/metadata.AggregateReferenceApiKeyUUID" }, "group": { "$ref": "#/components/schemas/metadata.AggregateReferenceGroupUUID" } } }, "metadata.MerakiIntegrationConfigPutRequest": { "required": [ "runOption", "scheduledOption" ], "type": "object", "properties": { "runOption": { "type": "string", "enum": [ "ONE_TIME", "SCHEDULED" ] }, "scheduledOption": { "type": "string", "enum": [ "DISABLED", "DAILY", "WEEKLY", "MONTHLY" ] }, "agentsEnabled": { "type": "boolean" }, "agentsFullSynchronization": { "type": "boolean" }, "sensorsEnabled": { "type": "boolean" }, "scheduledDayOfWeek": { "type": "integer" }, "scheduledWeekOfMonth": { "type": "integer" } } }, "locations.GetAgentLocationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/locations.AgentLocationResponse" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "locations.AgentLocationResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "organization": { "type": "string" }, "parent": { "type": "string", "format": "uuid" } } }, "locations.AgentLocationRequest": { "type": "object", "properties": { "name": { "type": "string" }, "parent": { "type": "string", "format": "uuid" } } }, "locations.GetAgentLocationResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "organization": { "type": "string" }, "parent": { "type": "string", "format": "uuid" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/locations.AgentLocationResponse" } }, "serviceAreas": { "type": "array", "items": { "$ref": "#/components/schemas/service-areas.AgentServiceArea" } } } }, "service-areas.AgentServiceArea": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "locationId": { "type": "string", "format": "uuid" } } }, "locations.GetSensorLocationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/locations.SensorLocation" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "locations.SensorLocation": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "parentId": { "type": "number", "description": "The parent Location's id - null if this is a top-level location under an Organization rather than a sub-location of another Location" }, "parentOrganizationId": { "type": "number", "description": "The parent Organization's id - always present, even for a sub-location of another Location (derived from that parent Location's own organization)" }, "countryCode": { "$ref": "#/components/schemas/locations.CountryCodeName" }, "timeZone": { "$ref": "#/components/schemas/locations.TimeZoneId" }, "inheritedTimeZone": { "$ref": "#/components/schemas/locations.TimeZoneId" }, "timeZoneLocation": { "type": "string", "example": "hm1", "description": "Name of the ancestor Location where the inherited timezone came from - only meaningful when timeZone is null" } } }, "locations.CountryCodeName": { "type": "string", "description": "A CountryCode enum constant name. The ISO 3166-1 alpha-2 code (e.g. \"US\") is also accepted on write, case-insensitively, but is not reflected in this enum list", "enum": [ "WORLD", "ANDORRA", "UAE", "AFGHANISTAN", "ANTIGUA_AND_BARBUDA", "ALBANIA", "ANGUILLA", "ARMENIA", "NETHERLANDS_ANTILLES", "ARGENTINA", "AMERICAN_SAMOA", "AUSTRIA", "ANGOLA", "AUSTRALIA", "ARUBA", "ALAND_ISLANDS", "AZERBAIJAN", "ANTARCTICA", "BOSNIA_HERZ", "BARBADOS", "BANGLADESH", "BELGIUM", "BURKINA_FASO", "BULGARIA", "BAHRAIN", "BURUNDI", "BENIN", "SAINT_BARTHELEMY", "BERMUDA", "BRUNEI_DARUSSALAM", "BOLIVIA", "BONAIRE", "BRAZIL", "BAHAMAS", "BHUTAN", "BOTSWANA", "BOUVET_ISLAND", "BELARUS", "BELIZE", "CANADA", "COCOS_ISLANDS", "CONGO_DEMOCRATIC_REPUBLIC", "CENTRAL_AFRICAN_REPUBLIC", "CONGO", "SWITZERLAND", "COTE_DLVOIRE", "COOK_ISLANDS", "CHILE", "CAMEROON", "CHINA", "COLOMBIA", "EQUATORIAL_GUINEA", "COSTA_RICA", "CHRISTMAS_ISLAND", "CUBA", "CAP_VERDE", "CURACAO", "CYPRUS", "CZECH", "GERMANY", "DJIBOUTI", "DENMARK", "DOMINICA", "DOMINICAN_REPUBLIC", "ALGERIA", "ECUADOR", "ESTONIA", "EGYPT", "WESTERN_SAHARA", "ERITREA", "SPAIN", "ETHIOPIA", "FINLAND", "FIJI", "FALKLAND_ISLANDS", "MICRONESIA", "FAROE_ISLANDS", "FRANCE", "GABON", "GEORGIA", "UNITED_KINGDOM", "GRENEDA", "FRENCH_GUIANA", "GUERNSEY", "GHANA", "GIBRALTAR", "GUINEA", "GAMBIA", "GREENLAND", "GUADELOUPE", "GREECE", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "GUATEMALA", "GUAM", "GUINEA_BISSAU", "GUYANA", "HEARD_AND_MCDONALD_ISLANDS", "HONDURAS", "HONG_KONG", "CROATIA", "HAITI", "HUNGARY", "INDONESIA", "IRELAND", "ISRAEL", "ISLE_OF_MAN", "INDIA", "BRITISH_INDIAN_OCEAN_TERRITORY", "IRAQ", "ICELAND", "IRAN", "ITALY", "JERSEY", "JAMAICA", "JAPAN", "JORDAN", "KENYA", "KYRGYZSTAN", "CAMBODIA", "KIRIBATI", "KOREA_NORTH", "COMOROS", "ST_KITTS_AND_NEVIS", "KOREA_ROC", "KUWAIT", "CAYMAN_ISLANDS", "KAZAKHSTAN", "LAOS", "LEBANON", "SAINT_LUCIA", "LIECHTENSTEIN", "SRI_LANKA", "LIBERIA", "LESOTHO", "LITHUANIA", "LUXEMBOURG", "LATVIA", "LIBYA", "MONACO", "MOLDOVA", "MOROCCO", "MONTENEGRO", "SAINT_MARTIN", "MADAGASCAR", "MARSHALL_ISLANDS", "MACAU", "MACEDONIA", "MALI", "MYANMAR", "MONGOLIA", "NORTHERN_MARIANA_ISLANDS", "MARTINIQUE", "MAURITANIA", "MONTSERRAT", "MALTA", "MAURITIUS", "MALDIVES", "MALAWI", "MEXICO", "MALAYSIA", "MOZAMBIQUE", "NAMIBIA", "NEW_CALEDONIA", "NIGER", "NORFOLK_ISLAND", "NIGERIA", "NICARAGUA", "NETHERLANDS", "NORWAY", "NEPAL", "NAURU", "NIUE", "NEW_ZEALAND", "OMAN", "PANAMA", "FRENCH_POLYNESIA", "PERU", "PAPUA_NEW_GUINEA", "PHILIPPINES", "PAKISTAN", "POLAND", "SAINT_PIERRE_AND_MIQUELON", "PITCAIRN", "PORTUGAL", "PUERTO_RICO", "PALESTINE", "PALAU", "PARAGUAY", "QATAR", "REUNION", "ROMANIA", "SERBIA", "RUSSIA", "RWANDA", "SAUDI_ARABIA", "SOLOMON_ISLANDS", "SEYCHELLES", "SUDAN", "SWEDEN", "SINGAPORE", "SAINT_HELENA", "SLOVENIA", "SVALBARD_AND_JAN_MAYEN", "SLOVAKIA", "SIERRA_LEONE", "SAN_MARINO", "SENEGAL", "SOMALIA", "SURINAME", "SOUTH_SUDAN", "SAO_TOME_AND_PRINCIPE", "EL_SALVADOR", "SINT_MAARTEN", "SYRIA", "SWAZILAND", "TURKS_AND_CAICOS_ISLANDS", "CHAD", "FRENCH_SOUTHERN_TERRITORIES", "TOGO", "TAIWAN", "TAJIKISTAN", "THAILAND", "TRINIDAD_Y_TOBAGO", "TUNISIA", "TOKELAU", "TIMOR_LESTE", "TURKMENISTAN", "TONGA", "TURKEY", "TANZANIA", "TUVULU", "UKRAINE", "UGANDA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES", "URUGUAY", "UZBEKISTAN", "HOLY_SEE", "SAINT_VINCENT_AND_THE_GRENADINES", "VENEZUELA", "VIRGIN_ISLANDS", "VIRGIN_ISLANDS_BRITISH", "VIETNAM", "VANUATU", "WALLIS_AND_FUTUNA", "SAMOA", "YEMEN", "MAYOTTE", "SOUTH_AFRICA", "ZAMBIA", "ZIMBABWE", "UNKNOWN", "UNDEFINED" ] }, "locations.TimeZoneId": { "type": "string", "description": "A valid TimeZone identifier", "enum": [ "ACT", "AET", "AGT", "ART", "AST", "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "BET", "BST", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CAT", "CET", "CNT", "CST", "CST6CDT", "CTT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EAT", "ECT", "EET", "EST", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT0", "Greenwich", "HST", "Hongkong", "IET", "IST", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "JST", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MIT", "MST", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NET", "NST", "NZ", "NZ-CHAT", "Navajo", "PLT", "PNT", "PRC", "PRT", "PST", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROK", "SST", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "VST", "W-SU", "WET", "Zulu" ] }, "locations.PostSensorLocationsRequest": { "type": "object", "properties": { "locations": { "type": "array", "items": { "$ref": "#/components/schemas/locations.SensorCreateLocationRequest" } } } }, "locations.SensorCreateLocationRequest": { "type": "object", "properties": { "name": { "type": "string" }, "locationType": { "type": "string", "enum": [ "UNDEFINED", "REGION", "COUNTRY", "STATE", "CITY", "DISTRICT", "BUILDING" ] }, "parentOrganizationId": { "type": "number", "example": "123", "description": "The parent Organization's id, to create this as a top-level location under an Organization - exactly one of parentOrganizationId/parentLocationId must be provided" }, "parentLocationId": { "type": "number", "example": "42", "description": "The parent Location's id, to create this as a sub-location under another Location instead - exactly one of parentOrganizationId/parentLocationId must be provided" }, "timeZone": { "description": "A java.util.TimeZone id, or \"INHERIT\"/omit to leave it unset. \"INHERIT\" only resolves to a real ancestor's timezone when created with parentLocationId - under parentOrganizationId there's no parent Location to inherit from, so it falls back to the Carat server's own default timezone instead", "example": "America/New_York", "oneOf": [ { "$ref": "#/components/schemas/locations.TimeZoneId" }, { "type": "string", "enum": [ "INHERIT" ] } ] }, "countryCode": { "$ref": "#/components/schemas/locations.CountryCodeName" } } }, "locations.PutSensorLocationsRequest": { "type": "object", "properties": { "locations": { "type": "array", "items": { "$ref": "#/components/schemas/locations.SensorUpdateLocationRequest" } } } }, "locations.SensorUpdateLocationRequest": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "locationType": { "type": "string", "enum": [ "UNDEFINED", "REGION", "COUNTRY", "STATE", "CITY", "DISTRICT", "BUILDING" ] }, "timeZone": { "description": "A java.util.TimeZone id, \"INHERIT\" to inherit from the parent location, or omit to leave unchanged. \"INHERIT\" only resolves to a real ancestor's timezone if this location has a parent Location (was created with parentLocationId) - a top-level location under an Organization has no parent Location to inherit from, so it falls back to the Carat server's own default timezone instead", "example": "America/New_York", "oneOf": [ { "$ref": "#/components/schemas/locations.TimeZoneId" }, { "type": "string", "enum": [ "INHERIT" ] } ] }, "countryCode": { "$ref": "#/components/schemas/locations.CountryCodeName" } } }, "locations.GetSensorLocationResponse": { "$ref": "#/components/schemas/locations.SensorLocation" }, "locations.SensorSingleUpdateLocationRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "locationType": { "type": "string", "enum": [ "UNDEFINED", "REGION", "COUNTRY", "STATE", "CITY", "DISTRICT", "BUILDING" ] }, "timeZone": { "description": "A java.util.TimeZone id, \"INHERIT\" to inherit from the parent location, or omit to leave unchanged. \"INHERIT\" only resolves to a real ancestor's timezone if this location has a parent Location (was created with parentLocationId) - a top-level location under an Organization has no parent Location to inherit from, so it falls back to the Carat server's own default timezone instead", "example": "America/New_York", "oneOf": [ { "$ref": "#/components/schemas/locations.TimeZoneId" }, { "type": "string", "enum": [ "INHERIT" ] } ] }, "countryCode": { "$ref": "#/components/schemas/locations.CountryCodeName" } } }, "network-keys.GetNetworkKeysResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/network-keys.NetworkKey" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "network-keys.NetworkKey": { "type": "object", "description": "The set of properties present depends on the key's type - every type is now documented: WPA1/WPA2 (WPA-PSK), WPA3, WPA3_OWE, WPA_EAP (all 7 eapMethod variants), WPA_EAP_SCEP, IEEE_802_1X (all 5 eapMethod variants), OPEN_HTTP, HTTP_AUTHENTICATION, and RAW.", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "type": { "$ref": "#/components/schemas/network-keys.NetworkKeyType" }, "subKeyId": { "type": "integer", "description": "id of an existing HTTP_AUTHENTICATION network key this one references, if any. Applies to WPA1/WPA2, WPA3, WPA3_OWE, WPA_EAP (all 7 eapMethod variants), WPA_EAP_SCEP, and RAW. Not applicable to IEEE_802_1X, OPEN_HTTP, or HTTP_AUTHENTICATION - none of those have a subKeyId concept." }, "keyFileContent": { "type": "string", "description": "RAW only - a raw wpa_supplicant.conf-style config block. \"\" when not configured, never null. Note there's no separate ssid/bssid field even though the domain model has them - a raw config embeds the actual SSID/BSSID inline as placeholders within this text itself (e.g. \"ssid=__SSID__\"), so the separate fields would be redundant." }, "usePassphrase": { "type": "boolean", "description": "WPA1/WPA2 only - true if passphraseOrPsk is a passphrase, false if it's a raw hex PSK. WPA3 has no equivalent - it's always passphrase-based (see 'pure' instead)." }, "pure": { "type": "boolean", "description": "WPA3 only - true for \"WPA3 only\" mode, false for \"Mixed WPA3/WPA2-PSK\" mode" }, "passphraseOrPsk": { "type": "string", "description": "WPA1/WPA2/WPA3 only - masked to \"********\" when set; the actual passphrase/PSK is never returned. WPA3_OWE has no shared secret at all, so this is absent for it." }, "customFields": { "type": "array", "items": { "$ref": "#/components/schemas/network-keys.CustomFieldEntry" } }, "eapMethod": { "$ref": "#/components/schemas/network-keys.EapMethod" }, "wpaVersion": { "$ref": "#/components/schemas/network-keys.WpaVersion" }, "identity": { "type": "string", "description": "WPA_EAP or IEEE_802_1X, all eapMethod variants of either" }, "allowAny": { "type": "boolean", "description": "WPA_EAP or IEEE_802_1X, all eapMethod variants of either - Configurator's \"Allow any\" option" }, "eapolVersion": { "$ref": "#/components/schemas/network-keys.EapolVersion" }, "caCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "authenticationUrl": { "type": "string", "description": "OPEN_HTTP only - the URL the Eye authenticates against" }, "requireServerCertificateCheck": { "type": "boolean", "description": "OPEN_HTTP and HTTP_AUTHENTICATION - gates the whole certificate block: when false, caCertificate/clientCertificate/privateKey are never populated even if previously set. This is the inverse of the domain model's own \"no server certificate check\" flag." }, "postData": { "type": "string", "description": "OPEN_HTTP only - the HTTP POST body sent to authenticationUrl; \"\" when not configured, never null" }, "clientCertificateFileType": { "$ref": "#/components/schemas/network-keys.CertificateType" }, "privateKeyFileType": { "$ref": "#/components/schemas/network-keys.CertificateType" }, "targetUrl": { "type": "string", "description": "HTTP_AUTHENTICATION only - the URL the Eye authenticates against" }, "contentOnTargetUrlPage": { "type": "string", "description": "HTTP_AUTHENTICATION only - expected content on the target URL's page, used to detect whether login is already satisfied" }, "contentOnLoginPage": { "type": "string", "description": "HTTP_AUTHENTICATION only - expected content on the login page" }, "contentOnSuccessfulLogin": { "type": "string", "description": "HTTP_AUTHENTICATION only - expected content after a successful login" }, "contentOnUnSuccessfulLogin": { "type": "string", "description": "HTTP_AUTHENTICATION only - expected content after a failed login" }, "secureProtocol": { "$ref": "#/components/schemas/network-keys.SecureProtocol" }, "userAgent": { "type": "string", "description": "HTTP_AUTHENTICATION only - one of Configurator's ~100 named user agent strings (e.g. \"WINDOWS7_FIREFOX\", its own default), or \"CUSTOM_USER_AGENT\" to use customUserAgent instead" }, "customUserAgent": { "type": "string", "description": "HTTP_AUTHENTICATION only - only present when userAgent is CUSTOM_USER_AGENT; meaningless (and absent) for every other userAgent value" }, "loginPages": { "type": "array", "description": "HTTP_AUTHENTICATION only - an ordered list of login pages, each a set of form fields. Omitted entirely (not an empty array) when there are none.", "items": { "$ref": "#/components/schemas/network-keys.HttpAuthenticationPage" } }, "logoutPages": { "type": "array", "description": "HTTP_AUTHENTICATION only - same shape as loginPages, for the logout sequence", "items": { "$ref": "#/components/schemas/network-keys.HttpAuthenticationPage" } }, "scepUrl": { "type": "string", "description": "WPA_EAP_SCEP only - the SCEP server URL the Eye enrolls its client certificate against" }, "challengePassword": { "type": "string", "description": "WPA_EAP_SCEP only - masked to \"********\" when set; the actual password is never returned" }, "caFingerprint": { "type": "string", "description": "WPA_EAP_SCEP only, optional" }, "subjectName": { "type": "string", "description": "WPA_EAP_SCEP only - the certificate subject name (DN) to request" }, "subjectAltName": { "type": "string", "description": "WPA_EAP_SCEP only, optional" }, "keySize": { "$ref": "#/components/schemas/network-keys.ScepKeySize" }, "renewalThresholdPercent": { "type": "integer", "description": "WPA_EAP_SCEP only - percentage of the certificate's validity period elapsed before the Eye renews it" }, "clientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKeyFileName": { "type": "string", "description": "WPA_EAP or IEEE_802_1X (eapMethod EAP_TLS of either), OPEN_HTTP, and HTTP_AUTHENTICATION - filename only, never the key bytes themselves" }, "privateKeyPassword": { "type": "string", "description": "WPA_EAP or IEEE_802_1X, eapMethod EAP_TLS of either - masked to \"********\" when set; the actual password is never returned" }, "peapLabel": { "$ref": "#/components/schemas/network-keys.PEAPLabel" }, "peapVersion": { "$ref": "#/components/schemas/network-keys.PEAPVersion" }, "innerAuthenticationMethod": { "$ref": "#/components/schemas/network-keys.PEAPInnerAuthenticationMethod" }, "ttlsInnerAuthenticationMethod": { "$ref": "#/components/schemas/network-keys.InnerAuthenticationMethod" }, "nai": { "type": "string", "description": "WPA_EAP only, eapMethod EAP_PSK" }, "preSharedKey": { "type": "string", "description": "WPA_EAP only, eapMethod EAP_PSK - masked to \"********\" when set; the actual key is never returned" }, "tlsVersion": { "$ref": "#/components/schemas/network-keys.TlsVersion" }, "pacFileName": { "type": "string", "description": "WPA_EAP only, eapMethod EAP_FAST - filename only, the PAC file's bytes are never returned" }, "anonymousIdentity": { "type": "string", "description": "WPA_EAP, eapMethod EAP_TTLS or EAP_FAST; or IEEE_802_1X, eapMethod EAP_TTLS (IEEE_802_1X has no EAP_FAST)" }, "password": { "type": "string", "description": "WPA_EAP, eapMethod EAP_PEAP, EAP_TTLS, EAP_FAST, LEAP, or EAP_MSCHAP_V2; or IEEE_802_1X, eapMethod EAP_PEAP, EAP_TTLS, LEAP, or EAP_MSCHAP_V2 (IEEE_802_1X has no EAP_FAST) - the outer EAP password, masked to \"********\" when set; the actual password is never returned" }, "innerCaCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "innerClientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "innerPrivateKeyFileName": { "type": "string", "description": "WPA_EAP or IEEE_802_1X, eapMethod EAP_PEAP or EAP_TTLS of either with their inner method set to TLS/EAP_TLS - filename only" }, "innerPrivateKeyPassword": { "type": "string", "description": "WPA_EAP or IEEE_802_1X, eapMethod EAP_PEAP or EAP_TTLS of either with their inner method set to TLS/EAP_TLS - masked to \"********\" when set" } } }, "network-keys.NetworkKeyType": { "type": "string", "description": "Determines which other fields are meaningful on a NetworkKey/NetworkKeyRequest. Every value is now documented with request/response fields and examples.", "enum": [ "WPA1", "WPA2", "WPA3", "WPA3_OWE", "WPA_EAP", "WPA_EAP_SCEP", "IEEE_802_1X", "OPEN_HTTP", "HTTP_AUTHENTICATION", "RAW" ] }, "network-keys.CustomFieldEntry": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "GLOBAL", "NETWORK" ] }, "name": { "type": "string" }, "value": { "type": "string" } } }, "network-keys.EapMethod": { "type": "string", "description": "Determines which WPA_EAP or IEEE_802_1X request shape applies - see the request examples for each. IEEE_802_1X only supports 5 of these 7 values - EAP_PSK and EAP_FAST are WPA_EAP only.", "enum": [ "EAP_TLS", "EAP_PEAP", "EAP_TTLS", "EAP_PSK", "EAP_FAST", "LEAP", "EAP_MSCHAP_V2" ] }, "network-keys.WpaVersion": { "type": "string", "description": "The WPA generation a WPA_EAP key is used with - distinct from the top-level 'type' WPA1/WPA2/WPA3 values, which instead select a WPA-PSK request shape.", "enum": [ "WPA1", "WPA2", "WPA3" ] }, "network-keys.EapolVersion": { "type": "string", "description": "Optional on every WPA_EAP variant.", "enum": [ "EAPOL_VERSION_1", "EAPOL_VERSION_2", "EAPOL_VERSION_3" ] }, "network-keys.CertificateFile": { "type": "object", "description": "A certificate/private-key/PAC file. certificateBytes is the raw file content, base64-encoded.", "properties": { "fileName": { "type": "string" }, "certificateBytes": { "type": "string", "format": "byte" } } }, "network-keys.CertificateType": { "type": "string", "description": "OPEN_HTTP and HTTP_AUTHENTICATION only - PEM vs DER for clientCertificate/privateKey. Required whenever the corresponding certificate is provided; there's no safe default since it's a fact about the uploaded bytes, not a preference.", "enum": [ "PEM", "DER" ] }, "network-keys.SecureProtocol": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional, defaults to AUTOMATIC when omitted", "enum": [ "AUTOMATIC", "SSLv2", "SSLv3", "TLSv1", "TLSv1_1", "TLSv1_2", "PFS" ] }, "network-keys.HttpAuthenticationPage": { "type": "object", "description": "HTTP_AUTHENTICATION only - one step in a multi-step login/logout sequence. Configurator's own UI keys pages by a page number, but that number is purely a transient UI grouping aid never actually persisted - only the resulting order survives, which is why this shape is just a plain ordered list of pages with no page-number field.", "properties": { "fields": { "type": "array", "items": { "$ref": "#/components/schemas/network-keys.HttpAuthenticationField" } } } }, "network-keys.HttpAuthenticationField": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } }, "network-keys.ScepKeySize": { "type": "string", "description": "WPA_EAP_SCEP only - RSA key size for the Eye-generated keypair. Optional, defaults to RSA_2048 when omitted.", "enum": [ "RSA_2048", "RSA_3072", "RSA_4096" ] }, "network-keys.PEAPLabel": { "type": "string", "description": "EAP_PEAP only (WPA_EAP or IEEE_802_1X) - optional, defaults to CLIENT_EAP_ENCRYPTION when omitted", "enum": [ "CLIENT_EAP_ENCRYPTION", "CLIENT_PEAP_ENCRYPTION" ] }, "network-keys.PEAPVersion": { "type": "string", "description": "EAP_PEAP only (WPA_EAP or IEEE_802_1X) - optional, defaults to V0 when omitted", "enum": [ "V0", "V1" ] }, "network-keys.PEAPInnerAuthenticationMethod": { "type": "string", "description": "EAP_PEAP only (WPA_EAP or IEEE_802_1X) - the caCertificate/clientCertificate/privateKey/privateKeyPassword fields on PeapInnerAuthentication only apply when this is TLS", "enum": [ "NOT_SET", "MSCHAPV2", "TLS", "GTC", "OTP", "MD5" ] }, "network-keys.InnerAuthenticationMethod": { "type": "string", "description": "EAP_TTLS only (WPA_EAP or IEEE_802_1X) - a separate, larger enum than PEAP's own PEAPInnerAuthenticationMethod. The caCertificate/clientCertificate/privateKey/privateKeyPassword fields on TtlsInnerAuthentication only apply when this is EAP_TLS", "enum": [ "NOT_SET", "MSCHAP", "MSCHAPV2", "PAP", "CHAP", "EAP_MSCHAPV2", "EAP_TLS", "EAP_GTC", "EAP_OTP", "EAP_MD5" ] }, "network-keys.TlsVersion": { "type": "string", "description": "EAP_FAST only - optional, defaults to TLS_1_0 when omitted or explicitly ANY", "enum": [ "ANY", "TLS_1_0", "TLS_1_1", "TLS_1_2", "TLS_1_3", "TLS_1_0_AND_TLS_1_1", "TLS_1_0_AND_TLS_1_1_AND_TLS_1_2", "TLS_1_0_AND_TLS_1_1_AND_TLS_1_2_AND_TLS_1_3" ] }, "network-keys.PostNetworkKeyRequest": { "type": "object", "description": "Request shape is resolved from 'type' (and, for WPA_EAP/IEEE_802_1X, further resolved from 'eapMethod') - see their own descriptions for which values are documented. WPA_EAP_SCEP, OPEN_HTTP, and HTTP_AUTHENTICATION are top-level shapes in their own right, with no 'eapMethod'. See the request examples for concrete payloads.", "required": [ "type", "name" ], "properties": { "type": { "$ref": "#/components/schemas/network-keys.NetworkKeyType" }, "name": { "type": "string" }, "usePassphrase": { "type": "boolean", "description": "WPA1/WPA2 only - required for those types. WPA3 has no equivalent - it's always passphrase-based (see 'pure' instead). Not applicable to WPA3_OWE or WPA_EAP." }, "pure": { "type": "boolean", "description": "WPA3 only - required for that type. true for \"WPA3 only\" mode, false for \"Mixed WPA3/WPA2-PSK\" mode. Not applicable to any other type." }, "passphraseOrPsk": { "type": "string", "description": "WPA1/WPA2/WPA3 only - required for those types. Not applicable to WPA3_OWE, which has no shared secret at all, or WPA_EAP." }, "subKeyId": { "type": "integer", "description": "id of an existing HTTP_AUTHENTICATION network key to reference, if any. Applies to WPA1/WPA2/WPA3/WPA3_OWE, WPA_EAP (all 7 eapMethod variants), WPA_EAP_SCEP, and RAW below. Not applicable to IEEE_802_1X, OPEN_HTTP, or HTTP_AUTHENTICATION - none of those have a subKeyId concept." }, "customFields": { "type": "array", "items": { "$ref": "#/components/schemas/network-keys.CustomFieldEntry" } }, "eapMethod": { "$ref": "#/components/schemas/network-keys.EapMethod" }, "wpaVersion": { "$ref": "#/components/schemas/network-keys.WpaVersion" }, "identity": { "type": "string", "description": "WPA_EAP or IEEE_802_1X, all eapMethod variants of either - required" }, "allowAny": { "type": "boolean", "description": "WPA_EAP or IEEE_802_1X, all eapMethod variants of either - required" }, "eapolVersion": { "$ref": "#/components/schemas/network-keys.EapolVersion" }, "certificateProperties": { "$ref": "#/components/schemas/network-keys.CertificateProperties" }, "scepUrl": { "type": "string", "description": "WPA_EAP_SCEP only - required, must start with \"http://\" or \"https://\"" }, "challengePassword": { "type": "string", "description": "WPA_EAP_SCEP only - required" }, "caFingerprint": { "type": "string", "description": "WPA_EAP_SCEP only - optional" }, "subjectName": { "type": "string", "description": "WPA_EAP_SCEP only - required, the certificate subject name (DN) to request" }, "subjectAltName": { "type": "string", "description": "WPA_EAP_SCEP only - optional" }, "keySize": { "$ref": "#/components/schemas/network-keys.ScepKeySize" }, "renewalThresholdPercent": { "type": "integer", "description": "WPA_EAP_SCEP only - optional, defaults to 33, must be between 1 and 99" }, "password": { "type": "string", "description": "Required for WPA_EAP's EAP_PEAP, EAP_TTLS, EAP_FAST, LEAP, and EAP_MSCHAP_V2, and for IEEE_802_1X's EAP_PEAP, EAP_TTLS, LEAP, and EAP_MSCHAP_V2 (IEEE_802_1X has no EAP_FAST) - the outer EAP password. Not applicable to EAP_TLS or EAP_PSK." }, "peapLabel": { "$ref": "#/components/schemas/network-keys.PEAPLabel" }, "peapVersion": { "$ref": "#/components/schemas/network-keys.PEAPVersion" }, "caCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "innerAuthentication": { "description": "WPA_EAP or IEEE_802_1X - shape depends on eapMethod: PeapInnerAuthentication for EAP_PEAP, TtlsInnerAuthentication for EAP_TTLS. See the request examples.", "oneOf": [ { "$ref": "#/components/schemas/network-keys.PeapInnerAuthentication" }, { "$ref": "#/components/schemas/network-keys.TtlsInnerAuthentication" } ] }, "anonymousIdentity": { "type": "string", "description": "Required for WPA_EAP's EAP_TTLS and EAP_FAST, and for IEEE_802_1X's EAP_TTLS (IEEE_802_1X has no EAP_FAST)" }, "clientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "clientCertificateFileType": { "$ref": "#/components/schemas/network-keys.CertificateType" }, "privateKey": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKeyFileType": { "$ref": "#/components/schemas/network-keys.CertificateType" }, "authenticationUrl": { "type": "string", "description": "OPEN_HTTP only - required, the URL the Eye authenticates against" }, "requireServerCertificateCheck": { "type": "boolean", "description": "OPEN_HTTP and HTTP_AUTHENTICATION - required for both. A single flag that both controls whether the server's certificate is verified AND gates whether caCertificate/clientCertificate/privateKey are processed at all - matching Configurator's own single checkbox for this. This is the inverse of the domain model's own \"no server certificate check\" flag." }, "postData": { "type": "string", "description": "OPEN_HTTP only - optional; omitting it stores an empty string, matching Configurator's own behavior when its \"use HTTP POST\" checkbox is unchecked" }, "targetUrl": { "type": "string", "description": "HTTP_AUTHENTICATION only - required, the URL the Eye authenticates against" }, "contentOnTargetUrlPage": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional" }, "contentOnLoginPage": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional" }, "contentOnSuccessfulLogin": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional" }, "contentOnUnSuccessfulLogin": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional" }, "secureProtocol": { "$ref": "#/components/schemas/network-keys.SecureProtocol" }, "userAgent": { "type": "string", "description": "HTTP_AUTHENTICATION only - optional, defaults to \"WINDOWS7_FIREFOX\" when omitted. One of Configurator's ~100 named user agent strings, or \"CUSTOM_USER_AGENT\" to use customUserAgent instead." }, "customUserAgent": { "type": "string", "description": "HTTP_AUTHENTICATION only - only meaningful when userAgent is CUSTOM_USER_AGENT; Configurator forces it to \"\" for every other userAgent value, and this request does the same rather than erroring if it's supplied anyway" }, "loginPages": { "type": "array", "description": "HTTP_AUTHENTICATION only - an ordered list of login pages, each a set of form fields. Omitting this field on update leaves whatever was previously stored untouched; sending an explicit empty array clears it (the one certificate-like field on this template that CAN be cleared, since an empty array is distinguishable from an omitted field).", "items": { "$ref": "#/components/schemas/network-keys.HttpAuthenticationPage" } }, "logoutPages": { "type": "array", "description": "HTTP_AUTHENTICATION only - same shape and update/clear semantics as loginPages, for the logout sequence", "items": { "$ref": "#/components/schemas/network-keys.HttpAuthenticationPage" } }, "keyFileContent": { "type": "string", "description": "RAW only - optional; omitting it stores an empty string. A raw wpa_supplicant.conf-style config block - there's no separate ssid/bssid field even though the domain model has them, since a raw config embeds the actual SSID/BSSID inline as placeholders within this text itself (e.g. \"ssid=__SSID__\")." }, "nai": { "type": "string", "description": "WPA_EAP EAP_PSK only - required" }, "preSharedKey": { "type": "string", "description": "WPA_EAP EAP_PSK only - required, exactly 32 hex characters (a 128-bit key, not a passphrase)" }, "tlsVersion": { "$ref": "#/components/schemas/network-keys.TlsVersion" }, "pacFile": { "$ref": "#/components/schemas/network-keys.CertificateFile" } } }, "network-keys.CertificateProperties": { "type": "object", "description": "EAP_TLS only (WPA_EAP or IEEE_802_1X) - the outer \"Certificate Properties\" panel. All fields optional; omitting the whole object, or any certificate within it, on update leaves it untouched rather than clearing it.", "properties": { "caCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "clientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKey": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKeyPassword": { "type": "string" } } }, "network-keys.PeapInnerAuthentication": { "type": "object", "description": "EAP_PEAP only (WPA_EAP or IEEE_802_1X) - the \"Inner Authentication\" panel. caCertificate/clientCertificate/privateKey/privateKeyPassword only apply when method is TLS; clientCertificate is required in that case.", "properties": { "method": { "$ref": "#/components/schemas/network-keys.PEAPInnerAuthenticationMethod" }, "caCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "clientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKey": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKeyPassword": { "type": "string" } } }, "network-keys.TtlsInnerAuthentication": { "type": "object", "description": "EAP_TTLS only (WPA_EAP or IEEE_802_1X) - the \"Inner Authentication\" panel. caCertificate/clientCertificate/privateKey/privateKeyPassword only apply when method is EAP_TLS; clientCertificate is required in that case.", "properties": { "method": { "$ref": "#/components/schemas/network-keys.InnerAuthenticationMethod" }, "caCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "clientCertificate": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKey": { "$ref": "#/components/schemas/network-keys.CertificateFile" }, "privateKeyPassword": { "type": "string" } } }, "network-keys.GetNetworkKeyResponse": { "$ref": "#/components/schemas/network-keys.NetworkKey" }, "network-keys.PutNetworkKeyRequest": { "$ref": "#/components/schemas/network-keys.PostNetworkKeyRequest" }, "networks.GetAgentNetworksResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/networks.AgentNetwork" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "networks.AgentNetwork": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "isEnabled": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "networks.PostAgentNetworksRequest": { "type": "array", "items": { "$ref": "#/components/schemas/networks.AgentNetworkRequest" } }, "networks.AgentNetworkRequest": { "type": "object", "properties": { "name": { "type": "string" }, "isEnabled": { "type": "boolean" } } }, "networks.GetAgentNetworkResponse": { "$ref": "#/components/schemas/networks.AgentNetwork" }, "networks.GetSensorNetworksResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/networks.SensorNetwork" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "networks.SensorNetwork": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "displayName": { "type": "string" }, "networkKeyId": { "type": "integer" }, "contactPerson": { "type": "string" }, "allowAutomaticMacFix": { "type": "boolean" }, "randomMacs": { "type": "boolean" }, "autoUpdateApNames": { "type": "boolean" }, "ssidHidden": { "type": "boolean" }, "pmfSupportEnabled": { "type": "boolean" }, "ieee80211rClientSupportEnabled2400MHz": { "type": "boolean" }, "ieee80211rClientSupportEnabled5000MHz": { "type": "boolean" }, "ieee80211rClientSupportEnabled6000MHz": { "type": "boolean" } } }, "networks.PostSensorNetworkRequest": { "type": "object", "required": [ "name", "networkKeyId" ], "properties": { "name": { "type": "string" }, "displayName": { "type": "string" }, "networkKeyId": { "type": "integer" } } }, "networks.GetSensorNetworkResponse": { "$ref": "#/components/schemas/networks.SensorNetwork" }, "networks.PutSensorNetworkRequest": { "type": "object", "required": [ "name", "networkKeyId", "allowAutomaticMacFix", "randomMacs", "autoUpdateApNames", "ssidHidden", "pmfSupportEnabled", "ieee80211rClientSupportEnabled2400MHz", "ieee80211rClientSupportEnabled5000MHz", "ieee80211rClientSupportEnabled6000MHz" ], "properties": { "name": { "type": "string" }, "displayName": { "type": "string" }, "networkKeyId": { "type": "integer" }, "description": { "type": "string" }, "contactPerson": { "type": "string" }, "allowAutomaticMacFix": { "type": "boolean" }, "randomMacs": { "type": "boolean" }, "autoUpdateApNames": { "type": "boolean" }, "ssidHidden": { "type": "boolean" }, "pmfSupportEnabled": { "type": "boolean" }, "ieee80211rClientSupportEnabled2400MHz": { "type": "boolean" }, "ieee80211rClientSupportEnabled5000MHz": { "type": "boolean" }, "ieee80211rClientSupportEnabled6000MHz": { "type": "boolean" } } }, "on-demand-tests.ActiveTestsListResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" }, "items": { "type": "array", "description": "List of active on-demand test metadata", "items": { "$ref": "#/components/schemas/on-demand-tests.ActiveTestsItem" } } } }, "on-demand-tests.ActiveTestsItem": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier for the test" }, "testKey": { "type": "string", "description": "UUID key for the test" }, "testId": { "type": "integer", "format": "int64", "description": "Numeric test ID" }, "testType": { "type": "string", "description": "Type of the test" }, "sensorId": { "type": "integer", "description": "ID of the sensor that performed the test" }, "sensorUuid": { "type": "string", "format": "uuid", "description": "UUID of the sensor" }, "sensorName": { "type": "string", "description": "Name of the sensor" }, "orgUuid": { "type": "string", "format": "uuid", "description": "UUID of the organization" }, "apId": { "type": "integer", "description": "Access point ID" }, "band": { "type": "string", "enum": [ "2.4", "5", "6", "N/A" ], "description": "Frequency band" }, "channel": { "type": "integer", "description": "WiFi channel number" }, "gid": { "type": "integer", "description": "Group ID" }, "resultsFileS3Key": { "type": "string", "description": "S3 key for the results file" }, "runStatus": { "type": "string", "enum": [ "IN_PROGRESS", "COMPLETE", "ERROR" ], "description": "Overall run status of the test" }, "errorCode": { "type": "integer", "format": "int64", "description": "Error code if the test failed (0 means no error)" }, "errorMessage": { "type": "string", "description": "Human-readable error message if the test failed" }, "testStatus": { "type": "string", "description": "Additional indicator in case of test failures" }, "createdAt": { "type": "string", "format": "date-time", "description": "Test creation timestamp (UTC)" }, "hostname": { "type": "string", "description": "Hostname of the sensor" } } }, "on-demand-tests.PacketCaptureListResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" }, "items": { "type": "array", "description": "List of packet capture test metadata", "items": { "$ref": "#/components/schemas/on-demand-tests.PacketCaptureItem" } } } }, "on-demand-tests.PacketCaptureItem": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier for the test" }, "testKey": { "type": "string", "format": "uuid", "description": "UUID key for the test" }, "testId": { "type": "integer", "format": "int64", "description": "Numeric test ID" }, "testType": { "type": "string", "enum": [ "PacketCapture", "AccessPointTraffic" ], "description": "Type of packet capture test" }, "eyeId": { "type": "integer", "format": "int64", "description": "ID of the sensor (eye) that performed the test" }, "eyeUuid": { "type": "string", "format": "uuid", "description": "UUID of the sensor" }, "eyeName": { "type": "string", "description": "Name of the sensor" }, "orgUuid": { "type": "string", "format": "uuid", "description": "UUID of the organization" }, "apId": { "type": "integer", "description": "Access point ID" }, "ssid": { "type": "string", "description": "SSID of the access point" }, "bssid": { "type": "string", "description": "BSSID (MAC address) of the access point" }, "band": { "type": "string", "enum": [ "2.4", "5", "6", "N/A" ], "description": "Frequency band" }, "channel": { "type": "integer", "description": "WiFi channel number" }, "gid": { "type": "integer", "description": "Group ID" }, "resultsFileS3Key": { "type": "string", "description": "S3 key for the PCAP file" }, "runStatus": { "type": "string", "enum": [ "IN_PROGRESS", "COMPLETE", "ERROR" ], "description": "Overall run status of the test" }, "errorCode": { "type": "integer", "format": "int64", "description": "Error code if the test failed (0 means no error)" }, "errorMessage": { "type": "string", "description": "Human-readable error message if the test failed" }, "testStatus": { "type": "string", "description": "Additional indicator in case of test failures" }, "captureStatus": { "type": "string", "description": "Packet capture specific status indicator" }, "createdAt": { "type": "string", "format": "date-time", "description": "Test creation timestamp (UTC)" }, "hostname": { "type": "string", "description": "Hostname of the sensor" } } }, "on-demand-tests.PacketCaptureTestRequest": { "type": "object", "required": [ "mode", "captureTimeSeconds" ], "properties": { "mode": { "type": "string", "enum": [ "CHANNEL", "ACCESS_POINT" ] }, "accessPointId": { "type": "integer" }, "captureTimeSeconds": { "type": "integer" }, "captureFilter": { "type": "string" }, "band": { "type": "number", "enum": [ 2.4, 5.0, 6.0 ] }, "channel": { "type": "integer" } } }, "on-demand-tests.OnDemandTestResponse": { "type": "object", "properties": { "testId": { "type": "string" }, "status": { "type": "string", "example": "REQUESTED" } } }, "on-demand-tests.PacketCaptureTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "captureStatus": { "type": "string", "description": "Additional indicator in case of packet capture failures.", "enum": [ "SUCCESS", "CAPTURE_ERROR", "FILE_SIZE_EXCEEDED", "CHANNEL_SET_ERROR", "UNDEFINED" ] } } } ] }, "on-demand-tests.OnDemandTestStatusBase": { "type": "object", "required": [ "testId", "runStatus" ], "properties": { "testId": { "type": "string", "description": "The test ID which was used to trigger the test." }, "runStatus": { "type": "string", "description": "The overall status of the test which was triggered earlier", "enum": [ "IN_PROGRESS", "COMPLETE", "ERROR" ] }, "errorMessage": { "type": "string", "description": "The error message if any that occurred during test." }, "errorCode": { "type": "string", "description": "The error code if any that occurred during test." }, "testStatus": { "type": "string", "description": "Additional indicator in case of test failures." } } }, "on-demand-tests.PingTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "$ref": "#/components/schemas/on-demand-tests.PingTestEndpointSettings" }, "payloadSizeBytes": { "type": "integer", "default": 32, "enum": [ 32, 150, 1450, 9600, 64000 ], "description": "Ping payload size in bytes" }, "intervalMilliseconds": { "type": "integer", "default": 1000, "description": "Interval between ping packets" }, "timeoutMilliseconds": { "type": "integer", "default": 1000, "description": "Timeout for each ping request" }, "testCount": { "type": "integer", "default": 10, "description": "Number of ping requests to send" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" } } } ] }, "on-demand-tests.ActiveTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequestBase" }, { "type": "object", "required": [ "ipAddress" ], "properties": { "ipAddress": { "$ref": "#/components/schemas/on-demand-tests.IpAddressSettings" } } } ] }, "on-demand-tests.ActiveTestRequestBase": { "type": "object", "required": [ "accessPointId", "ipAddress" ], "properties": { "testType": { "type": "string", "description": "Network interface used for the test", "default": "WLAN", "enum": [ "WLAN", "Ethernet" ] }, "accessPointId": { "type": "integer", "minimum": 1, "description": "Access point ID on which the test is executed" }, "maxAttachTimeoutMilliseconds": { "type": "integer", "default": 20000, "description": "Maximum time to wait for network attach" }, "maxIpAddressWaitTimeMilliseconds": { "type": "integer", "default": 60000, "description": "Maximum time to wait for IP address assignment" }, "customMacAddress": { "type": "string", "default": "00:00:00:00:00:00", "description": "Optional custom MAC address" } } }, "on-demand-tests.IpAddressSettings": { "type": "object", "required": [ "ipProtocol" ], "description": "IP addressing configuration used during the test", "properties": { "ipProtocol": { "type": "string", "default": "IPV4", "enum": [ "IPV4", "IPV6" ] }, "useDhcp": { "type": "boolean", "default": true, "description": "Whether DHCP should be used for IP assignment" }, "localIpv4Address": { "type": "string", "example": "0.0.0.0", "description": "Static IPv4 address (when DHCP is disabled)" }, "localNetworkMask": { "type": "string", "example": "0.0.0.0", "description": "IPv4 network mask (when DHCP is disabled)" }, "gatewayIpv4Address": { "type": "string", "example": "0.0.0.0", "description": "IPv4 gateway address (when DHCP is disabled)" }, "ipv6Mode": { "type": "string", "default": "Automatic", "enum": [ "Disabled", "Automatic", "Automatic with Stable Privacy", "Automatic with Privacy Extensions (prefer public address)", "Automatic with Privacy Extensions (prefer temporary address)", "DHCPv6", "Stateless DHCPv6", "Manual" ], "description": "IPv6 configuration mode" }, "localIpv6Address": { "type": "string", "example": "::", "description": "Static IPv6 address" }, "localIpv6Prefix": { "type": "string", "example": "::", "description": "IPv6 prefix" }, "gatewayIpv6Address": { "type": "string", "example": "::", "description": "IPv6 gateway address" } } }, "on-demand-tests.PingTestEndpointSettings": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, { "type": "object", "required": [ "pingEndpointId" ], "properties": { "pingEndpointId": { "type": "integer", "minimum": 1, "description": "Identifier of the ping endpoint configuration" } } } ], "description": "Ping-specific endpoint settings (testPort is not externally configurable)" }, "on-demand-tests.TestEndpointSettings": { "type": "object", "description": "Base endpoint configuration for active tests", "properties": { "testHost": { "type": "string", "description": "Hostname or IP address of the test endpoint" }, "testPort": { "type": "integer", "description": "Port used for the test endpoint (ignored for ping tests)" }, "sonarId": { "type": "integer", "minimum": 1, "description": "Sonar ID of the endpoint" }, "resolveDNSOnSensor": { "type": "boolean", "description": "Whether DNS resolution should occur on the sensor" } } }, "on-demand-tests.QosCategoryInRequest": { "type": "object", "description": "QoS configuration for the test traffic", "properties": { "qosCategory": { "type": "string", "default": "BEST_EFFORT_0", "enum": [ "BEST_EFFORT_0", "BACKGROUND_1", "VIDEO_5", "VOICE_6" ], "description": "QoS category index used for the test (Best Effort, Background, Video, Voice)" } } }, "on-demand-tests.PingTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.PingTestResults" } } } ] }, "on-demand-tests.PingTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "pingResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.PingResultsEntry" } } } } ] }, "on-demand-tests.NetworkAttachResultsBase": { "type": "object", "properties": { "attachTimeMilliseconds": { "type": "number", "description": "Attach time in milliseconds." }, "ipRetrievalTimeMilliseconds": { "type": "number", "description": "IP retrieval time in milliseconds." }, "ipAddress": { "type": "string", "description": "IP address used for the test." }, "gatewayAddress": { "type": "string", "description": "Gateway address used for the test." } } }, "on-demand-tests.PingResultsEntry": { "type": "object", "properties": { "testNumber": { "type": "number", "description": "The test number." }, "timeMilliseconds": { "type": "number", "description": "The time taken for the test in milliseconds." }, "qosCategory": { "type": "number", "description": "The QoS category for the test." } } }, "on-demand-tests.PingGatewayTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "properties": { "payloadSizeBytes": { "type": "integer", "default": 32, "enum": [ 32, 150, 1450, 9600, 64000 ], "description": "Ping payload size in bytes" }, "intervalMilliseconds": { "type": "integer", "default": 1000, "description": "Interval between ping packets" }, "timeoutMilliseconds": { "type": "integer", "default": 1000, "description": "Timeout for each ping request" }, "testCount": { "type": "integer", "default": 10, "description": "Number of ping requests to send" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" } } } ] }, "on-demand-tests.HttpTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, "durationSeconds": { "type": "integer", "default": 2, "description": "Duration of the http download test in seconds" }, "testCount": { "type": "integer", "default": 1, "description": "Number of download tests to perform" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" }, "sonarDSCP": { "type": "integer", "default": 0, "description": "DSCP value for Sonar traffic" } } } ] }, "on-demand-tests.HttpDownloadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.HttpDownloadTestResults" } } } ] }, "on-demand-tests.HttpDownloadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "httpDownloadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.HttpResultsEntry" } } } } ] }, "on-demand-tests.HttpResultsEntry": { "type": "object", "properties": { "testNumber": { "type": "number", "description": "The test number." }, "throughputMbps": { "type": "number", "description": "The throughput achieved during the test in Mbps." }, "qosCategory": { "type": "number", "description": "The QoS category for the test." } } }, "on-demand-tests.HttpUploadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.HttpUploadTestResults" } } } ] }, "on-demand-tests.HttpUploadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "httpUploadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.HttpResultsEntry" } } } } ] }, "on-demand-tests.Iperf3TestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "type": "string", "description": "Hostname or IP address of the iperf3 server" }, "testEndpointPort": { "type": "integer", "example": 5201, "description": "Port of the iperf3 server" }, "testIntervalSeconds": { "type": "integer", "example": 1, "description": "Interval between periodic bandwidth reports" }, "testConnectTimeoutMilliseconds": { "type": "integer", "example": 2000, "description": "Connection timeout in milliseconds" }, "targetBitRateBps": { "type": "integer", "example": 1000, "description": "Target bitrate in bits per second" }, "pacingTimerMicroseconds": { "type": "integer", "example": 1000, "description": "Pacing timer in microseconds" }, "fairQueueRateBps": { "type": "integer", "example": 1, "description": "Fair queue rate in bits per second" }, "sendTimeSeconds": { "type": "integer", "example": 10, "description": "Duration of the test in seconds" }, "sendBytes": { "type": "integer", "example": 100, "description": "Total bytes to send" }, "sendBlocks": { "type": "integer", "example": 100, "description": "Number of blocks to send" }, "bufferLengthBytes": { "type": "integer", "example": 128000, "description": "Length of the buffer in bytes" }, "windowSizeBytes": { "type": "integer", "example": 1000, "description": "TCP window size in bytes" }, "congestionControl": { "type": "string", "example": "reno", "description": "TCP congestion control algorithm" }, "maxSegmentSizeBytes": { "type": "integer", "description": "Maximum TCP segment size in bytes" }, "ipTos": { "type": "integer", "example": 0, "description": "IP Type of Service (TOS). Mutually exclusive with dscp." }, "dscp": { "type": "string", "example": "10", "description": "Differentiated Services Code Point (DSCP). Mutually exclusive with ipTos." }, "omitSeconds": { "type": "integer", "example": 2, "description": "Seconds to omit from the start of the test" }, "useUDP": { "type": "boolean", "default": false, "description": "Run the test using UDP instead of TCP" }, "reverseDirection": { "type": "boolean", "default": false, "description": "Reverse the direction of the test" }, "bidirectional": { "type": "boolean", "default": false, "description": "Run bidirectional test" }, "dontFragment": { "type": "boolean", "default": false, "description": "Set the IP don't-fragment flag" }, "noDelay": { "type": "boolean", "default": false, "description": "Disable Nagle's algorithm" }, "zeroCopy": { "type": "boolean", "default": false, "description": "Use zero-copy mode" } } } ] }, "on-demand-tests.Iperf3TestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.Iperf3TestResults" } } } ] }, "on-demand-tests.Iperf3TestResults": { "type": "object", "properties": { "transferredBytes": { "type": "integer", "format": "int64", "description": "Total number of bytes transferred during the test" }, "throughputMbps": { "type": "number", "format": "double", "description": "Measured throughput in megabits per second" }, "rawIperf3Output": { "type": "object", "description": "Raw iperf3 JSON output (raw large payload)" } } }, "on-demand-tests.SpeedtestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "properties": { "testServerId": { "type": "integer", "description": "Specific Ookla speedtest server ID to use" }, "downloadConnectionRangeMin": { "type": "integer", "example": 0, "description": "Minimum number of parallel connections for download test" }, "downloadConnectionRangeMax": { "type": "integer", "example": 0, "description": "Maximum number of parallel connections for download test" }, "uploadConnectionRangeMin": { "type": "integer", "example": 0, "description": "Minimum number of parallel connections for upload test" }, "uploadConnectionRangeMax": { "type": "integer", "example": 0, "description": "Maximum number of parallel connections for upload test" } } } ] }, "on-demand-tests.SpeedtestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestResults" } } } ] }, "on-demand-tests.SpeedtestResults": { "type": "object", "properties": { "attribution": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestAttribution" }, "download": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestTransfer" }, "upload": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestTransfer" }, "ping": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestPing" }, "interface": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestInterface" }, "selectedServer": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestServerCandidate" }, "serverCandidates": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.SpeedtestServerCandidate" } } } }, "on-demand-tests.SpeedtestAttribution": { "type": "object", "properties": { "poweredBy": { "type": "string", "example": "Speedtest.net - http://speedtest.net" } } }, "on-demand-tests.SpeedtestTransfer": { "type": "object", "properties": { "throughputMbps": { "type": "number", "format": "double" }, "bytes": { "type": "integer", "format": "int64" }, "elapsedMilliseconds": { "type": "integer" }, "latencyMilliseconds": { "type": "number", "format": "double" }, "latencyLowMilliseconds": { "type": "number", "format": "double" }, "latencyHighMilliseconds": { "type": "number", "format": "double" }, "jitterMilliseconds": { "type": "number", "format": "double" }, "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time" } } }, "on-demand-tests.SpeedtestPing": { "type": "object", "properties": { "latencyMilliseconds": { "type": "number", "format": "double" }, "latencyLowMilliseconds": { "type": "number", "format": "double" }, "latencyHighMilliseconds": { "type": "number", "format": "double" }, "jitterMilliseconds": { "type": "number", "format": "double" }, "elapsedMilliseconds": { "type": "integer" }, "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time" } } }, "on-demand-tests.SpeedtestInterface": { "type": "object", "properties": { "internalIp": { "type": "string" }, "interfaceName": { "type": "string" }, "macAddress": { "type": "string" }, "isVPN": { "type": "boolean" }, "externalIp": { "type": "string" } } }, "on-demand-tests.SpeedtestServerCandidate": { "type": "object", "properties": { "id": { "type": "integer" }, "latency": { "type": "number", "format": "double" }, "name": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "integer" }, "location": { "type": "string" }, "country": { "type": "string" } } }, "on-demand-tests.TracerouteTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, "minimumTtl": { "type": "integer", "default": 1, "description": "Minimum TTL (hop count) to start the traceroute" }, "maximumTtl": { "type": "integer", "default": 255, "description": "Maximum TTL (hop count) for the traceroute" }, "queriesPerHop": { "type": "integer", "default": 5, "description": "Number of probe packets sent per hop" }, "timeoutMilliseconds": { "type": "integer", "default": 2000, "description": "Timeout in milliseconds for each probe" }, "testTimeoutSeconds": { "type": "integer", "default": 20, "description": "Overall timeout for the traceroute test" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" } } } ] }, "on-demand-tests.TracerouteTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.TracerouteTestResults" } } } ] }, "on-demand-tests.TracerouteTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "traceRouteResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.TraceRouteResultsEntry" } } } } ] }, "on-demand-tests.TraceRouteResultsEntry": { "type": "object", "properties": { "hop": { "type": "integer", "minimum": 1, "description": "Hop number" }, "ipAddress": { "type": "string", "description": "IP address of the responding hop" }, "timeMilliseconds": { "type": "array", "description": "Round-trip times in milliseconds for each probe attempt", "items": { "type": "integer" } }, "ttl": { "type": "array", "description": "TTL values used for each probe attempt", "items": { "type": "integer" } } } }, "on-demand-tests.MosTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, { "type": "object", "properties": { "direction": { "type": "string", "default": "DOWNLINK", "enum": [ "UPLINK", "DOWNLINK" ], "description": "Direction of the MOS test" }, "codec": { "type": "string", "default": "PCM_LINEAR_16", "enum": [ "PCM_LINEAR_16", "GSM" ], "description": "VOIP codec. Packet size defaults to 188 bytes for PCM_LINEAR_16 and 48 bytes for GSM." }, "fec": { "type": "string", "default": "NO_FEC", "enum": [ "NO_FEC", "GSM_PIGGYBACK_OFFSET_1", "GSM_PIGGYBACK_OFFSET_2", "GSM_PIGGYBACK_OFFSET_3" ], "description": "Forward error correction mode for the MOS stream" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" }, "sonarDSCP": { "type": "integer", "default": 0, "description": "DSCP value for Sonar traffic" }, "sender": { "$ref": "#/components/schemas/on-demand-tests.MosTestSender" }, "receiver": { "$ref": "#/components/schemas/on-demand-tests.MosTestReceiver" } } } ] }, "on-demand-tests.MosTestSender": { "type": "object", "description": "Sender configuration (no IP or port exposure)", "properties": { "packetSizeBytes": { "type": "integer", "default": 188, "description": "Packet size in bytes" }, "sendTimeSeconds": { "type": "integer", "default": 30, "description": "Total send time in seconds" }, "streamIntervalMilliseconds": { "type": "integer", "default": 20, "description": "Stream interval in milliseconds" }, "samplingIntervalSeconds": { "type": "integer", "default": 5, "description": "Sampling interval in seconds" } } }, "on-demand-tests.MosTestReceiver": { "type": "object", "description": "Receiver configuration", "properties": { "port": { "type": "integer", "default": 0, "description": "Inbound UDP port on sensor (advanced use only). Defaults to sensor default if omitted." }, "windowSizeSeconds": { "type": "integer", "default": 10, "description": "Receiver window size in seconds" }, "samplingIntervalSeconds": { "type": "integer", "default": 1, "description": "Sampling interval in seconds" }, "dejitteringBufferMilliseconds": { "type": "integer", "default": 120, "description": "Dejitter buffer size in milliseconds" }, "timeoutSeconds": { "type": "integer", "default": 30, "description": "Receiver timeout in seconds" } } }, "on-demand-tests.MosTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.MosTestResults" } } } ] }, "on-demand-tests.MosTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "voipResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.MosResultsEntry" } } } } ] }, "on-demand-tests.MosResultsEntry": { "type": "object", "description": "MOS measurement results for a sampling interval", "properties": { "mos": { "type": "number", "description": "Mean Opinion Score value" }, "elapsedSeconds": { "type": "number", "description": "Elapsed time since start of the test in seconds" }, "estimatedPacketCount": { "type": "integer", "description": "Estimated number of packets processed" }, "lossRatePercentage": { "type": "number", "description": "Packet loss rate as a percentage" }, "averageBurstSize": { "type": "number", "description": "Average burst size of lost packets" }, "averageJitterMilliseconds": { "type": "number", "description": "Average jitter in milliseconds" } } }, "on-demand-tests.UdpDownloadTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.UdpTestRequest" }, { "type": "object", "properties": { "downloadMegabytes": { "type": "string", "default": "FOUR", "enum": [ "ONE", "FOUR", "TEN", "HUNDRED", "TWOHUNDRED", "FIVEHUNDRED" ], "description": "Download payload size in megabytes" } } } ] }, "on-demand-tests.UdpTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, "packetSize": { "type": "string", "enum": [ "SMALL_PACKET_SIZE", "MEDIUM_PACKET_SIZE", "LARGE_PACKET_SIZE" ], "default": "SMALL_PACKET_SIZE", "description": "UDP payload size:\n- SMALL_PACKET_SIZE = 256 bytes\n- MEDIUM_PACKET_SIZE = 1024 bytes\n- LARGE_PACKET_SIZE = 32768 bytes" }, "testCount": { "type": "integer", "default": 1, "minimum": 1, "description": "Number of UDP throughput tests to perform" }, "senderPort": { "type": "integer", "default": 0, "description": "UDP sender port (0 = auto-assign)" }, "receiverPort": { "type": "integer", "default": 0, "description": "UDP receiver port (0 = auto-assign)" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" }, "sonarDSCP": { "type": "integer", "default": 0, "description": "DSCP value for Sonar traffic" } } } ] }, "on-demand-tests.UdpDownloadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.UdpDownloadTestResults" } } } ] }, "on-demand-tests.UdpDownloadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "udpDownloadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.UdpResultsEntry" } } } } ] }, "on-demand-tests.UdpResultsEntry": { "type": "object", "properties": { "testNumber": { "type": "number", "description": "The test number." }, "packetLoss": { "type": "integer", "description": "Number of packets lost during the test" }, "timeMilliseconds": { "type": "integer", "format": "int64", "description": "Duration of the test in milliseconds" }, "throughputMbps": { "type": "number", "description": "The throughput achieved during the test in Mbps." }, "qosCategory": { "type": "number", "description": "The QoS category for the test." } } }, "on-demand-tests.UdpUploadTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.UdpTestRequest" }, { "type": "object", "properties": { "uploadMegabytes": { "type": "string", "default": "FOUR", "enum": [ "ONE", "FOUR", "TEN", "HUNDRED", "TWOHUNDRED", "FIVEHUNDRED" ], "description": "Upload payload size in megabytes" } } } ] }, "on-demand-tests.UdpUploadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.UdpUploadTestResults" } } } ] }, "on-demand-tests.UdpUploadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "udpUploadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.UdpResultsEntry" } } } } ] }, "on-demand-tests.TcpDownloadTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.TcpTestRequest" }, { "type": "object", "properties": { "downloadMegabytes": { "type": "string", "default": "FOUR", "enum": [ "ONE", "FOUR", "TEN", "HUNDRED", "TWOHUNDRED", "FIVEHUNDRED" ], "description": "Download payload size in megabytes" } } } ] }, "on-demand-tests.TcpTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequest" }, { "type": "object", "required": [ "testEndpoint" ], "properties": { "testEndpoint": { "$ref": "#/components/schemas/on-demand-tests.TestEndpointSettings" }, "testCount": { "type": "integer", "default": 1, "minimum": 1, "description": "Number of TCP throughput tests to perform" }, "qosCategory": { "$ref": "#/components/schemas/on-demand-tests.QosCategoryInRequest" }, "sonarDSCP": { "type": "integer", "default": 0, "description": "DSCP value for Sonar traffic" } } } ] }, "on-demand-tests.TcpDownloadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.TcpDownloadTestResults" } } } ] }, "on-demand-tests.TcpDownloadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "tcpDownloadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.TcpResultsEntry" } } } } ] }, "on-demand-tests.TcpResultsEntry": { "type": "object", "properties": { "testNumber": { "type": "number", "description": "The test number." }, "timeMilliseconds": { "type": "integer", "format": "int64", "description": "Duration of the test in milliseconds" }, "throughputMbps": { "type": "number", "description": "The throughput achieved during the test in Mbps." }, "qosCategory": { "type": "number", "description": "The QoS category for the test." } } }, "on-demand-tests.TcpUploadTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.TcpTestRequest" }, { "type": "object", "properties": { "uploadMegabytes": { "type": "string", "default": "FOUR", "enum": [ "ONE", "FOUR", "TEN", "HUNDRED", "TWOHUNDRED", "FIVEHUNDRED" ], "description": "Upload payload size in megabytes" } } } ] }, "on-demand-tests.TcpUploadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.TcpUploadTestResults" } } } ] }, "on-demand-tests.TcpUploadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "udpUploadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.TcpResultsEntry" } } } } ] }, "on-demand-tests.WebDownloadTestRequest": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequestWithDns" }, { "type": "object", "properties": { "proxyServerUrl": { "type": "string", "description": "Optional proxy server URL used for the web download test", "example": "http://proxy.example.com:8080" }, "timeoutSeconds": { "type": "integer", "default": 60, "description": "Maximum duration of the web download test in seconds" }, "webServerId": { "type": "integer", "description": "Optional predefined web server identifier" }, "testHosts": { "type": "array", "description": "List of URLs or hostnames to be tested", "items": { "type": "string", "example": "www.google.com" } }, "resolveDNSOnSensor": { "type": "boolean", "default": false, "description": "Whether DNS resolution should occur on the sensor" } } } ] }, "on-demand-tests.ActiveTestRequestWithDns": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.ActiveTestRequestBase" }, { "type": "object", "required": [ "ipAddress" ], "properties": { "ipAddress": { "$ref": "#/components/schemas/on-demand-tests.IpAddressSettingsWithDns" } } } ] }, "on-demand-tests.IpAddressSettingsWithDns": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.IpAddressSettings" }, { "type": "object", "description": "IP addressing configuration with optional DNS server overrides", "properties": { "dnsIpv4Server": { "type": "string", "example": "0.0.0.0", "description": "DNS IPv4 server address to be used during the test" }, "dnsIpv6Server": { "type": "string", "example": "::", "description": "DNS IPv6 server address to be used during the test" } } } ] }, "on-demand-tests.WebDownloadTestStatusResponse": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.OnDemandTestStatusBase" }, { "type": "object", "properties": { "results": { "$ref": "#/components/schemas/on-demand-tests.WebDownloadTestResults" } } } ] }, "on-demand-tests.WebDownloadTestResults": { "allOf": [ { "$ref": "#/components/schemas/on-demand-tests.NetworkAttachResultsBase" }, { "type": "object", "properties": { "sentPackets": { "type": "integer", "format": "int64", "description": "Total number of packets sent during the test." }, "receivedPackets": { "type": "integer", "format": "int64", "description": "Total number of packets received during the test." }, "sentPacketRetransmissionCount": { "type": "integer", "format": "int64", "description": "Number of retransmitted packets on send." }, "receivedPacketRetransmissionCount": { "type": "integer", "format": "int64", "description": "Number of retransmitted packets on receive." }, "averageFrameSize": { "type": "integer", "description": "Average frame size in bytes." }, "minimumFrameSize": { "type": "integer", "description": "Minimum frame size in bytes." }, "maximumFrameSize": { "type": "integer", "description": "Maximum frame size in bytes." }, "webDownloadResults": { "type": "array", "items": { "$ref": "#/components/schemas/on-demand-tests.WebDownloadResultsEntry" } } } } ] }, "on-demand-tests.WebDownloadResultsEntry": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL that was tested." }, "status": { "type": "string", "enum": [ "successful", "unsuccessful" ], "description": "Result status for the URL." }, "timeMilliseconds": { "type": "integer", "format": "int64", "description": "Time taken to download the URL in milliseconds." } } }, "metadata.PageModelOrganization": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Organization" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.PageModelFeature": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Feature" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.Feature": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "feature": { "type": "string" }, "description": { "type": "string" } } }, "metadata.PageModelPermission": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Permission" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.PageModelRole": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Role" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.Role": { "required": [ "auth0Id" ], "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "key": { "type": "string" }, "description": { "type": "string" }, "auth0Id": { "type": "string" }, "isPublic": { "type": "boolean" } } }, "metadata.RoleResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "key": { "type": "string" }, "description": { "type": "string" }, "auth0Id": { "type": "string" }, "isPublic": { "type": "boolean" }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Permission" } } } }, "scans.AgentsScanDataResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" }, "scans": { "type": "array", "description": "Array of agent scan records grouped by timestamp", "items": { "$ref": "#/components/schemas/scans.AgentScanTimestamp" } } } }, "scans.AgentScanTimestamp": { "type": "object", "properties": { "timestamp": { "type": "integer", "format": "int64", "description": "Scan timestamp in epoch milliseconds (UTC)" }, "agentId": { "type": "string", "description": "UUID of the agent that performed the scan" }, "agentConnectedBssid": { "type": "string", "description": "BSSID of the access point the agent was connected to during the scan", "nullable": true }, "agentConnectedSsid": { "type": "string", "description": "SSID of the access point the agent was connected to during the scan", "nullable": true }, "data": { "type": "array", "description": "Access points detected in this scan", "items": { "$ref": "#/components/schemas/scans.AgentScanAp" } } } }, "scans.AgentScanAp": { "type": "object", "properties": { "bssid": { "type": "string", "description": "MAC address (BSSID) of the access point" }, "ssid": { "type": "string", "description": "SSID (network name) of the access point" }, "signalStrength": { "type": "integer", "description": "Signal strength in dBm" }, "channel": { "type": "string", "description": "WiFi channel number" }, "channelWidth": { "type": "integer", "description": "Channel width in MHz (e.g., 20, 40, 80, 160)", "nullable": true }, "band": { "type": "number", "format": "float", "description": "WiFi band frequency in GHz (2.4, 5, or 6)" }, "channelUtilization": { "type": "integer", "description": "Channel utilization percentage (0-100)", "nullable": true }, "stationCount": { "type": "integer", "description": "Number of stations/clients connected to the access point", "nullable": true }, "apName": { "type": "string", "description": "Access point name or identifier", "nullable": true }, "beaconInterval": { "type": "integer", "description": "Beacon interval in Time Units (TU), typically 100 TU = 102.4ms", "nullable": true }, "centerChannel": { "type": "integer", "description": "Center channel number for wide channels", "nullable": true }, "frequency": { "type": "integer", "description": "Operating frequency in MHz", "nullable": true }, "bssidSupportedStandards": { "type": "string", "description": "WiFi standards supported by the AP (e.g., 802.11n, 802.11ac, 802.11ax)", "nullable": true }, "lowestSupportedDataRate": { "type": "number", "format": "float", "description": "Lowest supported data rate in Mbps", "nullable": true }, "mldMacAddress": { "type": "string", "description": "Multi-Link Device MAC address (WiFi 7/802.11be)", "nullable": true }, "splitChannel": { "type": "integer", "description": "Split channel information for advanced channel configurations", "nullable": true } } }, "scans.SensorsScanDataResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/common.ZeroBasedPagination" }, "scans": { "type": "array", "description": "Array of sensor scan records grouped by timestamp", "items": { "$ref": "#/components/schemas/scans.SensorScanTimestamp" } } } }, "scans.SensorScanTimestamp": { "type": "object", "properties": { "timestamp": { "type": "integer", "format": "int64", "description": "Scan timestamp in epoch milliseconds (UTC)" }, "data": { "type": "array", "description": "Access points detected in this scan", "items": { "$ref": "#/components/schemas/scans.SensorScanAp" } } } }, "scans.SensorScanAp": { "type": "object", "properties": { "bssid": { "type": "string", "description": "MAC address (BSSID) of the access point" }, "ssid": { "type": "string", "description": "SSID (network name) of the access point" }, "signalStrength": { "type": "integer", "description": "Signal strength in dBm" }, "noise": { "type": "integer", "description": "Noise level in dBm", "nullable": true }, "channel": { "type": "string", "description": "WiFi channel number" }, "channelWidth": { "type": "integer", "description": "Channel width in MHz (e.g., 20, 40, 80, 160)", "nullable": true }, "band": { "type": "number", "format": "float", "description": "WiFi band frequency in GHz (2.4, 5, or 6)" }, "channelUtilization": { "type": "integer", "description": "Channel utilization percentage (0-100)", "nullable": true }, "stationCount": { "type": "integer", "description": "Number of stations/clients connected to the access point", "nullable": true } } }, "service-areas.GetAgentServiceAreasResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/service-areas.AgentServiceArea" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "service-areas.PostAgentServiceAreasRequest": { "type": "object", "properties": { "serviceAreas": { "type": "array", "items": { "$ref": "#/components/schemas/service-areas.AgentCreateServiceAreaRequest" } } } }, "service-areas.AgentCreateServiceAreaRequest": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" } } }, "service-areas.PutAgentServiceAreasRequest": { "type": "object", "properties": { "serviceAreas": { "type": "array", "items": { "$ref": "#/components/schemas/service-areas.AgentUpdateServiceAreaRequest" } } } }, "service-areas.AgentUpdateServiceAreaRequest": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" } } }, "service-areas.GetAgentServiceAreaResponse": { "$ref": "#/components/schemas/service-areas.AgentServiceArea" }, "service-areas.AgentSingleUpdateServiceAreaRequest": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" } } }, "service-areas.GetSensorServiceAreasResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/service-areas.SensorServiceArea" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "service-areas.SensorServiceArea": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "parentLocationId": { "type": "number" }, "parentLocationName": { "type": "string" }, "defaultServiceArea": { "type": "boolean", "description": "Whether this is the system-wide default service area" }, "autoRebalance": { "type": "boolean", "description": "Whether automatic BSSID rebalancing is enabled for this service area's Eyes" }, "otaBand": { "type": "string", "enum": [ "UNDEFINED", "BAND_2400MHZ", "BAND_5000MHZ", "BAND_6000MHZ" ], "description": "The WlanBand this service area's OTA (over-the-air) configuration applies to" }, "defaultConfigurationId": { "type": "number", "description": "id of the DefaultConfiguration applied to this service area's Eyes, if any" } } }, "service-areas.PostSensorServiceAreaRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "parentLocationId": { "type": "number", "description": "The parent Location's id this service area belongs to" }, "defaultServiceArea": { "type": "boolean", "description": "Whether this is the system-wide default service area - setting true automatically unsets any previous default (enforced server-side); omit to leave at the domain default (false)" }, "autoRebalance": { "type": "boolean", "description": "Enables automatic BSSID rebalancing for this service area's Eyes; omit to leave at the domain default (enabled for newly created service areas)" } } }, "service-areas.GetSensorServiceAreaResponse": { "$ref": "#/components/schemas/service-areas.SensorServiceArea" }, "service-areas.PutSensorServiceAreaRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "defaultServiceArea": { "type": "boolean", "description": "Whether this is the system-wide default service area - setting true automatically unsets any previous default (enforced server-side); omit to leave unchanged" }, "autoRebalance": { "type": "boolean", "description": "Enables automatic BSSID rebalancing for this service area's Eyes; omit to leave unchanged" }, "otaBand": { "type": "string", "enum": [ "UNDEFINED", "BAND_2400MHZ", "24", "24ghz", "BAND_5000MHZ", "5", "50", "5ghz", "50ghz", "BAND_6000MHZ", "6", "60", "6ghz", "60ghz" ], "description": "The WlanBand this service area's OTA (over-the-air) configuration applies to - accepts either the exact enum constant name or a friendly short form (both case-insensitive); unlike defaultServiceArea/autoRebalance above, omitting this (or sending an explicit null) resets it to UNDEFINED rather than leaving it unchanged", "example": "5ghz" }, "defaultConfigurationId": { "type": "number", "description": "id of a DefaultConfiguration to apply to this service area's Eyes (see GET /default-configurations for valid ids) - unlike defaultServiceArea/autoRebalance above, omitting this (or sending an explicit null) unsets it rather than leaving it unchanged" } } }, "service-areas.PostSensorServiceAreaSensorsRequest": { "type": "object", "properties": { "sensorIds": { "type": "array", "items": { "type": "number" }, "description": "ids of the sensors to move into this service area, from wherever they currently are" } } }, "metadata.PageModelServiceNowIntegrationConfig": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.ServiceNowIntegrationConfig" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.ServiceNowIntegrationConfig": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "serviceNowUrl": { "type": "string" }, "authTypeEnabled": { "type": "string", "enum": [ "BASIC_AUTH", "OAUTH2", "API_KEY", "NONE" ] }, "basicAuthUsername": { "type": "string" }, "oauth2ClientId": { "type": "string" }, "apiKeyHeader": { "type": "string" }, "createdBy": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganization" } } }, "metadata.AggregateReferenceOrganization": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" } } }, "metadata.ServiceNowIntegrationConfigCreateRequest": { "type": "object", "required": [ "serviceNowUrl", "authTypeEnabled", "organizationId" ], "properties": { "serviceNowUrl": { "type": "string", "minLength": 1 }, "authTypeEnabled": { "type": "string", "enum": [ "NONE", "BASIC_AUTH", "OAUTH2", "API_KEY" ] }, "basicAuthUsername": { "type": "string" }, "basicAuthPassword": { "type": "string" }, "oauth2ClientId": { "type": "string" }, "oauth2ClientSecret": { "type": "string" }, "apiKeyHeader": { "type": "string", "description": "Defaults to 'x-sn-apikey' if blank or null" }, "apiKeyKey": { "type": "string" }, "organizationId": { "type": "string", "format": "uuid" } } }, "metadata.ServiceNowIntegrationConfigWithOrgId": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "serviceNowUrl": { "type": "string" }, "authTypeEnabled": { "type": "string", "enum": [ "BASIC_AUTH", "OAUTH2", "API_KEY", "NONE" ] }, "basicAuthUsername": { "type": "string" }, "oauth2ClientId": { "type": "string" }, "apiKeyHeader": { "type": "string" }, "createdBy": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "organization": { "$ref": "#/components/schemas/metadata.AggregateReferenceOrganizationUUID" } } }, "metadata.ServiceNowIntegrationConfigUpdateRequest": { "type": "object", "required": [ "serviceNowUrl", "authTypeEnabled" ], "properties": { "serviceNowUrl": { "type": "string", "minLength": 1 }, "authTypeEnabled": { "type": "string", "enum": [ "NONE", "BASIC_AUTH", "OAUTH2", "API_KEY" ] }, "basicAuthUsername": { "type": "string" }, "basicAuthPassword": { "type": "string" }, "oauth2ClientId": { "type": "string" }, "oauth2ClientSecret": { "type": "string" }, "apiKeyHeader": { "type": "string" }, "apiKeyKey": { "type": "string" } } }, "metadata.ServiceNowIntegrationConfigPatchRequest": { "type": "object", "properties": { "serviceNowUrl": { "type": "string", "minLength": 1, "nullable": true }, "authTypeEnabled": { "type": "string", "enum": [ "NONE", "BASIC_AUTH", "OAUTH2", "API_KEY" ], "nullable": true }, "basicAuthUsername": { "type": "string", "nullable": true }, "basicAuthPassword": { "type": "string", "nullable": true }, "oauth2ClientId": { "type": "string", "nullable": true }, "oauth2ClientSecret": { "type": "string", "nullable": true }, "apiKeyHeader": { "type": "string", "nullable": true }, "apiKeyKey": { "type": "string", "nullable": true } } }, "summaries.UserSummaryResponse": { "type": "object", "properties": { "total": { "type": "integer", "format": "int64" }, "loginLast30Days": { "type": "integer", "format": "int64" }, "loginLast90Days": { "type": "integer", "format": "int64" } } }, "targets.GetSensorTargetsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/targets.SensorTarget" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "targets.SensorTarget": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "targetType": { "type": "string", "enum": [ "SONAR", "WEB_SERVER", "PING_ENDPOINT", "IPERF3_SERVER" ] }, "tcpPort": { "type": "number", "description": "Only applicable to SONAR/IPERF3_SERVER targets" }, "dnsName": { "type": "string", "description": "The URL/DNS name for this target" }, "ipV4Address": { "type": "string", "description": "Only applicable to SONAR/PING_ENDPOINT targets" }, "ipV6Address": { "type": "string", "description": "Only applicable to SONAR/PING_ENDPOINT targets" } } }, "targets.PostSensorTargetRequest": { "type": "object", "properties": { "targetType": { "type": "string", "enum": [ "SONAR", "WEB_SERVER", "PING_ENDPOINT", "IPERF3_SERVER" ], "description": "Which kind of test endpoint to create - cannot be changed after creation" }, "name": { "type": "string" }, "description": { "type": "string" }, "dnsName": { "type": "string", "description": "Required for WEB_SERVER/IPERF3_SERVER; for SONAR/PING_ENDPOINT, at least one of dnsName/ipV4Address/ipV6Address is required" }, "ipV4Address": { "type": "string" }, "ipV6Address": { "type": "string" }, "tcpPort": { "type": "number", "description": "Only applicable to SONAR (defaults to 80 if omitted) and IPERF3_SERVER (defaults to 5201 if omitted); ignored for WEB_SERVER/PING_ENDPOINT" } } }, "targets.GetSensorTargetResponse": { "$ref": "#/components/schemas/targets.SensorTarget" }, "targets.PutSensorTargetRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "dnsName": { "type": "string", "description": "Fully replaces the existing value - omitting it clears it. Required for WEB_SERVER/IPERF3_SERVER; for SONAR/PING_ENDPOINT, at least one of dnsName/ipV4Address/ipV6Address is required" }, "ipV4Address": { "type": "string", "description": "Fully replaces the existing value - omitting it clears it" }, "ipV6Address": { "type": "string", "description": "Fully replaces the existing value - omitting it clears it" }, "tcpPort": { "type": "number", "description": "Only applicable to SONAR/IPERF3_SERVER; omit to leave unchanged" } } }, "time-series.GetAgentTimeSeriesDiscreteResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesDiscrete" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesDiscrete": { "type": "object", "properties": { "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricDiscreteAggregatesType" } } } }, "time-series.MetricDiscreteAggregatesType": { "type": "object", "properties": { "metric": { "type": "string" }, "timeSeries": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.TimeSeriesDiscreteType" } } } }, "time-series.TimeSeriesDiscreteType": { "type": "object", "properties": { "ts": { "type": "number" }, "value": { "type": "string" }, "count": { "type": "number" } } }, "time-series.GetAgentTimeSeriesDiscreteGroupByResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesDiscreteGroupBy" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesDiscreteGroupBy": { "type": "object", "properties": { "deviceId": { "type": "string" }, "locationId": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "string" }, "bssid": { "type": "string" }, "target": { "type": "string" }, "platform": { "type": "string" }, "platformVersion": { "type": "string" }, "make": { "type": "string" }, "model": { "type": "string" }, "driver": { "$ref": "#/components/schemas/time-series.AgentDriverType" }, "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricDiscreteAggregatesType" } } } }, "time-series.AgentDriverType": { "type": "object", "properties": { "provider": { "type": "string" }, "version": { "type": "string" } } }, "time-series.GetAgentTimeSeriesHistogramResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesHistogram" } } } }, "time-series.AgentTimeSeriesHistogram": { "type": "object", "properties": { "timestamp": { "type": "number" }, "bins": { "$ref": "#/components/schemas/time-series.AgentBinsType" } } }, "time-series.AgentBinsType": { "type": "object", "properties": { "additionalProp1": { "type": "number" }, "additionalProp2": { "type": "number" }, "additionalProp3": { "type": "number" } } }, "time-series.GetAgentTimeSeriesNumericSummaryResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesNumericSummary" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesNumericSummary": { "type": "object", "properties": { "deviceId": { "type": "string" }, "locationId": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "string" }, "bssid": { "type": "string" }, "target": { "type": "string" }, "platform": { "type": "string" }, "platformVersion": { "type": "string" }, "make": { "type": "string" }, "model": { "type": "string" }, "driver": { "$ref": "#/components/schemas/time-series.AgentDriverType" }, "metric": { "type": "string", "enum": [ "ADJACENT_CHANNEL_INTERFERENCE", "APPLICATION_CONNECTIVITY", "BATTERY_PERCENTAGE", "BEST_NEIGHBOR_SIGNAL_STRENGTH", "BEST_NEIGHBOR_SIGNAL_STRENGTH_PREFERRED_BAND", "CHANNEL_UTILIZATION", "CLASSIC_STICKY_FACTOR", "CLIENT_COUNT", "CONGESTION", "CONNECTIVITY", "COVERAGE", "CO_CHANNEL_INTERFERENCE", "CPU_AVERAGE", "CPU_MAXIMUM", "CPU_MINIMUM", "EXPERIENCE_SCORE", "GATEWAY_PING_CONNECTIVITY", "GATEWAY_PING_LATENCY", "IDLE_TIME", "INTERFERENCE", "MOS_UPLOAD", "MOS_UPLOAD_JITTER", "MOS_UPLOAD_PACKET_LOSS", "NETWORK_CONNECTIVITY", "NOISE", "NUMBER_OF_ADJACENT_OVERLAPPING_BSSIDS", "NUMBER_OF_CLOSER_ACCESS_POINTS", "NUMBER_OF_CLOSER_ACCESS_POINTS_PREFERRED_BAND", "NUMBER_OF_CO_CHANNEL_OVERLAPPING_BSSIDS", "OVERALL_BEST_NEIGHBOR_SIGNAL_STRENGTH", "PING_CONNECTIVITY", "PING_LATENCY", "PLATFORM_AVAILABLE_MEMORY", "PLATFORM_MAX_MEMORY", "PLATFORM_TOTAL_MEMORY", "PLATFORM_USED_MEMORY", "RF_PROBLEM", "ROAMING", "SIGNAL_STRENGTH", "STICKY_FACTOR", "STICKY_FACTOR_PREFERRED_BAND", "TEST_DURATION", "THROUGHPUT_DOWNLOAD", "THROUGHPUT_DOWNLOAD_SIZE", "THROUGHPUT_UPLOAD", "THROUGHPUT_UPLOAD_SIZE", "WEB_CONNECTIVITY", "WEB_DURATION", "WEB_THROUGHPUT" ] }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "threshold": { "type": "number" }, "grade": { "type": "string", "enum": [ "A", "B", "C", "D", "F" ] }, "score": { "type": "number" } } }, "time-series.GetAgentTimeSeriesOverallNumericSummaryResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesOverallNumericSummary" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesOverallNumericSummary": { "type": "object", "properties": { "metric": { "type": "string", "enum": [ "ADJACENT_CHANNEL_INTERFERENCE", "APPLICATION_CONNECTIVITY", "BATTERY_PERCENTAGE", "BEST_NEIGHBOR_SIGNAL_STRENGTH", "BEST_NEIGHBOR_SIGNAL_STRENGTH_PREFERRED_BAND", "CHANNEL_UTILIZATION", "CLASSIC_STICKY_FACTOR", "CLIENT_COUNT", "CONGESTION", "CONNECTIVITY", "COVERAGE", "CO_CHANNEL_INTERFERENCE", "CPU_AVERAGE", "CPU_MAXIMUM", "CPU_MINIMUM", "EXPERIENCE_SCORE", "GATEWAY_PING_CONNECTIVITY", "GATEWAY_PING_LATENCY", "IDLE_TIME", "INTERFERENCE", "MOS_UPLOAD", "MOS_UPLOAD_JITTER", "MOS_UPLOAD_PACKET_LOSS", "NETWORK_CONNECTIVITY", "NOISE", "NUMBER_OF_ADJACENT_OVERLAPPING_BSSIDS", "NUMBER_OF_CLOSER_ACCESS_POINTS", "NUMBER_OF_CLOSER_ACCESS_POINTS_PREFERRED_BAND", "NUMBER_OF_CO_CHANNEL_OVERLAPPING_BSSIDS", "OVERALL_BEST_NEIGHBOR_SIGNAL_STRENGTH", "PING_CONNECTIVITY", "PING_LATENCY", "PLATFORM_AVAILABLE_MEMORY", "PLATFORM_MAX_MEMORY", "PLATFORM_TOTAL_MEMORY", "PLATFORM_USED_MEMORY", "RF_PROBLEM", "ROAMING", "SIGNAL_STRENGTH", "STICKY_FACTOR", "STICKY_FACTOR_PREFERRED_BAND", "TEST_DURATION", "THROUGHPUT_DOWNLOAD", "THROUGHPUT_DOWNLOAD_SIZE", "THROUGHPUT_UPLOAD", "THROUGHPUT_UPLOAD_SIZE", "WEB_CONNECTIVITY", "WEB_DURATION", "WEB_THROUGHPUT" ] }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "threshold": { "type": "number" }, "grade": { "type": "string", "enum": [ "A", "B", "C", "D", "F" ] }, "score": { "type": "number" } } }, "time-series.GetAgentTimeSeriesNumericResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesNumeric" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesNumeric": { "type": "object", "properties": { "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricNumericAggregatesType" } } } }, "time-series.MetricNumericAggregatesType": { "type": "object", "properties": { "metric": { "type": "string" }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "threshold": { "type": "number" }, "unit": { "type": "string" }, "timeSeries": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.TimeSeriesNumericType" } }, "grade": { "type": "string" }, "score": { "type": "number" } } }, "time-series.TimeSeriesNumericType": { "type": "object", "properties": { "ts": { "type": "number" }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "grade": { "type": "string" }, "score": { "type": "number" } } }, "time-series.GetAgentTimeSeriesNumericGroupByResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.AgentTimeSeriesNumericGroupBy" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.AgentTimeSeriesNumericGroupBy": { "type": "object", "properties": { "deviceId": { "type": "string" }, "locationId": { "type": "string" }, "network": { "type": "string" }, "band": { "type": "string" }, "bssid": { "type": "string" }, "target": { "type": "string" }, "platform": { "type": "string" }, "platformVersion": { "type": "string" }, "make": { "type": "string" }, "model": { "type": "string" }, "driver": { "$ref": "#/components/schemas/time-series.AgentDriverType" }, "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricNumericAggregatesType" } } } }, "time-series.GetAgentTimeSeriesMetricTypesResponse": { "type": "object", "description": "Map of metric identifiers to AgentMetricType objects", "additionalProperties": { "$ref": "#/components/schemas/time-series.AgentMetricType" }, "example": { "CPU_AVERAGE": { "name": "Average CPU Usage", "description": "The average CPU utilization on the system", "unit": "%" }, "CPU_MAXIMUM": { "name": "Network Latency", "description": "The maximum CPU utilization on the system", "unit": "%" } } }, "time-series.AgentMetricType": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "unit": { "type": "string" } } }, "time-series.GetSensorTimeSeriesOverallNumericSummaryResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.SensorTimeSeriesOverallNumericSummary" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.SensorTimeSeriesOverallNumericSummary": { "type": "object", "properties": { "metric": { "type": "string" }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "threshold": { "type": "number" } } }, "time-series.GetSensorTimeSeriesNumericSummaryResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.SensorTimeSeriesNumericSummary" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.SensorTimeSeriesNumericSummary": { "type": "object", "properties": { "accessPointId": { "type": "number" }, "name": { "type": "string", "description": "Name of the grouped access point. Present when grouping by accessPoint.", "example": "TENNANTS_5GHz" }, "network": { "type": "string", "description": "Network name. When grouping by accessPoint this is the ESSID the access point broadcasts; when grouping by networkband it is the configured name of the wireless network. The two are not guaranteed to be identical.", "example": "TENNANTS" }, "bssid": { "type": "string", "description": "MAC address of the grouped access point. Present when grouping by accessPoint.", "example": "8C:30:66:A0:75:69" }, "sensorId": { "type": "number" }, "locationId": { "type": "number" }, "organization": { "type": "string" }, "serviceAreaId": { "type": "number" }, "networkId": { "type": "number" }, "band": { "type": "string", "example": "5 GHz" }, "channel": { "type": "number", "description": "Channel number of the grouped access point. Present when grouping by accessPoint and the access point has a defined channel.", "example": 36 }, "clientMac": { "type": "string" }, "vendor": { "type": "string" }, "metric": { "type": "string" }, "min": { "type": "number" }, "max": { "type": "number" }, "avg": { "type": "number" }, "sum": { "type": "number" }, "count": { "type": "number" }, "threshold": { "type": "number" } } }, "time-series.GetSensorsTimeSeriesNumericResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.SensorTimeSeriesNumeric" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.SensorTimeSeriesNumeric": { "type": "object", "properties": { "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricNumericAggregatesType" } } } }, "time-series.GetSensorsTimeSeriesNumericGroupByResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.SensorTimeSeriesNumericGroupBy" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "time-series.SensorTimeSeriesNumericGroupBy": { "type": "object", "properties": { "accessPointId": { "type": "number" }, "name": { "type": "string", "description": "Name of the grouped access point. Present when grouping by accessPoint.", "example": "TENNANTS_5GHz" }, "network": { "type": "string", "description": "Network name. When grouping by accessPoint this is the ESSID the access point broadcasts; when grouping by networkband it is the configured name of the wireless network. The two are not guaranteed to be identical.", "example": "TENNANTS" }, "bssid": { "type": "string", "description": "MAC address of the grouped access point. Present when grouping by accessPoint.", "example": "8C:30:66:A0:75:69" }, "sensorId": { "type": "number" }, "locationId": { "type": "number" }, "organization": { "type": "string" }, "serviceAreaId": { "type": "number" }, "networkId": { "type": "number" }, "band": { "type": "string", "example": "5 GHz" }, "channel": { "type": "number", "description": "Channel number of the grouped access point. Present when grouping by accessPoint and the access point has a defined channel.", "example": 36 }, "clientMac": { "type": "string" }, "vendor": { "type": "string" }, "metricAggregates": { "type": "array", "items": { "$ref": "#/components/schemas/time-series.MetricNumericAggregatesType" } } } }, "time-series.GetSensorTimeSeriesMetricTypesResponse": { "type": "object", "description": "Map of metric identifiers to SensorMetricType objects", "additionalProperties": { "$ref": "#/components/schemas/time-series.SensorMetricType" }, "example": { "PING_SUCCESS_RATE": { "kpiCode": "QURT007", "name": "Ping success rate", "description": "Number of successful pings divided by the total amount of ping attempts.", "unit": "%", "aggregation": "NO" }, "BEACON_AVAILABILITY": { "kpiCode": "AV008", "name": "Beacon availability", "description": "Measures beacon signal transmission from each monitored managed AP. The KPI is the relative amount of received and expected beacons. The test is called SCAN_MANAGED. Results from SCAN_RADIO-tests are ignored.", "unit": "%", "aggregation": "NO" } } }, "time-series.SensorMetricType": { "type": "object", "properties": { "kpiCode": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "unit": { "type": "string" }, "aggregation": { "type": "string" } } }, "topologies.GetAgentTopologyLocationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/topologies.TopologyAgentLocation" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "topologies.TopologyAgentLocation": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "topologies.GetAgentTopologyLocationResponse": { "$ref": "#/components/schemas/topologies.TopologyAgentLocation" }, "topologies.GetSensorTopologyLocationsResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/topologies.TopologySensorLocation" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "topologies.TopologySensorLocation": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "parentId": { "type": "number" } } }, "topologies.GetSensorTopologyLocationResponse": { "$ref": "#/components/schemas/topologies.TopologySensorLocation" }, "topologies.GetSensorTopologyServiceAreasResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/topologies.TopologySensorServiceArea" } }, "pagination": { "$ref": "#/components/schemas/common.Pagination" } } }, "topologies.TopologySensorServiceArea": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "parentLocationId": { "type": "number" }, "parentLocationName": { "type": "string" } } }, "topologies.GetSensorTopologyServiceAreaResponse": { "$ref": "#/components/schemas/topologies.TopologySensorServiceArea" }, "metadata.PageModelUser": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.User" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.User": { "type": "object", "properties": { "role": { "$ref": "#/components/schemas/metadata.AggregateReferenceRoleUUID" }, "id": { "type": "string", "format": "uuid" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "email": { "type": "string" }, "auth0Id": { "type": "string" }, "lastLogin": { "type": "string", "format": "date-time" } } }, "metadata.AggregateReferenceRoleUUID": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } } }, "metadata.UserRequest": { "required": [ "email", "organizationId" ], "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "email": { "type": "string" }, "roleId": { "type": "string", "format": "uuid" }, "organizationId": { "type": "string", "format": "uuid" }, "permissionIds": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "permissionNames": { "type": "array", "items": { "type": "string" } } } }, "metadata.UserResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "email": { "type": "string" }, "auth0Id": { "type": "string" }, "lastLogin": { "type": "string", "format": "date-time" }, "role": { "$ref": "#/components/schemas/metadata.Role" }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Permission" } }, "organizations": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.UserOrganization" } }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.Group" } } } }, "metadata.UserOrganization": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "connectionId": { "type": "string" }, "isPrimary": { "type": "boolean" }, "mobileEyeOrgCode": { "type": "string" } } }, "metadata.UsersGroupsRequest": { "required": [ "groupIds" ], "type": "object", "properties": { "groupIds": { "type": "array", "items": { "type": "string", "format": "uuid" } } } }, "metadata.PageModelUserOrganization": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.UserOrganization" } }, "pagination": { "$ref": "#/components/schemas/metadata.Pagination" } } }, "metadata.OrganizationsUsersRequest": { "required": [ "organizations" ], "type": "object", "properties": { "organizations": { "type": "array", "items": { "$ref": "#/components/schemas/metadata.OrganizationInfo" } } } }, "metadata.OrganizationInfo": { "required": [ "organizationId" ], "type": "object", "properties": { "organizationId": { "type": "string", "format": "uuid" }, "isPrimary": { "type": "boolean" } } }, "metadata.UsersPermissionsRequest": { "type": "object", "properties": { "permissionIds": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "permissionNames": { "type": "array", "items": { "type": "string" } } } }, "metadata.UsersRoleRequest": { "required": [ "roleId" ], "type": "object", "properties": { "roleId": { "type": "string", "format": "uuid" } } } }, "securitySchemes": { "oauth2": { "type": "oauth2", "flows": { "clientCredentials": { "tokenUrl": "/oauth2/token", "scopes": {} } } } }, "parameters": { "common.OrganizationRequestParam": { "name": "organization", "in": "query", "description": "Fetch a specific organization. By default, the organization associated with your JWT token will be used.", "required": false, "schema": { "type": "string" } }, "adapter-driver-report.SearchValueParam": { "name": "searchValue", "in": "query", "description": "Filter results to adapter/driver pairs matching this search value.", "required": false, "schema": { "type": "string" } }, "common.SortFieldParam": { "name": "sortField", "in": "query", "description": "The field on which to sort the results", "required": false, "schema": { "type": "string" } }, "common.SortOrderParam": { "name": "order", "in": "query", "description": "Sort order", "required": false, "schema": { "type": "string", "enum": [ "asc", "desc" ] } }, "adapter-driver-report.PageRequestParam": { "name": "page", "in": "query", "description": "Page number to fetch (0-based). Defaults to 0.", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0 } }, "common.PerPageRequestParam": { "name": "perPage", "in": "query", "description": "Fetch a specific number of records per page", "required": false, "schema": { "type": "integer" } }, "metadata.PageRequestParam": { "name": "page", "in": "query", "description": "Fetch a particular page of data. The first page is supposed to be 1, but some endpoints mistakenly treat the first page as 0. This is a known issue and will be fixed in the next major API release.", "required": false, "schema": { "type": "integer", "minimum": 0 } }, "audits.StartTimeRangeParam": { "name": "startTimeRange", "in": "query", "description": "The start time range of the events to fetch", "required": false, "schema": { "type": "string", "format": "date-time" } }, "audits.EndTimeRangeParam": { "name": "endTimeRange", "in": "query", "description": "The end time range of the events to fetch", "required": false, "schema": { "type": "string", "format": "date-time" } }, "audits.ActorParam": { "name": "actor", "in": "query", "description": "User or system component responsible for the events", "required": false, "schema": { "type": "string" } }, "audits.ActionParam": { "name": "action", "in": "query", "description": "The action taken", "required": false, "schema": { "type": "string" } }, "audits.SourceParam": { "name": "source", "in": "query", "description": "The area of the system from which the event originated", "required": false, "schema": { "type": "string" } }, "audits.InitiatedParam": { "name": "initiated", "in": "query", "description": "How the event was initiated", "required": false, "schema": { "type": "string" } }, "common.PageRequestParam": { "name": "page", "in": "query", "description": "Fetch a particular page of data. The first page is 1.", "required": false, "schema": { "type": "integer", "minimum": 1 } }, "clients.ToRequestParam": { "name": "to", "in": "query", "description": "The time in milliseconds from the epoch up to which sensor clients are fetched (the upper bound). Defaults to the present now.", "required": false, "schema": { "type": "number", "format": "datetime" } }, "clients.FromRequestParam": { "name": "from", "in": "query", "description": "The time in milliseconds from the epoch after which sensor clients are fetched (the lower bound). Defaults to the previous 30 days. The difference between `from` and `to` is not allowed be greater than 90 days.", "required": false, "schema": { "type": "number", "format": "datetime" } }, "clients.MacRequestParam": { "name": "mac", "in": "query", "description": "Filter clients by partial MAC address (case-insensitive).", "required": false, "schema": { "type": "string" } }, "clients.VendorRequestParam": { "name": "vendor", "in": "query", "description": "Filter clients by partial vendor/OUI name (case-insensitive).", "required": false, "schema": { "type": "string" } }, "default-configurations.SensorDefaultConfigurationId": { "name": "configurationId", "in": "path", "description": "Sensor Default Configuration Id", "required": true, "schema": { "type": "number" } }, "eyes.OrganizationIdRequestParam": { "name": "organizationId", "in": "query", "description": "The ID of the organization", "required": false, "schema": { "type": "string", "format": "uuid" } }, "eyes.EyesSummaryRequestParam": { "name": "eyesType", "in": "query", "description": "Filter to just the specific resource type", "required": false, "schema": { "type": "string", "enum": [ "AGENTS", "SENSORS" ] } }, "eyes.LicenseConstraintRequestParam": { "name": "licenseConstraint", "in": "query", "description": "Filter on the the license state (licensed or not licensed)", "required": false, "schema": { "type": "string", "enum": [ "licensed", "unlicensed" ] } }, "eyes.ClientNameRequestParam": { "name": "clientName", "in": "query", "description": "Filter on the the client name", "required": false, "schema": { "type": "string" } }, "eyes.NicknameRequestParam": { "name": "nickname", "in": "query", "description": "Filter on the the nickname", "required": false, "schema": { "type": "string" } }, "eyes.PlatformRequestParam": { "name": "platform", "in": "query", "description": "Filter on the the platform (windows, linux, macos or android)", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "windows", "linux", "macos", "android" ] } } }, "eyes.LastSSIDRequestParam": { "name": "lastSsid", "in": "query", "description": "Filter on the the last SSID seen", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "eyes.LastLocationRequestParam": { "name": "lastLocation", "in": "query", "description": "Filter on the the last location name seen", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "eyes.RequiredAgentId": { "name": "agentId", "in": "path", "description": "The ID of an agent", "required": true, "schema": { "type": "string", "format": "uuid" } }, "eyes.DeleteAgentId": { "name": "agentId", "in": "path", "description": "The agent id to delete", "required": true, "schema": { "type": "string", "format": "uuid" } }, "eyes.AutoUninstall": { "name": "autoUninstall", "in": "query", "description": "Attempt to auto-uninstall the agent software from the device. Auto-uninstall is not available for Android and Linux agents.", "schema": { "type": "boolean", "default": true } }, "eyes.RequiredSensorId": { "name": "sensorId", "in": "path", "description": "The ID of a sensor", "required": true, "schema": { "type": "integer" } }, "eyes.PcapChannelRequestParam": { "name": "channel", "in": "query", "required": false, "description": "Filter by channel number", "schema": { "type": "integer" } }, "eyes.PcapApIdRequestParam": { "name": "apId", "in": "query", "required": false, "description": "Filter by access point ID", "schema": { "type": "integer" } }, "eyes.PcapBandRequestParam": { "name": "band", "in": "query", "required": false, "description": "Filter by frequency band (2.4, 5, or 6 GHz)", "schema": { "type": "string", "enum": [ "2.4", "5", "6", "all" ] } }, "eyes.PcapStartRequestParam": { "name": "start", "in": "query", "required": false, "description": "Start time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, "eyes.PcapEndRequestParam": { "name": "end", "in": "query", "required": false, "description": "End time for filtering (epoch milliseconds)", "schema": { "type": "integer", "format": "int64" } }, "eyes.PcapPageRequestParam": { "name": "page", "in": "query", "required": false, "description": "Page number (zero-based)", "schema": { "type": "integer", "default": 0 } }, "eyes.PcapSizeRequestParam": { "name": "size", "in": "query", "required": false, "description": "Page size", "schema": { "type": "integer", "default": 20 } }, "eyes.RequiredTestKey": { "name": "testKey", "in": "path", "description": "The test key (a UUID) identifying a single packet capture test result", "required": true, "schema": { "type": "string", "format": "uuid" } }, "impact.FromRequestParam": { "name": "from", "in": "query", "description": "Start time in milliseconds from the epoch.", "required": true, "schema": { "type": "integer" } }, "impact.ToRequestParam": { "name": "to", "in": "query", "description": "End time in milliseconds from the epoch.", "required": true, "schema": { "type": "integer" } }, "impact.MinImpactedMinutesParam": { "name": "minImpactedMinutes", "in": "query", "description": "Filter agents with at least this many impacted minutes.", "required": false, "schema": { "type": "integer", "format": "int64" } }, "impact.MaxImpactedMinutesParam": { "name": "maxImpactedMinutes", "in": "query", "description": "Filter agents with at most this many impacted minutes.", "required": false, "schema": { "type": "integer", "format": "int64" } }, "impact.TimezoneParam": { "name": "timezone", "in": "query", "description": "Timezone for time-series bucketing (e.g. 'America/New_York').", "required": false, "schema": { "type": "string" } }, "impact.GranularityParam": { "name": "granularity", "in": "query", "description": "Time-series granularity.", "required": false, "schema": { "type": "string", "enum": [ "HOUR", "DAY", "MONTH" ] } }, "incidents.ToRequestParam": { "name": "to", "in": "query", "description": "The time in milliseconds from the epoch up to which incidents are fetched (the upper bound). Defaults to the present now.", "required": false, "schema": { "type": "integer" } }, "incidents.FromRequestParam": { "name": "from", "in": "query", "description": "The time in milliseconds from the epoch after which incidents are fetched (the lower bound). Defaults to the present 24 hours ago. The difference between `from` and `to` is not allowed be greater than 30 days.", "required": false, "schema": { "type": "integer" } }, "alert-rules.MetricFilterParam": { "name": "metric", "in": "query", "description": "Filter the alert rules by metric name", "required": false, "schema": { "type": "string" } }, "alert-rules.EnabledFilterParam": { "name": "enabled", "in": "query", "description": "Filter the alert rules by their enabled state", "required": false, "schema": { "type": "boolean" } }, "alert-rules.NameFilterParam": { "name": "name", "in": "query", "description": "Filter the alert rules by name using a case-insensitive partial match", "required": false, "schema": { "type": "string" } }, "alert-incidents.StatusFilterParam": { "name": "status", "in": "query", "description": "Filter incidents by their status", "required": false, "schema": { "type": "string", "enum": [ "active", "resolved" ] } }, "alert-incidents.MetricFilterParam": { "name": "metric", "in": "query", "description": "Filter incidents by metric name", "required": false, "schema": { "type": "string" } }, "alert-incidents.DimensionKeyFilterParam": { "name": "dimensionKey", "in": "query", "description": "Filter incidents by dimension key", "required": false, "schema": { "type": "string" } }, "alert-incidents.RuleIdFilterParam": { "name": "ruleId", "in": "query", "description": "Filter incidents by the alert rule that produced them", "required": false, "schema": { "type": "string", "format": "uuid" } }, "alert-incidents.StartedAfterParam": { "name": "startedAfter", "in": "query", "description": "Only include incidents started at or after this epoch-millis timestamp", "required": false, "schema": { "type": "integer", "format": "int64" } }, "alert-incidents.StartedBeforeParam": { "name": "startedBefore", "in": "query", "description": "Only include incidents started at or before this epoch-millis timestamp", "required": false, "schema": { "type": "integer", "format": "int64" } }, "alert-incidents.ResolvedAfterParam": { "name": "resolvedAfter", "in": "query", "description": "Only include incidents resolved at or after this epoch-millis timestamp", "required": false, "schema": { "type": "integer", "format": "int64" } }, "alert-incidents.ResolvedBeforeParam": { "name": "resolvedBefore", "in": "query", "description": "Only include incidents resolved at or before this epoch-millis timestamp", "required": false, "schema": { "type": "integer", "format": "int64" } }, "alert-incidents.FromParam": { "name": "from", "in": "query", "description": "Start of the window (epoch millis) for the by-rule aggregation", "required": false, "schema": { "type": "integer", "format": "int64" } }, "alert-incidents.ToParam": { "name": "to", "in": "query", "description": "End of the window (epoch millis) for the by-rule aggregation", "required": false, "schema": { "type": "integer", "format": "int64" } }, "kpis.FromRequestParam": { "name": "from", "in": "query", "description": "The time in milliseconds from the epoch after which incidents are fetched (the lower bound). Defaults to the previous 24 hours.", "required": false, "schema": { "type": "number", "format": "datetime" } }, "kpis.ToRequestParam": { "name": "to", "in": "query", "description": "The time in milliseconds from the epoch up to which events are fetched (the upper bound). Defaults to the present now.", "required": false, "schema": { "type": "number", "format": "datetime" } }, "kpis.EventTypeFilter": { "name": "type", "in": "query", "description": "Filter data returned by one or more event type", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "DOWNLOAD_MOS_SCORE", "DOWNLOAD_THROUGHPUT", "GATEWAY_PING_RTT", "GATEWAY_PING_SUCCESS_RATE", "PING_RTT", "PING_SUCCESS_RATE", "ROAMING", "SIGNAL_STRENGTH", "UPLOAD_MOS_SCORE", "UPLOAD_THROUGHPUT", "WEB_DOWNLOAD_DURATION", "WEB_DOWNLOAD_SUCCESS_RATE", "ADJACENT_CHANNEL_INTERFERENCE", "CO_CHANNEL_INTERFERENCE", "RF_PROBLEM", "CONGESTION", "COVERAGE", "SEVEN_MCS" ], "default": "SEVEN_MCS" } } }, "kpis.SSIDFilter": { "name": "ssid", "in": "query", "description": "Filter data returned by one or more SSIDs", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "kpis.BandFilter": { "name": "band", "in": "query", "description": "Filter data returned by a band.", "required": false, "schema": { "type": "string", "enum": [ "2.4", "5", "6" ] } }, "kpis.IncludeClientCount": { "name": "includeClientCount", "in": "query", "description": "Deprecated: Client count will always be returned going forward.", "required": false, "schema": { "type": "boolean", "default": true }, "deprecated": true }, "kpis.LocationFilter": { "name": "location", "in": "query", "description": "Filter data returned by one or more location ids", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "kpis.ClientCapabilityType": { "name": "type", "in": "query", "description": "Filter data returned by one or more type", "required": true, "schema": { "type": "string", "enum": [ "CONNECTION", "BAND" ] } }, "kpis.OrgKpiCodes": { "name": "kpiCodes", "in": "query", "description": "Return data for one or more KPI codes. Common examples include HC005, HC006, HC007, HC008. For the full list of KPI codes, see the [Time Series Sensors Metric Types endpoint](/swagger-ui/index.html#/TimeSeries/time-series-sensors-metric-types).", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, "kpis.NetworkIdFilter": { "name": "networkId", "in": "query", "description": "Filter data returned by a network ID", "required": false, "schema": { "type": "number" } }, "kpis.ClientMac": { "name": "clientMac", "in": "query", "description": "Fetch KPIs for a specific client.", "required": false, "schema": { "type": "string" } }, "kpis.Averaging": { "name": "averaging", "in": "query", "description": "Filter data returned by a network IDs", "required": false, "schema": { "type": "string", "default": "HOUR", "enum": [ "RAW", "ONEMIN", "TENMIN", "HOUR", "DAY", "MONTH", "ALL", "NONE" ] } }, "kpis.TimeLimit": { "name": "timelimit", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "TENMINUTES", "ONEHOUR", "TWELVEHOURS", "ONEDAY", "ONEWEEK", "ONEMONTH", "THREEMONTHS" ] } }, "kpis.AccessPointId": { "name": "accessPointId", "in": "path", "description": "Fetch KPIs for a specific access point.", "required": true, "schema": { "type": "string" } }, "kpis.APKpiCodes": { "name": "kpiCodes", "in": "query", "description": "Return data for one or more KPI codes. Common examples include HC005, HC006, HC007, HC008, AV008, AC001, RA103, AC002, DN002, QURT007, QUAP008, QUAP009, QURT004, QUAP005, QUAP006, QURS004, QURS007, QURS002, TR062, DR001, DR002, DR003, DR004, DR005, DR006, DR007, DR008, DR009, DR010, DR011, DR012, DR013, DR014, DR015, DR016, DR017, DR018. For the full list of KPI codes, see the [Time Series Sensors Metric Types endpoint](/swagger-ui/index.html#/TimeSeries/time-series-sensors-metric-types).", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, "kpis.TargetId": { "name": "targetId", "in": "path", "description": "Fetch KPIs for a specific target.", "required": true, "schema": { "type": "string" } }, "kpis.LocationIdFilter": { "name": "locationId", "in": "query", "description": "Filter data returned by a location ID", "required": false, "schema": { "type": "number" } }, "kpis.KpiCodes": { "name": "kpiCodes", "in": "query", "description": "Return data for one or more KPI codes. Common examples include HC005, HC006, HC007, HC008, AV008, AC001, RA103, AC002, DN002, QURT007, QUAP008, QUAP009, QURT004, QUAP005, QUAP006, QURS004, QURS007, QURS002, TR062, DR013, DR014, DR015, DR016, DR017, DR018. For the full list of KPI codes, see the [Time Series Sensors Metric Types endpoint](/swagger-ui/index.html#/TimeSeries/time-series-sensors-metric-types).", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, "kpis.LocationId": { "name": "locationId", "in": "path", "description": "Fetch KPIs for a specific location.", "required": true, "schema": { "type": "string" } }, "kpis.SensorId": { "name": "sensorId", "in": "path", "description": "Fetch KPIs for a specific sensor.", "required": true, "schema": { "type": "string" } }, "kpis.ServiceAreaId": { "name": "serviceAreaId", "in": "path", "description": "Fetch KPIs for a specific service area.", "required": true, "schema": { "type": "string" } }, "locations.DeleteSensorLocationIds": { "name": "id", "in": "query", "description": "One or more location ids to delete", "required": true, "schema": { "type": "array", "items": { "type": "number" } } }, "locations.SensorLocationId": { "name": "locationId", "in": "path", "description": "Sensor Location Id", "required": true, "schema": { "type": "number" } }, "on-demand-tests.SensorIdFilterForRunTest": { "name": "sensorId", "in": "path", "description": "Trigger test for the sensor referenced by its id.", "required": true, "schema": { "type": "integer" } }, "on-demand-tests.SensorIdFilter": { "name": "sensorId", "in": "path", "description": "Get test status for the sensor referenced by its ID", "required": true, "schema": { "type": "integer" } }, "on-demand-tests.TestIdFilter": { "name": "testId", "in": "path", "description": "Get test status for the test referenced by its ID", "required": true, "schema": { "type": "string", "format": "uuid" } }, "scans.AgentIdRequestParam": { "name": "agentId", "in": "query", "description": "The UUID of the agent", "required": true, "schema": { "type": "string", "format": "uuid" } }, "scans.StartTimeRequestParam": { "name": "start", "in": "query", "description": "Start time for scan data in epoch milliseconds (UTC)", "required": true, "schema": { "type": "integer", "format": "int64" } }, "scans.EndTimeRequestParam": { "name": "end", "in": "query", "description": "End time for scan data in epoch milliseconds (UTC)", "required": true, "schema": { "type": "integer", "format": "int64" } }, "scans.PageRequestParam": { "name": "page", "in": "query", "description": "Page number for pagination (0-based)", "required": false, "schema": { "type": "integer", "default": 0, "minimum": 0 } }, "scans.SizeRequestParam": { "name": "size", "in": "query", "description": "Number of records per page", "required": false, "schema": { "type": "integer", "default": 20, "minimum": 1, "maximum": 1000 } }, "scans.SensorIdRequestParam": { "name": "sensorId", "in": "query", "description": "The ID of the sensor (eye)", "required": true, "schema": { "type": "integer" } }, "service-areas.DeleteAgentServiceAreaIdList": { "name": "ids", "in": "query", "description": "One or more service area ids to delete", "required": true, "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "service-areas.AgentServiceAreaId": { "name": "serviceAreaId", "in": "path", "description": "Agent Service Area Id", "required": true, "schema": { "type": "string", "format": "uuid" } }, "service-areas.SensorServiceAreaId": { "name": "serviceAreaId", "in": "path", "description": "Sensor Service Area Id", "required": true, "schema": { "type": "number" } }, "service-areas.SensorNetworkId": { "name": "networkId", "in": "path", "description": "Sensor Wireless Network Id", "required": true, "schema": { "type": "number" } }, "targets.SensorTargetId": { "name": "targetId", "in": "path", "description": "Sensor Target Id", "required": true, "schema": { "type": "number" } }, "time-series.FromRequestParam": { "name": "from", "in": "query", "description": "The time in milliseconds from the epoch after which time series are fetched (the lower bound).", "required": true, "schema": { "type": "integer" } }, "time-series.ToRequestParam": { "name": "to", "in": "query", "description": "The time in milliseconds from the epoch up to which time series are fetched (the upper bound).", "required": true, "schema": { "type": "integer" } }, "time-series.TimeBucketFilter": { "name": "timeBucket", "in": "query", "description": "Interval by which the time range will be divided", "required": true, "schema": { "type": "string", "enum": [ "1_MIN", "10_MIN", "15_MIN", "1_HOUR", "2_HOUR", "1_DAY", "1_WEEK", "1_MONTH" ] } }, "time-series.AggregateFunctionsDiscreteFilter": { "name": "aggregateFunctions", "in": "query", "description": "Filter by aggregate functions to be applied to the data.", "required": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "MODE", "COUNT" ] } } }, "time-series.MetricsDiscreteFilter": { "name": "metrics", "in": "query", "description": "Filter by metrics to be applied to the data.", "required": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "ADAPTER_STATE", "BAND", "BEST_NEIGHBOR_BSSID", "BSSID", "CHANNEL", "CONNECTION_TYPE", "LOCATION", "MLD_BSSIDS", "MLD_CHANNELS", "MLD_MAC_ADDRESS", "NETWORK", "RESTRICTED_NETWORK", "SEVEN_MCS", "TX_RATE", "VPN_CONNECTION", "WIFI_STANDARD" ] } } }, "time-series.DeviceIdsFilter": { "name": "deviceIds", "in": "query", "description": "Filter data returned by one or more device ids", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.BssidsFilter": { "name": "bssids", "in": "query", "description": "Filter data returned by one or more bssids", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.LocationsFilter": { "name": "locations", "in": "query", "description": "Filter data returned by one or more locations", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.NetworksFilter": { "name": "networks", "in": "query", "description": "Filter data returned by one or more networks", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.BandsFilter": { "name": "bands", "in": "query", "description": "Filter data returned by one or more bands", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.TargetsFilter": { "name": "targets", "in": "query", "description": "Filter data returned by one or more targets", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.PlatformsFilter": { "name": "platforms", "in": "query", "description": "Filter data returned by one or more platforms", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.PlatformVersionsFilter": { "name": "platformVersions", "in": "query", "description": "Filter data returned by one or more platform versions", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.MakesFilter": { "name": "makes", "in": "query", "description": "Filter data returned by one or more makes", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.ModelsFilter": { "name": "models", "in": "query", "description": "Filter data returned by one or more models", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.DriverProvidersFilter": { "name": "driverProviders", "in": "query", "description": "Filter data returned by one or more driver providers", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.DriverVersionsFilter": { "name": "driverVersions", "in": "query", "description": "Filter data returned by one or more driver versions", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.AgentsGroupByDimensionFilter": { "name": "groupByDimension", "in": "path", "description": "Group by dimension", "required": true, "schema": { "type": "string", "enum": [ "band", "bssid", "deviceId", "driverProvider", "driverVersion", "locationId", "make", "model", "network", "platform", "platformVersion", "target" ] } }, "time-series.MetricHistogramFilter": { "name": "metric", "in": "query", "description": "Filter by metric to be applied to the data.", "required": true, "schema": { "type": "string", "enum": [ "ADJACENT_CHANNEL_INTERFERENCE", "APPLICATION_CONNECTIVITY", "CLASSIC_STICKY_FACTOR", "CONGESTION", "CONNECTIVITY", "COVERAGE", "CO_CHANNEL_INTERFERENCE", "EXPERIENCE_SCORE", "INTERFERENCE", "NETWORK_CONNECTIVITY", "OVERALL_BEST_NEIGHBOR_SIGNAL_STRENGTH", "RF_PROBLEM", "ROAMING" ] } }, "time-series.AgentsAggregateFunctionsNumericFilter": { "name": "aggregateFunctions", "in": "query", "description": "Filter by aggregate functions to be applied to the data.", "required": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "SUM", "AVG", "GRADE", "SCORE", "MIN", "MAX", "COUNT" ] } } }, "time-series.MetricsNumericFilter": { "name": "metrics", "in": "query", "description": "Filter by metrics to be applied to the data.", "required": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "ADJACENT_CHANNEL_INTERFERENCE", "APPLICATION_CONNECTIVITY", "BATTERY_PERCENTAGE", "BEST_NEIGHBOR_SIGNAL_STRENGTH", "BEST_NEIGHBOR_SIGNAL_STRENGTH_PREFERRED_BAND", "CHANNEL_UTILIZATION", "CLASSIC_STICKY_FACTOR", "CLIENT_COUNT", "CONGESTION", "CONNECTIVITY", "COVERAGE", "CO_CHANNEL_INTERFERENCE", "CPU_AVERAGE", "CPU_MAXIMUM", "CPU_MINIMUM", "EXPERIENCE_SCORE", "GATEWAY_PING_CONNECTIVITY", "GATEWAY_PING_LATENCY", "IDLE_TIME", "INTERFERENCE", "MOS_UPLOAD", "MOS_UPLOAD_JITTER", "MOS_UPLOAD_PACKET_LOSS", "NETWORK_CONNECTIVITY", "NOISE", "NUMBER_OF_ADJACENT_OVERLAPPING_BSSIDS", "NUMBER_OF_CLOSER_ACCESS_POINTS", "NUMBER_OF_CLOSER_ACCESS_POINTS_PREFERRED_BAND", "NUMBER_OF_CO_CHANNEL_OVERLAPPING_BSSIDS", "OVERALL_BEST_NEIGHBOR_SIGNAL_STRENGTH", "PING_CONNECTIVITY", "PING_LATENCY", "PLATFORM_AVAILABLE_MEMORY", "PLATFORM_MAX_MEMORY", "PLATFORM_TOTAL_MEMORY", "PLATFORM_USED_MEMORY", "RF_PROBLEM", "ROAMING", "SIGNAL_STRENGTH", "STICKY_FACTOR", "STICKY_FACTOR_PREFERRED_BAND", "TEST_DURATION", "THROUGHPUT_DOWNLOAD", "THROUGHPUT_DOWNLOAD_SIZE", "THROUGHPUT_UPLOAD", "THROUGHPUT_UPLOAD_SIZE", "WEB_CONNECTIVITY", "WEB_DURATION", "WEB_THROUGHPUT" ] } } }, "time-series.AgentsMetricTypesFilter": { "name": "metricTypes", "in": "query", "description": "Filter data returned by one or more metric types", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "ADAPTER_STATE", "ADJACENT_CHANNEL_INTERFERENCE", "APPLICATION_CONNECTIVITY", "BAND", "BATTERY_PERCENTAGE", "BEST_NEIGHBOR_BSSID", "BEST_NEIGHBOR_SIGNAL_STRENGTH", "BEST_NEIGHBOR_SIGNAL_STRENGTH_PREFERRED_BAND", "BSSID", "CHANNEL", "CHANNEL_UTILIZATION", "CLASSIC_STICKY_FACTOR", "CLIENT_COUNT", "CONGESTION", "CONNECTION_TYPE", "CONNECTIVITY", "COVERAGE", "CO_CHANNEL_INTERFERENCE", "CPU_AVERAGE", "CPU_MAXIMUM", "CPU_MINIMUM", "MLD_BSSIDS", "MLD_CHANNELS", "MLD_MAC_ADDRESS", "DOWNLOAD_MOS_SCORE", "EXPERIENCE_SCORE", "GATEWAY_PING_CONNECTIVITY", "GATEWAY_PING_LATENCY", "IDLE_TIME", "INTERFERENCE", "LOCATION", "MOS_UPLOAD", "MOS_UPLOAD_JITTER", "MOS_UPLOAD_PACKET_LOSS", "NETWORK", "NETWORK_CONNECTIVITY", "NOISE", "NUMBER_OF_ADJACENT_OVERLAPPING_BSSIDS", "NUMBER_OF_CLOSER_ACCESS_POINTS", "NUMBER_OF_CLOSER_ACCESS_POINTS_PREFERRED_BAND", "NUMBER_OF_CO_CHANNEL_OVERLAPPING_BSSIDS", "OVERALL_BEST_NEIGHBOR_SIGNAL_STRENGTH", "PING_CONNECTIVITY", "PING_LATENCY", "PLATFORM_AVAILABLE_MEMORY", "PLATFORM_MAX_MEMORY", "PLATFORM_TOTAL_MEMORY", "PLATFORM_USED_MEMORY", "RESTRICTED_NETWORK", "RF_PROBLEM", "ROAMING", "SEVEN_MCS", "SIGNAL_STRENGTH", "STICKY_FACTOR", "STICKY_FACTOR_PREFERRED_BAND", "TEST_DURATION", "THROUGHPUT_DOWNLOAD", "THROUGHPUT_DOWNLOAD_SIZE", "THROUGHPUT_UPLOAD", "THROUGHPUT_UPLOAD_SIZE", "TX_RATE", "VPN_CONNECTION", "WEB_CONNECTIVITY", "WEB_DURATION", "WEB_THROUGHPUT", "WIFI_STANDARD" ] } } }, "time-series.SensorsTimeSeriesOrganizationRequestParam": { "name": "organization", "in": "query", "description": "Fetch a specific organization by it's group name. By default, the group associated with your JWT token will be used.", "required": false, "schema": { "type": "string" } }, "time-series.SensorsAggregateFunctionsNumericFilter": { "name": "aggregateFunctions", "in": "query", "description": "Filter by aggregate functions to be applied to the data.", "required": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "AVG", "MIN", "MAX", "COUNT", "SUM", "PCTL" ] } } }, "time-series.SensorMetricsKPIFilter": { "name": "metrics", "in": "query", "description": "Filter by metrics to be applied to the data. Common examples include HC005, HC006, HC007, HC008, AV008, AC001, RA103, AC002, DN002, QURT007, QUAP008, QUAP009, QURT004, QUAP005, QUAP006, QURS004, QURS007, QURS002, TR062, DR013, DR014, DR015, DR016, DR017, DR018. For the full list of KPI codes, see the [Time Series Sensors Metric Types endpoint](/swagger-ui/index.html#/TimeSeries/time-series-sensors-metric-types).", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.SensorLocationIdsFilter": { "name": "locations", "in": "query", "description": "Filter data returned by one or more sensor location IDs", "required": false, "schema": { "type": "array", "items": { "type": "integer" } } }, "time-series.SensorServiceAreaIdsFilter": { "name": "serviceAreas", "in": "query", "description": "Filter data returned by one or more sensor service areas IDs", "required": false, "schema": { "type": "array", "items": { "type": "integer" } } }, "time-series.SensorAccessPointIdsFilter": { "name": "accessPoints", "in": "query", "description": "Filter data returned by one or more sensor access point IDs (required when groupByDimension is 'accessPoint' or 'clientap')", "required": false, "schema": { "type": "array", "items": { "type": "integer" } } }, "time-series.SensorIdsFilter": { "name": "sensorIds", "in": "query", "description": "Filter data returned by one or more Sensor IDs", "required": false, "schema": { "type": "array", "items": { "type": "integer" } } }, "time-series.SensorNetworkIdsFilter": { "name": "networks", "in": "query", "description": "Filter data returned by one or more sensor network IDs", "required": false, "schema": { "type": "array", "items": { "type": "integer" } } }, "time-series.SensorBandFilter": { "name": "band", "in": "query", "description": "Filter data returned by a band", "required": false, "schema": { "type": "string", "enum": [ "2.4", "5", "6" ] } }, "time-series.SensorClientMacsFilter": { "name": "clients", "in": "query", "description": "Filter data returned by one or more client MAC addresses (required when groupByDimension is 'client' or 'clientap')", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.SensorVendorsFilter": { "name": "vendors", "in": "query", "description": "Filter clients by one or more vendor/OUI names (only applicable when groupByDimension is 'client' or 'clientap')", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, "time-series.SensorsGroupByDimensionFilter": { "name": "groupByDimension", "in": "path", "description": "Group by dimension", "required": true, "schema": { "type": "string", "enum": [ "locationId", "networkband", "networkbandservicearea", "serviceArea", "accessPoint", "sensor", "client", "clientap" ] } }, "time-series.SensorTimeBucketFilter": { "name": "timeBucket", "in": "query", "description": "Interval by which the time range will be divided", "required": true, "schema": { "type": "string", "enum": [ "1_MIN", "10_MIN", "1_HOUR", "1_DAY", "1_MONTH" ] } } }, "requestBodies": { "oauth2.OAuth2ClientCredentialsRequest": { "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "required": [ "grant_type", "client_id", "client_secret" ], "properties": { "grant_type": { "type": "string", "description": "OAuth2 Grant Type. Only `client_credentials` is supported.", "default": "client_credentials" }, "client_id": { "type": "string", "description": "OAuth2 client ID to identify the client", "format": "password" }, "client_secret": { "type": "string", "description": "OAuth2 client secret to authenticate the client", "format": "password" } } }, "encoding": { "scope": { "style": "spaceDelimited" } } } } } }, "responses": { "common.400BadRequestResponse": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common.ResponseStatusException" } } } }, "common.404NotFoundResponse": { "description": "Resource Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common.ResponseStatusException" } } } }, "common.403Forbidden": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common.ResponseStatusException" } } } } } } }