Camera Capabilities

{ "swagger": "2.0", "info": { "version": "2.2.0", "title": "Cameramanager API", "description": "RESTful API for the Cameramanager platform." }, "host": "rest.cameramanager.com", "schemes": [ "http", "https" ], "basePath": "/rest/v2.2", "produces": [ "application/json" ], "responses": { "resourceNotFound": { "description": "Referenced resource could not be found.", "schema": { "$ref": "#/definitions/Error" } }, "unauthorized": { "description": "You are not authenticated. Please authenticate and try again.", "schema": { "$ref": "#/definitions/OAuth2Error" } }, "forbidden": { "description": "You have no permission to access the specified resource.", "schema": { "$ref": "#/definitions/Error" } }, "validationError": { "description": "The supplied object is invalid. Error detail will contain the validation error.", "schema": { "$ref": "#/definitions/Error" } }, "notAcceptableError": { "description": "The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.", "schema": { "$ref": "#/definitions/Error" } }, "internalServerError": { "description": "Something went wrong in the server. Please try again.", "schema": { "$ref": "#/definitions/Error" } }, "unsupportedMediaType": { "description": "The requested resource does not understand the media type sent in the request.", "schema": { "$ref": "#/definitions/Error" } } }, "parameters": { "cameraId": { "name": "cameraId", "in": "path", "description": "ID of the camera.", "required": true, "type": "integer" } }, "definitions": { "Error": { "type": "object", "description": "Generic error response, modelled after RFC 7807.", "properties": { "code": { "type": "integer", "description": "Error code within the system." }, "title": { "type": "string", "description": "This title is not meant to be shown to users and is not guaranteed to stay the same. Please use the code to parse the error." }, "detail": { "type": "string", "description": "Error details, to help developers detect what went wrong." } }, "required": [ "code", "title" ] }, "OAuth2Error": { "type": "object", "description": "Generic OAuth2 error response when there is something wrong with the OAuth2 authentication. Defined at RFC 6749.", "properties": { "error": { "type": "string", "description": "A single ASCII error code conforming the pattern." }, "error_description": { "type": "string", "description": "Human-readable ASCII text providing additional information, used to assist the client developer in understanding the error that occurred." } }, "required": [ "error" ] }, "DeviceCapabilities": { "type": "object", "description": "Cameras hardware capabilities.", "properties": { "ptz": { "type": "boolean", "description": "Whether we support controlling camera motion. See [PTZ capabilities](#/CameraCapabilities/getPtzCapabilities) API endpoint for fine-grained capabilities." }, "wifi": { "type": "boolean", "description": "Whether we support managing Wi-Fi on the camera. See [Wi-Fi capabilities](#/CameraCapabilities/getWifiCapabilities) API endpoint for fine-grained capabilities." }, "playAudio": { "type": "boolean", "description": "Whether we support playing audio on the camera." }, "recordAudio": { "type": "boolean", "description": "Whether we support retrieving an audio stream from the camera." } } }, "ImageCapabilities": { "type": "object", "description": "Image manipulation and enhancement capabilities.", "properties": { "coloredNightview": { "type": "boolean", "description": "Whether we support to use colored night view for this camera." }, "manualNightview": { "type": "boolean", "description": "Whether we support manually controlling the nightview mode for this camera." }, "manualNightviewOptions": { "type": "array", "description": "The supported nightview mode options for this camera.", "items": { "type": "string", "enum": [ "Auto", "Day", "Night" ] } }, "shutterspeed": { "type": "boolean", "description": "Whether we support setting the shutter speed for this camera." }, "brightness": { "type": "boolean", "description": "Whether we support setting the brightness control for this camera." }, "exposure": { "type": "boolean", "description": "Whether we support setting the exposure control for this camera." }, "exposureOptions": { "type": "array", "items": { "type": "string", "enum": [ "50hz", "60hz", "auto", "outdoor" ] }, "description": "The supported options for exposure control." }, "focus": { "type": "boolean", "description": "Whether we support focussing the camera." }, "backlight": { "type": "boolean", "description": "Whether we support setting the backlight control for this camera." }, "backlightOptions": { "type": "array", "items": { "type": "string", "enum": [ "off", "blc", "hlc", "wdr" ] }, "description": "Modes for backlight compensations. <p>Off - No compensation</p> <p>BLC - Backlight compensation, emphasizes dark parts of the camera image.</p> <p>HLC - Highlight compensation, compensates shiny objects which can disturb the image.</p> <p>WDR - Wide Dynamic Range, compensates for large differences between light and dark parts in the image.</p>\n" }, "rotation": { "type": "boolean", "description": "Whether we support rotating the image for this camera." }, "rotationOptions": { "type": "array", "description": "The supported rotation options in clockwise degrees for this camera.", "items": { "type": "integer" } } } }, "SystemCapabilities": { "type": "object", "description": "The system capabilities", "properties": { "reboot": { "type": "boolean", "description": "Whether we support rebooting this camera." }, "getFirmwareVersion": { "type": "boolean", "description": "Whether we support retrieving the firmware version for this camera." }, "firmwareUpgrade": { "type": "boolean", "description": "Whether we support upgrading the firmware for this camera." } } }, "PTZCapabilities": { "type": "object", "description": "Fine-grained PTZ capabilities.", "properties": { "panTilt": { "type": "boolean", "description": "Whether we support pan and tilt for this camera." }, "zoom": { "type": "boolean", "description": "Whether we support zoom for this camera." }, "nrOfPresets": { "type": "integer", "description": "The number of presets that the camera supports. A value of 0 indicates the camera does not support preset functionality." } } }, "WifiCapabilities": { "type": "object", "description": "Fine-grained Wi-Fi capabilities.", "properties": { "scanForAvailableWifi": { "type": "boolean", "description": "Whether we support to get the available Wi-Fi networks from the camera." }, "disableWifi": { "type": "boolean", "description": "Whether we support to disable the Wi-Fi for this camera." }, "saveMultipleWifi": { "type": "boolean", "description": "Whether we support storing multiple Wi-Fi networks for this camera." }, "forgetWifi": { "type": "boolean", "description": "Whether we support forgetting a stored Wi-Fi network for this camera." } } } }, "paths": { "/cameras/{cameraId}/capabilities": { "get": { "summary": "Get the device capabilities", "description": "Tells if the camera has certain hardware features, and if we support them.", "operationId": "getCameraCapabilities", "parameters": [ { "$ref": "#/parameters/cameraId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/DeviceCapabilities" } }, "400": { "$ref": "#/responses/validationError" }, "401": { "$ref": "#/responses/unauthorized" }, "403": { "$ref": "#/responses/forbidden" }, "404": { "$ref": "#/responses/resourceNotFound" }, "406": { "$ref": "#/responses/notAcceptableError" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "CameraCapabilities" ] } }, "/cameras/{cameraId}/capabilities/image": { "get": { "summary": "Get image modification capabilities", "description": "Tells which options are available to enhance the image that is retrieved from the camera. For example for when it becomes dark, or if we need to rotate the image.", "operationId": "getImageCapabilities", "parameters": [ { "$ref": "#/parameters/cameraId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageCapabilities" } }, "400": { "$ref": "#/responses/validationError" }, "401": { "$ref": "#/responses/unauthorized" }, "403": { "$ref": "#/responses/forbidden" }, "404": { "$ref": "#/responses/resourceNotFound" }, "406": { "$ref": "#/responses/notAcceptableError" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "CameraCapabilities" ] } }, "/cameras/{cameraId}/capabilities/system": { "get": { "summary": "Get the system capabilties", "description": "Tells which options are available to manage the actual camera.", "operationId": "getSystemCapabilities", "parameters": [ { "$ref": "#/parameters/cameraId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SystemCapabilities" } }, "400": { "$ref": "#/responses/validationError" }, "401": { "$ref": "#/responses/unauthorized" }, "403": { "$ref": "#/responses/forbidden" }, "404": { "$ref": "#/responses/resourceNotFound" }, "406": { "$ref": "#/responses/notAcceptableError" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "CameraCapabilities" ] } }, "/cameras/{cameraId}/capabilities/ptz": { "get": { "summary": "Get the fine-grained ptz capabilities", "description": "Get the fine-grained ptz capabilities.", "operationId": "getPtzCapabilities", "parameters": [ { "$ref": "#/parameters/cameraId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PTZCapabilities" } }, "400": { "$ref": "#/responses/validationError" }, "401": { "$ref": "#/responses/unauthorized" }, "403": { "$ref": "#/responses/forbidden" }, "404": { "$ref": "#/responses/resourceNotFound" }, "406": { "$ref": "#/responses/notAcceptableError" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "CameraCapabilities" ] } }, "/cameras/{cameraId}/capabilities/wifi": { "get": { "summary": "Get the fine-grained Wi-Fi capabilities", "description": "Get the fine-grained Wi-Fi capabilities.", "operationId": "getWifiCapabilities", "parameters": [ { "$ref": "#/parameters/cameraId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WifiCapabilities" } }, "400": { "$ref": "#/responses/validationError" }, "401": { "$ref": "#/responses/unauthorized" }, "403": { "$ref": "#/responses/forbidden" }, "404": { "$ref": "#/responses/resourceNotFound" }, "406": { "$ref": "#/responses/notAcceptableError" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "CameraCapabilities" ] } } } }

swagger-camera-capabilities.json