{ "openapi": "3.0.3", "info": { "title": "VSS Video Analytics APIs", "description": "REST API endpoints in Video Analytics API microservice", "license": { "name": "Apache 2.0", "url": "" }, "version": "3.2.0" }, "servers": [ { "url": "https://ai.nvidia.com/api/v3.2/analytics", "x-internal": false } ], "tags": [ { "name": "metrics", "description": "Endpoint(s) related to computation of key performance indicators." }, { "name": "tracker", "description": "Endpoint(s) related to tracker." }, { "name": "frames", "description": "Endpoint(s) related to frame metadata." }, { "name": "behavior", "description": "Endpoint(s) related to behavior metadata." }, { "name": "clustering", "description": "Endpoint(s) related to clustering." }, { "name": "events", "description": "Endpoint(s) related to events." }, { "name": "sensor", "description": "Endpoint(s) related to sensor." }, { "name": "config", "description": "Endpoint(s) related to config." }, { "name": "livez", "description": "Endpoint(s) used to check if server is live." } ], "paths": { "/metrics/average-speed": { "get": { "tags": [ "metrics" ], "summary": "Get Average Speed", "operationId": "controller.metrics.getAverageSpeed", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "stationaryObjectMaxTimeIntervalThresholdInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 500, "maximum": 900, "minimum": 1 } }, { "name": "stationaryObjectMinDistanceThresholdInMeters", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 5, "maximum": 10, "minimum": 1 } }, { "name": "shortLivedBehaviorMinTimeIntervalInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 3, "maximum": 10, "minimum": 1 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AverageSpeed" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/flowrate": { "get": { "tags": [ "metrics" ], "summary": "Get Flowrate", "operationId": "controller.metrics.getFlowrate", "parameters": [ { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "timeWindowSizeInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 5, "maximum": 900, "minimum": 1 } }, { "name": "flowrateUnit", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "/sec", "/min", "/hr" ] } }, { "name": "shortLivedBehaviorMinTimeIntervalInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 3, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMinDistanceThresholdInMeters", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 5, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMaxTimeIntervalThresholdInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 300, "maximum": 900, "minimum": 0 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Flowrate" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "503": { "description": "Service Unavailable. This response will be sent if behavior-analytics does not respond within the configured timeout.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/average-speed-with-flowrate": { "get": { "tags": [ "metrics" ], "summary": "Get Average Speed and Flowrate", "operationId": "controller.metrics.getAverageSpeedWithFlowrate", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "flowrateUnit", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "/sec", "/min", "/hr" ] } }, { "name": "shortLivedBehaviorMinTimeIntervalInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 3, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMinDistanceThresholdInMeters", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 5, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMaxTimeIntervalThresholdInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 300, "maximum": 900, "minimum": 0 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AverageSpeedWithFlowrate" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/average-speed-with-travel-time": { "get": { "tags": [ "metrics" ], "summary": "Get Average Speed and Travel Time", "operationId": "controller.metrics.getAverageSpeedWithTravelTime", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "corridorTravelTimeUnit", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "sec", "min", "hr" ] } }, { "name": "shortLivedBehaviorMinTimeIntervalInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 3, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMinDistanceThresholdInMeters", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 5, "maximum": 10, "minimum": 0 } }, { "name": "stationaryObjectMaxTimeIntervalThresholdInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 300, "maximum": 900, "minimum": 0 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AverageSpeedWithTravelTime" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/tripwire/counts": { "get": { "tags": [ "metrics" ], "summary": "Get effective and actual tripwire counts for a sensor.", "operationId": "controller.metrics.getTripwireCounts", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "tripwireId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "default": "Person", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TripwireCounts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/tripwire": { "get": { "tags": [ "metrics" ], "summary": "It is used to calculate occupancy based on IN/OUT tripwire events and the value of reset occupancy. It is advised to reset a place's occupancy by using '/occupancy/reset' endpoint. This helps in keeping the occupancy calculated to be accurate.", "operationId": "controller.metrics.getTripwireBasedOccupancy", "parameters": [ { "name": "timestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "example": "Person", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TripwireOccupancy" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/reset": { "post": { "tags": [ "metrics" ], "summary": "Reset the occupancy of a place", "operationId": "controller.metrics.resetOccupancy", "security": [ { "BearerAuth": [] } ], "requestBody": { "description": "Details regarding the current occupancy of a place", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OccupancyReset" } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Success" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/metrics/tripwire/histogram": { "get": { "tags": [ "metrics" ], "summary": "Get a histogram of tripwire counts. Please check the input descriptions to check its dependencies.", "operationId": "controller.metrics.getTripwireHistogram", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "tripwireId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with toTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with fromTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:10.000Z" }, { "name": "minutesAgo", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "description": "This parameter is not compatible with fromTimestamp and toTimestamp." }, { "name": "bucketCount", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 20 }, "description": "This parameter provided by user is a suggestion which will be taken into account while calculating bucket size in sec (which will be a multiple of 5). There is a possibilty that the result will have less/more buckets than the one provided in the input (i.e. it can go above 1000 buckets)." }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "example": "Person", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TripwireHistogram" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/fov": { "get": { "tags": [ "metrics" ], "summary": "Get Fov Occupancy of a sensor.", "operationId": "controller.metrics.getFovOccupancy", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FovCounts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/fov/histogram": { "get": { "tags": [ "metrics" ], "summary": "Get Fov Histogram of a sensor. Please check the input descriptions to check its dependencies.", "operationId": "controller.metrics.getFovHistogram", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with toTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with fromTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:10.000Z" }, { "name": "minutesAgo", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "description": "This parameter is not compatible with fromTimestamp and toTimestamp." }, { "name": "bucketCount", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 20 }, "description": "This parameter provided by user is a suggestion which will be taken into account while calculating bucket size in sec (which will be a multiple of 5). There is a possibilty that the result will have less/more buckets than the one provided in the input (i.e. it can go above 1000 buckets)." }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FovHistogram" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/roi": { "get": { "tags": [ "metrics" ], "summary": "Get Roi Occupancy of a sensor.", "operationId": "controller.metrics.getRoiOccupancy", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "roiId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "hazard_zone_1" }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoiCounts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/roi/histogram": { "get": { "tags": [ "metrics" ], "summary": "Get Roi Histogram of a sensor. Please check the input descriptions to check its dependencies.", "operationId": "controller.metrics.getRoiHistogram", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "roiId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "hazard_zone_1" }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with toTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with fromTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:10.000Z" }, { "name": "minutesAgo", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "description": "This parameter is not compatible with fromTimestamp and toTimestamp." }, { "name": "bucketCount", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 20 }, "description": "This parameter provided by user is a suggestion which will be taken into account while calculating bucket size in sec (which will be a multiple of 5). There is a possibilty that the result will have less/more buckets than the one provided in the input (i.e. it can go above 1000 buckets)." }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoiHistogram" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/roi/mutually-exclusive": { "get": { "tags": [ "metrics" ], "summary": "Get occupancy of a place based on mutually exclusive rois", "operationId": "controller.metrics.getOccupancyBasedOnMutuallyExclusiveRoi", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "default": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectDetails", "in": "query", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "timestampDelayInSec", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 5, "default": 3 } }, { "name": "timeWindowInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 4000, "default": 2000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OccupancyBasedOnMutuallyExclusiveRois" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/tracker": { "get": { "tags": [ "metrics" ], "summary": "Get the count of different object types at a given place and timestamp", "operationId": "controller.metrics.getOccupancyTracker", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "timestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "timeWindowInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 100, "default": 100, "maximum": 5000, "description": "Time window in milliseconds" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackerOccupancy" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/occupancy/tracker/histogram": { "get": { "tags": [ "metrics" ], "summary": "Calculates the histogram of average occupancy of each object type at a given place within a time range", "operationId": "controller.metrics.getTripwireOccupancyHistogram", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with toTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with fromTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:10.000Z" }, { "name": "minutesAgo", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "description": "This parameter is not compatible with fromTimestamp and toTimestamp." }, { "name": "bucketCount", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 20 }, "description": "This parameter provided by user is a suggestion which will be taken into account while calculating bucket size in sec (which will be a multiple of 5). There is a possibilty that the result will have less/more buckets than the one provided in the input (i.e. it can go above 1000 buckets)." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackerOccupancyHistogram" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/space-utilization/histogram": { "get": { "tags": [ "metrics" ], "summary": "Get Space Utilization Histogram of roi(s). Please check the input descriptions to check its dependencies.", "operationId": "controller.metrics.getSpaceUtilizationHistogram", "parameters": [ { "name": "roiIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "minItems": 1, "maxItems": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with toTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "description": "This parameter must be used together with fromTimestamp. However, it is not compatible with minutesAgo.", "example": "2022-08-25T00:00:10.000Z" }, { "name": "minutesAgo", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "description": "This parameter is not compatible with fromTimestamp and toTimestamp." }, { "name": "bucketCount", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 20 }, "description": "This parameter provided by user is a suggestion which will be taken into account while calculating bucket size in sec (which will be a multiple of 5). There is a possibilty that the result will have less/more buckets than the one provided in the input (i.e. it can go above 1000 buckets)." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpaceUtilizationHistogram" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/last-processed-timestamp": { "get": { "tags": [ "metrics" ], "summary": "Get Last Processed Timestamp", "operationId": "controller.metrics.getLastProcessedTimestamp", "parameters": [ { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "city=abc/building=xyz", "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "Cam1", "description": "This parameter is incompatible with place. Only one of them can exist in the query." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LastProcessedTimestamp" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/metrics/road-network/segment-speed": { "get": { "tags": [ "metrics" ], "summary": "Calculate segment speed data", "operationId": "controller.roadNetwork.averageSegmentSpeed", "description": "Calculate segment speed data", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "city=abc/intersection=xyz" }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "objectTypes", "in": "query", "required": false, "schema": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "default": [ "Vehicle" ] } }, { "name": "segmentInfo", "in": "query", "required": true, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/DetailedSegmentSpeed" }, { "$ref": "#/components/schemas/SegmentSpeed" } ] } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/tracker/unique-object-count": { "get": { "tags": [ "tracker" ], "summary": "Unique Object Count for a given Place. The data from multiple sensors are processed to estimate an approximate number of Objects / Persons in a given place", "operationId": "controller.tracker.getUniqueObjectCount", "parameters": [ { "name": "timestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-24T00:00:10.000Z" }, { "name": "timeWindowInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 86400000, "default": 100 } }, { "name": "sensorIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "minItems": 1, "maxItems": 20 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query. When objectId is present, then only one sensorId can be present in the sensorIds array.", "example": [ "Cam1", "Cam2" ] }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "101" }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorIds. Only one of them can exist in the query.", "example": "city=abc/building=xyz" } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UniqueObjectCount" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/tracker/unique-object-count-with-locations": { "get": { "tags": [ "tracker" ], "summary": "Unique Object Count with locations for a given Place. The data from multiple sensors are processed to estimate an approximate number of Objects / Persons and their locations in a given place", "operationId": "controller.tracker.getUniqueObjectCountWithLocations", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "city=abc/building=def/Warehouse=xyz" }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "timeWindowInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 3000, "minimum": 1, "maximum": 99999999 } }, { "name": "amrTimestampWindowInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 200, "minimum": 0, "maximum": 99999999 } }, { "name": "amrWithoutRtlsMinTimestampThresholdInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 2000, "minimum": 0, "maximum": 99999999 } }, { "name": "amrRouteMinTimestampThresholdInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 1000, "minimum": 0, "maximum": 99999999 } }, { "name": "amrRouteMaxTimestampThresholdInMs", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 200, "minimum": 0, "maximum": 99999999 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UniqueObjectCountWithLocations" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/tracker/unique-objects": { "get": { "tags": [ "tracker" ], "summary": "Unique Objects, represents an Object tracked across multiple sensors, Each object comprise of list of Behavior or Tracklets. The Behavior represents an object traversal/appearance etc in a given sensor with respect to time and space. Please check the input descriptions to check its dependencies.", "operationId": "controller.tracker.getUniqueObjects", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:59.000Z" }, { "name": "sensorIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "minItems": 1, "maxItems": 20 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query. When objectId is present, then only one sensorId can be present in the sensorIds array.", "example": [ "Cam1", "Cam2" ] }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "101" }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorIds and globalId. Only one of them can exist in the query.", "example": "city=abc/building=xyz" }, { "name": "globalId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorIds and place. Only one of them can exist in the query.", "example": "1" }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 25, "maximum": 100, "minimum": 1 }, "description": "This parameter is incompatible with globalId. Only one of them can exist in the query.", "example": 10 } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MTMCObjects" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/tracker/behavior-locations": { "get": { "tags": [ "tracker" ], "summary": "List of behaviors and their corresponding locations. Please check the input descriptions to check its dependencies.", "operationId": "controller.tracker.getBehaviorLocations", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-24T00:00:10.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-24T00:01:10.000Z" }, { "name": "behaviorIds", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "minItems": 1, "maxItems": 100 }, "description": "This parameter is incompatible with globalId. Only one of them can exist in the query.", "example": [ "Cam1 #-# 11", "Cam2 #-# 12" ] }, { "name": "globalId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with behaviorIds. Only one of them can exist in the query.", "example": "1" } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BehaviorLocations" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/tracker/last-record": { "get": { "tags": [ "tracker" ], "summary": "Get the last record either from RTLS or AMR(mission control) source. The record can be further filtered based on objectType that can be obtained from a particular source. Example: 'Person' objectType can be used in case of RTLS source, 'AMR' objectType can be used in case of AMR source", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "building=Warehouse" }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string", "default": "RTLS", "enum": [ "RTLS", "AMR" ] } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "default": "Person", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LastRecord" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames": { "get": { "tags": [ "frames" ], "summary": "Get raw frame metadata", "operationId": "controller.frames.getRawFrames", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "frameId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "4", "description": "This parameter is incompatible with maxResultSize, timestamp or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying frame at a particular point of time. It is incompatible with maxResultSize, frameId or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "This parameter is used for querying frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 25 }, "description": "This parameter is incompatible with timestamp or frameId. Only one of them can exist in the query." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RawFrames" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/enhanced": { "get": { "tags": [ "frames" ], "summary": "Get enhanced frame metadata", "operationId": "controller.frames.getEnhancedFrames", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "frameId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "4", "description": "This parameter is incompatible with maxResultSize, timestamp or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying enhanced frame at a particular point of time. It is incompatible with maxResultSize, frameId or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying enhanced frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "This parameter is used for querying enhanced frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 25 }, "description": "This parameter is incompatible with timestamp or frameId. Only one of them can exist in the query." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnhancedFrames" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/bev": { "get": { "tags": [ "frames" ], "summary": "Get bev frame metadata", "operationId": "controller.frames.getBevFrames", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "frameId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "4", "description": "This parameter is incompatible with maxResultSize, timestamp or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying enhanced frame at a particular point of time. It is incompatible with maxResultSize, frameId or time range params (fromTimestamp and toTimestamp). Only one of them can exist in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is used for querying enhanced frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "This parameter is used for querying enhanced frames in a time range. It is incompatible with timestamp or frameId. Only one of them can exist in the query." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 25 }, "description": "This parameter is incompatible with timestamp or frameId. Only one of them can exist in the query." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Reset": { "description": "The time when the rate limit will be reset (Unix timestamp).", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BevFrames" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Reset": { "description": "The time when the rate limit will be reset (Unix timestamp).", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Reset": { "description": "The time when the rate limit will be reset (Unix timestamp).", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current time period.", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Reset": { "description": "The time when the rate limit will be reset (Unix timestamp).", "schema": { "type": "integer", "minimum": 0, "maximum": 1000 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/alerts": { "get": { "tags": [ "frames" ], "summary": "Get frame based alerts", "operationId": "controller.frames.getAlerts", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "type", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "proximity", "restricted-area", "confined-area" ] } }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 25 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FrameAlerts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/high-confidence-objects": { "get": { "tags": [ "frames" ], "summary": "Get frame based objects with high confidence. These object detections can be used for reference embedding, based on which object search can be done. Please check the input descriptions to check its dependencies.", "operationId": "controller.frames.getHighConfidenceObjects", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with maxResultSize. Only one of them can exist in the query." }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 100, "default": 100 }, "description": "This parameter is incompatible with objectId. Only one of them can exist in the query." }, { "name": "minConfidence", "in": "query", "required": false, "schema": { "type": "number", "format": "double", "minimum": 0, "maximum": 1, "default": 0.80 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FrameObjects" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/proximity-detection": { "get": { "tags": [ "frames" ], "summary": "Get the latest proximity clusters for a given sensorId and time range.", "operationId": "controller.frames.getProximityClusters", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProximityDetectionResult" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/frames/pts": { "get": { "tags": [ "frames" ], "summary": "It is used to calculate pts in milliseconds for a given frameId. It can also be used to calculate estimated pts for a given timestamp. This endpoint is used for video files (sensors) that are streamed using nvstreamer.", "operationId": "controller.frames.getPts", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "timestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "This parameter is incompatible with frameId. Only one of them can exist in the query." }, { "name": "frameId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "example": 4, "description": "This parameter is incompatible with timestamp. Only one of them can exist in the query." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FramePts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/behavior": { "get": { "tags": [ "behavior" ], "summary": "Retrieves behavior(s) from database.", "operationId": "controller.behavior.getBehavior", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with either 'place', 'queryString' or 'maxResultSize'. It also requires 'sensorId', 'fromTimestamp' and 'toTimestamp' in the query." }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "If this parameter is present in the query, then 'objectId' should also be present in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "If this parameter is present in the query, then 'toTimestamp' should also be present in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "If this parameter is present in the query, then 'fromTimestamp' should also be present in the query." }, { "name": "queryString", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "'queryString' should follow lucene syntax." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 10000, "default": 25 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Behaviors" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/behavior/pts": { "get": { "tags": [ "behavior" ], "summary": "It is used to get the start and end pts of a behavior in milliseconds. This endpoint is used for video files (sensors) that are streamed using nvstreamer.", "operationId": "controller.behavior.getPts", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "endFrameId", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "example": 400 }, { "name": "behaviorTimeInterval", "in": "query", "required": true, "schema": { "type": "number" }, "example": 2.5 } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BehaviorPts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/alerts": { "get": { "tags": [ "alerts" ], "summary": "Get Alerts", "operationId": "controller.alerts.getAlerts", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with either 'place' or 'queryString'. It also requires 'sensorId', 'fromTimestamp' and 'toTimestamp' in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "If this parameter is present in the query, then 'toTimestamp' should also be present in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "If this parameter is present in the query, then 'fromTimestamp' should also be present in the query." }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "queryString", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "'queryString' should follow lucene syntax." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 1000, "default": 25 } }, { "name": "vlmVerified", "in": "query", "required": false, "description": "Set to true to retrieve VLM verified alerts.", "schema": { "type": "boolean", "default": false } }, { "name": "vlmVerdict", "in": "query", "required": false, "description": "Filter alerts by VLM verdict. Can only be provided when vlmVerified is true.", "schema": { "type": "string", "enum": [ "all", "confirmed", "rejected", "verification-failed", "not-confirmed" ], "default": "all" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Alerts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/alerts/severe": { "get": { "tags": [ "alerts" ], "summary": "Get Places or sensor with severe Alerts", "operationId": "controller.alerts.getSevereAlerts", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "severeAlertTypes", "in": "query", "required": false, "schema": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "default": [ "Abnormal Movement" ] } }, { "name": "vlmVerified", "in": "query", "required": false, "description": "Set to true to retrieve VLM verified alerts.", "schema": { "type": "boolean", "default": false } }, { "name": "vlmVerdict", "in": "query", "required": false, "description": "Filter alerts by VLM verdict. Can only be provided when vlmVerified is true.", "schema": { "type": "string", "enum": [ "all", "confirmed", "rejected", "verification-failed", "not-confirmed" ], "default": "all" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SevereAlerts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/incidents": { "get": { "tags": [ "incidents" ], "summary": "Get Incidents", "operationId": "controller.incidents.getIncidents", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "objectId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with either 'place' or 'queryString'. It also requires 'sensorId', 'fromTimestamp' and 'toTimestamp' in the query." }, { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z", "description": "If this parameter is present in the query, then 'toTimestamp' should also be present in the query." }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z", "description": "If this parameter is present in the query, then 'fromTimestamp' should also be present in the query." }, { "name": "category", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "queryString", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "'queryString' should follow lucene syntax." }, { "name": "vlmVerified", "in": "query", "required": false, "description": "Set to true to retrieve VLM verified incidents.", "schema": { "type": "boolean", "default": false } }, { "name": "vlmVerdict", "in": "query", "required": false, "description": "Filter incidents by VLM verdict. Can only be provided when vlmVerified is true.", "schema": { "type": "string", "enum": [ "all", "confirmed", "rejected", "verification-failed", "not-confirmed" ], "default": "all" } }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 10000, "default": 25 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Incidents" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/incidents/severe": { "get": { "tags": [ "incidents" ], "summary": "Get Places or sensor with severe Incidents", "operationId": "controller.incidents.getSevereIncidents", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "severeIncidentTypes", "in": "query", "required": false, "schema": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "default": [ "Collision Detection" ] } }, { "name": "vlmVerified", "in": "query", "required": false, "description": "Set to true to retrieve VLM verified incidents.", "schema": { "type": "boolean", "default": false } }, { "name": "vlmVerdict", "in": "query", "required": false, "description": "Filter incidents by VLM verdict. Can only be provided when vlmVerified is true.", "schema": { "type": "string", "enum": [ "all", "confirmed", "rejected", "verification-failed", "not-confirmed" ], "default": "all" } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SevereAlerts" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/clustering/behavior": { "get": { "tags": [ "clustering" ], "summary": "Get Clustering Results of behaviors belonging to a sensor.", "operationId": "controller.clustering.getClusteringResults", "parameters": [ { "name": "sensorId", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "clusterIndex", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "maxClusterSampleSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 100, "default": 100 } }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "minBehaviorDistance", "in": "query", "required": false, "schema": { "type": "number", "format": "double", "minimum": 0, "default": 30 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusteringResult" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/clustering/add-label": { "post": { "tags": [ "clustering" ], "summary": "Adds label to a behavior cluster.", "operationId": "controller.clustering.addClusterLabel", "security": [ { "BearerAuth": [] } ], "requestBody": { "description": "Details regarding the cluster and the label", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterLabel" } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Success" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/events/tripwire": { "get": { "tags": [ "events" ], "summary": "Get Tripwire Events. Please check the input descriptions to check its dependencies.", "operationId": "controller.events.getTripwireEvents", "parameters": [ { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:00.000Z" }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 }, "example": "2022-08-25T00:00:10.000Z" }, { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "tripwireId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter must be used together with sensorId and it is incompatible with place." }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 500, "default": 25 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "effective", "in": "query", "required": false, "schema": { "type": "boolean", "default": true }, "description": "This parameter is used to obtain effective/actual set of tripwire events. If effective events are being obtained, then only the latest tripwire event of each object will be retrieved." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TripwireEvents" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/events/amr": { "get": { "tags": [ "events" ], "summary": "Provides the list of events sent by mission control (AMR) which have occurred within a given timerange at a particular place", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "default": "AMR", "maxLength": 10000 } }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 25, "minimum": 0, "maximum": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AMREvents" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/events/roi": { "get": { "tags": [ "events" ], "summary": "Get Roi Events. Please check the input descriptions to check its dependencies.", "operationId": "controller.events.getRoiEvents", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "roiId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter must be used together with sensorId and it is incompatible with place." }, { "name": "fromTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "toTimestamp", "in": "query", "required": true, "schema": { "type": "string", "format": "date-time", "maxLength": 24 } }, { "name": "maxResultSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 1, "maximum": 500, "default": 25 } }, { "name": "objectType", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoiEvents" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/upload-file/{docType}": { "post": { "tags": [ "config" ], "summary": "Upload config file.", "operationId": "controller.config.uploadFile", "security": [ { "BearerAuth": [] } ], "parameters": [ { "name": "docType", "in": "path", "description": "Type of document that is being uploaded.", "required": true, "schema": { "type": "string", "enum": [ "calibration", "road-network", "usd-assets" ] } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "properties": { "configFiles": { "type": "array", "minItems": 1, "maxItems": 1, "items": { "type": "string", "description": "file to upload", "format": "binary" } } }, "required": [ "configFiles" ] } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Success" } } } }, "400": { "description": "Bad Request. This response will be sent if there are too many or no files being uploaded. It can also be sent if there is any multer error because of uploaded files in request.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/update/{docType}": { "post": { "tags": [ "config" ], "summary": "Update configs of microservices.", "operationId": "controller.config.update", "security": [ { "BearerAuth": [] } ], "parameters": [ { "name": "docType", "in": "path", "description": "Type of config that is being updated.", "required": true, "schema": { "type": "string", "enum": [ "behavior-analytics" ] } } ], "requestBody": { "description": "Updated configurations of a microservice", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigUpdate" } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigUpdateSuccess" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/config/update/status/{docType}/{referenceId}": { "get": { "tags": [ "config" ], "summary": "Get status of a behavior analytics config update request.", "operationId": "controller.config.getUpdateStatus", "security": [ { "BearerAuth": [] } ], "parameters": [ { "name": "docType", "in": "path", "description": "Type of config update request.", "required": true, "schema": { "type": "string", "enum": [ "behavior-analytics" ] } }, { "name": "referenceId", "in": "path", "description": "Reference ID returned by the config update request.", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 10000 } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigUpdateStatus" } } } }, "400": { "description": "Bad Request. This response will be sent if docType or referenceId is invalid.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/upsert": { "post": { "tags": [ "config" ], "summary": "Insert/Update calibration of sensor(s). If calibration attributes like: 'version', 'calibrationType' or 'osmURL' needs to be changed, then use '/config/upload-file/{docType}' to upload the calibration file.", "operationId": "controller.config.upsertCalibration", "security": [ { "BearerAuth": [] } ], "requestBody": { "description": "Calibration of sensor(s)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Calibration" } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Success" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/config/calibration/delete-sensor": { "post": { "tags": [ "config" ], "summary": "Delete calibration of sensor(s).", "operationId": "controller.config.deleteSensorCalibration", "security": [ { "BearerAuth": [] } ], "requestBody": { "description": "List of sensorIds", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": false, "properties": { "sensorIds": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam1" } } }, "required": [ "sensorIds" ] } } } }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalibrationDeleteSuccess" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/config/calibration": { "get": { "tags": [ "config" ], "summary": "Gets calibration config from database", "operationId": "controller.config.getCalibrationConfig", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, { "name": "emptyIfNotFound", "in": "query", "required": false, "schema": { "type": "boolean", "default": true }, "description": "If set to true, empty calibration will be returned when calibration config is not found." } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Calibration" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/last-modified-timestamp": { "get": { "tags": [ "config" ], "summary": "Gets the last modification timestamp of calibration data", "operationId": "controller.config.getCalibrationLastModifiedTimestamp", "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalibrationLastModifiedTimestamp" } } } }, "404": { "description": "No calibration data found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "400": { "description": "Bad Request", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/road-network": { "get": { "tags": [ "config" ], "summary": "Gets road network config from database", "operationId": "controller.config.getRoadNetworkConfig", "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoadNetwork" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/usd-assets": { "get": { "tags": [ "config" ], "summary": "Gets usd assets config from database", "operationId": "controller.config.getUsdAssetsConfig", "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsdAssets" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/images": { "post": { "tags": [ "config" ], "summary": "Upload calibration images.", "operationId": "controller.config.uploadCalibrationImages", "security": [ { "BearerAuth": [] } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "properties": { "images": { "type": "array", "minItems": 1, "maxItems": 20, "items": { "type": "string", "description": "image to upload", "format": "binary" } }, "imageMetadata": { "type": "array", "minItems": 1, "maxItems": 1, "items": { "type": "string", "description": "imageMetadata file", "format": "binary" } } }, "required": [ "placeImages", "imageMetadata" ] } } }, "required": true }, "responses": { "201": { "description": "Successful or Partially Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InsertImagesResponse" } } } }, "400": { "description": "Bad Request. This response will be sent if there are too many or no files being uploaded. It can also be sent if there is any multer error because of uploaded files in request.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/image": { "get": { "tags": [ "config" ], "summary": "Retrieves calibration image.", "operationId": "controller.config.getCalibrationImage", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "This parameter is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "view", "in": "query", "required": true, "schema": { "type": "string", "enum": [ "camera-view", "warped-camera-view", "plan-view" ] } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "image/png": { "schema": { "type": "string", "format": "binary" } }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } }, "image/svg+xml": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/image-metadata": { "get": { "tags": [ "config" ], "summary": "Retrieves metadata of calibration images.", "operationId": "controller.config.getCalibrationImageMetadata", "parameters": [ { "name": "sensorId", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "sensorId is an optional parameter. It is incompatible with place. Only one of them can exist in the query." }, { "name": "place", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "description": "place is an optional parameter. It is incompatible with sensorId. Only one of them can exist in the query." }, { "name": "view", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "camera-view", "warped-camera-view", "plan-view" ] } } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalibrationImageMetadata" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/config/calibration/delete-images": { "post": { "tags": [ "config" ], "summary": "Delete calibration images.", "operationId": "controller.config.deleteCalibrationImages", "security": [ { "BearerAuth": [] } ], "requestBody": { "description": "Details of calibration images to be deleted.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalibrationImagesToBeDeleted" } } }, "required": true }, "responses": { "201": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalibrationImageDeletionResponse" } } } }, "400": { "description": "Bad Request. This response will be sent if request body doesn't follow schema.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "x-codegen-request-body-name": "body" } }, "/sensor/lookup": { "get": { "tags": [ "sensor" ], "summary": "Provides the list of sensors that overlooks a co-ordinate in the floorplan of a given place", "operationId": "controller.sensor.getSensorLookup", "parameters": [ { "name": "place", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": "building=Warehouse" }, { "name": "x", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": -999999, "maximum": 999999, "example": 1 }, "description": "x co-ordinate" }, { "name": "y", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": -999999, "maximum": 999999, "example": 2 }, "description": "y co-ordinate" }, { "name": "z", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64", "default": 0, "minimum": -999999, "maximum": 999999, "example": 4 }, "description": "z co-ordinate" } ], "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SensorLookup" } } } }, "400": { "description": "Bad Request. This response will be sent if any of the required params are not present or if extra params are passed. It will also be sent if parameter dependencies (mentioned in parameter descriptions) are not satisfied.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Resource Not Found", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/livez": { "get": { "tags": [ "livez" ], "summary": "Responds if api server is alive.", "operationId": "controller.livez.isAlive", "responses": { "200": { "description": "Successful Operation.", "headers": { "Access-Control-Allow-Origin": { "$ref": "#/components/headers/Access-Control-Allow-Origin" }, "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IsAlive" } } } } } } } }, "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer" } }, "headers": { "Access-Control-Allow-Origin": { "description": "CORS header to allow cross-origin requests.", "schema": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "X-RateLimit-Limit": { "description": "The maximum number of requests allowed in the current time period.", "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Remaining": { "description": "The number of requests remaining in the current time period.", "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 1000 } }, "X-RateLimit-Reset": { "description": "The time when the rate limit will be reset (Unix timestamp).", "schema": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 1000 } } }, "schemas": { "AverageSpeed": { "type": "object", "additionalProperties": false, "properties": { "metrics": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "averageSpeed": { "type": "string", "example": "10", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "required": [ "direction", "averageSpeed" ] } } }, "required": [ "metrics" ] }, "AverageSpeedWithTravelTime": { "type": "object", "additionalProperties": false, "properties": { "metrics": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "averageSpeed": { "type": "string", "example": "10", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "travelTime": { "type": "string", "example": "12", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "required": [ "direction", "averageSpeed", "travelTime" ] } } }, "required": [ "metrics" ] }, "Flowrate": { "type": "object", "additionalProperties": false, "properties": { "metrics": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "flowrate": { "type": "string", "example": "10", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "required": [ "direction", "flowrate" ] } } }, "required": [ "metrics" ] }, "AverageSpeedWithFlowrate": { "type": "object", "additionalProperties": false, "properties": { "metrics": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "averageSpeed": { "type": "string", "example": "10", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "flowrate": { "type": "string", "example": "12", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "required": [ "direction", "averageSpeed", "flowrate" ] } } }, "required": [ "metrics" ] }, "BehaviorLocations": { "type": "object", "additionalProperties": false, "properties": { "behaviors": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "Id": { "type": "string", "example": "logstash generated Id", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "id": { "type": "string", "example": "Cam1 #-# 11", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "locations": { "$ref": "#/components/schemas/Locations" }, "smoothLocations": { "$ref": "#/components/schemas/Locations" }, "length": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 100000 }, "speedOverTime": { "type": "array", "maxItems": 10000, "items": { "type": "number", "format": "double", "minimum": -100000, "maximum": 100000 }, "example": [ 2.1, 3.2 ] }, "speed": { "type": "number", "format": "double", "minimum": -100000, "maximum": 100000 }, "timeInterval": { "type": "number", "format": "float", "example": 30, "minimum": -100000, "maximum": 100000 }, "distance": { "type": "number", "format": "double", "minimum": -100000, "maximum": 100000 }, "bearing": { "type": "number", "format": "double", "minimum": -100000, "maximum": 100000 }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:30.000Z" } }, "required": [ "id", "locations", "smoothLocations", "speedOverTime", "speed", "timeInterval", "length", "distance", "bearing", "timestamp", "end" ] } } }, "required": [ "behaviors" ] }, "Behavior": { "type": "object", "additionalProperties": false, "properties": { "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "Id": { "type": "string", "example": "logstash generated Id", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "id": { "type": "string", "example": "Cam1 #-# 11", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timeInterval": { "type": "number", "format": "float", "example": 30, "minimum": 0, "maximum": 10000 }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:30.000Z" }, "locations": { "$ref": "#/components/schemas/Locations" }, "smoothLocations": { "$ref": "#/components/schemas/Locations" }, "length": { "type": "integer", "format": "int64", "minimum": -10000, "maximum": 10000 }, "speedOverTime": { "type": "array", "maxItems": 10000, "items": { "type": "number", "format": "double", "minimum": -100000, "maximum": 100000 }, "example": [ 2.1, 3.2 ] }, "sensor": { "$ref": "#/components/schemas/Sensor" }, "place": { "$ref": "#/components/schemas/Place" }, "event": { "$ref": "#/components/schemas/Event" }, "object": { "$ref": "#/components/schemas/Object" }, "edges": { "type": "array", "minItems": 0, "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" } }, "analyticsModule": { "$ref": "#/components/schemas/AnalyticsModule" }, "direction": { "type": "string", "enum": [ "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", "Right", "Left", "Up", "Down" ] }, "speed": { "type": "number", "format": "double" }, "distance": { "type": "number", "format": "double" }, "bearing": { "type": "number", "format": "double" }, "videoPath": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "path_to_video" } }, "required": [ "timestamp", "Id", "id", "timeInterval", "end", "locations", "length", "speedOverTime", "sensor", "place", "object", "direction", "speed", "distance", "bearing", "videoPath" ] }, "AnalyticsModule": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "description": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "description" }, "version": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "example1" }, "source": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "source1" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } } }, "Locations": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "linestring" ], "description": "Type of Geoshape" }, "coordinates": { "type": "array", "maxItems": 100000, "items": { "type": "array", "minItems": 2, "maxItems": 100000, "items": { "type": "number", "format": "double", "example": 1 } } } }, "required": [ "type", "coordinates" ] }, "Place": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=abc/building=def/Warehouse=xyz" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "name" ] }, "Event": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "ENTRY", "description": "Allowed values for tripwire events: 'IN', 'OUT'. Allowed values for roi events: 'ENTRY', 'EXIT'." }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "id", "type" ] }, "Object": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "location": { "type": "object", "additionalProperties": false, "properties": { "lon": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 7.5 }, "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 2.6 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000, "example": 9.47 } }, "required": [ "lon", "lat", "alt" ] }, "bbox": { "$ref": "#/components/schemas/Bbox" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "133" }, "speed": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000, "example": 50 }, "coordinate": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 50 }, "y": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 50 }, "z": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 50 } }, "required": [ "x", "y", "z" ] }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "type", "location", "bbox", "id", "speed", "coordinate" ] }, "Sensor": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "description": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "description of sensor" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "sensor" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "value1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "id", "description", "type" ] }, "Bbox": { "type": "object", "additionalProperties": false, "properties": { "topY": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 0.5 }, "rightX": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 1.7 }, "bottomY": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 0.8 }, "leftX": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 0.6 }, "embeddings": { "type": "array", "maxItems": 10000, "items": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "vector": { "type": "array", "maxItems": 100000, "items": { "type": "number", "format": "float", "example": 0.1 } } }, "required": [ "vector" ] } }, "confidence": { "type": "number", "format": "float", "example": 0.95 }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "value1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "topY", "rightX", "bottomY", "leftX", "embeddings", "confidence" ] }, "Bbox3d": { "type": "object", "additionalProperties": false, "properties": { "embeddings": { "type": "array", "maxItems": 10000, "items": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "vector": { "type": "array", "maxItems": 100000, "items": { "type": "number", "format": "float" } } }, "required": [ "vector" ] } }, "confidence": { "type": "number", "format": "float", "example": 0.95 }, "coordinates": { "type": "array", "oneOf": [ { "minItems": 9, "maxItems": 9 }, { "minItems": 12, "maxItems": 12 } ], "example": [1,2,3,4,5,6,7,8,9], "items": { "type": "number", "format": "float" } }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "value1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "embeddings", "confidence", "coordinates" ] }, "LastRecord": { "type": "object", "additionalProperties": false, "properties": { "lastRecord": { "type": "object", "additionalProperties": false, "nullable": true, "properties": { "place": { "type": "string", "example": "building=Warehouse", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timestamp": { "type": "string", "format": "date-time", "example": "2024-02-22T11:45:00.000Z", "maxLength": 24 }, "objectCounts": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "count": { "type": "integer", "format": "int64", "example": 2, "minimum": 0, "maximum": 99999999 } }, "required": [ "type", "count" ] }, "example": [ { "type": "Person", "count": 2 } ] }, "locationsOfObjects": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "example": "1", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "locations": { "type": "array", "maxItems": 10000, "items": { "$ref": "#/components/schemas/Location" } } }, "required": [ "id", "locations", "type" ] }, "example": [ { "id": "1", "type": "Person", "locations": [ [ -21.315656, -8.9215497 ] ] }, { "id": "2", "type": "Person", "locations": [ [ -9.55607, 0.984224 ] ] } ] } }, "required": [ "place", "timestamp", "objectCounts", "locationsOfObjects" ] } }, "required": [ "lastRecord" ] }, "FrameObjects": { "type": "object", "additionalProperties": false, "properties": { "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "frameId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "10" }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "objectId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 }, "bbox": { "$ref": "#/components/schemas/Bbox" }, "confidence": { "type": "number", "format": "double", "example": 0.95 }, "embedding": { "type": "array", "maxItems": 100000, "nullable": true, "items": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000 } }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "frameId", "sensorId", "objectId", "timestamp", "bbox", "confidence", "embedding" ] } } }, "required": [ "objects" ] }, "FrameAlertBase": { "type": "object", "additionalProperties": false, "properties": { "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 }, "objects": { "type": "array", "minItems": 0, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "155" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } }, "required": [ "id", "type" ], "anyOf": [ { "properties": { "bbox": { "$ref": "#/components/schemas/Bbox" } }, "required": [ "bbox" ] }, { "properties": { "bbox3d": { "type": "object", "additionalProperties": false, "properties": { "coordinates": { "type": "array", "oneOf": [ { "minItems": 9, "maxItems": 9 }, { "minItems": 12, "maxItems": 12 } ], "example": [1,2,3,4,5,6,7,8,9], "items": { "type": "number", "format": "float" } } }, "required": [ "coordinates" ] } }, "required": [ "bbox3d" ] } ] } } }, "required": [ "sensorId", "timestamp", "objects" ] }, "FrameAlert": { "type": "object", "additionalProperties": false, "allOf": [ { "$ref": "#/components/schemas/FrameAlertBase" }, { "type": "object", "additionalProperties": false, "anyOf": [ { "properties": { "confinedArea": { "type": "object", "additionalProperties": false, "properties": { "objectIds": { "type": "array", "minItems": 0, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "10" } } }, "required": [ "objectIds" ] } }, "required": [ "confinedArea" ] }, { "properties": { "proximity": { "type": "object", "additionalProperties": false, "properties": { "clusters": { "$ref": "#/components/schemas/ProximityClusters" }, "proximityDetections": { "type": "integer", "format": "int64", "minimum": -10000, "maximum": 10000, "example": 1 }, "threshold": { "type": "number", "format": "double", "example": 2 } }, "required": [ "clusters", "proximityDetections", "threshold" ] } }, "required": [ "proximity" ] }, { "properties": { "restrictedArea": { "type": "array", "minItems": 0, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "roiId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "objectIds": { "type": "array", "minItems": 0, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "12" } } }, "required": [ "roiId", "objectIds" ] } } }, "required": [ "restrictedArea" ] } ] } ] }, "FrameAlerts": { "type": "object", "additionalProperties": false, "properties": { "alerts": { "type": "array", "minItems": 0, "maxItems": 1000, "items": { "$ref": "#/components/schemas/FrameAlert" } } }, "required": [ "alerts" ] }, "Alerts": { "type": "object", "additionalProperties": false, "properties": { "alerts": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Behavior" } } }, "required": [ "alerts" ] }, "Incident": { "type": "object", "additionalProperties": false, "properties": { "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "Id": { "type": "string", "example": "logstash generated Id", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:30.000Z" }, "category": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "category1" }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "sensor1" }, "place": { "$ref": "#/components/schemas/Place" }, "objectIds": { "type": "array", "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" } }, "frameIds": { "type": "array", "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "10" }, "example": [ "1", "2" ] }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } }, "analyticsModule": { "$ref": "#/components/schemas/AnalyticsModule" } }, "required": [ "timestamp", "Id", "end", "place" ] }, "Incidents": { "type": "object", "additionalProperties": false, "properties": { "incidents": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Incident" } } }, "required": [ "incidents" ] }, "SevereAlerts": { "type": "object", "additionalProperties": false, "properties": { "severeAlerts": { "type": "object", "nullable": true, "additionalProperties": false, "oneOf": [ { "properties": { "places": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=Santa Clara/building=NVIDIA Voyager/room=Visitor Lobby" } } }, "required": [ "places" ] }, { "properties": { "sensors": { "type": "array", "maxItems": 100000, "items": { "type": "string", "example": "cam1", "pattern": "^.{0,10000}$", "maxLength": 10000 } } }, "required": [ "sensors" ] }, { "properties": { "places": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=Santa Clara/building=NVIDIA Voyager/room=Visitor Lobby" } }, "sensors": { "type": "array", "maxItems": 100000, "items": { "type": "string", "example": "cam1", "pattern": "^.{0,10000}$", "maxLength": 10000 } } }, "required": [ "places", "sensors" ] } ] } }, "required": [ "severeAlerts" ] }, "SevereIncidents": { "type": "object", "additionalProperties": false, "properties": { "severeIncidents": { "type": "object", "nullable": true, "additionalProperties": false, "oneOf": [ { "properties": { "places": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=Santa Clara/building=NVIDIA Voyager/room=Visitor Lobby" } } }, "required": [ "places" ] }, { "properties": { "sensors": { "type": "array", "maxItems": 100000, "items": { "type": "string", "example": "cam1", "pattern": "^.{0,10000}$", "maxLength": 10000 } } }, "required": [ "sensors" ] }, { "properties": { "places": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=Santa Clara/building=NVIDIA Voyager/room=Visitor Lobby" } }, "sensors": { "type": "array", "maxItems": 100000, "items": { "type": "string", "example": "cam1", "pattern": "^.{0,10000}$", "maxLength": 10000 } } }, "required": [ "places", "sensors" ] } ] } }, "required": [ "severeIncidents" ] }, "Behaviors": { "type": "object", "additionalProperties": false, "properties": { "behaviors": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Behavior" } } }, "required": [ "behaviors" ] }, "Location": { "type": "array", "minItems": 2, "maxItems": 2, "example": [ 10, 11 ], "items": { "type": "number", "format": "double" } }, "MTMCBehavior": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "example": "Cam1 #-# 11", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "sensorId": { "type": "string", "example": "Cam1", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "objectId": { "type": "string", "example": "11", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "objectType": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:30.000Z" }, "startFrame": { "type": "string", "example": "10", "pattern": "^.{0,100000}$", "maxLength": 100000 }, "endFrame": { "type": "string", "example": "910", "pattern": "^.{0,100000}$", "maxLength": 100000 }, "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "locations": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Location" } } }, "required": [ "sensorId", "objectId", "timestamp", "end" ] }, "MTMCObject": { "type": "object", "additionalProperties": false, "properties": { "batchId": { "type": "string", "example": "batch-1", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "globalId": { "type": "string", "example": "1", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:30.000Z" }, "objectType": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "matched": { "type": "array", "maxItems": 10000, "items": { "$ref": "#/components/schemas/MTMCBehavior" } } }, "required": [ "batchId", "globalId", "timestamp", "end", "objectType", "matched" ] }, "MTMCObjects": { "type": "object", "additionalProperties": false, "properties": { "uniqueObjects": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/MTMCObject" }, "description": "array of MTMCObject" } }, "example": { "uniqueObjects": [ { "batchId": "batch-1", "globalId": "1", "timestamp": "2022-08-25T00:00:00.000Z", "end": "2022-08-25T00:00:55.000Z", "objectType": "Person", "matched": [ { "id": "Cam1 #-# 11", "sensorId": "Cam1", "objectId": "11", "objectType": "Person", "timestamp": "2022-08-25T00:00:00.000Z", "end": "2022-08-25T00:00:30.000Z", "startFrame": "10", "endFrame": "910", "place": "city=Santa Clara/building=K", "locations": [ [ 10, 11 ] ] }, { "id": "Cam2 #-# 12", "sensorId": "Cam2", "objectId": "12", "objectType": "Person", "timestamp": "2022-08-25T00:00:40.000Z", "end": "2022-08-25T00:00:55.000Z", "startFrame": "210", "endFrame": "1010", "place": "city=Santa Clara/building=K", "locations": [ [ 10, 11 ] ] } ] } ] }, "required": [ "uniqueObjects" ] }, "UniqueObjectCount": { "type": "object", "additionalProperties": false, "properties": { "uniqueObjectCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 } }, "required": [ "uniqueObjectCount" ] }, "UniqueObjectCountWithLocations": { "type": "object", "additionalProperties": false, "properties": { "place": { "type": "string", "example": "city=abc/building=def/Warehouse=xyz", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timestamp": { "type": "string", "format": "date-time", "example": "2022-08-25T00:00:00.000Z", "maxLength": 24 }, "objectCounts": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "count": { "type": "integer", "format": "int64", "example": 12, "minimum": 0, "maximum": 99999999 } }, "required": [ "type", "count" ] }, "example": [ { "type": "Person", "count": 1 }, { "type": "AMR", "count": 1 } ] }, "locationsOfObjects": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "example": "2", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "locations": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "array", "minItems": 2, "maxItems": 3, "items": { "type": "number", "format": "double" } } }, "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 } }, "required": [ "id", "locations", "type" ] }, "example": [ { "id": "1", "locations": [ [ 1, 1 ] ], "type": "Person" }, { "id": "Transporter 1", "locations": [ [ 5, 10 ] ], "type": "AMR" } ] }, "events": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "objectId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "objectType": { "type": "string", "example": "AMR", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "currentRoute": { "type": "array", "maxItems": 10000, "items": { "$ref": "#/components/schemas/Location" } }, "newRoute": { "type": "array", "maxItems": 10000, "items": { "$ref": "#/components/schemas/Location" } }, "blockages": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "center": { "description": "center is represented using WKT format of Point", "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "POINT(2.5 3.2)" }, "radius": { "type": "number", "format": "double", "example": 5 } }, "required": [ "center", "radius" ] } } }, "required": [ "objectId", "objectType", "currentRoute", "newRoute", "blockages" ] } } }, "required": [ "place", "timestamp", "objectCounts", "locationsOfObjects" ] }, "Error": { "type": "object", "additionalProperties": false, "properties": { "error": { "type": "string", "pattern": "^.{0,100000}$", "maxLength": 100000, "example": "Error" } }, "required": [ "error" ] }, "RoadNetwork": { "type": "object", "additionalProperties": false, "properties": { "city": { "type": "string", "example": "Santa-Clara", "pattern": "^.{1,10000}$", "maxLength": 10000 }, "docType": { "type": "string", "enum": [ "roadNetwork" ] }, "intersections": { "type": "array", "minItems": 1, "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "example": "i1", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "segments": { "type": "array", "minItems": 0, "maxItems": 100000, "items": { "$ref": "#/components/schemas/RoadNetworkSegment" } } }, "required": [ "name", "segments" ] } } }, "required": [ "city", "docType", "intersections" ] }, "RoadNetworkSegment": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "example": "id1", "pattern": "^.{1,10000}$", "maxLength": 10000 }, "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "start": { "type": "object", "properties": { "lat": { "type": "number", "format": "double" }, "lng": { "type": "number", "format": "double" } }, "additionalProperties": false, "required": [ "lat", "lng" ] }, "end": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180 } }, "additionalProperties": false, "required": [ "lat", "lng" ] }, "points": { "type": "array", "minItems": 2, "maxItems": 10000, "items": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 10.5 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 50.4 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000, "example": 25.4 } }, "additionalProperties": false, "required": [ "lat", "lng", "alt" ] } } }, "required": [ "id", "direction", "start", "end", "points" ] }, "UsdAssets": { "type": "object", "additionalProperties": false, "properties": { "sceneUrl": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "s3://bucket/path/to/usd-scene-file.usd" }, "assets": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "usdPath": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "/World/Pallets/Zone3/Cardbox_B2_Pallet_B1_03/Pallet_B1_physics/Geometry/Pallet_B1" }, "primType": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "Mesh" }, "properties": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "minItems": 1, "maxItems": 10000, "properties": { "name": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000 }, "value": { "type": "string", "pattern": "^.{0,999999999}$", "minLength": 0, "maxLength": 999999999 } }, "required": [ "name", "value" ] }, "example": [ { "name": "class", "value": "pallet" }, { "name": "type", "value": "pallet_b1" } ] }, "bbox": { "type": "object", "additionalProperties": false, "properties": { "dimension": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": 0, "maximum": 999999, "example": 0.2 }, "y": { "type": "number", "format": "double", "minimum": 0, "maximum": 999999, "example": 0.8 }, "z": { "type": "number", "format": "double", "minimum": 0, "maximum": 999999, "example": 1.4 } }, "required": [ "x", "y", "z" ] } }, "required": [ "dimension" ] } }, "required": [ "usdPath", "primType", "properties", "bbox" ] } } } }, "ConfigUpdate": { "oneOf": [ { "$ref": "#/components/schemas/BehaviorAnalyticsConfig" } ] }, "BehaviorAnalyticsConfig": { "type": "object", "additionalProperties": false, "properties": { "sensors": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "minLength": 1, "maxLength": 10000 }, "configs": { "type": "array", "maxItems": 10000, "items": { "$ref": "#/components/schemas/BehaviorAnalyticsConfigKeyValuePair" } } }, "required": [ "id" ] } }, "app": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "$ref": "#/components/schemas/BehaviorAnalyticsConfigKeyValuePair" } } }, "anyOf": [ { "required": [ "app" ] }, { "required": [ "sensors" ] }, { "required": [ "sensors", "app" ] } ], "example": { "sensors": [ { "id": "default", "configs": [ { "name": "proximityDetectionCenterClasses", "value": "[\"Forklift\"]" } ] } ] } }, "BehaviorAnalyticsConfigKeyValuePair": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 10000 }, "value": { "type": "string", "minLength": 0, "maxLength": 999999999 } }, "required": [ "name", "value" ] }, "Calibration": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "version": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "v1" }, "osmURL": { "type": "string", "pattern": "^.{0,10000}$", "minLength": 1, "maxLength": 10000, "example": "URL" }, "calibrationType": { "type": "string", "enum": [ "geo", "cartesian", "image" ], "example": "cartesian" }, "sensors": { "type": "array", "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "camera" }, "id": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "cam1" }, "origin": { "type": "object", "additionalProperties": false, "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 0 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 0 } }, "required": [ "lat", "lng" ] }, "geoLocation": { "type": "object", "additionalProperties": false, "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 0 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 0 } }, "required": [ "lat", "lng" ] }, "coordinates": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 }, "z": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "translationToGlobalCoordinates": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 }, "z": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "scaleFactor": { "type": "number", "format": "double", "example": 1 }, "attributes": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "source" }, "value": { "type": "string", "pattern": "^.{0,999999999}$", "minLength": 0, "maxLength": 999999999, "example": "vst" } }, "required": [ "name", "value" ] } }, "group": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "bev-sensor-1" }, "type": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "bev" }, "origin": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1.0 } }, "dimensions": { "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 } }, "alias": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "area-1" } }, "required": [ "name", "type", "origin", "dimensions" ] }, "region": { "type": "object", "additionalProperties": false, "properties": { "placeLevel": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "building" }, "origin": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 } }, "dimensions": { "type": "object", "additionalProperties": false, "properties": { "length": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 }, "width": { "type": "number", "format": "double", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "length", "width" ] } }, "required": [ "placeLevel", "origin", "dimensions" ] }, "place": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "building" }, "value": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "warehouse" } }, "required": [ "name", "value" ] } }, "imageCoordinates": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "globalCoordinates": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "z": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "intrinsicMatrix": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 2 } } }, "extrinsicMatrix": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 3 } } }, "cameraMatrix": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 4 } } }, "homography": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 5 } } }, "rois": { "type": "array", "minItems": 0, "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "buffer_zone_1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "minLength": 0, "maxLength": 10000, "example": "buffer_zone" }, "roiCoordinates": { "type": "array", "minItems": 3, "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "z": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 0 } }, "required": [ "x", "y" ] } }, "restrictedObjectTypes": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "Person" } }, "confinedObjectTypes": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "Fourier_GR1_T2_Humanoid" } } }, "required": [ "id", "roiCoordinates" ] } }, "tripwires": { "type": "array", "minItems": 0, "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "tripwire-id-1" }, "wire": { "type": "object", "additionalProperties": false, "properties": { "p1": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "p2": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "required": [ "p1", "p2" ] }, "direction": { "type": "object", "additionalProperties": false, "properties": { "p1": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "p2": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "required": [ "p1", "p2" ] } }, "required": [ "id", "wire", "direction" ] } } }, "required": [ "type", "id", "origin", "geoLocation", "coordinates", "scaleFactor", "attributes", "place", "imageCoordinates", "globalCoordinates" ] } }, "rois": { "type": "array", "minItems": 0, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "minLength": 1, "maxLength": 10000, "example": "buffer_zone_1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "minLength": 0, "maxLength": 10000, "example": "buffer_zone" }, "roiCoordinates": { "type": "array", "minItems": 3, "maxItems": 999999, "items": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "z": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 0 } }, "required": [ "x", "y" ] } }, "sensors": { "type": "array", "minItems": 1, "maxItems": 999999, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "cam1" } }, "groups": { "type": "array", "minItems": 1, "maxItems": 9999999, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "bev-sensor-1" } }, "restrictedObjectTypes": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "Person" } }, "confinedObjectTypes": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "Fourier_GR1_T2_Humanoid" } } }, "required": [ "id", "roiCoordinates", "sensors", "groups" ] } }, "tripwires": { "type": "array", "minItems": 0, "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "tripwire-id-1" }, "wire": { "type": "object", "additionalProperties": false, "properties": { "p1": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "p2": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "required": [ "p1", "p2" ] }, "direction": { "type": "object", "additionalProperties": false, "properties": { "p1": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] }, "p2": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 }, "y": { "type": "number", "minimum": -999999, "maximum": 999999, "example": 1 } }, "required": [ "x", "y" ] } }, "required": [ "p1", "p2" ] }, "sensors": { "type": "array", "minItems": 1, "maxItems": 9999999, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "cam1" } }, "groups": { "type": "array", "minItems": 1, "maxItems": 9999999, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "bev-sensor-1" } } }, "required": [ "id", "wire", "direction", "sensors", "groups" ] } }, "corridors": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "city=abc/corridor=xyz" }, "sensors": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "cam1" } }, "directions": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{1,10000}$", "minLength": 1, "maxLength": 10000, "example": "N" } }, "length": { "type": "number", "format": "double", "minimum": 0, "maximum": 99999999, "example": 5 } }, "required": [ "name", "sensors", "directions", "length" ] } } }, "required": [ "version", "osmURL", "calibrationType", "sensors" ] }, "CalibrationDeleteSuccess": { "type": "object", "additionalProperties": false, "properties": { "success": { "type": "object", "additionalProperties": false, "properties": { "partial": { "type": "boolean", "example": false }, "complete": { "type": "boolean", "example": true } }, "required": [ "partial", "complete" ] }, "invalidSensors": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam1" }, "nullable": true }, "deletedCalibration": { "$ref": "#/components/schemas/Calibration" } }, "required": [ "success", "invalidSensors", "deletedCalibration" ] }, "IsAlive": { "type": "object", "additionalProperties": false, "properties": { "isAlive": { "type": "boolean" } }, "required": [ "isAlive" ] }, "InsertImagesResponse": { "type": "object", "additionalProperties": false, "properties": { "success": { "type": "object", "additionalProperties": false, "properties": { "partial": { "type": "boolean" }, "complete": { "type": "boolean" } }, "required": [ "partial", "complete" ] }, "invalidImages": { "type": "array", "maxItems": 100000, "items": { "type": "string", "pattern": "^.{0,100000}$", "maxLength": 100000, "example": "image1" }, "nullable": true } }, "required": [ "success", "invalidImages" ] }, "MetadataOfACalibrationImage": { "type": "object", "additionalProperties": false, "properties": { "view": { "type": "string", "enum": [ "camera-view", "warped-camera-view", "plan-view" ] }, "place": { "type": "string", "pattern": "^.{1,10000}$", "maxLength": 10000, "example": "1" }, "sensorId": { "type": "string", "pattern": "^.{1,10000}$", "maxLength": 10000, "example": "1" } }, "required": [ "view" ], "oneOf": [ { "required": [ "place" ] }, { "required": [ "sensorId" ] } ] }, "CalibrationImageMetadata": { "type": "object", "additionalProperties": false, "properties": { "imageMetadata": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/MetadataOfACalibrationImage" } } }, "required": [ "imageMetadata" ], "example": { "imageMetadata": [ { "view": "plan-view", "place": "room=warehouse/region=region-1" } ] } }, "CalibrationImagesToBeDeleted": { "type": "object", "additionalProperties": false, "properties": { "calibrationImages": { "type": "array", "minItems": 1, "maxItems": 100000, "items": { "$ref": "#/components/schemas/MetadataOfACalibrationImage" } } }, "required": [ "calibrationImages" ], "example": { "calibrationImages": [ { "place": "room=warehouse/region=region-1", "view": "plan-view" } ] } }, "CalibrationImageDeletionResponse": { "type": "object", "additionalProperties": false, "properties": { "success": { "type": "object", "additionalProperties": false, "properties": { "partial": { "type": "boolean" }, "complete": { "type": "boolean" } }, "required": [ "partial", "complete" ] }, "invalidInput": { "type": "array", "minItems": 1, "maxItems": 100000, "items": { "$ref": "#/components/schemas/MetadataOfACalibrationImage" }, "nullable": true }, "deletedCalibrationImages": { "type": "array", "maxItems": 100000, "minItems": 1, "items": { "$ref": "#/components/schemas/MetadataOfACalibrationImage" }, "nullable": true } }, "required": [ "success", "invalidInput", "deletedCalibrationImages" ], "example": { "invalidInput": null, "deletedCalibrationImages": [ { "place": "room=warehouse/region=region-1", "view": "plan-view" } ], "success": { "complete": true, "partial": false } } }, "Success": { "type": "object", "additionalProperties": false, "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "ConfigUpdateSuccess": { "type": "object", "additionalProperties": false, "properties": { "referenceId": { "type": "string", "maxLength": 10000 }, "status": { "type": "string", "enum": [ "pending", "failure" ] }, "config": { "type": "object", "nullable": true }, "error": { "type": "string", "maxLength": 100000, "nullable": true } }, "required": [ "referenceId", "status" ] }, "ConfigUpdateStatus": { "type": "object", "additionalProperties": false, "properties": { "referenceId": { "type": "string", "maxLength": 10000 }, "docType": { "type": "string", "enum": [ "behavior-analytics" ] }, "status": { "type": "string", "enum": [ "pending", "partial-success", "failure", "success" ] }, "config": { "type": "object", "nullable": true }, "error": { "type": "string", "maxLength": 100000, "nullable": true }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 } }, "required": [ "referenceId", "docType", "status", "config", "error", "timestamp" ] }, "LastProcessedTimestamp": { "type": "object", "additionalProperties": false, "properties": { "latestTimestamp": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 } }, "required": [ "timestamp" ], "oneOf": [ { "properties": { "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "place1" } }, "required": [ "place" ] }, { "properties": { "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" } }, "required": [ "sensorId" ] }, { "properties": { "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "place1" }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" } }, "required": [ "place", "sensorId" ] } ] }, "details": { "type": "array", "maxItems": 100000, "nullable": true, "items": { "type": "object", "additionalProperties": false, "properties": { "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "place1" }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" } }, "required": [ "place", "timestamp" ] } } }, "required": [ "latestTimestamp" ] }, "TripwireCounts": { "type": "object", "additionalProperties": false, "properties": { "tripwireMetrics": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "tripwireMetrics" }, "events": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "IN" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 1, "description": "Effective counts are used to count only the effective event generated by an object. An effective tripwire event can be defined with the following example: Suppose an object generates tripwire events in the following sequence: IN, OUT and IN again, then the effective count in this case considers only the final IN event. This is helpful to handle loitering behavior of an object." }, "actualCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 1, "description": "Actual tripwire count is the count of all the events that have occurred." }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } }, "required": [ "type", "count", "actualCount", "objectType" ] } } }, "required": [ "id", "events" ] } }, "aggregatedMetrics": { "type": "object", "additionalProperties": false, "properties": { "events": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "IN" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 1, "description": "Effective counts are used to count only the effective event generated by an object. An effective tripwire event can be defined with the following example: Suppose an object generates tripwire events in the following sequence: IN, OUT and IN again, then the effective count in this case considers only the final IN event. This is helpful to handle loitering behavior of an object." }, "actualCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 1, "description": "Actual tripwire count is the count of all the events that have occurred." }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } }, "required": [ "type", "count", "actualCount", "objectType" ] } } }, "required": [ "events" ] } }, "required": [ "tripwireMetrics", "aggregatedMetrics" ], "example": { "tripwireMetrics": [ { "id": "tripwire-id-1", "events": [ { "type": "IN", "count": 0, "actualCount": 18, "objectType": "Forklift" }, { "type": "OUT", "count": 0, "actualCount": 18, "objectType": "Forklift" }, { "type": "IN", "count": 18, "actualCount": 18, "objectType": "Person" }, { "type": "OUT", "count": 18, "actualCount": 18, "objectType": "Person" } ] } ], "aggregatedMetrics": { "events": [ { "type": "IN", "count": 0, "actualCount": 18, "objectType": "Forklift" }, { "type": "OUT", "count": 0, "actualCount": 18, "objectType": "Forklift" }, { "type": "IN", "count": 18, "actualCount": 18, "objectType": "Person" }, { "type": "OUT", "count": 18, "actualCount": 18, "objectType": "Person" } ] } } }, "TripwireOccupancy": { "type": "object", "additionalProperties": false, "properties": { "place": { "type": "string", "example": "building=sjc14/zone=lobby", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:10.000Z" }, "occupancy": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "objectType": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 8 }, "details": { "type": "object", "additionalProperties": false, "properties": { "events": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "IN", "OUT" ], "example": "IN" }, "count": { "type": "integer", "format": "int64", "example": 6, "minimum": 0, "maximum": 10000 } }, "required": [ "type", "count" ] } }, "occupancyReset": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "resetValue": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000, "example": 2 }, "resetTimestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" } }, "required": [ "resetValue", "resetTimestamp" ] } }, "required": [ "events", "occupancyReset" ] } }, "required": [ "objectType", "count", "details" ] } } }, "required": [ "place", "timestamp", "occupancy" ] }, "TripwireHistogram": { "type": "object", "additionalProperties": false, "properties": { "bucketSizeInSec": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "tripwires": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "tripwire-id-1" }, "histogram": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "start": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:10.000Z" }, "events": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "IN" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "actualCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } }, "required": [ "type", "count", "actualCount" ] } } }, "required": [ "start", "end", "events" ] } } }, "required": [ "id", "histogram" ] } } }, "required": [ "bucketSizeInSec", "tripwires" ], "example": { "bucketSizeInSec": 360, "tripwires": [ { "id": "tripwire-id-1", "histogram": [ { "start": "2022-11-20T05:00:00.000Z", "end": "2022-11-20T05:06:00.000Z", "events": [ { "type": "IN", "count": 4, "actualCount": 4, "objectType": "Forklift" }, { "type": "OUT", "count": 4, "actualCount": 4, "objectType": "Forklift" }, { "type": "IN", "count": 4, "actualCount": 4, "objectType": "Person" }, { "type": "OUT", "count": 4, "actualCount": 4, "objectType": "Person" } ] } ] } ] } }, "TrackerOccupancy": { "type": "object", "properties": { "trackerOccupancy": { "type": "array", "maxItems": 10000, "items": { "type": "object", "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 100000 } }, "required": [ "type", "count" ] } } }, "required": [ "trackerOccupancy" ] }, "TrackerOccupancyHistogram": { "type": "object", "properties": { "bucketSizeInSec": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "histogram": { "type": "array", "maxItems": 100000, "items": { "type": "object", "properties": { "start": { "type": "string", "format": "date-time", "maxLength": 24 }, "end": { "type": "string", "format": "date-time", "maxLength": 24 }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "default": "Person", "maxLength": 10000 }, "averageCount": { "type": "number", "minimum": 0, "maximum": 100000 } }, "required": [ "type", "averageCount" ] } } }, "required": [ "start", "end", "objects" ] } } }, "required": [ "bucketSizeInSec", "histogram" ] }, "AMREvents": { "type": "object", "properties": { "amrEvents": { "type": "array", "maxItems": 100000, "items": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 }, "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "city=Santa Clara/building=NVIDIA Voyager/room=Visitor Lobby" }, "events": { "type": "array", "maxItems": 100000, "items": { "type": "object", "properties": { "objectId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Transporter 1" }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "default": "AMR", "maxLength": 10000, "example": "AMR" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "default": "route-change", "maxLength": 10000, "example": "route-change" }, "currentLocation": { "type": "array", "maxItems": 1, "items": { "type": "array", "maxItems": 2, "items": { "type": "number" }, "example": [ 0, 0 ] } }, "currentRoute": { "type": "array", "maxItems": 100000, "items": { "type": "array", "maxItems": 100000, "items": { "type": "number", "minimum": 0, "maximum": 999999 }, "example": [ 1, 1 ] } }, "newRoute": { "type": "array", "maxItems": 100000, "items": { "type": "array", "maxItems": 100000, "items": { "type": "number" }, "example": [ 2, 2 ] } }, "blockages": { "type": "array", "maxItems": 100000, "items": { "type": "object", "properties": { "center": { "type": "string", "example": "POINT(28.625360369528934 77.2227479486792)", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "radius": { "type": "number", "minimum": 0, "maximum": 100000, "example": 5 } }, "required": [ "center", "radius" ] } } }, "required": [ "objectId", "objectType", "currentRoute", "newRoute", "blockages" ] } } }, "required": [ "timestamp", "place", "events" ] } } }, "required": [ "amrEvents" ] }, "RoiEvents": { "type": "object", "additionalProperties": false, "properties": { "roiEvents": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Behavior" } } }, "required": [ "roiEvents" ] }, "FovCounts": { "type": "object", "additionalProperties": false, "properties": { "fovOccupancy": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "averageCount": { "type": "number", "format": "double", "minimum": 0, "maximum": 10000, "example": 10 } }, "required": [ "type", "averageCount" ] } } }, "required": [ "fovOccupancy" ] }, "FovHistogram": { "type": "object", "additionalProperties": false, "properties": { "bucketSizeInSec": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "histogram": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "start": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:01:00.000Z" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,1000000}$", "maxLength": 1000000, "example": "Person" }, "averageCount": { "type": "number", "format": "double", "minimum": 0, "maximum": 10000, "example": 10 } }, "required": [ "type", "averageCount" ] } } }, "required": [ "start", "end", "objects" ] } } }, "required": [ "bucketSizeInSec", "histogram" ] }, "RoiCounts": { "type": "object", "additionalProperties": false, "properties": { "roiOccupancy": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "roiId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "averageCount": { "type": "number", "format": "double", "minimum": 0, "maximum": 10000, "example": 1 }, "uniqueObjectCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 99999999, "example": 2 } }, "required": [ "type", "averageCount", "uniqueObjectCount" ] } } }, "required": [ "roiId", "objects" ] } } }, "required": [ "roiOccupancy" ] }, "RoiHistogram": { "type": "object", "additionalProperties": false, "properties": { "bucketSizeInSec": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "rois": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "histogram": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "start": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:10.000Z" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "averageCount": { "type": "number", "format": "double", "minimum": 0, "maximum": 10000, "example": 1 }, "uniqueObjectCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 99999999, "example": 2 } }, "required": [ "type", "averageCount", "uniqueObjectCount" ] } } }, "required": [ "start", "end", "objects" ] } } }, "required": [ "id", "histogram" ] } } }, "required": [ "bucketSizeInSec", "rois" ] }, "OccupancyBasedOnMutuallyExclusiveRois": { "type": "object", "additionalProperties": false, "properties": { "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "place1" }, "timestamp": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "2022-08-25T00:00:00.000Z" }, "occupancy": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "objectDetails": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "roiId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "coordinates": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 1.4 }, "y": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 2.7 }, "z": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 3.9 } }, "required": [ "x", "y" ] } }, "required": [ "id", "coordinates" ] } } }, "required": [ "sensorId", "roiId", "objects" ] } } }, "required": [ "place", "timestamp", "occupancy", "objectType" ] }, "SpaceUtilizationHistogram": { "type": "object", "additionalProperties": false, "properties": { "bucketSizeInSec": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "rois": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "histogram": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "start": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2024-08-25T00:00:00.000Z" }, "end": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2024-08-25T00:00:10.000Z" }, "metrics": { "type": "object", "additionalProperties": false, "properties": { "avgUtilizableFreeSpace": { "type": "number", "format": "double" }, "avgSpaceUtilization": { "type": "number", "format": "double" }, "avgSpaceOccupied": { "type": "number", "format": "double" }, "avgTotalSpace": { "type": "number", "format": "double" }, "avgFreeSpaceQuality": { "type": "number", "format": "double" }, "avgNumExtraPallets": { "type": "number", "format": "double" }, "avgFreeSpace": { "type": "number", "format": "double" } }, "required": [ "avgUtilizableFreeSpace", "avgSpaceUtilization", "avgSpaceOccupied", "avgTotalSpace", "avgFreeSpaceQuality", "avgNumExtraPallets", "avgFreeSpace" ] } }, "required": [ "start", "end", "metrics" ] } } }, "required": [ "id", "histogram" ] } } }, "required": [ "bucketSizeInSec", "rois" ] }, "RawFrames": { "type": "object", "additionalProperties": false, "properties": { "frames": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "version": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "id": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "bbox": { "$ref": "#/components/schemas/Bbox" }, "confidence": { "type": "number", "format": "float" }, "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "speed": { "type": "number", "format": "float" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } }, "embedding": { "type": "object", "additionalProperties": false, "properties": { "vector": { "type": "array", "maxItems": 100000, "items": { "type": "number", "format": "float" } }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "vector" ] } }, "required": [ "bbox", "confidence", "type", "speed", "id", "embedding" ] } }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "version", "id", "objects", "timestamp", "sensorId" ] } } }, "required": [ "frames" ] }, "EnhancedFrames": { "type": "object", "additionalProperties": false, "properties": { "enhancedFrames": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "version": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "bbox": { "$ref": "#/components/schemas/Bbox" }, "confidence": { "type": "number", "format": "float" }, "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "speed": { "type": "number", "format": "float" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "embedding": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "vector": { "type": "array", "maxItems": 100000, "items": { "type": "number", "format": "float" } } }, "required": [ "vector" ] }, "location": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 24.5 }, "lon": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 15.4 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 1000000, "example": 19.7 } }, "required": [ "lat", "lon", "alt" ] }, "coordinate": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 4.5 }, "y": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 1.7 }, "z": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 2.7 }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "x", "y", "z" ] } }, "required": [ "bbox", "confidence", "type", "speed", "id", "embedding", "location", "coordinate" ] } }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "socialDistancing": { "type": "object", "additionalProperties": false, "properties": { "clusters": { "$ref": "#/components/schemas/ProximityClusters" }, "proximityDetections": { "type": "integer", "format": "int64", "minimum": -10000, "maximum": 10000 }, "threshold": { "type": "number", "format": "double" } }, "required": [ "clusters", "proximityDetections", "threshold" ] }, "rois": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 } }, "required": [ "id", "type", "count" ] } }, "fov": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 } }, "required": [ "id", "type", "count" ] } }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "version", "id", "objects", "timestamp", "sensorId", "socialDistancing", "rois", "fov" ] } } }, "required": [ "enhancedFrames" ] }, "BevFrames": { "type": "object", "additionalProperties": false, "properties": { "bevFrames": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "version": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "objects": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "bbox": { "$ref": "#/components/schemas/Bbox" }, "bbox3d": { "$ref": "#/components/schemas/Bbox3d" }, "confidence": { "type": "number", "format": "float" }, "type": { "type": "string", "example": "Person", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "speed": { "type": "number", "format": "float" }, "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "embedding": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "vector": { "type": "array", "maxItems": 100000, "items": { "type": "number", "format": "float" } } }, "required": [ "vector" ] }, "location": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 79.5 }, "lon": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 34.8 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 1000000, "example": 65.1 } }, "required": [ "lat", "lon", "alt" ] }, "coordinate": { "type": "object", "nullable": true, "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 6.5 }, "y": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 4.3 }, "z": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 2.8 } }, "required": [ "x", "y", "z" ] }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "bbox", "bbox3d", "confidence", "type", "speed", "id", "embedding", "location", "coordinate" ] } }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24 }, "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "rois": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "hazard_zone_1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "zone1" }, "count": { "type": "integer", "minimum": 0, "maximum": 10000, "example": 2 } }, "required": [ "id", "type", "count" ] } }, "fov": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "id1" }, "type": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" }, "count": { "type": "integer", "minimum": 0, "maximum": 10000, "example": 2 } }, "required": [ "id", "type", "count" ] } }, "info": { "type": "object", "additionalProperties": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "example": { "additionalProperty1": "value1", "additionalProperty2": "value2" } } }, "required": [ "version", "id", "objects", "timestamp", "sensorId", "rois", "fov" ] } } }, "required": [ "bevFrames" ] }, "ProximityClusters": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "points": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "x": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 1.1 }, "y": { "type": "number", "format": "double", "minimum": -10000, "maximum": 10000, "example": 0.5 } }, "required": [ "x", "y" ] } } }, "required": [ "points" ] } }, "ProximityDetectionResult": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "nullable": true, "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "nullable": true }, "clusters": { "$ref": "#/components/schemas/ProximityClusters" } }, "required": [ "id", "timestamp", "clusters" ] }, "FramePts": { "type": "object", "additionalProperties": false, "properties": { "pts": { "type": "integer", "format": "int64", "nullable": true, "minimum": -10000, "maximum": 10000 } }, "required": [ "pts" ] }, "BehaviorPts": { "type": "object", "additionalProperties": false, "properties": { "startPts": { "type": "integer", "format": "int64", "minimum": -10000, "maximum": 10000 }, "endPts": { "type": "integer", "format": "int64", "minimum": -10000, "maximum": 10000 } }, "required": [ "startPts", "endPts" ] }, "ClusteringResult": { "type": "object", "additionalProperties": false, "properties": { "clusters": { "type": "array", "maxItems": 100000, "items": { "type": "object", "additionalProperties": false, "properties": { "clusterIndex": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "modelVersion": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "label": { "type": "string", "nullable": true, "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "count": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "sampledBehaviors": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "$ref": "#/components/schemas/Behavior" } } }, "required": [ "clusterIndex", "modelVersion", "label", "count", "sampledBehaviors" ] } } }, "required": [ "clusters" ] }, "ClusterLabel": { "type": "object", "additionalProperties": false, "properties": { "sensorId": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "cam-1" }, "modelVersion": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "clusterIndex": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" }, "label": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "1" } }, "required": [ "sensorId", "modelVersion", "clusterIndex", "label" ] }, "TripwireEvents": { "type": "object", "additionalProperties": false, "properties": { "tripwireEvents": { "type": "array", "maxItems": 100000, "items": { "$ref": "#/components/schemas/Behavior" } } }, "required": [ "tripwireEvents" ] }, "OccupancyReset": { "type": "object", "additionalProperties": false, "properties": { "place": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "place1" }, "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "example": "2022-08-25T00:00:00.000Z" }, "occupancyReset": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 10000 }, "objectType": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "Person" } }, "required": [ "place", "timestamp", "occupancyReset", "objectType" ] }, "DetailedSegmentSpeed": { "type": "object", "additionalProperties": false, "properties": { "roadSegments": { "type": "array", "maxItems": 99999999, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "id1" }, "direction": { "type": "string", "enum": [ "N", "S", "W", "E" ] }, "start": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 0.5 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 48.7 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000, "example": 73.4 } }, "additionalProperties": false, "required": [ "lat", "lng" ] }, "end": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000 } }, "additionalProperties": false, "required": [ "lat", "lng" ] }, "points": { "type": "array", "minItems": 2, "maxItems": 100000, "items": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "minimum": -90, "maximum": 90, "example": 4.4 }, "lng": { "type": "number", "format": "double", "minimum": -180, "maximum": 180, "example": 5.74 }, "alt": { "type": "number", "format": "double", "minimum": 0, "maximum": 100000, "example": 2.8 } }, "additionalProperties": false, "required": [ "lat", "lng", "alt" ] } }, "speed": { "type": "number", "minimum": 0, "maximum": 1000 }, "objectCount": { "type": "integer", "minimum": 0, "maximum": 100000 } }, "required": [ "id", "direction", "start", "end", "points", "speed", "objectCount" ] } } }, "required": [ "roadSegments" ] }, "SegmentSpeed": { "type": "object", "additionalProperties": false, "properties": { "roadSegments": { "type": "array", "maxItems": 99999999, "items": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000, "example": "id1" }, "speed": { "type": "number", "minimum": 0, "maximum": 1000 }, "objectCount": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 100000 } }, "required": [ "id", "speed", "objectCount" ] } } }, "required": [ "roadSegments" ] }, "SensorLookup": { "type": "object", "additionalProperties": false, "properties": { "sensorIds": { "type": "array", "minItems": 1, "maxItems": 10000, "items": { "type": "string", "pattern": "^.{0,10000}$", "maxLength": 10000 }, "example": [ "sensor_1", "sensor_2" ] } } }, "CalibrationLastModifiedTimestamp": { "type": "object", "additionalProperties": false, "properties": { "timestamp": { "type": "string", "format": "date-time", "maxLength": 24, "description": "ISO 8601 timestamp of the last calibration data modification" } }, "required": [ "timestamp" ] } } } }