openapi: 3.0.0
info:
title: EdgeX Onvif Device Service
description: EdgeX Onvif Device Service REST APIs
version: 3.0.0
servers:
- url: http://localhost:59882
description: Local running instance of EdgeX
- url: http://127.0.0.1:59882
description: Local running instance of EdgeX
- url: http://0.0.0.0:59882
description: Local running instance of EdgeX
tags:
- name: Capabilities
- name: Auto Discovery
- name: Network Configuration
- name: System Function
- name: User Handling
- name: Metadata Configuration
- name: Video Streaming
- name: Video Encoder Configuration
- name: PTZ
- name: PTZ - Capabilities
- name: PTZ - Configuration
- name: PTZ - Actuation
- name: PTZ - PTZPreset
- name: PTZ - Home Position
- name: PTZ - Auxiliary
- name: Event Handling
- name: Analytics
- name: Analytics - Profile Configuration
- name: Analytics - Modules
- name: Analytics - Rules
- name: Custom
description: >-
Custom commands outside of the ONVIF spec handled by the device service
directly.
paths:
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Capabilities:
get:
tags:
- Capabilities
summary: 'Device: GetCapabilities'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: ''
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"Category": []
}
```
**Field Descriptions:**
- **Category** _[array]_
List of categories to retrieve capability information on.
**Schema Reference:** [device_GetCapabilities](#device_GetCapabilities)
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetCapabilitiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 001f4647-f047-445f-a632-57d22417760b
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: Capabilities
origin: 1666391598771990000
readings:
- id: 577e5335-44f0-4cdf-9413-b07bb2554d3c
origin: 1666391598771990000
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: Capabilities
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Capabilities:
Analytics:
AnalyticsModuleSupport: true
RuleSupport: true
XAddr: http://10.0.0.127:2020/onvif/service
Device:
Extension: ''
IO:
Extension:
Auxiliary: false
AuxiliaryCommands: ''
Extension: ''
InputConnectors: 0
RelayOutputs: 0
Network:
DynDNS: false
Extension:
Dot11Configuration: true
Extension: ''
IPFilter: false
IPVersion6: false
ZeroConfiguration: false
Security:
AccessPolicyConfig: false
Extension:
Extension:
Dot1X: false
RemoteUserHandling: false
SupportedEAPMethod: 0
TLS1_0: false
KerberosToken: false
OnboardKeyGeneration: false
RELToken: false
SAMLToken: false
TLS1_1: false
TLS1_2: false
X_509Token: false
System:
DiscoveryBye: true
DiscoveryResolve: false
Extension:
Extension: ''
HttpFirmwareUpgrade: false
HttpSupportInformation: false
HttpSystemBackup: false
HttpSystemLogging: false
FirmwareUpgrade: false
RemoteDiscovery: false
SupportedVersions:
Major: 20
Minor: 6
SystemBackup: false
SystemLogging: false
XAddr: http://10.0.0.127:2020/onvif/service
Events:
WSPausableSubscriptionManagerInterfaceSupport: false
WSPullPointSupport: true
WSSubscriptionPolicySupport: true
XAddr: http://10.0.0.127:2020/onvif/service
Extension:
AnalyticsDevice:
Extension: ''
RuleSupport: false
XAddr: ''
DeviceIO:
AudioOutputs: 0
AudioSources: 1
RelayOutputs: 0
VideoOutputs: 0
VideoSources: 0
XAddr: ''
Display:
FixedLayout: false
XAddr: ''
Extensions: ''
Receiver:
MaximumRTSPURILength: 0
RTP_Multicast: false
RTP_RTSP_TCP: false
RTP_TCP: false
SupportedReceivers: 0
XAddr: ''
Recording:
DynamicRecordings: false
DynamicTracks: false
MaxStringLength: 0
MediaProfileSource: false
ReceiverSource: false
XAddr: ''
Replay:
XAddr: ''
Search:
MetadataSearch: false
XAddr: ''
Imaging:
XAddr: http://10.0.0.127:2020/onvif/service
Media:
Extension:
ProfileCapabilities:
MaximumNumberOfProfiles: 0
StreamingCapabilities:
Extension: ''
RTPMulticast: false
RTP_RTSP_TCP: true
RTP_TCP: true
XAddr: http://10.0.0.127:2020/onvif/service
PTZ:
XAddr: http://10.0.0.127:2020/onvif/service
'400': &id001
description: Request is in an invalid state
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
400Example:
$ref: '#/components/examples/400Example'
'404': &id002
description: The requested resource does not exist
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
404Example:
$ref: '#/components/examples/404Example'
'423': &id003
description: The device is locked (AdminState)
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
423Example:
$ref: '#/components/examples/423Example'
'500': &id004
description: An unexpected error occurred on the server
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
500Example:
$ref: '#/components/examples/500Example'
'503': &id005
description: Service Unavailable
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
503Example:
$ref: '#/components/examples/503Example'
operationId: device_GetCapabilities
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetCapabilities
description: |-
This method has been replaced by the more generic GetServices method.
For capabilities of individual services refer to the GetServiceCapabilities methods.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DeviceCapabilities:
get:
tags:
- Capabilities
summary: 'Device: GetServiceCapabilities'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetServiceCapabilitiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: d78a2e7d-7662-4ffe-9bcb-f51774e3f4b9
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: DeviceCapabilities
origin: 1666391608703045000
readings:
- id: 7f5cf13f-385d-4eb5-a492-facf47e5b1e8
origin: 1666391608703045000
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: DeviceCapabilities
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Capabilities:
Misc:
AuxiliaryCommands:
AttrList:
Network:
DHCPv6: false
Dot11Configuration: true
Dot1XConfigurations: 0
DynDNS: false
HostnameFromDHCP: false
IPFilter: false
IPVersion6: false
NTP: 1
ZeroConfiguration: false
Security:
AccessPolicyConfig: false
DefaultAccessPolicy: false
Dot1X: false
HttpDigest: false
KerberosToken: false
MaxPasswordLength: 0
MaxUserNameLength: 0
MaxUsers: 0
OnboardKeyGeneration: false
RELToken: false
RemoteUserHandling: false
SAMLToken: false
SupportedEAPMethods:
Types:
TLS1_0: false
TLS1_1: false
TLS1_2: false
UsernameToken: true
X_509Token: false
System:
AutoGeo:
AttrList:
DiscoveryBye: false
DiscoveryResolve: false
FirmwareUpgrade: false
GeoLocationEntries: 0
HttpFirmwareUpgrade: false
HttpSupportInformation: false
HttpSystemBackup: false
HttpSystemLogging: false
MaxStorageConfigurations: 0
RemoteDiscovery: false
StorageConfiguration: false
SystemBackup: false
SystemLogging: false
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetServiceCapabilities
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetServiceCapabilities
description: |-
Returns the capabilities of the device service. The result is returned in a typed answer.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MediaCapabilities:
get:
tags:
- Capabilities
summary: 'Media: GetServiceCapabilities'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetServiceCapabilitiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 6d536924-265a-4f2d-b494-ccaa550af64f
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: MediaCapabilities
origin: 1666391854866122800
readings:
- id: 7d5788b9-f0c2-4d4a-be20-3256e9bd6368
origin: 1666391854866122800
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: MediaCapabilities
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Capabilities:
EXICompression: false
OSD: true
ProfileCapabilities:
MaximumNumberOfProfiles: 10
Rotation: false
SnapshotUri: false
StreamingCapabilities:
NoRTSPStreaming: true
NonAggregateControl: true
RTPMulticast: false
RTP_RTSP_TCP: true
RTP_TCP: true
TemporaryOSDText: false
VideoSourceMode: true
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetServiceCapabilities
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetServiceCapabilities
description: |-
Returns the capabilities of the media service. The result is returned in a typed answer.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZCapabilities:
get:
tags:
- Capabilities
summary: 'PTZ: GetServiceCapabilities'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetServiceCapabilitiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: c9001dc2-902c-452f-9e9c-4822c86da942
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZCapabilities
origin: 1666391880436591400
readings:
- id: 5886858d-668d-4bc3-bc1d-2aa6555c09fc
origin: 1666391880436591400
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZCapabilities
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Capabilities:
EFlip: true
GetCompatibleConfigurations: true
MoveStatus: false
Reverse: true
StatusPosition: false
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetServiceCapabilities
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetServiceCapabilities
description: |-
Returns the capabilities of the PTZ service. The result is returned in a typed answer.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/ImagingCapabilities:
get:
tags:
- Capabilities
summary: 'Imaging: GetServiceCapabilities'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: Successful response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/imaging_GetServiceCapabilitiesResponse'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: imaging_GetServiceCapabilities
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/imaging/wsdl/imaging.wsdl#op.GetServiceCapabilities
description: |-
Returns the capabilities of the imaging service. The result is returned in a typed answer.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/EventCapabilities:
get:
tags:
- Capabilities
summary: 'Event: GetServiceCapabilities'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/event_GetServiceCapabilitiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 746f8b0c-6ef7-4dc3-b32f-bef25790d2de
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: EventCapabilities
origin: 1666391902948425000
readings:
- id: 31c20970-a595-4689-8ac0-e16d258f8dba
origin: 1666391902948425000
deviceName: tp-link-Tapo-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: EventCapabilities
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Capabilities:
MaxNotificationProducers: 10
MaxPullPoints: 10
PersistentNotificationStorage: false
WSPausableSubscriptionManagerInterfaceSupport: false
WSPullPointSupport: true
WSSubscriptionPolicySupport: false
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: event_GetServiceCapabilities
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/events/wsdl/event.wsdl#op.GetServiceCapabilities
description: |-
Returns the capabilities of the event service. The result is returned in a typed answer.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DiscoveryMode:
get:
tags:
- Auto Discovery
summary: 'Device: GetDiscoveryMode'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetDiscoveryModeResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 8155efce-41b5-412f-a25d-b63bed015d63
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: DiscoveryMode
origin: 1659656339306907600
readings:
- id: 099efd6b-d5fa-44a3-98f2-67eb72a1659f
origin: 1659656339306907600
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: DiscoveryMode
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
DiscoveryMode: Discoverable
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetDiscoveryMode
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetDiscoveryMode
description: |-
This operation gets the discovery mode of a device. See Section 7.2 for the definition of the
different device discovery modes. The device shall support retrieval of the discovery mode
setting through the GetDiscoveryMode command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Auto Discovery
summary: 'Device: SetDiscoveryMode'
requestBody:
content:
application/json:
schema:
properties:
DiscoveryMode:
$ref: '#/components/schemas/device_SetDiscoveryMode'
required:
- DiscoveryMode
type: object
example:
DiscoveryMode:
DiscoveryMode: Discoverable
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': &id006
description: OK
headers:
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
examples:
200Example:
$ref: '#/components/examples/200Example'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetDiscoveryMode
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetDiscoveryMode
description: |-
This operation sets the discovery mode operation of a device. See Section 7.2 for the
definition of the different device discovery modes. The device shall support configuration of
the discovery mode setting through the SetDiscoveryMode command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AddDiscoveryScopes:
put:
tags:
- Auto Discovery
summary: 'Device: AddScopes'
requestBody:
content:
application/json:
schema:
properties:
AddDiscoveryScopes:
$ref: '#/components/schemas/device_AddScopes'
required:
- AddDiscoveryScopes
type: object
example:
AddDiscoveryScopes:
ScopeItem:
- http//:123
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_AddScopes
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.AddScopes
description: |-
This operation adds new configurable scope parameters to a device. The scope parameters
are used in the device discovery to match a probe message. The device shall
support addition of discovery scope parameters through the AddScopes command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DiscoveryScopes:
get:
tags:
- Auto Discovery
summary: 'Device: GetScopes'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetScopesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 05f573f4-0836-45ad-b9ba-c393f9927586
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: DiscoveryScopes
origin: 1659659228090509000
readings:
- id: ea858652-cb16-432c-bf45-f9785cd00d85
origin: 1659659228090509000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: DiscoveryScopes
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Scopes:
- ScopeDef: Fixed
ScopeItem: onvif://www.onvif.org/name/TP-IPC
- ScopeDef: Fixed
ScopeItem: onvif://www.onvif.org/hardware/MODEL
- ScopeDef: Fixed
ScopeItem: onvif://www.onvif.org/Profile/Streaming
- ScopeDef: Fixed
ScopeItem: onvif://www.onvif.org/location/ShenZhen
- ScopeDef: Fixed
ScopeItem: onvif://www.onvif.org/type/NetworkVideoTransmitter
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetScopes
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetScopes
description: |-
This operation requests the scope parameters of a device. The scope parameters are used in
the device discovery to match a probe message, see Section 7. The Scope parameters are of
two different types:
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Auto Discovery
summary: 'Device: SetScopes'
requestBody:
content:
application/json:
schema:
properties:
DiscoveryScopes:
$ref: '#/components/schemas/device_SetScopes'
required:
- DiscoveryScopes
type: object
example:
DiscoveryScopes:
Scopes:
- http//:123
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetScopes
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetScopes
description: |-
This operation sets the scope parameters of a device. The scope parameters are used in the
device discovery to match a probe message.
This operation replaces all existing configurable scope parameters (not fixed parameters). If
this shall be avoided, one should use the scope add command instead. The device shall
support configuration of discovery scope parameters through the SetScopes command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/RemoveDiscoveryScopes:
put:
tags:
- Auto Discovery
summary: 'Device: RemoveScopes'
requestBody:
content:
application/json:
schema:
properties:
RemoveDiscoveryScopes:
$ref: '#/components/schemas/device_RemoveScopes'
required:
- RemoveDiscoveryScopes
type: object
example:
RemoveDiscoveryScopes:
ScopeItem:
- onvif://www.onvif.org/name/Geovision
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
type: object
example:
apiVersion: v3
message: >-
request failed, status code: 500, err:
{"apiVersion":"v3","message":"error writing DeviceResourece
RemoveDiscoveryScopes for
Intel-SimCamera-003caffe-6392-4bb2-a5a4-f027d2e89ee1 -\u003e
failed to execute write command, \u003cnil\u003e -\u003e
invalid request for the function 'RemoveDiscoveryScopes' of
web service 'Device'. Onvif error: fault reason: Trying to
Remove scope which does not exist, fault detail: , fault code:
s:Sender ter:InvalidArgVal ter:NoScope","statusCode":500}
statusCode: 500
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'503': *id005
operationId: device_RemoveScopes
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.RemoveScopes
description: |-
This operation deletes scope-configurable scope parameters from a device. The scope
parameters are used in the device discovery to match a probe message, see Section 7. The
device shall support deletion of discovery scope parameters through the RemoveScopes
command.
Table
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/EndpointReference:
get:
tags:
- Auto Discovery
summary: 'Device: GetEndpointReference'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: Successful response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetEndpointReferenceResponse'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetEndpointReference
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetEndpointReference
description: |-
A client can ask for the device service endpoint reference address property that can be used
to derive the password equivalent for remote user operation. The device shall support the
GetEndpointReference command returning the address property of the device service
endpoint reference.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Hostname:
get:
tags:
- Network Configuration
summary: 'Device: GetHostname'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetHostnameResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 6ad6d2d6-51af-4084-8a6a-952928942732
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: Hostname
origin: 1659655574277981200
readings:
- id: b8e4ba90-2aeb-4336-a5ca-923456cff383
origin: 1659655574277981200
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: Hostname
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
HostnameInformation:
FromDHCP: false
Name: hostname
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetHostname
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetHostname
description: |-
This operation is used by an endpoint to get the hostname from a device. The device shall
return its hostname configurations through the GetHostname command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Network Configuration
summary: 'Device: SetHostname'
requestBody:
content:
application/json:
schema:
properties:
Hostname:
$ref: '#/components/schemas/device_SetHostname'
required:
- Hostname
type: object
example:
Hostname:
Name: localhost555
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetHostname
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetHostname
description: |-
This operation sets the hostname on a device. It shall be possible to set the device hostname
configurations through the SetHostname command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DNS:
get:
tags:
- Network Configuration
summary: 'Device: GetDNS'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetDNSResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: b45c64e4-1e1b-49c5-a1b9-d83f15e280b2
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: DNS
origin: 1664265880674763500
readings:
- id: 548e6841-0914-4e9c-935e-c58320a998a8
origin: 1664265880674763500
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: DNS
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
DNSInformation:
DNSManual:
IPv4Address: 223.5.5.5
Type: IPv4
FromDHCP: false
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetDNS
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetDNS
description: |-
This operation gets the DNS settings from a device. The device shall return its DNS
configurations through the GetDNS command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Network Configuration
summary: 'Device: SetDNS'
requestBody:
content:
application/json:
schema:
properties:
DNS:
$ref: '#/components/schemas/device_SetDNS'
required:
- DNS
type: object
example:
DNS:
FromDHCP: true
DNSManual:
Type: IPv4
IPv4Address: 192.168.12.1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetDNS
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetDNS
description: |-
This operation sets the DNS settings on a device. It shall be possible to set the device DNS
configurations through the SetDNS command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/NetworkInterfaces:
get:
tags:
- Network Configuration
summary: 'Device: GetNetworkInterfaces'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetNetworkInterfacesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: acc3a74d-852a-4c0c-bf31-dbc06d8a0782
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: NetworkInterfaces
origin: 1659655709817960400
readings:
- id: 74571fe4-731a-4925-99eb-7d4c317834f6
origin: 1659655709817960400
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: NetworkInterfaces
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkInterfaces:
Enabled: true
IPv4:
Config:
DHCP: false
Manual:
Address: 10.0.0.195
PrefixLength: 24
Enabled: true
Info:
HwAddress: 10:27:F5:EA:88:F4
MTU: 1500
Name: eth0
Token: eth0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetNetworkInterfaces
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetNetworkInterfaces
description: |-
This operation gets the network interface configuration from a device. The device shall
support return of network interface configuration settings as defined by the NetworkInterface
type through the GetNetworkInterfaces command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Network Configuration
summary: 'Device: SetNetworkInterfaces'
requestBody:
content:
application/json:
schema:
properties:
NetworkInterfaces:
$ref: '#/components/schemas/device_SetNetworkInterfaces'
required:
- NetworkInterfaces
type: object
example:
NetworkInterfaces:
InterfaceToken: eth0
NetworkInterface:
Enabled: true
IPv4:
DHCP: true
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetNetworkInterfaces
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetNetworkInterfaces
description: |-
This operation sets the network interface configuration on a device. The device shall support
network configuration of supported network interfaces through the SetNetworkInterfaces
command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/NetworkProtocols:
get:
tags:
- Network Configuration
summary: 'Device: GetNetworkProtocols'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetNetworkProtocolsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 193b3677-23c8-4d89-852e-73a1aabf445e
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: NetworkProtocols
origin: 1659671976670370300
readings:
- id: d3a47ec4-3b43-413a-9a67-42f54487cfa5
origin: 1659671976670370300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: NetworkProtocols
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkProtocols:
- Enabled: true
Name: HTTPS
Port: 443
- Enabled: true
Name: RTSP
Port: 554
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetNetworkProtocols
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetNetworkProtocols
description: |-
This operation gets defined network protocols from a device. The device shall support the
GetNetworkProtocols command returning configured network protocols.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Network Configuration
summary: 'Device: SetNetworkProtocols'
requestBody:
content:
application/json:
schema:
properties:
NetworkProtocols:
$ref: '#/components/schemas/device_SetNetworkProtocols'
required:
- NetworkProtocols
type: object
example:
NetworkProtocols:
NetworkProtocols:
- Name: HTTP
Enabled: true
Port: 2020
- Name: HTTPS
Enabled: false
Port: 443
- Name: RTSP
Enabled: true
Port: 554
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetNetworkProtocols
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetNetworkProtocols
description: |-
This operation configures defined network protocols on a device. The device shall support
configuration of defined network protocols through the SetNetworkProtocols command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/NetworkDefaultGateway:
get:
tags:
- Network Configuration
summary: 'Device: GetNetworkDefaultGateway'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetNetworkDefaultGatewayResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 66991bcb-ff04-4680-af91-aefe449d517c
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: NetworkDefaultGateway
origin: 1664269765488074200
readings:
- id: 4c8c2ca4-2c0c-49eb-8c8d-e21209813445
origin: 1664269765488074200
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: NetworkDefaultGateway
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkGateway:
IPv4Address: 10.0.20.1
IPv6Address: '::'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetNetworkDefaultGateway
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetNetworkDefaultGateway
description: |-
This operation gets the default gateway settings from a device. The device shall support the
GetNetworkDefaultGateway command returning configured default gateway address(es).
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Network Configuration
summary: 'Device: SetNetworkDefaultGateway'
requestBody:
content:
application/json:
schema:
properties:
NetworkDefaultGateway:
$ref: '#/components/schemas/device_SetNetworkDefaultGateway'
required:
- NetworkDefaultGateway
type: object
example:
NetworkDefaultGateway:
IPv4Address: 192.168.12.1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetNetworkDefaultGateway
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetNetworkDefaultGateway
description: |-
This operation sets the default gateway settings on a device. The device shall support
configuration of default gateway through the SetNetworkDefaultGateway command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/NetworkConfiguration:
get:
tags:
- Network Configuration
summary: NetworkConfiguration
description: >-
Used to retrieve network resources for a device such as Hostname, DNS,
NetworkInterfaces, NetworkProtocols and NetworkDefaultGateway.
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/BaseEventResponse'
- properties:
event:
properties:
readings:
items:
allOf:
- $ref: '#/components/schemas/ObjectReading'
- properties:
resourceName:
type: string
enum:
- Hostname
- DNS
- NetworkInterfaces
- NetworkProtocols
- NetworkDefaultGateway
objectValue:
oneOf:
- $ref: '#/components/schemas/device_GetHostnameResponse'
- $ref: '#/components/schemas/device_GetDNSResponse'
- $ref: '#/components/schemas/device_GetNetworkInterfacesResponse'
- $ref: '#/components/schemas/device_GetNetworkProtocolsResponse'
- $ref: '#/components/schemas/device_GetNetworkDefaultGatewayResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: b34fe9d1-78f9-4b49-961b-80a252e084c4
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: NetworkConfiguration
origin: 1659656577804929300
readings:
- id: 67e318f5-4426-48ff-8235-4a2471e47baf
origin: 1659656577804929300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: Hostname
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
HostnameInformation:
FromDHCP: false
Name: hostname
- id: 76cfd2b5-f178-4d16-88d1-6b04f129a867
origin: 1659656577804929300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: DNS
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
DNSInformation: {}
- id: 301b79ab-c92d-4a3f-9776-9a71f6c3c340
origin: 1659656577804929300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: NetworkInterfaces
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkInterfaces:
Enabled: true
IPv4:
Config:
DHCP: false
Manual:
Address: 10.0.0.188
PrefixLength: 24
Enabled: true
Info:
HwAddress: 10:27:F5:EA:88:F4
MTU: 1500
Name: eth0
Token: eth0
- id: cc1d5230-06a8-4515-822e-187ba07d0efc
origin: 1659656577804929300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: NetworkProtocols
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkProtocols:
- Enabled: true
Name: HTTPS
Port: 443
- Enabled: true
Name: RTSP
Port: 554
- id: 81f9c4e6-1cfd-487a-a05b-b8ea5b39ffcf
origin: 1659656577804929300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: NetworkDefaultGateway
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
NetworkGateway: {}
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetNetworkConfiguration
put:
tags:
- Network Configuration
summary: NetworkConfiguration
description: >-
Used to configure network resources for a device such as Hostname, DNS,
NetworkInterfaces, NetworkProtocols and NetworkDefaultGateway.
requestBody:
content:
application/json:
schema:
properties:
Hostname:
$ref: '#/components/schemas/device_SetHostname'
DNS:
$ref: '#/components/schemas/device_SetDNS'
NetworkInterfaces:
$ref: '#/components/schemas/device_SetNetworkInterfaces'
NetworkProtocols:
$ref: '#/components/schemas/device_SetNetworkProtocols'
NetworkDefaultGateway:
$ref: '#/components/schemas/device_SetNetworkDefaultGateway'
required:
- Hostname
- DNS
- NetworkInterfaces
- NetworkProtocols
- NetworkDefaultGateway
type: object
example:
Hostname:
Name: localhost
DNS:
FromDHCP: false
DNSManual:
Type: IPv4
IPv4Address: 192.168.12.1
NetworkInterfaces:
InterfaceToken: eth0
NetworkInterface:
Enabled: true
IPv4:
DHCP: false
NetworkProtocols:
NetworkProtocols:
- Name: HTTP
Enabled: true
Port: 80
NetworkDefaultGateway:
IPv4Address: 192.168.12.1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetNetworkConfiguration
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DeviceInformation:
get:
tags:
- System Function
summary: 'Device: GetDeviceInformation'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetDeviceInformationResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: a025e1b1-7e2b-4db8-95b6-7dac978e9c97
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: DeviceInformation
origin: 1659672857568971800
readings:
- id: 3039ffbc-165a-46ef-849b-95c7df9aacfa
origin: 1659672857568971800
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: DeviceInformation
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
FirmwareVersion: 1.1.16 Build 211209 Rel.37726n(4555)
HardwareId: '1.0'
Manufacturer: TP-Link
Model: C200
SerialNumber: 00c20000
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetDeviceInformation
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetDeviceInformation
description: |-
This operation gets basic device information from the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/SystemDateAndTime:
get:
tags:
- System Function
summary: 'Device: GetSystemDateAndTime'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetSystemDateAndTimeResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: da6f552e-e4b3-4d75-a2ce-989745b8ef7b
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: SystemDateAndTime
origin: 1659672865881317600
readings:
- id: aa61a541-beb5-4be0-bb7a-625ce60a980e
origin: 1659672865881317600
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: SystemDateAndTime
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
SystemDateAndTime:
DateTimeType: NTP
DaylightSavings: true
Extension: ''
LocalDateTime:
Date:
Month: '8'
Year: '2022'
Day: '11'
Time:
Hour: '21'
Minute: '14'
Second: '25'
TimeZone:
TZ: >
GMT+08:00DST+07:00,M3.2.0/02:00:00,M11.1.0/02:00:00
UTCDateTime:
Date:
Month: '8'
Year: '2022'
Day: '11'
Time:
Hour: '4'
Minute: '14'
Second: '25'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetSystemDateAndTime
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetSystemDateAndTime
description: |-
This operation gets the device system date and time. The device shall support the return of
the daylight saving setting and of the manual system date and time (if applicable) or indication
of NTP time (if applicable) through the GetSystemDateAndTime command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- System Function
summary: 'Device: SetSystemDateAndTime'
requestBody:
content:
application/json:
schema:
properties:
SystemDateAndTime:
$ref: '#/components/schemas/device_SetSystemDateAndTime'
required:
- SystemDateAndTime
type: object
example:
SystemDateAndTime:
DateTimeType: Manual
DaylightSavings: false
UTCDateTime:
Date:
Month: 12
Year: 2021
Day: 11
Time:
Hour: 5
Minute: 48
Second: 20
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetSystemDateAndTime
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetSystemDateAndTime
description: |-
This operation sets the device system date and time. The device shall support the
configuration of the daylight saving setting and of the manual system date and time (if
applicable) or indication of NTP time (if applicable) through the SetSystemDateAndTime
command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | Tapo does not support setting the `DaylightSavings` field to `false`. Regardless of the setting, the camera will always use daylight savings time. |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/SystemFactoryDefault:
put:
tags:
- System Function
summary: 'Device: SetSystemFactoryDefault'
requestBody:
content:
application/json:
schema:
properties:
SystemFactoryDefault:
$ref: '#/components/schemas/device_SetSystemFactoryDefault'
required:
- SystemFactoryDefault
type: object
example:
SystemFactoryDefault:
FactoryDefault: Soft
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetSystemFactoryDefault
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetSystemFactoryDefault
description: |-
This operation reloads the parameters on the device to their factory default values.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/RebootNeeded:
get:
tags:
- System Function
summary: RebootNeeded
description: >-
Indicates whether or not a reboot is required after configuration
updates.
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/BoolEventResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: cb3b3a49-86e4-44e3-b2a0-426b08168ae1
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: RebootNeeded
origin: 1659672882772484400
readings:
- id: f56f48df-d664-4179-98d1-abcb496f07bc
origin: 1659672882772484400
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: RebootNeeded
profileName: onvif-camera
valueType: Bool
value: 'false'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetRebootNeeded
/api/v3/device/name/{EDGEX_DEVICE_NAME}/SystemReboot:
put:
tags:
- System Function
summary: 'Device: SystemReboot'
requestBody:
content:
application/json:
schema:
properties:
SystemReboot:
$ref: '#/components/schemas/device_SystemReboot'
required:
- SystemReboot
type: object
example:
SystemReboot: {}
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SystemReboot
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SystemReboot
description: |-
This operation reboots the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Users:
get:
tags:
- User Handling
summary: 'Device: GetUsers'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/device_GetUsersResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 8e524ecd-674d-4dd8-b728-de78b8245189
deviceName: Intel-SimCamera-003caffe-6392-4bb2-a5a4-f027d2e89ee1
profileName: onvif-camera
sourceName: Users
origin: 1664077238993899500
readings:
- id: f5086b88-9876-4627-91d5-7ce39431652e
origin: 1664077238993899500
deviceName: Intel-SimCamera-003caffe-6392-4bb2-a5a4-f027d2e89ee1
resourceName: Users
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
User:
- UserLevel: Administrator
Username: admin
- UserLevel: User
Username: user
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_GetUsers
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.GetUsers
description: |-
This operation lists the registered users and corresponding credentials on a device. The
device shall support retrieval of registered device users and their credentials for the user
token through the GetUsers command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | Tapo returns `200 OK` for all User Management commands, but none of them actually do anything. The only way to modify the users is through the Tapo app. |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- User Handling
summary: 'Device: SetUser'
requestBody:
content:
application/json:
schema:
properties:
Users:
$ref: '#/components/schemas/device_SetUser'
required:
- Users
type: object
example:
Users:
User:
- Username: user1
Password: Password1!
UserLevel: Administrator
- Username: user2
Password: Password1!
UserLevel: Operator
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_SetUser
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.SetUser
description: |-
This operation updates the settings for one or several users on a device for authentication purposes.
The device shall support update of device users and their credentials through the SetUser command.
Either all change requests are processed successfully or a fault message shall be returned and no change requests be processed.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | Tapo returns `200 OK` for all User Management commands, but none of them actually do anything. The only way to modify the users is through the Tapo app. |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/CreateUsers:
put:
tags:
- User Handling
summary: 'Device: CreateUsers'
requestBody:
content:
application/json:
schema:
properties:
CreateUsers:
$ref: '#/components/schemas/device_CreateUsers'
required:
- CreateUsers
type: object
example:
CreateUsers:
User:
- Username: user1
Password: Password1!
UserLevel: User
- Username: user2
Password: Password1!
UserLevel: User
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_CreateUsers
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.CreateUsers
description: |-
This operation creates new device users and corresponding credentials on a device for authentication purposes.
The device shall support creation of device users and their credentials through the CreateUsers
command. Either all users are created successfully or a fault message shall be returned
without creating any user.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | Tapo returns `200 OK` for all User Management commands, but none of them actually do anything. The only way to modify the users is through the Tapo app. |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DeleteUsers:
put:
tags:
- User Handling
summary: 'Device: DeleteUsers'
requestBody:
content:
application/json:
schema:
properties:
DeleteUsers:
$ref: '#/components/schemas/device_DeleteUsers'
required:
- DeleteUsers
type: object
example:
DeleteUsers:
Username:
- user1
- user2
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: device_DeleteUsers
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl#op.DeleteUsers
description: |-
This operation deletes users on a device. The device shall support deletion of device users and their credentials
through the DeleteUsers command. A device may have one or more fixed users
that cannot be deleted to ensure access to the unit. Either all users are deleted successfully or a
fault message shall be returned and no users be deleted.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | Tapo returns `200 OK` for all User Management commands, but none of them actually do anything. The only way to modify the users is through the Tapo app. |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MetadataConfigurations:
get:
tags:
- Metadata Configuration
summary: 'Media: GetMetadataConfigurations'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetMetadataConfigurationsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 95eae089-a594-4af6-b827-c0cd689034e1
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: MetadataConfigurations
origin: 1664272201400116500
readings:
- id: 147f3297-6d21-4c9d-b0f9-241f1ca0528c
origin: 1664272201400116500
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: MetadataConfigurations
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Configurations:
Analytics: false
AnalyticsEngineConfiguration: {}
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 8864
TTL: 128
Name: metaData
PTZStatus:
Position: false
Status: false
SessionTimeout: PT5S
Token: MetaDataToken
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetMetadataConfigurations
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetMetadataConfigurations
description: |-
This operation lists all existing metadata configurations. The client need not know anything apriori about the metadata in order to use the command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MetadataConfiguration:
get:
tags:
- Metadata Configuration
summary: 'Media: GetMetadataConfiguration'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJDb25maWd1cmF0aW9uVG9rZW4iOiAiMSJ9
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Token of the requested metadata configuration.
**Schema Reference:** [media_GetMetadataConfiguration](#media_GetMetadataConfiguration)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ConfigurationToken": "1"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetMetadataConfigurationResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 239e1b98-d000-4bc5-8bd8-8287817b756f
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: MetadataConfiguration
origin: 1664272513018240800
readings:
- id: ab630702-05d5-4c97-98d0-fa23b16e72cc
origin: 1664272513018240800
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: MetadataConfiguration
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Configuration:
Analytics: false
AnalyticsEngineConfiguration: {}
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 8864
TTL: 128
Name: metaData
PTZStatus:
Position: false
Status: false
SessionTimeout: PT5S
Token: MetaDataToken
UseCount: 1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetMetadataConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetMetadataConfiguration
description: |-
The GetMetadataConfiguration command fetches the metadata configuration if the metadata token is known.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Metadata Configuration
summary: 'Media: SetMetadataConfiguration'
requestBody:
content:
application/json:
schema:
properties:
MetadataConfiguration:
$ref: '#/components/schemas/media_SetMetadataConfiguration'
required:
- MetadataConfiguration
type: object
example:
MetadataConfiguration:
ForcePersistence: true
Configuration:
token: '1'
Analytics: true
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_SetMetadataConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.SetMetadataConfiguration
description: |-
This operation modifies a metadata configuration. The ForcePersistence flag indicates if the
changes shall remain after reboot of the device. Changes in the Multicast settings shall
always be persistent. Running streams using this configuration may be updated immediately
according to the new settings. The changes are not guaranteed to take effect unless the client
requests a new stream URI and restarts any affected streams. NVC methods for changing a
running stream are out of scope for this specification.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/CompatibleMetadataConfigurations:
get:
tags:
- Metadata Configuration
summary: 'Media: GetCompatibleMetadataConfigurations'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEifQ==
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
Contains the token of an existing media profile the configurations shall be compatible with.
**Schema Reference:** [media_GetCompatibleMetadataConfigurations](#media_GetCompatibleMetadataConfigurations)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetCompatibleMetadataConfigurationsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 37a0130d-d555-44f2-ab9c-6214617eca32
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: CompatibleMetadataConfigurations
origin: 1664272369409217800
readings:
- id: 86fb41fc-48e7-455f-bb66-78c8f556a21e
origin: 1664272369409217800
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: CompatibleMetadataConfigurations
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Configurations:
Analytics: false
AnalyticsEngineConfiguration: {}
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 8864
TTL: 128
Name: metaData
PTZStatus:
Position: false
Status: false
SessionTimeout: PT5S
Token: MetaDataToken
UseCount: 1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetCompatibleMetadataConfigurations
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetCompatibleMetadataConfigurations
description: |-
This operation requests all the metadata configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddMetadataConfiguration command on the media profile. The result varies depending on the capabilities, configurations and settings in the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MetadataConfigurationOptions:
get:
tags:
- Metadata Configuration
summary: 'Media: GetMetadataConfigurationOptions'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEifQ==
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": "",
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Optional metadata configuration token that specifies an existing configuration that the options are intended for.
- **ProfileToken** _[string]_
Optional ProfileToken that specifies an existing media profile that the options shall be compatible with.
**Schema Reference:** [media_GetMetadataConfigurationOptions](#media_GetMetadataConfigurationOptions)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetMetadataConfigurationOptionsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: e694b7a9-8a40-49c8-a5ed-a655b4342bb7
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: MetadataConfigurationOptions
origin: 1664272709504749800
readings:
- id: 9951b817-1f15-4dde-98fc-7fe7b5727008
origin: 1664272709504749800
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: MetadataConfigurationOptions
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Options:
PTZStatusFilterOptions:
PanTiltPositionSupported: false
PanTiltStatusSupported: false
ZoomPositionSupported: false
ZoomStatusSupported: false
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetMetadataConfigurationOptions
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetMetadataConfigurationOptions
description: |-
This operation returns the available options (supported values and ranges for metadata configuration parameters) for changing the metadata configuration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AddMetadataConfiguration:
put:
tags:
- Metadata Configuration
summary: 'Media: AddMetadataConfiguration'
requestBody:
content:
application/json:
schema:
properties:
AddMetadataConfiguration:
$ref: '#/components/schemas/media_AddMetadataConfiguration'
required:
- AddMetadataConfiguration
type: object
example:
AddMetadataConfiguration:
ProfileToken: profile_1
ConfigurationToken: '1'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_AddMetadataConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.AddMetadataConfiguration
description: |-
This operation adds a Metadata configuration to an existing media profile. If a configuration exists in the media profile, it will be replaced. The change shall be persistent. Adding a MetadataConfiguration to a Profile means that streams using that profile contain metadata. Metadata can consist of events, PTZ status, and/or video analytics data.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/RemoveMetadataConfiguration:
put:
tags:
- Metadata Configuration
summary: 'Media: RemoveMetadataConfiguration'
requestBody:
content:
application/json:
schema:
properties:
RemoveMetadataConfiguration:
$ref: '#/components/schemas/media_RemoveMetadataConfiguration'
required:
- RemoveMetadataConfiguration
type: object
example:
RemoveMetadataConfiguration:
ProfileToken: profile_1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_RemoveMetadataConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.RemoveMetadataConfiguration
description: |-
This operation removes a MetadataConfiguration from an existing media profile. If the media profile does not contain a MetadataConfiguration, the operation has no effect. The removal shall be persistent.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MediaProfiles:
get:
tags:
- Video Streaming
summary: 'Media: GetProfiles'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetProfilesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: e6560b52-1952-4d66-9f53-3cf27d48b3c0
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: MediaProfiles
origin: 1659656314715442700
readings:
- id: 5c7bc03c-308f-4b2c-8bc9-2e59da7d6f65
origin: 1659656314715442700
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: MediaProfiles
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Profiles:
- AudioEncoderConfiguration:
Bitrate: 131072
Encoding: G711
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: AudioEncoder_1
SampleRate: 8000
SessionTimeout: PT0H1M5S
Token: microphone
UseCount: 2
AudioSourceConfiguration:
Name: AudioSourceConfig
SourceToken: raw_as1
Token: asconf
UseCount: 2
Extension:
Fixed: true
MetadataConfiguration:
Name: mainStream
PTZConfiguration:
DefaultAbsolutePantTiltPositionSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
DefaultContinuousPanTiltVelocitySpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
DefaultPTZSpeed: {}
DefaultPTZTimeout: PT0H0M20S
DefaultRelativePanTiltTranslationSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
PanTiltLimits:
Range:
URI: ''
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
Token: PTZConfiguration0
Token: profile_1
VideoAnalyticsConfiguration:
AnalyticsEngineConfiguration:
AnalyticsModule:
- Name: MyCellMotionModule
Parameters:
ElementItem:
- Name: Layout
SimpleItem:
- Name: Sensitivity
Value: medium
- Name: Enabled
Value: off
Type: tt:CellMotionEngine
- Name: MyTamperDetecModule
Parameters:
SimpleItem:
- Name: Sensitivity
- Name: Enabled
Type: tt:TamperEngine
Name: VideoAnalyticsName
RuleEngineConfiguration:
Rule:
Name: MyTamperDetectorRule
Parameters:
SimpleItem:
- Name: ActiveCells
Value: 0P8A8A==
- Name: MinCount
Value: '5'
- Name: AlarmOnDelay
Value: '1000'
- Name: AlarmOffDelay
Value: '1000'
Type: tt:TamperDetector
Token: VideoAnalyticsToken
UseCount: 2
VideoEncoderConfiguration:
Encoding: H264
H264:
GovLength: 25
H264Profile: Main
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: VideoEncoder_1
Quality: 3
RateControl:
BitrateLimit: 1024
EncodingInterval: 1
FrameRateLimit: 15
Resolution:
Height: 1080
Width: 1920
SessionTimeout: PT0H1M5S
Token: main
UseCount: 1
VideoSourceConfiguration:
Bounds:
Height: 720
Width: 1280
X: 0
Y: 0
Extension:
Name: VideoSourceConfig
SourceToken: raw_vs1
Token: vsconf
UseCount: 2
ViewMode: ''
- AudioEncoderConfiguration:
Bitrate: 131072
Encoding: G711
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: AudioEncoder_1
SampleRate: 8000
SessionTimeout: PT0H1M5S
Token: microphone
UseCount: 2
AudioSourceConfiguration:
Name: AudioSourceConfig
SourceToken: raw_as1
Token: asconf
UseCount: 2
Extension:
Fixed: true
MetadataConfiguration:
Name: minorStream
PTZConfiguration:
DefaultAbsolutePantTiltPositionSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
DefaultContinuousPanTiltVelocitySpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
DefaultPTZSpeed: {}
DefaultPTZTimeout: PT0H0M20S
DefaultRelativePanTiltTranslationSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
PanTiltLimits:
Range:
URI: ''
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
Token: PTZConfiguration0
Token: profile_2
VideoAnalyticsConfiguration:
AnalyticsEngineConfiguration:
AnalyticsModule:
- Name: MyCellMotionModule
Parameters:
ElementItem:
- Name: Layout
SimpleItem:
- Name: Sensitivity
Value: medium
- Name: Enabled
Value: off
Type: tt:CellMotionEngine
- Name: MyTamperDetecModule
Parameters:
SimpleItem:
- Name: Sensitivity
- Name: Enabled
Type: tt:TamperEngine
Name: VideoAnalyticsName
RuleEngineConfiguration:
Rule:
Name: MyTamperDetectorRule
Parameters:
SimpleItem:
- Name: ActiveCells
Value: 0P8A8A==
- Name: MinCount
Value: '5'
- Name: AlarmOnDelay
Value: '1000'
- Name: AlarmOffDelay
Value: '1000'
Type: tt:TamperDetector
Token: VideoAnalyticsToken
UseCount: 2
VideoEncoderConfiguration:
Encoding: H264
H264:
GovLength: 25
H264Profile: Main
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: VideoEncoder_2
Quality: 3
RateControl:
BitrateLimit: 256
EncodingInterval: 1
FrameRateLimit: 15
Resolution:
Height: 360
Width: 640
SessionTimeout: PT0H1M5S
Token: minor
UseCount: 1
VideoSourceConfiguration:
Bounds:
Height: 720
Width: 1280
X: 0
Y: 0
Extension:
Name: VideoSourceConfig
SourceToken: raw_vs1
Token: vsconf
UseCount: 2
ViewMode: ''
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetProfiles
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetProfiles
description: |-
Any endpoint can ask for the existing media profiles of a device using the GetProfiles
command. Pre-configured or dynamically configured profiles can be retrieved using this
command. This command lists all configured profiles in a device. The client does not need to
know the media profile in order to use the command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/StreamUri:
get:
tags:
- Video Streaming
summary: 'Media: GetStreamUri'
description: |-
This operation requests a URI that can be used to initiate a live media stream using RTSP as the control protocol. The returned URI shall remain valid indefinitely even if the profile is changed. The ValidUntilConnect, ValidUntilReboot and Timeout Parameter shall be set accordingly (ValidUntilConnect=false, ValidUntilReboot=false, timeout=PT0S).
The correct syntax for the StreamSetup element for these media stream setups defined in 5.1.1 of the streaming specification are as follows:
RTP unicast over UDP: StreamType = "RTP_unicast", TransportProtocol = "UDP"
RTP over RTSP over HTTP over TCP: StreamType = "RTP_unicast", TransportProtocol = "HTTP"
RTP over RTSP over TCP: StreamType = "RTP_unicast", TransportProtocol = "RTSP"
If a multicast stream is requested at least one of VideoEncoderConfiguration, AudioEncoderConfiguration and MetadataConfiguration shall have a valid multicast setting.
For full compatibility with other ONVIF services a device should not generate Uris longer than 128 octets.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
parameters:
- name: jsonObject
in: query
schema:
type: string
example:
eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEiLCJTdHJlYW1TZXR1cCI6eyJTdHJlYW0iOiJSVFAtVW5pY2FzdCIsIlRyYW5zcG9ydCI6eyJQcm90b2NvbCI6IlJUU1AifX19
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": "",
"StreamSetup": {
"Stream": "RTP-Unicast|RTP-Multicast",
"Transport": {
"Protocol": "UDP|TCP|RTSP|HTTP",
"Tunnel": { $ref: onvif_Transport }
}
}
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
The ProfileToken element indicates the media profile to use and will define the configuration of the content of the stream.
- **StreamSetup** _[object]_
Stream Setup that should be used with the uri
- **Stream** _[string]_
Defines if a multicast or unicast stream is requested
_Enum: ['RTP-Unicast', 'RTP-Multicast']_
- **Transport** _[object]_
- **Protocol** _[string]_
Defines the network protocol for streaming, either UDP=RTP/UDP, RTSP=RTP/RTSP/TCP or HTTP=RTP/RTSP/HTTP/TCP
_Enum: ['UDP', 'TCP', 'RTSP', 'HTTP']_
- **Tunnel** _[Recursive object of type [onvif_Transport](#onvif_Transport)]_
Optional element to describe further tunnel options. This element is normally not needed
**Schema Reference:** [media_GetStreamUri](#media_GetStreamUri)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1",
"StreamSetup": {
"Stream": "RTP-Unicast",
"Transport": {
"Protocol": "RTSP"
}
}
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetStreamUriResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 0ef64d9b-ba26-49a9-9a9f-5ec6f7b47190
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: StreamUri
origin: 1659656323588827000
readings:
- id: 255085ba-4399-489d-aa34-cab5e1379281
origin: 1659656323588827000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: StreamUri
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
MediaUri:
InvalidAfterConnect: false
InvalidAfterReboot: false
Timeout: PT0H0M2S
Uri: rtsp://10.0.0.188:554/stream1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetStreamUri
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetStreamUri
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Snapshot:
get:
tags:
- Video Streaming
summary: Snapshot
description: |-
This request returns a snapshot of the video stream at the time the command is given.
It is returned in a binary format.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | You must use `Digest Auth` or `Both` as the Auth-Mode in order for this to work. |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEifQ==
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
The ProfileToken element indicates the media profile to use and will define the source and dimensions of the snapshot.
**Schema Reference:** [media_GetSnapshotUri](#media_GetSnapshotUri)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/BinaryEventResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 5fdf593f-2a92-4a71-b08c-791d7a27fdff
deviceName: Intel-SimCamera-003caffe-6392-4bb2-a5a4-f027d2e89ee1
profileName: onvif-camera
sourceName: Snapshot
origin: 1665415500727830500
readings:
- id: d04a9dad-feb9-4099-a524-8a4b4cf2cc37
origin: 1665415500727830500
deviceName: Intel-SimCamera-003caffe-6392-4bb2-a5a4-f027d2e89ee1
resourceName: Snapshot
profileName: onvif-camera
valueType: Binary
binaryValue: >-
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACAAKADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzGwiBtoGx/wAs1/kK0BGPSotPH+g23/XFP5CreKxOyOwxVqTYuOlAWn7eKQFd1VQDtH3hUgtoz1QUsq/u2PoM1PikBCLWL+4KelkhOQSAOp3dKoX+sQWalVO+X0HasB9bumOfMP0oDmR2T6c/klt/4d/5VRvNOkhxvQrkcblH4/rmsaz8TT25bzP3qMCNp7Z9K3IvGcU0C211F5kROTnG4dOh7dKYXTMPysXeMV0MKgDpVC4+xTXiy2QkMXPDNuI4rRgGcUBYsqgFSgUiLUoFMmwzbU8a0wLzVmMAimMlij713+h2a2lhEpX52G5vxrj9Nthc3kUJGQx5HtXoUaYFBUELIgYZ2ivLviHKJ47tAoxDAyj8ia9TkkWGF5HOFUc15H4oJm03UZW5LQyH9DTiKo9DmdPQ/YbbH/PFP5CrgWoNNP8AxLbX/rin8hVwVIR2GBacFp4UU8LSAryL8hqrqF4LTTTICN54XNaEi/Ka5LXpi8kcfZF6e5oAxXcscmoy1KetMaqSMGLuGacGqIU8A02gNK0vWhTAJByDXX6bMLiFXXvXBxiur8NSMZBGx+X0rKRvTd3Y6VBUyjirM1uoCOg4bP5j/IqMJirTHKNhgFSxjmgJTo1IamSdL4Xh3X5fH3Vrs8Yrl/Csf7yZ/Yf1rqyKGaIyddlMemOF43naa8419c6HqJx/y7Sf+gmvQPExItIVHQuc/lXB6+MeH9SP/TtJ/wCgmtYGFU5jTVH9mWn/AFxT+Qq2FqjppP8AZ1qP+mKfyFaS9KxNI7ABTgKUCngDFICMjiuG1cEXsoPrXdtiuP8AEUW25V/7wNBMjnj1ptPbrTcc1Zix8MZedR2zzVuWEKpUDBBp1lDj5z+FWbiA7t46GspT1OmnT0uVbOHfLg9K9G0Lw8xtYLuAr5chYZZuflxk1wtpFtkz2r03w5K7aBdRXczrHbyRNGuBwH3A4+vH6UblU9GdHe2sP2Nx5iBtxK57np/9euaxTjfSSjBOBTQaqBdRp7CgU9Rg01aeOtUYnV+FjzN9BXUiuS8Ln/SWX1WuvUc0MtGJ4nQ/Z7Y44yf6VwfiEY8P6l/17Sf+gmvR/ESb9MiOORJ/MH/CvP8AxGn/ABT2pHt9lk/9BNbwOeocPp0MzWFqwdR+5T+Qq4ILr+8lJpqj+zbP/rhH/wCg1eVaxNY7FURXX95Kf9nu/wC+lWwKkAqWhmU7XKnBWsvWIxJYuzD5lwRXTyRFkIUZasPVrO5Ns6LBISeOmR+lAmjidhJp6QMx6VrLpk0Ry8R/KmPHtbGMVnKdg5CONdiYFWuGhwagqzEm5BWL1N4qxNZoN4wK9C1R/M0jSQEVWNth2A5faxVc/QAVwtpGVbPpXpviH+zrTR9Ks1niFxDHlgvcNz/P+daxYmjnIweKsqKbGqkDBzU6rWyMhB0p69aAlSpHVNEm1oD7L+L3OK7pBXnunnyriJ/Rga9CRuhpFplTWofM05sdVIavPfEq48Nap/16S/8AoBr064QTwPGf4gRXm/iZMeGtVyOlpLn/AL5NaQdkY1Fc4fTR/wASyz/64R/+gitFU4qrpUQ/sqyZ8qot48+v3RVpbiVFkiixhxg5QE/gSMj8KzNI7DguFLZGB1yRU9ncWRLLc7xgfK688+mPSs1oHbr+tK6i3i3NwPWpGaUVxam4wqMAOjMe/wBKW8vbSGM+dIq56AnrXPPeSSf8e2UTvIR/IUiwRiOS6nbeQPvSck0mxsklubedW8mVW9s1nOFOeBVS65BuYE8tg33R3FSRP5ihgeDUNDI3t1ZvkGCe1WLa3YcEVNboplBIq/GirIDjjvUuJdN62Io4SozViOEzq4X74rUisEnjPkgucZwAc04RQ2MrJEfMZ12yHHAPfFZ6nZaJjQve2hyrnGehGQa7BrcMsUsQIiliWQE+pHI/A5H4VkSxqyHI6dvSum0TbqPh2W3zmeyJdB3MZ64+h5/GtoHNWguhnhcdadkZ4pWpoHNanMWYeor0G1ffBG2eqivPYuldxob79PXnOKBo0+1cL42h8rQ9ZHrZyn/xw13ijNcj4/hx4c1WT1sZh+SGriRI820qEyaZp/p9mj/9BFX/ALKELEjHyk1Z0qK3g8M6bPMQo+yQkk+6CqNzJc3zYhR0i6Db94/X0qTSOxBcXKR/u41MkvoOg+pqolpNeEGYb8fgo/DvWpDpSR7TIM8Z254/+vV4g8jtxxQBhLZbPv8AJxj2rO1k+UkcC/Vh/KukkT94KwdcXzbmCJRl8HP41IGBGXkcKo9eKfYj9y6n7ytW9Y6X9nUtImZT+lZWwWepTQkYWTFS0ImgilyCBVxGYfeHNWEgCqAKUw07DLNrfvAwaGRo3HQqcVNJ4j1JeWuBKAc/vYlfH0yKzfLxUU/EJpWK5mbNv4kt7ydY9StIgrHDS267Hx/ujg/lWnaXn/CO67b3sJM9jJkpIoIEsZ4I+o9PUVwg4OeldZ4d1GC7h/si+ZVhIzDKesT+v0PQ/wD1qaQc76nS3doslst/asj28nQK2Sh9D+uKoVZ0OO7sdSksJ4d0E64kiZlyfQqSeTyDx1pLu0ksrh4ZR8ynGexHqKohjI+ldd4ZkzbyR+hBrkYq6Xw04W4ZP7woBHVKOK5vx9Hu8Fas392zm/8AQDXTAVheN03+BtcA6ixmP/jhoTJkeZeHLO717TtOjJKWsFtEq8dwgGa6+TSI7WFYoo8d/c1ifDS8M1ra2RXIS3VgfbA6/mK7u5T94D6AD880zWOxxU0Oxm44BqnIPmf6VuXsWC59WNY7rjf+FANFJxjrWNEq3XiBuMiPp9f8mtq6bylZj0GKo+H7cOs923LSNwfYf/XzQKxcljwM4rkNfQpepMBkcv3tyMRmuU1yJpIjjtzQFjT2DaCPTNMJpdOzLpcUjctt5PrSN1pNA0Rmqs/3TVo1Vn+6akCi9EZ/eDmnPUaffBpCO80u7l1fTWtnAluI1zbydHXH8Oe4PTnuRWvaX8eu2yQ3Mu27hG1JG4Dj0Y/ng/nWH4UMQdAW2kNuVj0Hrn/Pb61P4gtRo2us8OPKb54+OxP9Dx+FaDZfMTRMVdSpBxg1q6LKIr6LJwCcU2yceIbMTmBI5EGxpI3ySccbl9Kr2hMcqHuDQQeg1i+M/wDkR9e/7B8//otq2QQyhhyCMg1jeMv+RH1//sHT/wDotqhEyPK/BVzNptnZ6pAhkighjS6XuFIHP0+6fqK9ZiCXUMkqOGVgpUjuMZz+teWeE3XTH0l35tru0ijnB6cxjr7cg13VnIfDepCwlY/2bdHNu78+W3dCfx4qzaOwavCqwu4HaudnGE3Y9K7PVYF+zyrjI25FchIM24GOQcH8KCjn9dfZa3PbGz9RV7TrT7JYRRbcYHP1qjrdu1zfQQJ/y3Khh64P+Ga2ieKDMqXY+Suc1FC6sAOororr7hrHukySfagaZR0K7zpzI3WJsEexq64RvmQ9e1ZGiyiLUrq2b+Mfyz/jWq8TQZK8x9vagZC/ANUZjk1cnOY2+lZrNkVBJHIeaYpwaefmBpi9aQjc0q+e2ZSDxmuo1S5i1rTkjRv9Ig+aMqOq/wAQ/kR9CPSuDSUoKtW+rzWjAxvg1SYzsfD815YKZIbqAQvjzY2BLcfh/UVsEICrxNlHG9T/AD/XIrz2PV5RNuAVAeyjArqfD9691DJGzjMeHUH0PDY/Hb+tO4HpumS+bpsDbs8YNUPGX/Ij6/8A9g6f/wBFtS+HHLWTgn7r8UnjL/kR9f8A+wdP/wCi2oM5H//Z
mediaType: image/jpeg
value: ''
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetSnapshot
/api/v3/device/name/{EDGEX_DEVICE_NAME}/SnapshotUri:
get:
tags:
- Video Streaming
summary: 'Media: GetSnapshotUri'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEifQ==
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
The ProfileToken element indicates the media profile to use and will define the source and dimensions of the snapshot.
**Schema Reference:** [media_GetSnapshotUri](#media_GetSnapshotUri)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetSnapshotUriResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 1a79ee51-c137-49b6-b884-a5450323850a
deviceName: >-
HIKVISION-DS-2DE2A404IW-DE3-099f4000-4d50-11b4-82c8-c06ded544d67
profileName: onvif-camera
sourceName: SnapshotUri
origin: 1683762930988014800
readings:
- id: de3e7c40-d705-4303-987f-d0b0feeffd0f
origin: 1683762930988014800
deviceName: >-
HIKVISION-DS-2DE2A404IW-DE3-099f4000-4d50-11b4-82c8-c06ded544d67
resourceName: SnapshotUri
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
MediaUri:
Uri: http://10.0.0.165/onvif-http/snapshot?Profile_1
InvalidAfterConnect: false
InvalidAfterReboot: false
Timeout: PT0S
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetSnapshotUri
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetSnapshotUri
description: |-
A client uses the GetSnapshotUri command to obtain a JPEG snapshot from the
device. The returned URI shall remain valid indefinitely even if the profile is changed. The
ValidUntilConnect, ValidUntilReboot and Timeout Parameter shall be set accordingly
(ValidUntilConnect=false, ValidUntilReboot=false, timeout=PT0S). The URI can be used for
acquiring a JPEG image through a HTTP GET operation. The image encoding will always be
JPEG regardless of the encoding setting in the media profile. The Jpeg settings
(like resolution or quality) may be taken from the profile if suitable. The provided
image will be updated automatically and independent from calls to GetSnapshotUri.
/api/v3/device/name/{EDGEX_DEVICE_NAME}/VideoEncoderConfigurations:
get:
tags:
- Video Encoder Configuration
summary: 'Media: GetVideoEncoderConfigurations'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetVideoEncoderConfigurationsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 1ee4ca7f-fb95-46b3-8e6d-8542b45b22d4
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: VideoEncoderConfigurations
origin: 1659659203023412500
readings:
- id: dd2b4e0e-9a62-49bc-a80b-071d4b1ed8e1
origin: 1659659203023412500
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: VideoEncoderConfigurations
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Configurations:
Encoding: H264
H264:
GovLength: 25
H264Profile: Main
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: VideoEncoder_2
Quality: 3
RateControl:
BitrateLimit: 256
EncodingInterval: 1
FrameRateLimit: 15
Resolution:
Height: 360
Width: 640
SessionTimeout: PT0H1M5S
Token: minor
UseCount: 1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetVideoEncoderConfigurations
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetVideoEncoderConfigurations
description: |-
This operation lists all existing video encoder configurations of a device. This command lists all configured video encoder configurations in a device. The client need not know anything apriori about the video encoder configurations in order to use the command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
/api/v3/device/name/{EDGEX_DEVICE_NAME}/VideoEncoderConfiguration:
get:
tags:
- Video Encoder Configuration
summary: 'Media: GetVideoEncoderConfiguration'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJDb25maWd1cmF0aW9uVG9rZW4iOiJtYWluIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Token of the requested video encoder configuration.
**Schema Reference:** [media_GetVideoEncoderConfiguration](#media_GetVideoEncoderConfiguration)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ConfigurationToken": "main"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetVideoEncoderConfigurationResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 598079d0-d169-4385-86f3-cb7a106345a5
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: VideoEncoderConfiguration
origin: 1659659207626081000
readings:
- id: 86aed436-65cb-4162-b3e6-14def8e4e4d3
origin: 1659659207626081000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: VideoEncoderConfiguration
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Configuration:
Encoding: H264
H264:
GovLength: 25
H264Profile: Main
Multicast:
Address:
IPv4Address: 0.0.0.0
Type: IPv4
AutoStart: false
Port: 0
TTL: 0
Name: VideoEncoder_1
Quality: 3
RateControl:
BitrateLimit: 1024
EncodingInterval: 1
FrameRateLimit: 15
Resolution:
Height: 1080
Width: 1920
SessionTimeout: PT0H1M5S
Token: main
UseCount: 1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetVideoEncoderConfiguration
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetVideoEncoderConfiguration
description: |-
If the video encoder configuration token is already known, the encoder configuration can be fetched through the GetVideoEncoderConfiguration command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- Video Encoder Configuration
summary: 'Media: SetVideoEncoderConfiguration'
requestBody:
content:
application/json:
schema:
properties:
VideoEncoderConfiguration:
$ref: '#/components/schemas/media_SetVideoEncoderConfiguration'
required:
- VideoEncoderConfiguration
type: object
example:
VideoEncoderConfiguration:
ForcePersistence: false
Configuration:
token: main
Encoding: H264
Quality: 3
Resolution:
Width: 1920
Height: 1080
Multicast:
Address:
Type: IPv4
IPv4Address: 0.0.0.0
Port: 8860
TTL: 1
AutoStart: false
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'500':
description: Internal Server Error
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
type: object
example:
apiVersion: v3
message: >-
request failed, status code: 500, err:
{"apiVersion":"v3","message":"error writing DeviceResourece
VideoEncoderConfiguration for
TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4 -\u003e
failed to execute write command, \u003cnil\u003e -\u003e
invalid request for the function
'SetVideoEncoderConfiguration' of web service 'Media'. Onvif
error: fault reason: , fault detail: , fault code:
SOAP-ENV:Sender ","statusCode":500}
statusCode: 500
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'503': *id005
operationId: media_SetVideoEncoderConfiguration
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.SetVideoEncoderConfiguration
description: |-
This operation modifies a video encoder configuration. The ForcePersistence flag indicates if the changes shall remain after reboot of the device. Changes in the Multicast settings shall always be persistent. Running streams using this configuration may be immediately updated according to the new settings. The changes are not guaranteed to take effect unless the client requests a new stream URI and restarts any affected stream. NVC methods for changing a running stream are out of scope for this specification.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/VideoEncoderConfigurationOptions:
get:
tags:
- Video Encoder Configuration
summary: 'Media: GetVideoEncoderConfigurationOptions'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEiLCJDb25maWd1cmF0aW9uVG9rZW4iOiJtYWluIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": "",
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Optional video encoder configuration token that specifies an existing configuration that the options are intended for.
- **ProfileToken** _[string]_
Optional ProfileToken that specifies an existing media profile that the options shall be compatible with.
**Schema Reference:** [media_GetVideoEncoderConfigurationOptions](#media_GetVideoEncoderConfigurationOptions)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1",
"ConfigurationToken": "main"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media_GetVideoEncoderConfigurationOptionsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 187b2e94-6efe-421f-b618-186a20fd41df
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: VideoEncoderConfigurationOptions
origin: 1659659212171416600
readings:
- id: 0b709715-f644-4cf0-a477-dcc3b5ef218c
origin: 1659659212171416600
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: VideoEncoderConfigurationOptions
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Options:
Extension:
H264:
BitrateRange:
Max: 1024
Min: 256
EncodingIntervalRange:
Max: 1
Min: 1
FrameRateRange:
Max: 15
Min: 1
GovLengthRange:
Max: 25
Min: 25
H264ProfilesSupported:
- Main
ResolutionsAvailable:
- Height: 1080
Width: 1920
- Height: 720
Width: 1280
- Height: 360
Width: 640
H264:
EncodingIntervalRange:
Max: 1
Min: 1
FrameRateRange:
Max: 15
Min: 1
GovLengthRange:
Max: 25
Min: 25
H264ProfilesSupported:
- Main
ResolutionsAvailable:
- Height: 1080
Width: 1920
- Height: 720
Width: 1280
- Height: 360
Width: 640
QualityRange:
Max: 5
Min: 1
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_GetVideoEncoderConfigurationOptions
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.GetVideoEncoderConfigurationOptions
description: |-
This operation returns the available options (supported values and ranges for video encoder
configuration parameters) when the video encoder parameters are reconfigured.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ✔️ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ✔️ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZNodes:
get:
tags:
- PTZ - Capabilities
summary: 'PTZ: GetNodes'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetNodesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: dfe1b38e-1590-43c4-ab12-432ed5219476
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZNodes
origin: 1659656363928092200
readings:
- id: a47fe9e2-b007-4b5e-891b-3d50062b468f
origin: 1659656363928092200
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZNodes
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZNode:
- HomeSupported: true
Name: Node0
SupportedPTZSpaces:
AbsolutePanTiltPositionSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
AbsoluteZoomPositionSpace:
URI: ''
XRange:
Max: 0
Min: 0
ContinuousPanTiltVelocitySpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
XRange:
Max: 1
Min: -1
YRange:
Max: 1
Min: -1
ContinuousZoomVelocitySpace:
URI: ''
XRange:
Max: 0
Min: 0
Extension: ''
PanTiltSpeedSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace
XRange:
Max: 0
Min: 0
RelativePanTiltTranslationSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
RelativeZoomTranslationSpace:
URI: ''
XRange:
Max: 0
Min: 0
ZoomSpeedSpace:
URI: ''
XRange:
Max: 0
Min: 0
Token: Node0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetNodes
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetNodes
description: |-
Get the descriptions of the available PTZ Nodes.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZNode:
get:
tags:
- PTZ - Capabilities
summary: 'PTZ: GetNode'
parameters:
- name: jsonObject
in: query
schema:
type: string
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"NodeToken": ""
}
```
**Field Descriptions:**
- **NodeToken** _[string]_
Token of the requested PTZNode.
**Schema Reference:** [ptz_GetNode](#ptz_GetNode)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"NodeToken": "Node0"
}
```
example: eyJOb2RlVG9rZW4iOiAiTm9kZTAifQ==
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetNodeResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 713edf3b-f049-456b-8f3b-4a2dccca683f
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZNode
origin: 1659656370279599600
readings:
- id: 42af41ee-f72d-4f0c-95cf-0e8326f6d154
origin: 1659656370279599600
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZNode
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZNode:
HomeSupported: true
Name: Node0
SupportedPTZSpaces:
AbsolutePanTiltPositionSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
AbsoluteZoomPositionSpace:
URI: ''
XRange:
Max: 0
Min: 0
ContinuousPanTiltVelocitySpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
XRange:
Max: 1
Min: -1
YRange:
Max: 1
Min: -1
ContinuousZoomVelocitySpace:
URI: ''
XRange:
Max: 0
Min: 0
Extension: ''
PanTiltSpeedSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace
XRange:
Max: 0
Min: 0
RelativePanTiltTranslationSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
RelativeZoomTranslationSpace:
URI: ''
XRange:
Max: 0
Min: 0
ZoomSpeedSpace:
URI: ''
XRange:
Max: 0
Min: 0
Token: Node0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetNode
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetNode
description: |-
Get a specific PTZ Node identified by a reference
token or a name.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZConfigurations:
get:
tags:
- PTZ - Configuration
summary: 'PTZ: GetConfigurations'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetConfigurationsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: b46d0e1e-f173-4bf0-8e35-984395952b09
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZConfigurations
origin: 1659656376998679000
readings:
- id: edf84087-d700-4967-bf5a-3e76e3c8ec18
origin: 1659656376998679000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZConfigurations
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZConfiguration:
- DefaultAbsolutePantTiltPositionSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
DefaultContinuousPanTiltVelocitySpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
DefaultPTZSpeed: {}
DefaultPTZTimeout: PT0H0M20S
DefaultRelativePanTiltTranslationSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
PanTiltLimits:
Range:
URI: ''
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
Token: PTZConfiguration0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetConfigurations
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetConfigurations
description: |-
Get all the existing PTZConfigurations from the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZConfiguration:
get:
tags:
- PTZ - Configuration
summary: 'PTZ: GetConfiguration'
parameters:
- name: jsonObject
in: query
schema:
type: string
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"PTZConfigurationToken": ""
}
```
**Field Descriptions:**
- **PTZConfigurationToken** _[string]_
Token of the requested PTZConfiguration.
**Schema Reference:** [ptz_GetConfiguration](#ptz_GetConfiguration)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"PTZConfigurationToken": "PTZConfiguration0"
}
```
example: eyJQVFpDb25maWd1cmF0aW9uVG9rZW4iOiAiUFRaQ29uZmlndXJhdGlvbjAifQ==
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetConfigurationResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 13f39ebb-cde4-4d99-bbc2-b207c4a40ca3
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZConfiguration
origin: 1659656383599131400
readings:
- id: 3a5e5c97-268a-4c84-ae79-f51ada66889e
origin: 1659656383599131400
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZConfiguration
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZConfiguration:
DefaultAbsolutePantTiltPositionSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
DefaultContinuousPanTiltVelocitySpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
DefaultPTZSpeed: {}
DefaultPTZTimeout: PT0H0M20S
DefaultRelativePanTiltTranslationSpace: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
PanTiltLimits:
Range:
URI: ''
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
Token: PTZConfiguration0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetConfiguration
description: |-
Get a specific PTZconfiguration from the device, identified by its reference token or name.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
put:
tags:
- PTZ - Configuration
summary: 'PTZ: SetConfiguration'
requestBody:
content:
application/json:
schema:
properties:
PTZConfiguration:
$ref: '#/components/schemas/ptz_SetConfiguration'
required:
- PTZConfiguration
type: object
example:
PTZConfiguration:
PTZConfiguration:
Token: PROFILE_3263078452
NodeToken: PTZNODE_3
PanTiltLimits:
Range:
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_SetConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.SetConfiguration
description: |-
Set/update a existing PTZConfiguration on the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZConfigurationOptions:
get:
tags:
- PTZ - Configuration
summary: 'PTZ: GetConfigurationOptions'
parameters:
- name: jsonObject
in: query
schema:
type: string
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Token of an existing configuration that the options are intended for.
**Schema Reference:** [ptz_GetConfigurationOptions](#ptz_GetConfigurationOptions)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ConfigurationToken": "PTZConfiguration0"
}
```
example: eyJDb25maWd1cmF0aW9uVG9rZW4iOiAiUFRaQ29uZmlndXJhdGlvbjAifQ==
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetConfigurationOptionsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 418fbbf5-6628-4033-8d7b-0811968dcee8
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZConfigurationOptions
origin: 1659671766926306000
readings:
- id: 7ceb7891-b7af-4cfe-9bbb-2d0fb3bead14
origin: 1659671766926306000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZConfigurationOptions
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZConfigurationOptions:
PTZTimeout:
Max: PT0H0M20S
Min: PT0H0M20S
Spaces:
AbsolutePanTiltPositionSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
AbsoluteZoomPositionSpace:
URI: ''
XRange:
Max: 0
Min: 0
ContinuousPanTiltVelocitySpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace
XRange:
Max: 1
Min: -1
YRange:
Max: 1
Min: -1
ContinuousZoomVelocitySpace:
URI: ''
XRange:
Max: 0
Min: 0
Extension: ''
PanTiltSpeedSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace
XRange:
Max: 0
Min: 0
RelativePanTiltTranslationSpace:
URI: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace
XRange:
Max: 170
Min: -170
YRange:
Max: 35
Min: -32
RelativeZoomTranslationSpace:
URI: ''
XRange:
Max: 0
Min: 0
ZoomSpeedSpace:
URI: ''
XRange:
Max: 0
Min: 0
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetConfigurationOptions
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetConfigurationOptions
description: |-
List supported coordinate systems including their range limitations. Therefore, the options
MAY differ depending on whether the PTZ Configuration is assigned to a Profile containing a
Video Source Configuration. In that case, the options may additionally contain coordinate
systems referring to the image coordinate system described by the Video Source
Configuration. If the PTZ Node supports continuous movements, it shall return a Timeout Range within
which Timeouts are accepted by the PTZ Node.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AddPTZConfiguration:
put:
tags:
- PTZ - Configuration
summary: 'Media: AddPTZConfiguration'
requestBody:
content:
application/json:
schema:
properties:
AddPTZConfiguration:
$ref: '#/components/schemas/media_AddPTZConfiguration'
required:
- AddPTZConfiguration
type: object
example:
AddPTZConfiguration:
ProfileToken: profile_1
ConfigurationToken: PROFILE_3263078452
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_AddPTZConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.AddPTZConfiguration
description: |-
This operation adds a PTZConfiguration to an existing media profile. If a configuration exists
in the media profile, it will be replaced. The change shall be persistent. Adding a PTZConfiguration to a media profile means that streams using that media profile can
contain PTZ status (in the metadata), and that the media profile can be used for controlling
PTZ movement.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/RemovePTZConfiguration:
put:
tags:
- PTZ - Configuration
summary: 'Media: RemovePTZConfiguration'
requestBody:
content:
application/json:
schema:
properties:
RemovePTZConfiguration:
$ref: '#/components/schemas/media_RemovePTZConfiguration'
required:
- RemovePTZConfiguration
type: object
example:
RemovePTZConfiguration:
ProfileToken: PROFILE_3263078452
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media_RemovePTZConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/media/wsdl/media.wsdl#op.RemovePTZConfiguration
description: |-
This operation removes a PTZConfiguration from an existing media profile. If the media profile
does not contain a PTZConfiguration, the operation has no effect. The removal shall be persistent.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZAbsoluteMove:
put:
tags:
- PTZ - Actuation
summary: 'PTZ: AbsoluteMove'
requestBody:
content:
application/json:
schema:
properties:
PTZAbsoluteMove:
$ref: '#/components/schemas/ptz_AbsoluteMove'
required:
- PTZAbsoluteMove
type: object
example:
PTZAbsoluteMove:
ProfileToken: PROFILE_3263078452
Position:
PanTilt:
x: 0
y: 0
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_AbsoluteMove
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.AbsoluteMove
description: |-
Operation to move pan,tilt or zoom to a absolute destination.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZRelativeMove:
put:
tags:
- PTZ - Actuation
summary: 'PTZ: RelativeMove'
requestBody:
content:
application/json:
schema:
properties:
PTZRelativeMove:
$ref: '#/components/schemas/ptz_RelativeMove'
required:
- PTZRelativeMove
type: object
example:
PTZRelativeMove:
ProfileToken: PROFILE_3263078452
Translation:
PanTilt:
x: 0
y: 0
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_RelativeMove
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.RelativeMove
description: |-
Operation for Relative Pan/Tilt and Zoom Move. The operation is supported if the PTZNode supports at least one relative Pan/Tilt or Zoom space.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZContinuousMove:
put:
tags:
- PTZ - Actuation
summary: 'PTZ: ContinuousMove'
requestBody:
content:
application/json:
schema:
properties:
PTZContinuousMove:
$ref: '#/components/schemas/ptz_ContinuousMove'
required:
- PTZContinuousMove
type: object
example:
PTZContinuousMove:
ProfileToken: profile_1
Velocity:
PanTilt:
x: -1
y: -1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_ContinuousMove
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.ContinuousMove
description: |-
Operation for continuous Pan/Tilt and Zoom movements. The operation is supported if the PTZNode supports at least one continuous Pan/Tilt or Zoom space. If the space argument is omitted, the default space set by the PTZConfiguration will be used.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZStatus:
get:
tags:
- PTZ - Actuation
summary: 'PTZ: GetStatus'
parameters:
- name: jsonObject
in: query
schema:
type: string
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
A reference to the MediaProfile where the PTZStatus should be requested.
**Schema Reference:** [ptz_GetStatus](#ptz_GetStatus)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "profile_1"
}
```
example: eyJQcm9maWxlVG9rZW4iOiJwcm9maWxlXzEifQ==
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetStatusResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: c8ad64b4-db58-4c9b-9896-82fff02544c9
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZStatus
origin: 1659659252963492000
readings:
- id: 71444c1c-9e85-4852-9c1e-9bd9eba8d616
origin: 1659659252963492000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZStatus
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZStatus:
MoveStatus:
PanTilt: IDLE
Position:
PanTilt:
Space: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
X: 82
Y: -5
UtcTime: '2022-08-05T00:27:32Z'
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetStatus
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetStatus
description: |-
Operation to request PTZ status for the Node in the
selected profile.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZStop:
put:
tags:
- PTZ - Actuation
summary: 'PTZ: Stop'
requestBody:
content:
application/json:
schema:
properties:
PTZStop:
$ref: '#/components/schemas/ptz_Stop'
required:
- PTZStop
type: object
example:
PTZStop:
ProfileToken: profile_1
PanTilt: true
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_Stop
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.Stop
description: |-
Operation to stop ongoing pan, tilt and zoom movements of absolute relative and continuous type.
If no stop argument for pan, tilt or zoom is set, the device will stop all ongoing pan, tilt and zoom movements.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZPreset:
put:
tags:
- PTZ - PTZPreset
summary: 'PTZ: SetPreset'
requestBody:
content:
application/json:
schema:
properties:
PTZPreset:
$ref: '#/components/schemas/ptz_SetPreset'
required:
- PTZPreset
type: object
example:
SetPreset:
PresetName: Preset1
ProfileToken: PROFILE_3263078452
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_SetPreset
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.SetPreset
description: |-
The SetPreset command saves the current device position parameters so that the device can
move to the saved preset position through the GotoPreset operation.
In order to create a new preset, the SetPresetRequest contains no PresetToken. If creation is
successful, the Response contains the PresetToken which uniquely identifies the Preset. An
existing Preset can be overwritten by specifying the PresetToken of the corresponding Preset.
In both cases (overwriting or creation) an optional PresetName can be specified. The
operation fails if the PTZ device is moving during the SetPreset operation.
The device MAY internally save additional states such as imaging properties in the PTZ
Preset which then should be recalled in the GotoPreset operation.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZPresets:
get:
tags:
- PTZ - PTZPreset
summary: 'PTZ: GetPresets'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJQcm9maWxlVG9rZW4iOiAiUFJPRklMRV8zMzA1OTY3Nzk3In0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ProfileToken": ""
}
```
**Field Descriptions:**
- **ProfileToken** _[string]_
A reference to the MediaProfile where the operation should take place.
**Schema Reference:** [ptz_GetPresets](#ptz_GetPresets)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"ProfileToken": "PROFILE_3305967797"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/ptz_GetPresetsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 79dde7e3-9730-4d33-aa9f-48e499b23207
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: PTZPresets
origin: 1659659260936957200
readings:
- id: 5816a933-ec39-4c58-b8cf-aa3fc8dcbd19
origin: 1659659260936957200
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: PTZPresets
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Preset:
- Name: Marked Position 2
PTZPosition:
PanTilt:
Space: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
X: 169
Y: -5
Token: Preset2
- Name: Marked Position 3
PTZPosition:
PanTilt:
Space: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
X: 115
Y: 13
Token: Preset3
- Name: preset4
PTZPosition:
PanTilt:
Space: >-
http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace
X: 134
Y: 13
Token: Preset4
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GetPresets
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GetPresets
description: |-
Operation to request all PTZ presets for the PTZNode
in the selected profile. The operation is supported if there is support
for at least on PTZ preset by the PTZNode.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZGotoPreset:
put:
tags:
- PTZ - PTZPreset
summary: 'PTZ: GotoPreset'
requestBody:
content:
application/json:
schema:
properties:
PTZGotoPreset:
$ref: '#/components/schemas/ptz_GotoPreset'
required:
- PTZGotoPreset
type: object
example:
PTZGotoPreset:
ProfileToken: PROFILE_3263078452
PresetToken: Preset1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GotoPreset
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GotoPreset
description: |-
Operation to go to a saved preset position for the
PTZNode in the selected profile. The operation is supported if there is
support for at least on PTZ preset by the PTZNode.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZRemovePreset:
put:
tags:
- PTZ - PTZPreset
summary: 'PTZ: RemovePreset'
requestBody:
content:
application/json:
schema:
properties:
PTZRemovePreset:
$ref: '#/components/schemas/ptz_RemovePreset'
required:
- PTZRemovePreset
type: object
example:
PTZRemovePreset:
ProfileToken: profile_1
PresetToken: Preset1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_RemovePreset
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.RemovePreset
description: |-
Operation to remove a PTZ preset for the Node in
the
selected profile. The operation is supported if the
PresetPosition
capability exists for teh Node in the
selected profile.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ✔️ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZGotoHomePosition:
put:
tags:
- PTZ - Home Position
summary: 'PTZ: GotoHomePosition'
description: |-
Operation to move the PTZ device to it's "home" position. The operation is supported if the HomeSupported element in the PTZNode is true.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
requestBody:
content:
application/json:
schema:
properties:
PTZGotoHomePosition:
$ref: '#/components/schemas/ptz_GotoHomePosition'
required:
- PTZGotoHomePosition
type: object
example:
PTZGotoHomePosition:
ProfileToken: profile_1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_GotoHomePosition
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.GotoHomePosition
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZHomePosition:
put:
tags:
- PTZ - Home Position
summary: 'PTZ: SetHomePosition'
requestBody:
content:
application/json:
schema:
properties:
PTZHomePosition:
$ref: '#/components/schemas/ptz_SetHomePosition'
required:
- PTZHomePosition
type: object
example:
PTZHomePosition:
ProfileToken: profile_1
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_SetHomePosition
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.SetHomePosition
description: |-
Operation to save current position as the home position.
The SetHomePosition command returns with a failure if the “home” position is fixed and
cannot be overwritten. If the SetHomePosition is successful, it is possible to recall the
Home Position with the GotoHomePosition command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PTZSendAuxiliaryCommand:
put:
tags:
- PTZ - Auxiliary
summary: 'PTZ: SendAuxiliaryCommand'
description: |-
Manage auxiliary commands supported by a device, such as controlling an Infrared (IR) lamp, a heater or a wiper or a thermometer that is connected to the device.
The supported commands can be retrieved via the AuxiliaryCommands capability.
Although the name of the auxiliary commands can be freely defined, commands starting with the prefix tt: are reserved to define frequently used commands and these reserved commands shall all share the "tt:command|parameter" syntax.
tt:Wiper|On – Request to start the wiper.
tt:Wiper|Off – Request to stop the wiper.
tt:Washer|On – Request to start the washer.
tt:Washer|Off – Request to stop the washer.
tt:WashingProcedure|On – Request to start the washing procedure.
tt: WashingProcedure |Off – Request to stop the washing procedure.
tt:IRLamp|On – Request to turn ON an IR illuminator attached to the unit.
tt:IRLamp|Off – Request to turn OFF an IR illuminator attached to the unit.
tt:IRLamp|Auto – Request to configure an IR illuminator attached to the unit so that it automatically turns ON and OFF.
A device that indicates auxiliary service capability shall support this command.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
requestBody:
content:
application/json:
schema:
properties:
PTZSendAuxiliaryCommand:
$ref: '#/components/schemas/ptz_SendAuxiliaryCommand'
required:
- PTZSendAuxiliaryCommand
type: object
example:
PTZSendAuxiliaryCommand:
ProfileToken: profile_1
AuxiliaryData: '123'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: ptz_SendAuxiliaryCommand
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl#op.SendAuxiliaryCommand
/api/v3/device/name/{EDGEX_DEVICE_NAME}/EventProperties:
get:
tags:
- Event Handling
summary: 'Event: GetEventProperties'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/event_GetEventPropertiesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 925ca37f-2ed6-43f9-b9e3-4c31849325b7
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: EventProperties
origin: 1659659240585563600
readings:
- id: dc1e5896-00d9-4e4d-85f7-2dbca9a4b8cb
origin: 1659659240585563600
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: EventProperties
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
FixedTopicSet: true
MessageContentFilterDialect: >-
http://www.onvif.org/ver10/tev/messageContentFilter/ItemFilter
MessageContentSchemaLocation: http://www.onvif.org/onvif/ver10/schema/onvif.xsd
TopicExpressionDialect: >-
http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete
TopicNamespaceLocation: http://www.onvif.org/onvif/ver10/topics/topicns.xml
TopicSet:
tns1:RuleEngine:
'#seq': 0
CellMotionDetector:
'#seq': 0
Motion:
'#attr':
wstop:topic:
'#seq': 0
'#text': 'true'
'#seq': 0
tt:MessageDescription:
'#attr':
IsProperty:
'#seq': 0
'#text': 'true'
'#seq': 0
tt:Data:
'#seq': 1
tt:SimpleItemDescription:
'#attr':
Name:
'#seq': 1
'#text': IsMotion
Type:
'#seq': 0
'#text': xsd:boolean
'#seq': 0
tt:Source:
'#seq': 0
tt:SimpleItemDescription:
- '#attr':
Name:
'#seq': 1
'#text': VideoSourceConfigurationToken
Type:
'#seq': 0
'#text': tt:ReferenceToken
'#seq': 0
- '#attr':
Name:
'#seq': 1
'#text': VideoAnalyticsConfigurationToken
Type:
'#seq': 0
'#text': tt:ReferenceToken
'#seq': 1
- '#attr':
Name:
'#seq': 1
'#text': Rule
Type:
'#seq': 0
'#text': xsd:string
'#seq': 2
TamperDetector:
'#seq': 1
Tamper:
'#attr':
wstop:topic:
'#seq': 0
'#text': 'true'
'#seq': 0
tt:MessageDescription:
'#attr':
IsProperty:
'#seq': 0
'#text': 'true'
'#seq': 0
tt:Data:
'#seq': 1
tt:SimpleItemDescription:
'#attr':
Name:
'#seq': 1
'#text': IsTamper
Type:
'#seq': 0
'#text': xsd:boolean
'#seq': 0
tt:Source:
'#seq': 0
tt:SimpleItemDescription:
- '#attr':
Name:
'#seq': 1
'#text': VideoSourceConfigurationToken
Type:
'#seq': 0
'#text': tt:ReferenceToken
'#seq': 0
- '#attr':
Name:
'#seq': 1
'#text': VideoAnalyticsConfigurationToken
Type:
'#seq': 0
'#text': tt:ReferenceToken
'#seq': 1
- '#attr':
Name:
'#seq': 1
'#text': Rule
Type:
'#seq': 0
'#text': xsd:string
'#seq': 2
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: event_GetEventProperties
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver10/events/wsdl/event.wsdl#op.GetEventProperties
description: |-
The WS-BaseNotification specification defines a set of OPTIONAL WS-ResouceProperties.
This specification does not require the implementation of the WS-ResourceProperty interface.
Instead, the subsequent direct interface shall be implemented by an ONVIF compliant device
in order to provide information about the FilterDialects, Schema files and topics supported by
the device.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Tapo C200** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/BaseNotificationSubscription:
put:
tags:
- Event Handling
summary: BaseNotificationSubscription
description: Create a subscription to subscribe the event from the camera
requestBody:
content:
application/json:
schema:
properties:
BaseNotificationSubscription:
properties:
InitialTerminationTime:
$ref: '#/components/schemas/wsnt_AbsoluteOrRelativeTimeType'
TopicFilter:
type: string
type: object
required:
- BaseNotificationSubscription
type: object
example:
BaseNotificationSubscription:
TopicFilter: tns1:RuleEngine/TamperDetector/Tamper
InitialTerminationTime: PT180S
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetBaseNotificationSubscription
/api/v3/device/name/{EDGEX_DEVICE_NAME}/PullPointSubscription:
put:
tags:
- Event Handling
summary: PullPointSubscription
description: >-
This method returns a PullPointSubscription that can be polled using
PullMessages. This message contains the same elements as the
SubscriptionRequest of the WS-BaseNotification without the
ConsumerReference.
If no Filter is specified the pullpoint notifies all occurring events to
the client.
This method is mandatory.
requestBody:
content:
application/json:
schema:
properties:
PullPointSubscription:
properties:
MessageContentFilter:
type: string
InitialTerminationTime:
$ref: '#/components/schemas/wsnt_AbsoluteOrRelativeTimeType'
MessageTimeout:
$ref: '#/components/schemas/wsnt_AbsoluteOrRelativeTimeType'
type: object
required:
- PullPointSubscription
type: object
example:
PullPointSubscription:
MessageContentFilter: boolean(//tt:SimpleItem[@Name="Rule"])
InitialTerminationTime: PT120S
MessageTimeout: PT20S
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetPullPointSubscription
/api/v3/device/name/{EDGEX_DEVICE_NAME}/UnsubscribeCameraEvent:
put:
tags:
- Event Handling
summary: UnsubscribeCameraEvent
description: >-
The device shall provide the following Unsubscribe command for all
SubscriptionManager endpoints returned by the
CreatePullPointSubscription command.
This command shall terminate the lifetime of a pull point.
requestBody:
content:
application/json:
schema:
properties:
UnsubscribeCameraEvent:
type: object
required:
- UnsubscribeCameraEvent
type: object
example:
UnsubscribeCameraEvent: {}
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetUnsubscribeCameraEvent
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Media2Profiles:
get:
tags:
- Analytics - Profile Configuration
summary: 'Media2: GetProfiles'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: ''
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"Token": "",
"Type": []
}
```
**Field Descriptions:**
- **Token** _[string]_
Optional token of the requested profile.
- **Type** _[array]_
The types shall be provided as defined by tr2:ConfigurationEnumeration.
**Schema Reference:** [media2_GetProfiles](#media2_GetProfiles)
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media2_GetProfilesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 100ae377-e811-4b88-bd81-f6f67c86cf61
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: Media2Profiles
origin: 1664440520205892000
readings:
- id: e6bf94fd-ebde-4b0a-a503-8b23f7a8aebb
origin: 1664440520205892000
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: Media2Profiles
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Profiles:
- Fixed: true
Name: mainStream
Token: Profile_1
- Fixed: true
Name: subStream
Token: Profile_2
- Fixed: true
Name: thirdStream
Token: Profile_3
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media2_GetProfiles
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/media/wsdl/media.wsdl#op.GetProfiles
description: |-
Retrieve the profile with the specified token or all defined media profiles.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Media2AnalyticsConfigurations:
get:
tags:
- Analytics - Profile Configuration
summary: 'Media2: GetAnalyticsConfigurations'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/media2_GetAnalyticsConfigurationsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 08db4d59-0991-4ace-bb6a-9103c54d38ea
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: Media2AnalyticsConfigurations
origin: 1664440527648299300
readings:
- id: 6e768a1a-a521-47c6-9d13-2337386768d1
origin: 1664440527648299300
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: Media2AnalyticsConfigurations
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
PTZConfigurations:
- AnalyticsEngineConfiguration:
AnalyticsModule:
- Name: MyCellMotionModule
Parameters:
ElementItem:
- Name: Layout
SimpleItem:
- Name: Sensitivity
Value: '0'
Type: tt:CellMotionEngine
- Name: MyLineDetectorModule
Parameters:
ElementItem:
- Name: Layout
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '50'
Type: tt:LineDetectorEngine
- Name: MyFieldDetectorModule
Parameters:
ElementItem:
- Name: Layout
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '50'
Type: tt:FieldDetectorEngine
- Name: MyTamperDetecModule
Parameters:
ElementItem:
- Name: Transformation
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '0'
Type: hikxsd:TamperEngine
Name: VideoAnalyticsName
RuleEngineConfiguration:
Rule:
- Name: MyMotionDetectorRule
Parameters:
SimpleItem:
- Name: MinCount
Value: '5'
- Name: AlarmOnDelay
Value: '1000'
- Name: AlarmOffDelay
Value: '1000'
- Name: ActiveCells
Value: zwA=
Type: tt:CellMotionDetector
- Name: MyTamperDetectorRule
Parameters:
ElementItem:
- Name: Field
Type: hikxsd:TamperDetector
Token: VideoAnalyticsToken
UseCount: 3
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media2_GetAnalyticsConfigurations
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/media/wsdl/media.wsdl#op.GetAnalyticsConfigurations
description: |-
By default this operation lists all existing video analytics configurations for a device. Provide a profile token to list only configurations that are compatible with the profile. If a configuration token is provided only a single configuration will be returned.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ✔️ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Media2AddConfiguration:
put:
tags:
- Analytics - Profile Configuration
summary: 'Media2: AddConfiguration'
requestBody:
content:
application/json:
schema:
properties:
Media2AddConfiguration:
$ref: '#/components/schemas/media2_AddConfiguration'
required:
- Media2AddConfiguration
type: object
example:
Media2AddConfiguration:
ProfileToken: PROFILE_3263078452
Configuration:
- Type: Analytics
Token: VideoAnalyticsToken_3263078450
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media2_AddConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/media/wsdl/media.wsdl#op.AddConfiguration
description: |-
This operation adds one or more Configurations to an existing media profile. If a
configuration exists in the media profile, it will be replaced. A device shall
support adding a compatible Configuration to a Profile containing a VideoSourceConfiguration and shall
support streaming video data of such a profile.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/Media2RemoveConfiguration:
put:
tags:
- Analytics - Profile Configuration
summary: 'Media2: RemoveConfiguration'
requestBody:
content:
application/json:
schema:
properties:
Media2RemoveConfiguration:
$ref: '#/components/schemas/media2_RemoveConfiguration'
required:
- Media2RemoveConfiguration
type: object
example:
Media2RemoveConfiguration:
ProfileToken: PROFILE_3263078452
Configuration:
- Type: Analytics
Token: VideoAnalyticsToken_3263078450
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: media2_RemoveConfiguration
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/media/wsdl/media.wsdl#op.RemoveConfiguration
description: |-
This operation removes the listed configurations from an existing media profile. If the
media profile does not contain one of the listed configurations that item shall be ignored.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/SupportedAnalyticsModules:
get:
tags:
- Analytics - Modules
summary: 'Analytics: GetSupportedAnalyticsModules'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: ''
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Reference to an existing VideoAnalyticsConfiguration.
**Schema Reference:** [analytics_GetSupportedAnalyticsModules](#analytics_GetSupportedAnalyticsModules)
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetSupportedAnalyticsModulesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 1caa5b4c-a2d1-403e-90a0-fc7d63a9538c
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: SupportedAnalyticsModules
origin: 1664440535746008300
readings:
- id: f9f5ddc4-10df-41a1-b50e-c12683683093
origin: 1664440535746008300
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: SupportedAnalyticsModules
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
SupportedAnalyticsModules:
AnalyticsModuleContentSchemaLocation: http://www.w3.org/2001/XMLSchema
AnalyticsModuleDescription:
- Fixed: false
MaxInstances: 1
Messages:
Data:
SimpleItemDescription:
- Name: IsMotion
Type: xs:boolean
IsProperty: true
ParentTopic: tns1:RuleEngine/CellMotionDetector/Motion
Source:
SimpleItemDescription:
- Name: VideoSourceConfigurationToken
Type: tt:ReferenceToken
- Name: VideoAnalyticsConfigurationToken
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:CellMotionEngine
Parameters:
ElementItemDescription:
- Name: Layout
SimpleItemDescription:
- Name: Sensitivity
Type: xs:integer
- Fixed: false
MaxInstances: 4
Messages:
Data:
SimpleItemDescription:
- Name: ObjectId
Type: xs:integer
ParentTopic: tns1:RuleEngine/LineDetector/Crossed
Source:
SimpleItemDescription:
- Name: VideoSourceConfigurationToken
Type: tt:ReferenceToken
- Name: VideoAnalyticsConfigurationToken
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:LineDetectorEngine
Parameters:
ElementItemDescription:
- Name: Transformation
- Name: Field
SimpleItemDescription:
- Name: Sensitivity
Type: xs:integer
- Fixed: false
MaxInstances: 4
Messages:
Data:
SimpleItemDescription:
- Name: IsInside
Type: xs:boolean
IsProperty: true
Key:
SimpleItemDescription:
- Name: ObjectId
Type: xs:integer
ParentTopic: tns1:RuleEngine/FieldDetector/ObjectsInside
Source:
SimpleItemDescription:
- Name: VideoSourceConfigurationToken
Type: tt:ReferenceToken
- Name: VideoAnalyticsConfigurationToken
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:FieldDetectorEngine
Parameters:
ElementItemDescription:
- Name: Transformation
- Name: Field
SimpleItemDescription:
- Name: Sensitivity
Type: xs:integer
- Fixed: false
MaxInstances: 1
Messages:
Data:
SimpleItemDescription:
- Name: IsTamper
Type: xs:boolean
IsProperty: true
ParentTopic: tns1:RuleEngine/TamperDetector/Tamper
Source:
SimpleItemDescription:
- Name: VideoSourceConfigurationToken
Type: tt:ReferenceToken
- Name: VideoAnalyticsConfigurationToken
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: hikxsd:TamperEngine
Parameters:
ElementItemDescription:
- Name: Transformation
- Name: Field
SimpleItemDescription:
- Name: Sensitivity
Type: xs:integer
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetSupportedAnalyticsModules
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetSupportedAnalyticsModules
description: |-
List all analytics modules that are supported by the given VideoAnalyticsConfiguration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsModules:
get:
tags:
- Analytics - Modules
summary: 'Analytics: GetAnalyticsModules'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJWaWRlb0FuYWx5dGljc1Rva2VuIjoiVmlkZW9BbmFseXRpY3NUb2tlbl8zMDEyNTA4MDYwIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Reference to an existing VideoAnalyticsConfiguration.
**Schema Reference:** [analytics_GetAnalyticsModules](#analytics_GetAnalyticsModules)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"VideoAnalyticsToken": "VideoAnalyticsToken_3012508060"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetAnalyticsModulesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 09e8fab7-e43d-4ba3-adeb-6ca2d3a3b255
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
profileName: onvif-camera
sourceName: AnalyticsModules
origin: 1664440545266300000
readings:
- id: c2bf2bfe-915f-48e5-bb4b-5cfdf5d9241a
origin: 1664440545266300000
deviceName: >-
HIKVISION-DS-2DC4223IW-DE-3bd4c000-b1b9-11b3-8202-4cf5dc64a22c
resourceName: AnalyticsModules
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
AnalyticsModule:
- Name: MyCellMotionModule
Parameters:
ElementItem:
- Name: Layout
SimpleItem:
- Name: Sensitivity
Value: '0'
Type: tt:CellMotionEngine
- Name: MyLineDetectorModule
Parameters:
ElementItem:
- Name: Layout
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '50'
Type: tt:LineDetectorEngine
- Name: MyFieldDetectorModule
Parameters:
ElementItem:
- Name: Layout
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '50'
Type: tt:FieldDetectorEngine
- Name: MyTamperDetecModule
Parameters:
ElementItem:
- Name: Transformation
- Name: Field
SimpleItem:
- Name: Sensitivity
Value: '0'
Type: hikxsd:TamperEngine
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetAnalyticsModules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetAnalyticsModules
description: |-
List the currently assigned set of analytics modules of a VideoAnalyticsConfiguration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
put:
tags:
- Analytics - Modules
summary: 'Analytics: ModifyAnalyticsModules'
requestBody:
content:
application/json:
schema:
properties:
AnalyticsModules:
$ref: '#/components/schemas/analytics_ModifyAnalyticsModules'
required:
- AnalyticsModules
type: object
example:
AnalyticsModules:
ConfigurationToken: VideoAnalyticsToken_3263078450
AnalyticsModule:
- Name: Viproc
Type: tt:CellMotionEngine
Parameters:
SimpleItem:
- Name: Sensitivity
Value: '40'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_ModifyAnalyticsModules
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.ModifyAnalyticsModules
description: |-
Modify the settings of one or more analytics modules of a VideoAnalyticsConfiguration. The modules are referenced by their names.
It is allowed to pass only a subset to be modified.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/CreateAnalyticsModules:
put:
tags:
- Analytics - Modules
summary: 'Analytics: CreateAnalyticsModules'
requestBody:
content:
application/json:
schema:
properties:
CreateAnalyticsModules:
$ref: '#/components/schemas/analytics_CreateAnalyticsModules'
required:
- CreateAnalyticsModules
type: object
example:
CreateAnalyticsModules:
ConfigurationToken: VideoAnalyticsToken_3263078450
AnalyticsModule:
- Name: TestAnalyticsModule
Type: tt:CellMotionEngine
Parameters:
SimpleItem:
- Name: Sensitivity
Value: '40'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_CreateAnalyticsModules
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.CreateAnalyticsModules
description: |-
Add one or more analytics modules to an existing VideoAnalyticsConfiguration.
The available supported types can be retrieved via
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DeleteAnalyticsModules:
put:
tags:
- Analytics - Modules
summary: 'Analytics: DeleteAnalyticsModules'
requestBody:
content:
application/json:
schema:
properties:
DeleteAnalyticsModules:
$ref: '#/components/schemas/analytics_DeleteAnalyticsModules'
required:
- DeleteAnalyticsModules
type: object
example:
DeleteAnalyticsModules:
ConfigurationToken: VideoAnalyticsToken_3263078450
AnalyticsModuleName:
- TestAnalyticsModule
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_DeleteAnalyticsModules
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.DeleteAnalyticsModules
description: |-
Remove one or more analytics modules from a VideoAnalyticsConfiguration referenced by their names.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ❌ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsModuleOptions:
get:
tags:
- Analytics - Modules
summary: 'Analytics: GetAnalyticsModuleOptions'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJWaWRlb0FuYWx5dGljc1Rva2VuIjoiVmlkZW9BbmFseXRpY3NUb2tlbl8zMDEyNTA4MDYwIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": "",
"Type": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Reference to an existing AnalyticsConfiguration.
- **Type** _[string]_
Reference to an SupportedAnalyticsModule Type returned from GetSupportedAnalyticsModules.
**Schema Reference:** [analytics_GetAnalyticsModuleOptions](#analytics_GetAnalyticsModuleOptions)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"VideoAnalyticsToken": "VideoAnalyticsToken_3012508060"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetAnalyticsModuleOptionsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 460b6e4f-88d7-476d-ab9c-d46c5f656124
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
profileName: onvif-camera
sourceName: AnalyticsModuleOptions
origin: 1665460132225688000
readings:
- id: 42a9e19c-82f6-4552-9f1d-459bfc55600a
origin: 1665460132225688000
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
resourceName: AnalyticsModuleOptions
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Options:
- IntRange:
Max: 100
Min: 0
Name: Sensitivity
Type: tt:IntRange
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetAnalyticsModuleOptions
externalDocs:
description: Onvif Specification
url:
https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetAnalyticsModuleOptions
description: |-
Return the options for the supported analytics modules that specify an Option attribute.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsSupportedRules:
get:
tags:
- Analytics - Rules
summary: 'Analytics: GetSupportedRules'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJWaWRlb0FuYWx5dGljc1Rva2VuIjoiVmlkZW9BbmFseXRpY3NUb2tlbl8zMDEyNTA4MDYwIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
References an existing Video Analytics configuration. The list of available tokens can be obtained
via the Media service GetVideoAnalyticsConfigurations method.
**Schema Reference:** [analytics_GetSupportedRules](#analytics_GetSupportedRules)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"VideoAnalyticsToken": "VideoAnalyticsToken_3012508060"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetSupportedRulesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 4694424b-74bb-45ee-a014-ebb6d09855f9
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
profileName: onvif-camera
sourceName: AnalyticsSupportedRules
origin: 1665460098832568300
readings:
- id: 155dc49e-caa7-492c-be74-0cf150ca2302
origin: 1665460098832568300
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
resourceName: AnalyticsSupportedRules
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
SupportedRules:
RuleContentSchemaLocation: http://www.w3.org/2001/XMLSchema
RuleDescription:
- Fixed: false
MaxInstances: 10
Messages:
Data:
SimpleItemDescription:
- Name: IsMotion
Type: xs:boolean
IsProperty: true
ParentTopic: tns1:RuleEngine/CellMotionDetector/Motion
Source:
SimpleItemDescription:
- Name: VideoSourceConfigurationToken
Type: tt:ReferenceToken
- Name: VideoAnalyticsConfigurationToken
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:CellMotionDetector
Parameters:
SimpleItemDescription:
- Name: MinCount
Type: xs:integer
- Name: AlarmOnDelay
Type: xs:integer
- Name: AlarmOffDelay
Type: xs:integer
- Name: ActiveCells
Type: xs:base64Binary
- Fixed: false
MaxInstances: 10
Messages:
Data:
SimpleItemDescription:
- Name: State
Type: xs:boolean
IsProperty: true
ParentTopic: tns1:RuleEngine/MotionRegionDetector/Motion
Source:
SimpleItemDescription:
- Name: VideoSource
Type: tt:ReferenceToken
- Name: RuleName
Type: xs:string
Name: tt:MotionRegionDetector
Parameters:
ElementItemDescription:
- Name: MotionRegion
- Fixed: false
MaxInstances: 1
Messages:
Data:
ElementItemDescription:
- Name: Image
- Name: BoundingBox
SimpleItemDescription:
- Name: Likelihood
Type: xs:float
- Name: Label
Type: xs:string
- Name: ImageUri
Type: xs:anyURI
- Name: EnrollmentID
Type: xs:string
- Name: RefImageUri
Type: xs:anyURI
IsProperty: true
ParentTopic: tns1:RuleEngine/Recognition/Face
Source:
SimpleItemDescription:
- Name: VideoSource
Type: tt:ReferenceToken
- Name: AnalyticsConfiguration
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:FaceRecognition
Parameters:
SimpleItemDescription:
- Name: IncludeImage
Type: xs:string
- Fixed: false
MaxInstances: 1
Messages:
Data:
ElementItemDescription:
- Name: BoundingBox
- Name: Image
- Name: LicensePlateInfo
- Name: VehicleInfo
- Name: VehicleImage
SimpleItemDescription:
- Name: Likelihood
Type: xs:float
- Name: Label
Type: xs:string
- Name: ImageUri
Type: xs:anyURI
- Name: VehicleImageURI
Type: xs:anyURI
IsProperty: true
ParentTopic: tns1:RuleEngine/Recognition/LicensePlate
Source:
SimpleItemDescription:
- Name: VideoSource
Type: tt:ReferenceToken
- Name: AnalyticsConfiguration
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:LicensePlateRecognition
Parameters:
ElementItemDescription:
- Name: Region
- Name: SnapLine
SimpleItemDescription:
- Name: IncludeImage
Type: xs:string
- Name: PlateLocation
Type: xs:string
- Fixed: false
MaxInstances: 1
Messages:
Data:
SimpleItemDescription:
- Name: Count
Type: xs:int
IsProperty: true
ParentTopic: tns1:RuleEngine/CountAggregation/Counter
Source:
SimpleItemDescription:
- Name: VideoSource
Type: tt:ReferenceToken
- Name: AnalyticsConfiguration
Type: tt:ReferenceToken
- Name: Rule
Type: xs:string
Name: tt:LineCounting
Parameters:
ElementItemDescription:
- Name: Segments
SimpleItemDescription:
- Name: ReportTimeInterval
Type: xs:duration
- Name: ResetTime
Type: xs:time
- Name: Direction
Type: tt:Direction
- Name: PassAllPolylines
Type: xs:boolean
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetSupportedRules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetSupportedRules
description: |-
List all rules that are supported by the given VideoAnalyticsConfiguration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsRules:
get:
tags:
- Analytics - Rules
summary: 'Analytics: GetRules'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJWaWRlb0FuYWx5dGljc1Rva2VuIjoiVmlkZW9BbmFseXRpY3NUb2tlbl8zMDEyNTA4MDYwIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Reference to an existing VideoAnalyticsConfiguration.
**Schema Reference:** [analytics_GetRules](#analytics_GetRules)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"VideoAnalyticsToken": "VideoAnalyticsToken_3012508060"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetRulesResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 16f84c82-ee09-41bb-a012-27b46cff27fe
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
profileName: onvif-camera
sourceName: AnalyticsRules
origin: 1665460089922944000
readings:
- id: 2f46e1f1-6f39-449a-bd68-6387db6a1008
origin: 1665460089922944000
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
resourceName: AnalyticsRules
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Rule:
- Name: MyMotionDetectorRule
Parameters:
SimpleItem:
- Name: MinCount
Value: '5'
- Name: AlarmOnDelay
Value: '1000'
- Name: AlarmOffDelay
Value: '1000'
- Name: ActiveCells
Value: zwA=
Type: tt:CellMotionDetector
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetRules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetRules
description: |-
List the currently assigned set of rules of a VideoAnalyticsConfiguration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
put:
tags:
- Analytics - Rules
summary: 'Analytics: ModifyRules'
requestBody:
content:
application/json:
schema:
properties:
AnalyticsRules:
$ref: '#/components/schemas/analytics_ModifyRules'
required:
- AnalyticsRules
type: object
example:
AnalyticsRules:
ConfigurationToken: VideoAnalyticsToken_3263078450
Rule:
- Name: MyMotionDetectorRule
Type: tt:ObjectInField
Parameters:
SimpleItem:
- Name: ClassFilter
Value: ' Bike Car Truck'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_ModifyRules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.ModifyRules
description: |-
Modify one or more rules of a VideoAnalyticsConfiguration. The rules are referenced by their names.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsRuleOptions:
get:
tags:
- Analytics - Rules
summary: 'Analytics: GetRuleOptions'
parameters:
- name: jsonObject
in: query
schema:
type: string
example: eyJWaWRlb0FuYWx5dGljc1Rva2VuIjoiVmlkZW9BbmFseXRpY3NUb2tlbl8zMDEyNTA4MDYwIn0=
description: |
**Format:**
This field is a Base64 encoded json string.
**JSON Schema:**
```yaml
{
"ConfigurationToken": "",
"RuleType": ""
}
```
**Field Descriptions:**
- **ConfigurationToken** _[string]_
Reference to an existing analytics configuration.
- **RuleType** _[string]_
Reference to an SupportedRule Type returned from GetSupportedRules.
**Schema Reference:** [analytics_GetRuleOptions](#analytics_GetRuleOptions)
**Example JSON:**
> _Note: This value must be encoded to base64!_
```json
{
"VideoAnalyticsToken": "VideoAnalyticsToken_3012508060"
}
```
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ObjectEventResponse'
- properties:
event:
properties:
readings:
items:
properties:
objectValue:
$ref: '#/components/schemas/analytics_GetRuleOptionsResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: bf7a5fc7-7523-4690-87b7-273b2a373ed3
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
profileName: onvif-camera
sourceName: AnalyticsRuleOptions
origin: 1665460126357157600
readings:
- id: 2bdd1ff4-7d2a-441b-bbc3-dfa50c27b096
origin: 1665460126357157600
deviceName: Intel-SimCamera-001caffe-48ca-450d-bbd4-cb4f8630ef19
resourceName: AnalyticsRuleOptions
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
RuleOptions:
- MotionRegionConfigOptions:
DisarmSupport: false
PolygonLimits:
Max: 0
Min: 0
PolygonSupport: false
Name: MotionRegion
Type: axt:MotionRegionConfigOptions
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_GetRuleOptions
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.GetRuleOptions
description: |-
Return the options for the supported rules that specify an Option attribute.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsCreateRules:
put:
tags:
- Analytics - Rules
summary: 'Analytics: CreateRules'
requestBody:
content:
application/json:
schema:
properties:
AnalyticsCreateRules:
$ref: '#/components/schemas/analytics_CreateRules'
required:
- AnalyticsCreateRules
type: object
example:
AnalyticsCreateRules:
ConfigurationToken: VideoAnalyticsToken_3263078450
Rule:
- Name: Object Counting
Type: tt:LineCounting
Parameters:
SimpleItem:
- Name: Armed
Value: 'true'
ElementItem:
- Name: Segments
Polyline:
Point:
- x: '0.16'
y: '0.5'
- x: '0.16'
y: '-0.5'
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_CreateRules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.CreateRules
description: |-
Add one or more rules to an existing VideoAnalyticsConfiguration.
The available supported types can be retrieved via
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/AnalyticsDeleteRules:
put:
tags:
- Analytics - Rules
summary: 'Analytics: DeleteRules'
requestBody:
content:
application/json:
schema:
properties:
AnalyticsDeleteRules:
$ref: '#/components/schemas/analytics_DeleteRules'
required:
- AnalyticsDeleteRules
type: object
example:
AnalyticsDeleteRules:
ConfigurationToken: VideoAnalyticsToken_3263078450
RuleName:
- Object Counting
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: analytics_DeleteRules
externalDocs:
description: Onvif Specification
url: https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl#op.DeleteRules
description: |-
Remove one or more rules from a VideoAnalyticsConfiguration.
Tested Camera Models
Below is a list of camera models that this command has been tested against, and whether or not the command is supported.
| Camera | Supported? | Notes |
|--------|:------------|-------|
| **Hikvision DFI6256TE** | ❌ | |
| **Tapo C200** | ❌ | |
| **BOSCH DINION IP starlight 6000 HD** | ✔️ | |
| **GeoVision GV-BX8700** | ❌ | |
| **Hikvision DS-2DE2A404IW-DE3** | ❌ | |
/api/v3/device/name/{EDGEX_DEVICE_NAME}/MACAddress:
get:
tags:
- Custom
summary: MACAddress
description: This command returns the MAC address associated with a device.
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/StringEventResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 92336908-8de3-458b-9f0c-3a0d5daaf721
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: MACAddress
origin: 1659657259559177500
readings:
- id: 6d54121c-2d9b-4d2f-ac14-29246fb15e31
origin: 1659657259559177500
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: MACAddress
profileName: onvif-camera
valueType: String
value: 10:27:F5:EA:88:F4
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetMACAddress
put:
tags:
- Custom
summary: MACAddress
description: >-
MACAddress can also be set via Edgex device command. This is useful for
setting the MAC Address for devices which do not contain
the MAC Address in the Endpoint Reference Address, or have been added
manually without a MAC Address.
Since the MAC is used to map credentials for cameras, it is important to
have this field filled out.
> Note: When a camera successfully becomes `UpWithAuth`, the MAC Address
is automatically queried and overridden by the system if available.
Device resource MACAddress is used to set `MACAddress` of a camera.
requestBody:
content:
application/json:
schema:
properties:
MACAddress:
type: string
required:
- MACAddress
type: object
example:
MACAddress: 10-27-f5-ea-88-f4
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetMACAddress
/api/v3/device/name/{EDGEX_DEVICE_NAME}/FriendlyName:
get:
tags:
- Custom
summary: FriendlyName
description: >-
This operation is used by an endpoint to get the FriendlyName from a
device. This is a name given to a device by a user to make the device
more identifiable.
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/StringEventResponse'
example:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 0505a28a-0fd9-41d4-8044-784cc089894b
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
profileName: onvif-camera
sourceName: FriendlyName
origin: 1659657288410588400
readings:
- id: 2d0def92-9e38-46bd-a72f-b512be4d5345
origin: 1659657288410588400
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-1027f5ea88f4
resourceName: FriendlyName
profileName: onvif-camera
valueType: String
value: TP-Link C200
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetFriendlyName
put:
tags:
- Custom
summary: FriendlyName
description: >-
This operation is used by an endpoint to set the FriendlyName of a
device. This is a name given to a device by a user to make the device
more identifiable.
requestBody:
content:
application/json:
schema:
properties:
FriendlyName:
type: string
required:
- FriendlyName
type: object
example:
FriendlyName: My Camera
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetFriendlyName
/api/v3/device/name/{EDGEX_DEVICE_NAME}/CustomMetadata:
get:
tags:
- Custom
summary: CustomMetadata
description: >-
**Get Custom Metadata**
Use this command to return all of the data in the CustomMetadata field.
**Get Specific Custom Metadata**
Pass the `CustomMetadata` resource a query to get specific field(s) in
CustomMetadata. The query must be a base64 encoded json object with an
array of fields you want to access.
1. Json object holding an array of fields you want to query.
```json
'[
"Color",
"Location"
]'
```
2. Use this command to convert the json object to base64.
```shell
echo '[
"Color",
"Location"
]' | base64
```
3. The response converted to base64.
```
WwogICAgIkNvbG9yIiwKICAgICJMb2NhdGlvbiIKXQo=
```
4. Use this command to query the fields you provided in the json object.
```shell
curl http://localhost:59882/api/v3/device/name//CustomMetadata?jsonObject=WwogICAgIkNvbG9yIiwKICAgICJMb2NhdGlvbiIKXQo=
| jq .
```
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
X-Correlation-Id:
$ref: '#/components/headers/correlatedResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectEventResponse'
examples:
example-0:
summary: CustomMetadata
value:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 6905a513-3aff-454b-981d-ea8e0c79f195
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-cc32e5000688
profileName: onvif-camera
sourceName: CustomMetadata
origin: 1663976147356099300
readings:
- id: c90f88b6-7e2f-4e37-8fa7-b173a4d6ffec
origin: 1663976147356099300
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-cc32e5000688
resourceName: CustomMetadata
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Business: John's Grocery Store
Install Date: 01/01/1970
Location: Front door
example-1:
summary: GetSpecificCustomMetadata-multipleFields Copy
value:
apiVersion: v3
statusCode: 200
event:
apiVersion: v3
id: 0749ab9c-05b4-4515-a2b0-5d253aeb8be9
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-cc32e5000688
profileName: onvif-camera
sourceName: CustomMetadata
origin: 1663976177486172000
readings:
- id: 295d2e23-ffae-4c7e-9440-6be14fc1c93e
origin: 1663976177486172000
deviceName: TP-Link-C200-3fa1fe68-b915-4053-a3e1-cc32e5000688
resourceName: CustomMetadata
profileName: onvif-camera
valueType: Object
value: ''
objectValue:
Business: John's Grocery Store
Location: Front door
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_GetCustomMetadata
put:
tags:
- Custom
summary: CustomMetadata
description: >-
Use the CustomMetadata resource to set the fields of `CustomMetadata`.
Choose the key/value pairs to represent your custom fields.
requestBody:
content:
application/json:
schema:
properties:
CustomMetadata:
type: object
additionalProperties:
type: string
required:
- CustomMetadata
type: object
example:
CustomMetadata:
Location: Front door
Business: John's Grocery Store
Install Date: 01/01/1970
Color: White
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetCustomMetadata
/api/v3/device/name/{EDGEX_DEVICE_NAME}/DeleteCustomMetadata:
put:
tags:
- Custom
summary: DeleteCustomMetadata
description: >-
Use the `DeleteCustomMetadata` resource to delete entries in custom
metadata
requestBody:
content:
application/json:
schema:
properties:
DeleteCustomMetadata:
type: array
items:
type: string
required:
- DeleteCustomMetadata
type: object
example:
DeleteCustomMetadata:
- Location
- Color
parameters:
- $ref: '#/components/parameters/EDGEX_DEVICE_NAME'
responses:
'200': *id006
'400': *id001
'404': *id002
'423': *id003
'500': *id004
'503': *id005
operationId: edgex_SetDeleteCustomMetadata
components:
schemas:
analytics_ConfigOptions:
properties:
AnalyticsModule:
description: Optional name of the analytics module this constraint applies
to. This option is only necessary in cases where different constraints
for elements with the same Name exist.
type: string
Name:
description: |-
The Name of the SimpleItemDescription/ElementItemDescription
the ConfigOptions applies to.
type: string
RuleType:
description: The RuleType the ConfigOptions applies to if the Name attribute
is ambiguous.
type: string
Type:
description: |-
Type of the Rule Options represented by a unique QName.
The Type defines the element contained in this structure.
This attribute is deprecated since its value must be identical to the embedded element.
type: string
maxOccurs:
description: Maximum number of occurrences. Defaults to one.
format: int32
type: integer
minOccurs:
description: Minimal number of occurrences. Defaults to one.
format: int32
type: integer
required:
- Name
type: object
analytics_CreateAnalyticsModules:
properties:
AnalyticsModule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
required:
- ConfigurationToken
- AnalyticsModule
type: object
analytics_CreateRules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
Rule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
required:
- ConfigurationToken
- Rule
type: object
analytics_DeleteAnalyticsModules:
properties:
AnalyticsModuleName:
description: Name of the AnalyticsModule to be deleted.
items:
type: string
type: array
ConfigurationToken:
description: Reference to an existing Video Analytics configuration.
maxLength: 64
type: string
required:
- ConfigurationToken
- AnalyticsModuleName
type: object
analytics_DeleteRules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
RuleName:
description: References the specific rule to be deleted (e.g. "MyLineDetector").
items:
type: string
type: array
required:
- ConfigurationToken
- RuleName
type: object
analytics_GetAnalyticsModuleOptions:
properties:
ConfigurationToken:
description: Reference to an existing AnalyticsConfiguration.
maxLength: 64
type: string
Type:
description: Reference to an SupportedAnalyticsModule Type returned from
GetSupportedAnalyticsModules.
type: string
required:
- ConfigurationToken
type: object
analytics_GetAnalyticsModuleOptionsResponse:
properties:
Options:
description: List of options for the specified analytics module. The response
Options shall not contain any RuleType attribute.
items:
$ref: '#/components/schemas/analytics_ConfigOptions'
type: array
type: object
analytics_GetAnalyticsModules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
analytics_GetAnalyticsModulesResponse:
properties:
AnalyticsModule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
type: object
analytics_GetRuleOptions:
properties:
ConfigurationToken:
description: Reference to an existing analytics configuration.
maxLength: 64
type: string
RuleType:
description: Reference to an SupportedRule Type returned from GetSupportedRules.
type: string
required:
- ConfigurationToken
type: object
analytics_GetRuleOptionsResponse:
properties:
RuleOptions:
description: A device shall provide respective ConfigOptions.RuleType for
each RuleOption if the request does not specify RuleType. The response
Options shall not contain any AnalyticsModule attribute.
items:
$ref: '#/components/schemas/analytics_ConfigOptions'
type: array
type: object
analytics_GetRules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
analytics_GetRulesResponse:
properties:
Rule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
type: object
analytics_GetSupportedAnalyticsModules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
analytics_GetSupportedAnalyticsModulesResponse:
properties:
SupportedAnalyticsModules:
$ref: '#/components/schemas/onvif_SupportedAnalyticsModules'
required:
- SupportedAnalyticsModules
type: object
analytics_GetSupportedRules:
properties:
ConfigurationToken:
description: |-
References an existing Video Analytics configuration. The list of available tokens can be obtained
via the Media service GetVideoAnalyticsConfigurations method.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
analytics_GetSupportedRulesResponse:
properties:
SupportedRules:
$ref: '#/components/schemas/onvif_SupportedRules'
required:
- SupportedRules
type: object
analytics_ModifyAnalyticsModules:
properties:
AnalyticsModule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
required:
- ConfigurationToken
- AnalyticsModule
type: object
analytics_ModifyRules:
properties:
ConfigurationToken:
description: Reference to an existing VideoAnalyticsConfiguration.
maxLength: 64
type: string
Rule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
required:
- ConfigurationToken
- Rule
type: object
onvif_AnalyticsCapabilities:
properties:
AnalyticsModuleSupport:
description: Indicates whether or not modules are supported.
type: boolean
RuleSupport:
description: Indicates whether or not rules are supported.
type: boolean
XAddr:
description: Analytics service URI.
type: string
required:
- XAddr
- RuleSupport
- AnalyticsModuleSupport
type: object
onvif_AnalyticsDeviceCapabilities:
properties:
Extension:
$ref: '#/components/schemas/onvif_AnalyticsDeviceExtension'
RuleSupport:
description: Obsolete property.
type: boolean
XAddr:
type: string
required:
- XAddr
type: object
onvif_AnalyticsDeviceExtension:
type: object
onvif_AnalyticsEngineConfiguration:
properties:
AnalyticsModule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
Extension:
$ref: '#/components/schemas/onvif_AnalyticsEngineConfigurationExtension'
type: object
onvif_AnalyticsEngineConfigurationExtension:
type: object
onvif_AudioDecoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- type: object
description: |-
The Audio Decoder Configuration does not contain any that parameter to configure the
decoding .A decoder shall decode every data it receives (according to its capabilities).
onvif_AudioEncoder2Configuration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Bitrate:
description: The output bitrate in kbps.
format: int32
type: integer
Encoding:
description: Audio Media Subtype for the audio format. For definitions
see tt:AudioEncodingMimeNames and
type: string
Multicast:
allOf:
- $ref: '#/components/schemas/onvif_MulticastConfiguration'
- description: Optional multicast configuration of the audio stream.
SampleRate:
description: The output sample rate in kHz.
format: int32
type: integer
required:
- Encoding
- Bitrate
- SampleRate
type: object
onvif_AudioEncoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Bitrate:
description: The output bitrate in kbps.
format: int32
type: integer
Encoding:
allOf:
- $ref: '#/components/schemas/onvif_AudioEncoding'
- description: Audio codec used for encoding the audio input (either G.711,
G.726 or AAC)
Multicast:
allOf:
- $ref: '#/components/schemas/onvif_MulticastConfiguration'
- description: Defines the multicast settings that could be used for video
streaming.
SampleRate:
description: The output sample rate in kHz.
format: int32
type: integer
SessionTimeout:
description: The rtsp session timeout for the related audio stream
format: date-time
type: string
required:
- Encoding
- Bitrate
- SampleRate
- Multicast
- SessionTimeout
type: object
onvif_AudioEncoding:
enum:
- G711
- G726
- AAC
type: string
onvif_AudioOutputConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
OutputLevel:
description: Volume setting of the output. The applicable range is defined
via the option AudioOutputOptions.OutputLevelRange.
format: int32
type: integer
OutputToken:
description: Token of the phsycial Audio output.
maxLength: 64
type: string
SendPrimacy:
description: |-
An audio channel MAY support different types of audio transmission. While for full duplex
operation no special handling is required, in half duplex operation the transmission direction
needs to be switched.
The optional SendPrimacy parameter inside the AudioOutputConfiguration indicates which
direction is currently active. An NVC can switch between different modes by setting the
AudioOutputConfiguration.
type: string
required:
- OutputToken
- OutputLevel
type: object
onvif_AudioSourceConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
SourceToken:
description: Token of the Audio Source the configuration applies to
maxLength: 64
type: string
required:
- SourceToken
type: object
onvif_Capabilities:
properties:
Analytics:
allOf:
- $ref: '#/components/schemas/onvif_AnalyticsCapabilities'
- description: Analytics capabilities
Device:
allOf:
- $ref: '#/components/schemas/onvif_DeviceCapabilities'
- description: Device capabilities
Events:
allOf:
- $ref: '#/components/schemas/onvif_EventCapabilities'
- description: Event capabilities
Extension:
$ref: '#/components/schemas/onvif_CapabilitiesExtension'
Imaging:
allOf:
- $ref: '#/components/schemas/onvif_ImagingCapabilities'
- description: Imaging capabilities
Media:
allOf:
- $ref: '#/components/schemas/onvif_MediaCapabilities'
- description: Media capabilities
PTZ:
allOf:
- $ref: '#/components/schemas/onvif_PTZCapabilities'
- description: PTZ capabilities
type: object
onvif_CapabilitiesExtension:
properties:
AnalyticsDevice:
$ref: '#/components/schemas/onvif_AnalyticsDeviceCapabilities'
DeviceIO:
$ref: '#/components/schemas/onvif_DeviceIOCapabilities'
Display:
$ref: '#/components/schemas/onvif_DisplayCapabilities'
Extensions:
$ref: '#/components/schemas/onvif_CapabilitiesExtension2'
Receiver:
$ref: '#/components/schemas/onvif_ReceiverCapabilities'
Recording:
$ref: '#/components/schemas/onvif_RecordingCapabilities'
Replay:
$ref: '#/components/schemas/onvif_ReplayCapabilities'
Search:
$ref: '#/components/schemas/onvif_SearchCapabilities'
type: object
onvif_CapabilitiesExtension2:
type: object
onvif_CapabilityCategory:
enum:
- All
- Analytics
- Device
- Events
- Imaging
- Media
- PTZ
type: string
onvif_Config:
properties:
Name:
description: Name of the configuration.
type: string
Parameters:
allOf:
- $ref: '#/components/schemas/onvif_ItemList'
- description: List of configuration parameters as defined in the corresponding
description.
Type:
description: The Type attribute specifies the type of rule and shall be
equal to value of one of Name attributes of ConfigDescription elements
returned by GetSupportedRules and GetSupportedAnalyticsModules command.
type: string
required:
- Name
- Type
- Parameters
type: object
onvif_ConfigDescription:
properties:
Extension:
$ref: '#/components/schemas/onvif_ConfigDescriptionExtension'
Messages:
description: |-
The analytics modules and rule engine produce Events, which must be listed within the Analytics Module Description. In order to do so
the structure of the Message is defined and consists of three groups: Source, Key, and Data. It is recommended to use SimpleItemDescriptions wherever applicable.
The name of all Items must be unique within all Items contained in any group of this Message.
Depending on the component multiple parameters or none may be needed to identify the component uniquely.
items:
$ref: '#/components/schemas/onvif_Messages'
type: array
Name:
description: The Name attribute (e.g. "tt::LineDetector") uniquely identifies
the type of rule, not a type definition in a schema.
type: string
Parameters:
allOf:
- $ref: '#/components/schemas/onvif_ItemListDescription'
- description: |-
List describing the configuration parameters. The names of the parameters must be unique. If possible SimpleItems
should be used to transport the information to ease parsing of dynamically defined messages by a client
application.
fixed:
description: The fixed attribute signals that it is not allowed to add or
remove this type of configuration.
type: boolean
maxInstances:
description: The maxInstances attribute signals the maximum number of instances
per configuration.
format: int32
type: integer
required:
- Name
- Parameters
type: object
onvif_ConfigDescriptionExtension:
type: object
onvif_ConfigurationEntity:
description: Base type defining the common properties of a configuration.
properties:
Name:
description: User readable name. Length up to 64 characters.
maxLength: 64
type: string
UseCount:
description: Number of internal references currently using this configuration.
format: int32
type: integer
token:
description: Token that uniquely references this configuration. Length up
to 64 characters.
maxLength: 64
type: string
required:
- token
- Name
- UseCount
type: object
onvif_DNSInformation:
properties:
DNSFromDHCP:
description: List of DNS addresses received from DHCP.
items:
$ref: '#/components/schemas/onvif_IPAddress'
type: array
DNSManual:
description: List of manually entered DNS addresses.
items:
$ref: '#/components/schemas/onvif_IPAddress'
type: array
Extension:
$ref: '#/components/schemas/onvif_DNSInformationExtension'
FromDHCP:
description: Indicates whether or not DNS information is retrieved from
DHCP.
type: boolean
SearchDomain:
description: Search domain.
items:
type: string
type: array
required:
- FromDHCP
type: object
onvif_DNSInformationExtension:
type: object
onvif_Date:
properties:
Day:
description: Range is 1 to 31.
format: int32
type: integer
Month:
description: Range is 1 to 12.
format: int32
type: integer
Year:
format: int32
type: integer
required:
- Year
- Month
- Day
type: object
onvif_DateTime:
properties:
Date:
$ref: '#/components/schemas/onvif_Date'
Time:
$ref: '#/components/schemas/onvif_Time'
required:
- Time
- Date
type: object
onvif_DeviceCapabilities:
properties:
Extension:
$ref: '#/components/schemas/onvif_DeviceCapabilitiesExtension'
IO:
allOf:
- $ref: '#/components/schemas/onvif_IOCapabilities'
- description: I/O capabilities.
Network:
allOf:
- $ref: '#/components/schemas/onvif_NetworkCapabilities'
- description: Network capabilities.
Security:
allOf:
- $ref: '#/components/schemas/onvif_SecurityCapabilities'
- description: Security capabilities.
System:
allOf:
- $ref: '#/components/schemas/onvif_SystemCapabilities'
- description: System capabilities.
XAddr:
description: Device service URI.
type: string
required:
- XAddr
type: object
onvif_DeviceCapabilitiesExtension:
type: object
onvif_DeviceEntity:
description: Base class for physical entities like inputs and outputs.
properties:
token:
description: Unique identifier referencing the physical entity.
maxLength: 64
type: string
required:
- token
type: object
onvif_DeviceIOCapabilities:
properties:
AudioOutputs:
format: int32
type: integer
AudioSources:
format: int32
type: integer
RelayOutputs:
format: int32
type: integer
VideoOutputs:
format: int32
type: integer
VideoSources:
format: int32
type: integer
XAddr:
type: string
required:
- XAddr
- VideoSources
- VideoOutputs
- AudioSources
- AudioOutputs
- RelayOutputs
type: object
onvif_DiscoveryMode:
enum:
- Discoverable
- NonDiscoverable
type: string
onvif_DisplayCapabilities:
properties:
FixedLayout:
description: Indication that the SetLayout command supports only predefined
layouts.
type: boolean
XAddr:
type: string
required:
- XAddr
- FixedLayout
type: object
onvif_Dot11Cipher:
enum:
- CCMP
- TKIP
- Any
- Extended
type: string
onvif_Dot11Configuration:
properties:
Alias:
maxLength: 64
type: string
Mode:
$ref: '#/components/schemas/onvif_Dot11StationMode'
Priority:
format: int32
maximum: 31
minimum: 0
type: integer
SSID:
format: binary
type: string
Security:
$ref: '#/components/schemas/onvif_Dot11SecurityConfiguration'
required:
- SSID
- Mode
- Alias
- Priority
- Security
type: object
onvif_Dot11PSKSet:
properties:
Extension:
$ref: '#/components/schemas/onvif_Dot11PSKSetExtension'
Key:
description: According to IEEE802.11-2007 H.4.1 the RSNA PSK consists of
256 bits, or 64 octets when represented in hex
format: binary
type: string
Passphrase:
description: |-
According to IEEE802.11-2007 H.4.1 a pass-phrase is a sequence of between 8 and 63 ASCII-encoded characters and
each character in the pass-phrase must have an encoding in the range of 32 to 126 (decimal),inclusive.
pattern: '[ -~]{8,63}'
type: string
type: object
onvif_Dot11PSKSetExtension:
type: object
onvif_Dot11SecurityConfiguration:
properties:
Algorithm:
$ref: '#/components/schemas/onvif_Dot11Cipher'
Dot1X:
maxLength: 64
type: string
Extension:
$ref: '#/components/schemas/onvif_Dot11SecurityConfigurationExtension'
Mode:
$ref: '#/components/schemas/onvif_Dot11SecurityMode'
PSK:
$ref: '#/components/schemas/onvif_Dot11PSKSet'
required:
- Mode
type: object
onvif_Dot11SecurityConfigurationExtension:
type: object
onvif_Dot11SecurityMode:
enum:
- None
- WEP
- PSK
- Dot1X
- Extended
type: string
onvif_Dot11StationMode:
enum:
- Ad-hoc
- Infrastructure
- Extended
type: string
onvif_Dot3Configuration:
type: object
onvif_Duplex:
enum:
- Full
- Half
type: string
onvif_DurationRange:
description: Range of duration greater equal Min duration and less equal Max
duration.
properties:
Max:
format: date-time
type: string
Min:
format: date-time
type: string
required:
- Min
- Max
type: object
onvif_EFlip:
properties:
Mode:
allOf:
- $ref: '#/components/schemas/onvif_EFlipMode'
- description: Parameter to enable/disable E-Flip feature.
required:
- Mode
type: object
onvif_EFlipMode:
enum:
- false
- true
- Extended
type: string
onvif_EFlipOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_EFlipOptionsExtension'
Mode:
description: Options of EFlip mode parameter.
items:
$ref: '#/components/schemas/onvif_EFlipMode'
type: array
type: object
onvif_EFlipOptionsExtension:
type: object
onvif_ElementItem:
description: Complex value structure.
properties:
Name:
description: Item name.
type: string
required:
- Name
type: object
onvif_ElementItemDescription:
description: Description of a complex type. The Type must reference a defined
type.
properties:
Name:
description: Item name. Must be unique within a list.
type: string
Type:
description: The type of the item. The Type must reference a defined type.
type: string
required:
- Name
- Type
type: object
onvif_EventCapabilities:
properties:
WSPausableSubscriptionManagerInterfaceSupport:
description: Indicates whether or not WS Pausable Subscription Manager Interface
is supported.
type: boolean
WSPullPointSupport:
description: Indicates whether or not WS Pull Point is supported.
type: boolean
WSSubscriptionPolicySupport:
description: Indicates whether or not WS Subscription policy is supported.
type: boolean
XAddr:
description: Event service URI.
type: string
required:
- XAddr
- WSSubscriptionPolicySupport
- WSPullPointSupport
- WSPausableSubscriptionManagerInterfaceSupport
type: object
onvif_EventSubscription:
description: Subcription handling in the same way as base notification subscription.
properties:
Filter:
$ref: '#/components/schemas/wsnt_FilterType'
SubscriptionPolicy:
$ref: '#/components/schemas/onvif_SubscriptionPolicy'
type: object
onvif_FactoryDefaultType:
description: Enumeration describing the available factory default modes.
enum:
- Hard
- Soft
type: string
onvif_FloatRange:
description: Range of values greater equal Min value and less equal Max value.
properties:
Max:
type: number
Min:
type: number
required:
- Min
- Max
type: object
onvif_H264Configuration:
properties:
GovLength:
description: Group of Video frames length. Determines typically the interval
in which the I-Frames will be coded. An entry of 1 indicates I-Frames
are continuously generated. An entry of 2 indicates that every 2nd image
is an I-Frame, and 3 only every 3rd frame, etc. The frames in between
are coded as P or B Frames.
format: int32
type: integer
H264Profile:
allOf:
- $ref: '#/components/schemas/onvif_H264Profile'
- description: the H.264 profile, either baseline, main, extended or high
required:
- GovLength
- H264Profile
type: object
onvif_H264Options:
properties:
EncodingIntervalRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported encoding interval range. The encoding interval
corresponds to the number of frames devided by the encoded frames. An
encoding interval value of "1" means that all frames are encoded.
FrameRateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported frame rate in fps (frames per second).
GovLengthRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported group of Video frames length. This value typically
corresponds to the I-Frame distance.
H264ProfilesSupported:
description: List of supported H.264 profiles.
items:
$ref: '#/components/schemas/onvif_H264Profile'
type: array
ResolutionsAvailable:
description: List of supported image sizes.
items:
$ref: '#/components/schemas/onvif_VideoResolution'
type: array
required:
- ResolutionsAvailable
- GovLengthRange
- FrameRateRange
- EncodingIntervalRange
- H264ProfilesSupported
type: object
onvif_H264Options2:
allOf:
- $ref: '#/components/schemas/onvif_H264Options'
- properties:
BitrateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported range of encoded bitrate in kbps.
required:
- BitrateRange
type: object
onvif_H264Profile:
enum:
- Baseline
- Main
- Extended
- High
type: string
onvif_HostnameInformation:
properties:
Extension:
$ref: '#/components/schemas/onvif_HostnameInformationExtension'
FromDHCP:
description: Indicates whether the hostname is obtained from DHCP or not.
type: boolean
Name:
description: Indicates the hostname.
type: string
required:
- FromDHCP
type: object
onvif_HostnameInformationExtension:
type: object
onvif_IOCapabilities:
properties:
Extension:
$ref: '#/components/schemas/onvif_IOCapabilitiesExtension'
InputConnectors:
description: Number of input connectors.
format: int32
type: integer
RelayOutputs:
description: Number of relay outputs.
format: int32
type: integer
type: object
onvif_IOCapabilitiesExtension:
properties:
Auxiliary:
type: boolean
AuxiliaryCommands:
items:
maxLength: 128
type: string
type: array
Extension:
$ref: '#/components/schemas/onvif_IOCapabilitiesExtension2'
required:
- Extension
type: object
onvif_IOCapabilitiesExtension2:
type: object
onvif_IPAddress:
properties:
IPv4Address:
description: IPv4 address.
type: string
IPv6Address:
description: IPv6 address
type: string
Type:
allOf:
- $ref: '#/components/schemas/onvif_IPType'
- description: Indicates if the address is an IPv4 or IPv6 address.
required:
- Type
type: object
onvif_IPType:
enum:
- IPv4
- IPv6
type: string
onvif_IPv4Configuration:
properties:
DHCP:
description: Indicates whether or not DHCP is used.
type: boolean
FromDHCP:
allOf:
- $ref: '#/components/schemas/onvif_PrefixedIPv4Address'
- description: IPv4 address configured by using DHCP.
LinkLocal:
allOf:
- $ref: '#/components/schemas/onvif_PrefixedIPv4Address'
- description: Link local address.
Manual:
description: List of manually added IPv4 addresses.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv4Address'
type: array
required:
- DHCP
type: object
onvif_IPv4NetworkInterface:
properties:
Config:
allOf:
- $ref: '#/components/schemas/onvif_IPv4Configuration'
- description: IPv4 configuration.
Enabled:
description: Indicates whether or not IPv4 is enabled.
type: boolean
required:
- Enabled
- Config
type: object
onvif_IPv4NetworkInterfaceSetConfiguration:
properties:
DHCP:
description: Indicates whether or not DHCP is used.
type: boolean
Enabled:
description: Indicates whether or not IPv4 is enabled.
type: boolean
Manual:
description: List of manually added IPv4 addresses.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv4Address'
type: array
type: object
onvif_IPv6Configuration:
properties:
AcceptRouterAdvert:
description: Indicates whether router advertisment is used.
type: boolean
DHCP:
allOf:
- $ref: '#/components/schemas/onvif_IPv6DHCPConfiguration'
- description: DHCP configuration.
Extension:
$ref: '#/components/schemas/onvif_IPv6ConfigurationExtension'
FromDHCP:
description: List of IPv6 addresses configured by using DHCP.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv6Address'
type: array
FromRA:
description: List of IPv6 addresses configured by using router advertisment.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv6Address'
type: array
LinkLocal:
description: List of link local IPv6 addresses.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv6Address'
type: array
Manual:
description: List of manually entered IPv6 addresses.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv6Address'
type: array
required:
- DHCP
type: object
onvif_IPv6ConfigurationExtension:
type: object
onvif_IPv6DHCPConfiguration:
enum:
- Auto
- Stateful
- Stateless
- false
type: string
onvif_IPv6NetworkInterface:
properties:
Config:
allOf:
- $ref: '#/components/schemas/onvif_IPv6Configuration'
- description: IPv6 configuration.
Enabled:
description: Indicates whether or not IPv6 is enabled.
type: boolean
required:
- Enabled
type: object
onvif_IPv6NetworkInterfaceSetConfiguration:
properties:
AcceptRouterAdvert:
description: Indicates whether router advertisment is used.
type: boolean
DHCP:
allOf:
- $ref: '#/components/schemas/onvif_IPv6DHCPConfiguration'
- description: DHCP configuration.
Enabled:
description: Indicates whether or not IPv6 is enabled.
type: boolean
Manual:
description: List of manually added IPv6 addresses.
items:
$ref: '#/components/schemas/onvif_PrefixedIPv6Address'
type: array
type: object
onvif_ImagingCapabilities:
properties:
XAddr:
description: Imaging service URI.
type: string
required:
- XAddr
type: object
onvif_IntRange:
description: Range of values greater equal Min value and less equal Max value.
properties:
Max:
format: int32
type: integer
Min:
format: int32
type: integer
required:
- Min
- Max
type: object
onvif_IntRectangle:
description: Rectangle defined by lower left corner position and size. Units
are pixel.
properties:
height:
format: int32
type: integer
width:
format: int32
type: integer
x:
format: int32
type: integer
y:
format: int32
type: integer
required:
- x
- y
- width
- height
type: object
onvif_ItemList:
properties:
ElementItem:
description: Complex value structure.
items:
$ref: '#/components/schemas/onvif_ElementItem'
type: array
Extension:
$ref: '#/components/schemas/onvif_ItemListExtension'
SimpleItem:
description: Value name pair as defined by the corresponding description.
items:
$ref: '#/components/schemas/onvif_SimpleItem'
type: array
type: object
onvif_ItemListDescription:
description: |-
Describes a list of items. Each item in the list shall have a unique name.
The list is designed as linear structure without optional or unbounded elements.
Use ElementItems only when complex structures are inevitable.
properties:
ElementItemDescription:
description: Description of a complex type. The Type must reference a defined
type.
items:
$ref: '#/components/schemas/onvif_ElementItemDescription'
type: array
Extension:
$ref: '#/components/schemas/onvif_ItemListDescriptionExtension'
SimpleItemDescription:
description: Description of a simple item. The type must be of cathegory
simpleType (xs:string, xs:integer, xs:float, ...).
items:
$ref: '#/components/schemas/onvif_SimpleItemDescription'
type: array
type: object
onvif_ItemListDescriptionExtension:
type: object
onvif_ItemListExtension:
type: object
onvif_JpegOptions:
properties:
EncodingIntervalRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported encoding interval range. The encoding interval
corresponds to the number of frames devided by the encoded frames. An
encoding interval value of "1" means that all frames are encoded.
FrameRateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported frame rate in fps (frames per second).
ResolutionsAvailable:
description: List of supported image sizes.
items:
$ref: '#/components/schemas/onvif_VideoResolution'
type: array
required:
- ResolutionsAvailable
- FrameRateRange
- EncodingIntervalRange
type: object
onvif_JpegOptions2:
allOf:
- $ref: '#/components/schemas/onvif_JpegOptions'
- properties:
BitrateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported range of encoded bitrate in kbps.
required:
- BitrateRange
type: object
onvif_LensDescription:
properties:
FocalLength:
description: Optional focal length of the optical system.
type: number
Offset:
allOf:
- $ref: '#/components/schemas/onvif_LensOffset'
- description: Offset of the lens center to the imager center in normalized
coordinates.
Projection:
description: |-
Radial description of the projection characteristics. The resulting curve is defined by the B-Spline interpolation
over the given elements. The element for Radius zero shall not be provided. The projection points shall be ordered with ascending Radius.
Items outside the last projection Radius shall be assumed to be invisible (black).
items:
$ref: '#/components/schemas/onvif_LensProjection'
type: array
XFactor:
description: Compensation of the x coordinate needed for the ONVIF normalized
coordinate system.
type: number
required:
- Offset
- Projection
- XFactor
type: object
onvif_LensOffset:
properties:
x:
description: Optional horizontal offset of the lens center in normalized
coordinates.
type: number
y:
description: Optional vertical offset of the lens center in normalized coordinates.
type: number
type: object
onvif_LensProjection:
properties:
Angle:
description: Angle of incidence.
type: number
Radius:
description: Mapping radius as a consequence of the emergent angle.
type: number
Transmittance:
description: Optional ray absorption at the given angle due to vignetting.
A value of one means no absorption.
type: number
required:
- Angle
- Radius
type: object
onvif_MediaCapabilities:
properties:
Extension:
$ref: '#/components/schemas/onvif_MediaCapabilitiesExtension'
StreamingCapabilities:
allOf:
- $ref: '#/components/schemas/onvif_RealTimeStreamingCapabilities'
- description: Streaming capabilities.
XAddr:
description: Media service URI.
type: string
required:
- XAddr
- StreamingCapabilities
type: object
onvif_MediaCapabilitiesExtension:
properties:
ProfileCapabilities:
$ref: '#/components/schemas/onvif_ProfileCapabilities'
required:
- ProfileCapabilities
type: object
onvif_MediaUri:
properties:
InvalidAfterConnect:
description: Indicates if the Uri is only valid until the connection is
established. The value shall be set to "false".
type: boolean
InvalidAfterReboot:
description: Indicates if the Uri is invalid after a reboot of the device.
The value shall be set to "false".
type: boolean
Timeout:
description: Duration how long the Uri is valid. This parameter shall be
set to PT0S to indicate that this stream URI is indefinitely valid even
if the profile changes
format: date-time
type: string
Uri:
description: Stable Uri to be used for requesting the media stream
type: string
required:
- Uri
- InvalidAfterConnect
- InvalidAfterReboot
- Timeout
type: object
onvif_MessageDescription:
properties:
Data:
allOf:
- $ref: '#/components/schemas/onvif_ItemListDescription'
- description: Describes the payload of the message.
Extension:
$ref: '#/components/schemas/onvif_MessageDescriptionExtension'
IsProperty:
description: Must be set to true when the described Message relates to a
property. An alternative term of "property" is a "state" in contrast to
a pure event, which contains relevant information for only a single point
in time.
type: boolean
Key:
allOf:
- $ref: '#/components/schemas/onvif_ItemListDescription'
- description: Describes optional message payload parameters that may be
used as key. E.g. object IDs of tracked objects are conveyed as key.
Source:
allOf:
- $ref: '#/components/schemas/onvif_ItemListDescription'
- description: |-
Set of tokens producing this message. The list may only contain SimpleItemDescription items.
The set of tokens identify the component within the WS-Endpoint, which is responsible for the producing the message.
type: object
onvif_MessageDescriptionExtension:
type: object
onvif_Messages:
allOf:
- $ref: '#/components/schemas/onvif_MessageDescription'
- properties:
ParentTopic:
description: The topic of the message. For historical reason the element
is named ParentTopic, but the full topic is expected.
type: string
required:
- ParentTopic
type: object
description: |-
The analytics modules and rule engine produce Events, which must be listed within the Analytics Module Description. In order to do so
the structure of the Message is defined and consists of three groups: Source, Key, and Data. It is recommended to use SimpleItemDescriptions wherever applicable.
The name of all Items must be unique within all Items contained in any group of this Message.
Depending on the component multiple parameters or none may be needed to identify the component uniquely.
onvif_MetadataConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Analytics:
description: Defines whether the streamed metadata will include metadata
from the analytics engines (video, cell motion, audio etc.)
type: boolean
AnalyticsEngineConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_AnalyticsEngineConfiguration'
- description: |-
Indication which AnalyticsModules shall output metadata.
Note that the streaming behavior is undefined if the list includes items that are not part of the associated AnalyticsConfiguration.
CompressionType:
description: Optional parameter to configure compression type of Metadata
payload. Use values from enumeration MetadataCompressionType.
type: string
Events:
allOf:
- $ref: '#/components/schemas/onvif_EventSubscription'
- description: |-
Optional element to configure the streaming of events. A client might be interested in receiving all,
none or some of the events produced by the device:
Extension:
$ref: '#/components/schemas/onvif_MetadataConfigurationExtension'
GeoLocation:
description: Optional parameter to configure if the metadata stream shall
contain the Geo Location coordinates of each target.
type: boolean
Multicast:
allOf:
- $ref: '#/components/schemas/onvif_MulticastConfiguration'
- description: Defines the multicast settings that could be used for video
streaming.
PTZStatus:
allOf:
- $ref: '#/components/schemas/onvif_PTZFilter'
- description: optional element to configure which PTZ related data is
to include in the metadata stream
SessionTimeout:
description: The rtsp session timeout for the related audio stream (when
using Media2 Service, this value is deprecated and ignored)
format: date-time
type: string
ShapePolygon:
description: Optional parameter to configure if the generated metadata
stream should contain shape information as polygon.
type: boolean
required:
- Multicast
- SessionTimeout
type: object
onvif_MetadataConfigurationExtension:
type: object
onvif_MetadataConfigurationOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_MetadataConfigurationOptionsExtension'
GeoLocation:
description: True if the device is able to stream the Geo Located positions
of each target.
type: boolean
MaxContentFilterSize:
description: A device signalling support for content filtering shall support
expressions with the provided expression size.
format: int32
type: integer
PTZStatusFilterOptions:
$ref: '#/components/schemas/onvif_PTZStatusFilterOptions'
required:
- PTZStatusFilterOptions
type: object
onvif_MetadataConfigurationOptionsExtension:
properties:
CompressionType:
description: List of supported metadata compression type. Its options shall
be chosen from tt:MetadataCompressionType.
items:
type: string
type: array
Extension:
$ref: '#/components/schemas/onvif_MetadataConfigurationOptionsExtension2'
type: object
onvif_MetadataConfigurationOptionsExtension2:
type: object
onvif_MoveStatus:
enum:
- IDLE
- MOVING
- UNKNOWN
type: string
onvif_Mpeg4Configuration:
properties:
GovLength:
description: Determines the interval in which the I-Frames will be coded.
An entry of 1 indicates I-Frames are continuously generated. An entry
of 2 indicates that every 2nd image is an I-Frame, and 3 only every 3rd
frame, etc. The frames in between are coded as P or B Frames.
format: int32
type: integer
Mpeg4Profile:
allOf:
- $ref: '#/components/schemas/onvif_Mpeg4Profile'
- description: the Mpeg4 profile, either simple profile (SP) or advanced
simple profile (ASP)
required:
- GovLength
- Mpeg4Profile
type: object
onvif_Mpeg4Options:
properties:
EncodingIntervalRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported encoding interval range. The encoding interval
corresponds to the number of frames devided by the encoded frames. An
encoding interval value of "1" means that all frames are encoded.
FrameRateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported frame rate in fps (frames per second).
GovLengthRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported group of Video frames length. This value typically
corresponds to the I-Frame distance.
Mpeg4ProfilesSupported:
description: List of supported MPEG-4 profiles.
items:
$ref: '#/components/schemas/onvif_Mpeg4Profile'
type: array
ResolutionsAvailable:
description: List of supported image sizes.
items:
$ref: '#/components/schemas/onvif_VideoResolution'
type: array
required:
- ResolutionsAvailable
- GovLengthRange
- FrameRateRange
- EncodingIntervalRange
- Mpeg4ProfilesSupported
type: object
onvif_Mpeg4Options2:
allOf:
- $ref: '#/components/schemas/onvif_Mpeg4Options'
- properties:
BitrateRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Supported range of encoded bitrate in kbps.
required:
- BitrateRange
type: object
onvif_Mpeg4Profile:
enum:
- SP
- ASP
type: string
onvif_MulticastConfiguration:
properties:
Address:
allOf:
- $ref: '#/components/schemas/onvif_IPAddress'
- description: The multicast address (if this address is set to 0 no multicast
streaming is enaled)
AutoStart:
description: Read only property signalling that streaming is persistant.
Use the methods StartMulticastStreaming and StopMulticastStreaming to
switch its state.
type: boolean
Port:
description: The RTP mutlicast destination port. A device may support RTCP.
In this case the port value shall be even to allow the corresponding RTCP
stream to be mapped to the next higher (odd) destination port number as
defined in the RTSP specification.
format: int32
type: integer
TTL:
description: In case of IPv6 the TTL value is assumed as the hop limit.
Note that for IPV6 and administratively scoped IPv4 multicast the primary
use for hop limit / TTL is to prevent packets from (endlessly) circulating
and not limiting scope. In these cases the address contains the scope.
format: int32
type: integer
required:
- Address
- Port
- TTL
- AutoStart
type: object
onvif_NetworkCapabilities:
properties:
DynDNS:
description: Indicates whether or not is supported.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkCapabilitiesExtension'
IPFilter:
description: Indicates whether or not IP filtering is supported.
type: boolean
IPVersion6:
description: Indicates whether or not IPv6 is supported.
type: boolean
ZeroConfiguration:
description: Indicates whether or not zeroconf is supported.
type: boolean
type: object
onvif_NetworkCapabilitiesExtension:
properties:
Dot11Configuration:
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkCapabilitiesExtension2'
type: object
onvif_NetworkCapabilitiesExtension2:
type: object
onvif_NetworkGateway:
properties:
IPv4Address:
description: IPv4 address string.
items:
type: string
type: array
IPv6Address:
description: IPv6 address string.
items:
type: string
type: array
type: object
onvif_NetworkInterface:
allOf:
- $ref: '#/components/schemas/onvif_DeviceEntity'
- properties:
Enabled:
description: Indicates whether or not an interface is enabled.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkInterfaceExtension'
IPv4:
allOf:
- $ref: '#/components/schemas/onvif_IPv4NetworkInterface'
- description: IPv4 network interface configuration.
IPv6:
allOf:
- $ref: '#/components/schemas/onvif_IPv6NetworkInterface'
- description: IPv6 network interface configuration.
Info:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceInfo'
- description: Network interface information
Link:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceLink'
- description: Link configuration.
required:
- Enabled
type: object
onvif_NetworkInterfaceConnectionSetting:
properties:
AutoNegotiation:
description: Auto negotiation on/off.
type: boolean
Duplex:
allOf:
- $ref: '#/components/schemas/onvif_Duplex'
- description: Duplex type, Half or Full.
Speed:
description: Speed.
format: int32
type: integer
required:
- AutoNegotiation
- Speed
- Duplex
type: object
onvif_NetworkInterfaceExtension:
properties:
Dot11:
items:
$ref: '#/components/schemas/onvif_Dot11Configuration'
type: array
Dot3:
description: Extension point prepared for future 802.3 configuration.
items:
$ref: '#/components/schemas/onvif_Dot3Configuration'
type: array
Extension:
$ref: '#/components/schemas/onvif_NetworkInterfaceExtension2'
InterfaceType:
format: int32
type: integer
required:
- InterfaceType
type: object
onvif_NetworkInterfaceExtension2:
type: object
onvif_NetworkInterfaceInfo:
properties:
HwAddress:
description: Network interface MAC address.
type: string
MTU:
description: Maximum transmission unit.
format: int32
type: integer
Name:
description: Network interface name, for example eth0.
type: string
required:
- HwAddress
type: object
onvif_NetworkInterfaceLink:
properties:
AdminSettings:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceConnectionSetting'
- description: Configured link settings.
InterfaceType:
description: 'Integer indicating interface type, for example: 6 is ethernet.'
format: int32
type: integer
OperSettings:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceConnectionSetting'
- description: Current active link settings.
required:
- AdminSettings
- OperSettings
- InterfaceType
type: object
onvif_NetworkInterfaceSetConfiguration:
properties:
Enabled:
description: Indicates whether or not an interface is enabled.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkInterfaceSetConfigurationExtension'
IPv4:
allOf:
- $ref: '#/components/schemas/onvif_IPv4NetworkInterfaceSetConfiguration'
- description: IPv4 network interface configuration.
IPv6:
allOf:
- $ref: '#/components/schemas/onvif_IPv6NetworkInterfaceSetConfiguration'
- description: IPv6 network interface configuration.
Link:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceConnectionSetting'
- description: Link configuration.
MTU:
description: Maximum transmission unit.
format: int32
type: integer
type: object
onvif_NetworkInterfaceSetConfigurationExtension:
properties:
Dot11:
items:
$ref: '#/components/schemas/onvif_Dot11Configuration'
type: array
Dot3:
items:
$ref: '#/components/schemas/onvif_Dot3Configuration'
type: array
Extension:
$ref: '#/components/schemas/onvif_NetworkInterfaceSetConfigurationExtension2'
type: object
onvif_NetworkInterfaceSetConfigurationExtension2:
type: object
onvif_NetworkProtocol:
properties:
Enabled:
description: Indicates if the protocol is enabled or not.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkProtocolExtension'
Name:
allOf:
- $ref: '#/components/schemas/onvif_NetworkProtocolType'
- description: Network protocol type string.
Port:
description: The port that is used by the protocol.
items:
format: int32
type: integer
type: array
required:
- Name
- Enabled
- Port
type: object
onvif_NetworkProtocolExtension:
type: object
onvif_NetworkProtocolType:
enum:
- HTTP
- HTTPS
- RTSP
type: string
onvif_NetworkZeroConfiguration:
properties:
Addresses:
description: The zero-configuration IPv4 address(es)
items:
type: string
type: array
Enabled:
description: Indicates whether the zero-configuration is enabled or not.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_NetworkZeroConfigurationExtension'
InterfaceToken:
description: Unique identifier of network interface.
maxLength: 64
type: string
required:
- InterfaceToken
- Enabled
type: object
onvif_NetworkZeroConfigurationExtension:
properties:
Additional:
description: Optional array holding the configuration for the second and
possibly further interfaces.
items:
$ref: '#/components/schemas/onvif_NetworkZeroConfiguration'
type: array
Extension:
$ref: '#/components/schemas/onvif_NetworkZeroConfigurationExtension2'
type: object
onvif_NetworkZeroConfigurationExtension2:
type: object
onvif_OnvifVersion:
properties:
Major:
description: Major version number.
format: int32
type: integer
Minor:
description: |-
Two digit minor version number.
If major version number is less than "16", X.0.1 maps to "01" and X.2.1 maps to "21" where X stands for Major version number.
Otherwise, minor number is month of release, such as "06" for June.
format: int32
type: integer
required:
- Major
- Minor
type: object
onvif_PTControlDirection:
properties:
EFlip:
allOf:
- $ref: '#/components/schemas/onvif_EFlip'
- description: Optional element to configure related parameters for E-Flip.
Extension:
$ref: '#/components/schemas/onvif_PTControlDirectionExtension'
Reverse:
allOf:
- $ref: '#/components/schemas/onvif_Reverse'
- description: Optional element to configure related parameters for reversing
of PT Control Direction.
type: object
onvif_PTControlDirectionExtension:
type: object
onvif_PTControlDirectionOptions:
properties:
EFlip:
allOf:
- $ref: '#/components/schemas/onvif_EFlipOptions'
- description: Supported options for EFlip feature.
Extension:
$ref: '#/components/schemas/onvif_PTControlDirectionOptionsExtension'
Reverse:
allOf:
- $ref: '#/components/schemas/onvif_ReverseOptions'
- description: Supported options for Reverse feature.
type: object
onvif_PTControlDirectionOptionsExtension:
type: object
onvif_PTZCapabilities:
properties:
XAddr:
description: PTZ service URI.
type: string
required:
- XAddr
type: object
onvif_PTZConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
DefaultAbsolutePantTiltPositionSpace:
description: If the PTZ Node supports absolute Pan/Tilt movements, it
shall specify one Absolute Pan/Tilt Position Space as default.
type: string
DefaultAbsoluteZoomPositionSpace:
description: If the PTZ Node supports absolute zoom movements, it shall
specify one Absolute Zoom Position Space as default.
type: string
DefaultContinuousPanTiltVelocitySpace:
description: If the PTZ Node supports continuous Pan/Tilt movements, it
shall specify one Continuous Pan/Tilt Velocity Space as default.
type: string
DefaultContinuousZoomVelocitySpace:
description: If the PTZ Node supports continuous zoom movements, it shall
specify one Continuous Zoom Velocity Space as default.
type: string
DefaultPTZSpeed:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: If the PTZ Node supports absolute or relative PTZ movements,
it shall specify corresponding default Pan/Tilt and Zoom speeds.
DefaultPTZTimeout:
description: If the PTZ Node supports continuous movements, it shall specify
a default timeout, after which the movement stops.
format: date-time
type: string
DefaultRelativePanTiltTranslationSpace:
description: If the PTZ Node supports relative Pan/Tilt movements, it
shall specify one RelativePan/Tilt Translation Space as default.
type: string
DefaultRelativeZoomTranslationSpace:
description: If the PTZ Node supports relative zoom movements, it shall
specify one Relative Zoom Translation Space as default.
type: string
Extension:
$ref: '#/components/schemas/onvif_PTZConfigurationExtension'
MoveRamp:
description: The optional acceleration ramp used by the device when moving.
format: int32
type: integer
NodeToken:
description: A mandatory reference to the PTZ Node that the PTZ Configuration
belongs to.
maxLength: 64
type: string
PanTiltLimits:
allOf:
- $ref: '#/components/schemas/onvif_PanTiltLimits'
- description: The Pan/Tilt limits element should be present for a PTZ
Node that supports an absolute Pan/Tilt. If the element is present
it signals the support for configurable Pan/Tilt limits. If limits
are enabled, the Pan/Tilt movements shall always stay within the specified
range. The Pan/Tilt limits are disabled by setting the limits to –INF
or +INF.
PresetRamp:
description: The optional acceleration ramp used by the device when recalling
presets.
format: int32
type: integer
PresetTourRamp:
description: The optional acceleration ramp used by the device when executing
PresetTours.
format: int32
type: integer
ZoomLimits:
allOf:
- $ref: '#/components/schemas/onvif_ZoomLimits'
- description: The Zoom limits element should be present for a PTZ Node
that supports absolute zoom. If the element is present it signals
the supports for configurable Zoom limits. If limits are enabled the
zoom movements shall always stay within the specified range. The Zoom
limits are disabled by settings the limits to -INF and +INF.
required:
- NodeToken
type: object
onvif_PTZConfigurationExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_PTZConfigurationExtension2'
PTControlDirection:
allOf:
- $ref: '#/components/schemas/onvif_PTControlDirection'
- description: Optional element to configure PT Control Direction related
features.
type: object
onvif_PTZConfigurationExtension2:
type: object
onvif_PTZConfigurationOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_PTZConfigurationOptions2'
PTControlDirection:
allOf:
- $ref: '#/components/schemas/onvif_PTControlDirectionOptions'
- description: Supported options for PT Direction Control.
PTZRamps:
description: |-
The list of acceleration ramps supported by the device. The
smallest acceleration value corresponds to the minimal index, the
highest acceleration corresponds to the maximum index.
format: int32
type: integer
PTZTimeout:
allOf:
- $ref: '#/components/schemas/onvif_DurationRange'
- description: A timeout Range within which Timeouts are accepted by the
PTZ Node.
Spaces:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpaces'
- description: A list of supported coordinate systems including their range
limitations.
required:
- Spaces
- PTZTimeout
type: object
onvif_PTZConfigurationOptions2:
type: object
onvif_PTZFilter:
properties:
Position:
description: True if the metadata stream shall contain the PTZ position
type: boolean
Status:
description: True if the metadata stream shall contain the PTZ status (IDLE,
MOVING or UNKNOWN)
type: boolean
required:
- Status
- Position
type: object
onvif_PTZMoveStatus:
properties:
PanTilt:
$ref: '#/components/schemas/onvif_MoveStatus'
Zoom:
$ref: '#/components/schemas/onvif_MoveStatus'
type: object
onvif_PTZNode:
allOf:
- $ref: '#/components/schemas/onvif_DeviceEntity'
- properties:
AuxiliaryCommands:
description: A list of supported Auxiliary commands. If the list is not
empty, the Auxiliary Operations MUST be available for this PTZ Node.
items:
maxLength: 128
type: string
type: array
Extension:
$ref: '#/components/schemas/onvif_PTZNodeExtension'
FixedHomePosition:
description: Indication whether the HomePosition of a Node is fixed or
it can be changed via the SetHomePosition command.
type: boolean
GeoMove:
description: Indication whether the Node supports the geo-referenced move
command.
type: boolean
HomeSupported:
description: A boolean operator specifying the availability of a home
position. If set to true, the Home Position Operations MUST be available
for this PTZ Node.
type: boolean
MaximumNumberOfPresets:
description: All preset operations MUST be available for this PTZ Node
if one preset is supported.
format: int32
type: integer
Name:
description: A unique identifier that is used to reference PTZ Nodes.
maxLength: 64
type: string
SupportedPTZSpaces:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpaces'
- description: A list of Coordinate Systems available for the PTZ Node.
For each Coordinate System, the PTZ Node MUST specify its allowed
range.
required:
- SupportedPTZSpaces
- MaximumNumberOfPresets
- HomeSupported
type: object
onvif_PTZNodeExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_PTZNodeExtension2'
SupportedPresetTour:
allOf:
- $ref: '#/components/schemas/onvif_PTZPresetTourSupported'
- description: Detail of supported Preset Tour feature.
type: object
onvif_PTZNodeExtension2:
type: object
onvif_PTZPreset:
properties:
Name:
description: A list of preset position name.
maxLength: 64
type: string
PTZPosition:
allOf:
- $ref: '#/components/schemas/onvif_PTZVector'
- description: A list of preset position.
token:
maxLength: 64
type: string
type: object
onvif_PTZPresetTourOperation:
enum:
- Start
- Stop
- Pause
- Extended
type: string
onvif_PTZPresetTourSupported:
properties:
Extension:
$ref: '#/components/schemas/onvif_PTZPresetTourSupportedExtension'
MaximumNumberOfPresetTours:
description: Indicates number of preset tours that can be created. Required
preset tour operations shall be available for this PTZ Node if one or
more preset tour is supported.
format: int32
type: integer
PTZPresetTourOperation:
description: Indicates which preset tour operations are available for this
PTZ Node.
items:
$ref: '#/components/schemas/onvif_PTZPresetTourOperation'
type: array
required:
- MaximumNumberOfPresetTours
type: object
onvif_PTZPresetTourSupportedExtension:
type: object
onvif_PTZSpaces:
properties:
AbsolutePanTiltPositionSpace:
description: |-
The Generic Pan/Tilt Position space is provided by every PTZ node that supports absolute Pan/Tilt, since it does not relate to a specific physical range.
Instead, the range should be defined as the full range of the PTZ unit normalized to the range -1 to 1 resulting in the following space description.
items:
$ref: '#/components/schemas/onvif_Space2DDescription'
type: array
AbsoluteZoomPositionSpace:
description: |-
The Generic Zoom Position Space is provided by every PTZ node that supports absolute Zoom, since it does not relate to a specific physical range.
Instead, the range should be defined as the full range of the Zoom normalized to the range 0 (wide) to 1 (tele).
There is no assumption about how the generic zoom range is mapped to magnification, FOV or other physical zoom dimension.
items:
$ref: '#/components/schemas/onvif_Space1DDescription'
type: array
ContinuousPanTiltVelocitySpace:
description: |-
The generic Pan/Tilt velocity space shall be provided by every PTZ node, since it does not relate to a specific physical range.
Instead, the range should be defined as a range of the PTZ unit’s speed normalized to the range -1 to 1, where a positive velocity would map to clockwise
rotation or movement in the right/up direction. A signed speed can be independently specified for the pan and tilt component resulting in the following space description.
items:
$ref: '#/components/schemas/onvif_Space2DDescription'
type: array
ContinuousZoomVelocitySpace:
description: |-
The generic zoom velocity space specifies a zoom factor velocity without knowing the underlying physical model. The range should be normalized from -1 to 1,
where a positive velocity would map to TELE direction. A generic zoom velocity space description resembles the following.
items:
$ref: '#/components/schemas/onvif_Space1DDescription'
type: array
Extension:
$ref: '#/components/schemas/onvif_PTZSpacesExtension'
PanTiltSpeedSpace:
description: |-
The speed space specifies the speed for a Pan/Tilt movement when moving to an absolute position or to a relative translation.
In contrast to the velocity spaces, speed spaces do not contain any directional information. The speed of a combined Pan/Tilt
movement is represented by a single non-negative scalar value.
items:
$ref: '#/components/schemas/onvif_Space1DDescription'
type: array
RelativePanTiltTranslationSpace:
description: |-
The Generic Pan/Tilt translation space is provided by every PTZ node that supports relative Pan/Tilt, since it does not relate to a specific physical range.
Instead, the range should be defined as the full positive and negative translation range of the PTZ unit normalized to the range -1 to 1,
where positive translation would mean clockwise rotation or movement in right/up direction resulting in the following space description.
items:
$ref: '#/components/schemas/onvif_Space2DDescription'
type: array
RelativeZoomTranslationSpace:
description: |-
The Generic Zoom Translation Space is provided by every PTZ node that supports relative Zoom, since it does not relate to a specific physical range.
Instead, the corresponding absolute range should be defined as the full positive and negative translation range of the Zoom normalized to the range -1 to1,
where a positive translation maps to a movement in TELE direction. The translation is signed to indicate direction (negative is to wide, positive is to tele).
There is no assumption about how the generic zoom range is mapped to magnification, FOV or other physical zoom dimension. This results in the following space description.
items:
$ref: '#/components/schemas/onvif_Space1DDescription'
type: array
ZoomSpeedSpace:
description: |-
The speed space specifies the speed for a Zoom movement when moving to an absolute position or to a relative translation.
In contrast to the velocity spaces, speed spaces do not contain any directional information.
items:
$ref: '#/components/schemas/onvif_Space1DDescription'
type: array
type: object
onvif_PTZSpacesExtension:
type: object
onvif_PTZSpeed:
properties:
PanTilt:
allOf:
- $ref: '#/components/schemas/onvif_Vector2D'
- description: Pan and tilt speed. The x component corresponds to pan and
the y component to tilt. If omitted in a request, the current (if any)
PanTilt movement should not be affected.
Zoom:
allOf:
- $ref: '#/components/schemas/onvif_Vector1D'
- description: A zoom speed. If omitted in a request, the current (if any)
Zoom movement should not be affected.
type: object
onvif_PTZStatus:
properties:
Error:
description: States a current PTZ error.
type: string
MoveStatus:
allOf:
- $ref: '#/components/schemas/onvif_PTZMoveStatus'
- description: Indicates if the Pan/Tilt/Zoom device unit is currently moving,
idle or in an unknown state.
Position:
allOf:
- $ref: '#/components/schemas/onvif_PTZVector'
- description: Specifies the absolute position of the PTZ unit together
with the Space references. The default absolute spaces of the corresponding
PTZ configuration MUST be referenced within the Position element.
UtcTime:
description: Specifies the UTC time when this status was generated.
format: date-time
type: string
required:
- UtcTime
type: object
onvif_PTZStatusFilterOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_PTZStatusFilterOptionsExtension'
PanTiltPositionSupported:
description: True if the device is able to stream the pan or tilt position.
type: boolean
PanTiltStatusSupported:
description: True if the device is able to stream pan or tilt status information.
type: boolean
ZoomPositionSupported:
description: True if the device is able to stream zoom position information.
type: boolean
ZoomStatusSupported:
description: True if the device is able to stream zoom status inforamtion.
type: boolean
required:
- PanTiltStatusSupported
- ZoomStatusSupported
type: object
onvif_PTZStatusFilterOptionsExtension:
type: object
onvif_PTZVector:
properties:
PanTilt:
allOf:
- $ref: '#/components/schemas/onvif_Vector2D'
- description: Pan and tilt position. The x component corresponds to pan
and the y component to tilt.
Zoom:
allOf:
- $ref: '#/components/schemas/onvif_Vector1D'
- description: A zoom position.
type: object
onvif_PanTiltLimits:
properties:
Range:
allOf:
- $ref: '#/components/schemas/onvif_Space2DDescription'
- description: A range of pan tilt limits.
required:
- Range
type: object
onvif_PrefixedIPv4Address:
properties:
Address:
description: IPv4 address
type: string
PrefixLength:
description: Prefix/submask length
format: int32
type: integer
required:
- Address
- PrefixLength
type: object
onvif_PrefixedIPv6Address:
properties:
Address:
description: IPv6 address
type: string
PrefixLength:
description: Prefix/submask length
format: int32
type: integer
required:
- Address
- PrefixLength
type: object
onvif_Profile:
description: |-
A media profile consists of a set of media configurations. Media profiles are used by a client
to configure properties of a media stream from an NVT.
properties:
AudioEncoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_AudioEncoderConfiguration'
- description: Optional configuration of the Audio encoder.
AudioSourceConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_AudioSourceConfiguration'
- description: Optional configuration of the Audio input.
Extension:
allOf:
- $ref: '#/components/schemas/onvif_ProfileExtension'
- description: Extensions defined in ONVIF 2.0
MetadataConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_MetadataConfiguration'
- description: Optional configuration of the metadata stream.
Name:
description: User readable name of the profile.
maxLength: 64
type: string
PTZConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_PTZConfiguration'
- description: Optional configuration of the pan tilt zoom unit.
VideoAnalyticsConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_VideoAnalyticsConfiguration'
- description: Optional configuration of the video analytics module and
rule engine.
VideoEncoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_VideoEncoderConfiguration'
- description: Optional configuration of the Video encoder.
VideoSourceConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_VideoSourceConfiguration'
- description: Optional configuration of the Video input.
fixed:
description: A value of true signals that the profile cannot be deleted.
Default is false.
type: boolean
token:
description: Unique identifier of the profile.
maxLength: 64
type: string
required:
- token
- Name
type: object
onvif_ProfileCapabilities:
properties:
MaximumNumberOfProfiles:
description: Maximum number of profiles.
format: int32
type: integer
required:
- MaximumNumberOfProfiles
type: object
onvif_ProfileExtension:
properties:
AudioDecoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_AudioDecoderConfiguration'
- description: Optional configuration of the Audio decoder.
AudioOutputConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_AudioOutputConfiguration'
- description: Optional configuration of the Audio output.
Extension:
$ref: '#/components/schemas/onvif_ProfileExtension2'
type: object
onvif_ProfileExtension2:
type: object
onvif_RealTimeStreamingCapabilities:
properties:
Extension:
$ref: '#/components/schemas/onvif_RealTimeStreamingCapabilitiesExtension'
RTPMulticast:
description: Indicates whether or not RTP multicast is supported.
type: boolean
RTP_RTSP_TCP:
description: Indicates whether or not RTP/RTSP/TCP is supported.
type: boolean
RTP_TCP:
description: Indicates whether or not RTP over TCP is supported.
type: boolean
type: object
onvif_RealTimeStreamingCapabilitiesExtension:
type: object
onvif_ReceiverCapabilities:
properties:
MaximumRTSPURILength:
description: The maximum allowed length for RTSP URIs.
format: int32
type: integer
RTP_Multicast:
description: Indicates whether the device can receive RTP multicast streams.
type: boolean
RTP_RTSP_TCP:
description: Indicates whether the device can receive RTP/RTSP/TCP streams.
type: boolean
RTP_TCP:
description: Indicates whether the device can receive RTP/TCP streams
type: boolean
SupportedReceivers:
description: The maximum number of receivers supported by the device.
format: int32
type: integer
XAddr:
description: The address of the receiver service.
type: string
required:
- XAddr
- RTP_Multicast
- RTP_TCP
- RTP_RTSP_TCP
- SupportedReceivers
- MaximumRTSPURILength
type: object
onvif_ReceiverConfiguration:
description: Describes the configuration of a receiver.
properties:
MediaUri:
description: Details of the URI to which the receiver should connect.
type: string
Mode:
allOf:
- $ref: '#/components/schemas/onvif_ReceiverMode'
- description: 'The following connection modes are defined:'
StreamSetup:
allOf:
- $ref: '#/components/schemas/onvif_StreamSetup'
- description: Stream connection parameters.
required:
- Mode
- MediaUri
- StreamSetup
type: object
onvif_ReceiverMode:
description: Specifies a receiver connection mode.
enum:
- AutoConnect
- AlwaysConnect
- NeverConnect
- Unknown
type: string
onvif_RecordingCapabilities:
properties:
DynamicRecordings:
type: boolean
DynamicTracks:
type: boolean
MaxStringLength:
format: int32
type: integer
MediaProfileSource:
type: boolean
ReceiverSource:
type: boolean
XAddr:
type: string
required:
- XAddr
- ReceiverSource
- MediaProfileSource
- DynamicRecordings
- DynamicTracks
- MaxStringLength
type: object
onvif_ReplayCapabilities:
properties:
XAddr:
description: The address of the replay service.
type: string
required:
- XAddr
type: object
onvif_Reverse:
properties:
Mode:
allOf:
- $ref: '#/components/schemas/onvif_ReverseMode'
- description: Parameter to enable/disable Reverse feature.
required:
- Mode
type: object
onvif_ReverseMode:
enum:
- false
- true
- AUTO
- Extended
type: string
onvif_ReverseOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_ReverseOptionsExtension'
Mode:
description: Options of Reverse mode parameter.
items:
$ref: '#/components/schemas/onvif_ReverseMode'
type: array
type: object
onvif_ReverseOptionsExtension:
type: object
onvif_Rotate:
properties:
Degree:
description: Optional parameter to configure how much degree of clockwise
rotation of image for On mode. Omitting this parameter for On mode means
180 degree rotation.
format: int32
type: integer
Extension:
$ref: '#/components/schemas/onvif_RotateExtension'
Mode:
allOf:
- $ref: '#/components/schemas/onvif_RotateMode'
- description: Parameter to enable/disable Rotation feature.
required:
- Mode
type: object
onvif_RotateExtension:
type: object
onvif_RotateMode:
enum:
- false
- true
- AUTO
type: string
onvif_RuleEngineConfiguration:
properties:
Extension:
$ref: '#/components/schemas/onvif_RuleEngineConfigurationExtension'
Rule:
items:
$ref: '#/components/schemas/onvif_Config'
type: array
type: object
onvif_RuleEngineConfigurationExtension:
type: object
onvif_SceneOrientation:
properties:
Mode:
allOf:
- $ref: '#/components/schemas/onvif_SceneOrientationMode'
- description: Parameter to assign the way the camera determines the scene
orientation.
Orientation:
description: |-
Assigned or determined scene orientation based on the Mode. When assigning the Mode to AUTO, this field
is optional and will be ignored by the device. When assigning the Mode to MANUAL, this field is required
and the device will return an InvalidArgs fault if missing.
type: string
required:
- Mode
type: object
onvif_SceneOrientationMode:
enum:
- MANUAL
- AUTO
type: string
onvif_Scope:
properties:
ScopeDef:
allOf:
- $ref: '#/components/schemas/onvif_ScopeDefinition'
- description: Indicates if the scope is fixed or configurable.
ScopeItem:
description: Scope item URI.
type: string
required:
- ScopeDef
- ScopeItem
type: object
onvif_ScopeDefinition:
enum:
- Fixed
- Configurable
type: string
onvif_SearchCapabilities:
properties:
MetadataSearch:
type: boolean
XAddr:
type: string
required:
- XAddr
- MetadataSearch
type: object
onvif_SecurityCapabilities:
properties:
AccessPolicyConfig:
description: Indicates whether or not access policy configuration is supported.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_SecurityCapabilitiesExtension'
KerberosToken:
description: Indicates whether or not WS-Security Kerberos token is supported.
type: boolean
OnboardKeyGeneration:
description: Indicates whether or not onboard key generation is supported.
type: boolean
RELToken:
description: Indicates whether or not WS-Security REL token is supported.
type: boolean
SAMLToken:
description: Indicates whether or not WS-Security SAML token is supported.
type: boolean
TLS1.1:
description: Indicates whether or not TLS 1.1 is supported.
type: boolean
TLS1.2:
description: Indicates whether or not TLS 1.2 is supported.
type: boolean
X.509Token:
description: Indicates whether or not WS-Security X.509 token is supported.
type: boolean
required:
- TLS1.1
- TLS1.2
- OnboardKeyGeneration
- AccessPolicyConfig
- X.509Token
- SAMLToken
- KerberosToken
- RELToken
type: object
onvif_SecurityCapabilitiesExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_SecurityCapabilitiesExtension2'
TLS1.0:
type: boolean
required:
- TLS1.0
type: object
onvif_SecurityCapabilitiesExtension2:
properties:
Dot1X:
type: boolean
RemoteUserHandling:
type: boolean
SupportedEAPMethod:
description: EAP Methods supported by the device. The int values refer to
the
items:
format: int32
type: integer
type: array
required:
- Dot1X
- RemoteUserHandling
type: object
onvif_SetDateTimeType:
enum:
- Manual
- NTP
type: string
onvif_SimpleItem:
description: Value name pair as defined by the corresponding description.
properties:
Name:
description: Item name.
type: string
Value:
description: Item value. The type is defined in the corresponding description.
type: string
required:
- Name
- Value
type: object
onvif_SimpleItemDescription:
description: Description of a simple item. The type must be of cathegory simpleType
(xs:string, xs:integer, xs:float, ...).
properties:
Name:
description: Item name. Must be unique within a list.
type: string
Type:
type: string
required:
- Name
- Type
type: object
onvif_Space1DDescription:
properties:
URI:
description: A URI of coordinate systems.
type: string
XRange:
allOf:
- $ref: '#/components/schemas/onvif_FloatRange'
- description: A range of x-axis.
required:
- URI
- XRange
type: object
onvif_Space2DDescription:
properties:
URI:
description: A URI of coordinate systems.
type: string
XRange:
allOf:
- $ref: '#/components/schemas/onvif_FloatRange'
- description: A range of x-axis.
YRange:
allOf:
- $ref: '#/components/schemas/onvif_FloatRange'
- description: A range of y-axis.
required:
- URI
- XRange
- YRange
type: object
onvif_StreamSetup:
properties:
Stream:
allOf:
- $ref: '#/components/schemas/onvif_StreamType'
- description: Defines if a multicast or unicast stream is requested
Transport:
$ref: '#/components/schemas/onvif_Transport'
required:
- Stream
- Transport
type: object
onvif_StreamType:
enum:
- RTP-Unicast
- RTP-Multicast
type: string
onvif_SubscriptionPolicy:
type: object
onvif_SupportedAnalyticsModules:
properties:
AnalyticsModuleContentSchemaLocation:
description: |-
It optionally contains a list of URLs that provide the location of schema files.
These schema files describe the types and elements used in the analytics module descriptions.
Analytics module descriptions that reference types or elements imported from any ONVIF defined schema files
need not explicitly list those schema files.
items:
type: string
type: array
AnalyticsModuleDescription:
items:
$ref: '#/components/schemas/onvif_ConfigDescription'
type: array
Extension:
$ref: '#/components/schemas/onvif_SupportedAnalyticsModulesExtension'
Limit:
description: Maximum number of concurrent instances.
format: int32
type: integer
type: object
onvif_SupportedAnalyticsModulesExtension:
type: object
onvif_SupportedRules:
properties:
Extension:
$ref: '#/components/schemas/onvif_SupportedRulesExtension'
Limit:
description: Maximum number of concurrent instances.
format: int32
type: integer
RuleContentSchemaLocation:
description: Lists the location of all schemas that are referenced in the
rules.
items:
type: string
type: array
RuleDescription:
description: List of rules supported by the Video Analytics configuration..
items:
$ref: '#/components/schemas/onvif_ConfigDescription'
type: array
type: object
onvif_SupportedRulesExtension:
type: object
onvif_SystemCapabilities:
properties:
DiscoveryBye:
description: Indicates whether or not WS-Discovery Bye is supported.
type: boolean
DiscoveryResolve:
description: Indicates whether or not WS Discovery resolve requests are
supported.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_SystemCapabilitiesExtension'
FirmwareUpgrade:
description: Indicates whether or not firmware upgrade is supported.
type: boolean
RemoteDiscovery:
description: Indicates whether or not remote discovery is supported.
type: boolean
SupportedVersions:
description: Indicates supported ONVIF version(s).
items:
$ref: '#/components/schemas/onvif_OnvifVersion'
type: array
SystemBackup:
description: Indicates whether or not system backup is supported.
type: boolean
SystemLogging:
description: Indicates whether or not system logging is supported.
type: boolean
required:
- DiscoveryResolve
- DiscoveryBye
- RemoteDiscovery
- SystemBackup
- SystemLogging
- FirmwareUpgrade
- SupportedVersions
type: object
onvif_SystemCapabilitiesExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_SystemCapabilitiesExtension2'
HttpFirmwareUpgrade:
type: boolean
HttpSupportInformation:
type: boolean
HttpSystemBackup:
type: boolean
HttpSystemLogging:
type: boolean
type: object
onvif_SystemCapabilitiesExtension2:
type: object
onvif_SystemDateTime:
description: General date time inforamtion returned by the GetSystemDateTime
method.
properties:
DateTimeType:
allOf:
- $ref: '#/components/schemas/onvif_SetDateTimeType'
- description: Indicates if the time is set manully or through NTP.
DaylightSavings:
description: Informative indicator whether daylight savings is currently
on/off.
type: boolean
Extension:
$ref: '#/components/schemas/onvif_SystemDateTimeExtension'
LocalDateTime:
allOf:
- $ref: '#/components/schemas/onvif_DateTime'
- description: Date and time in local format.
TimeZone:
allOf:
- $ref: '#/components/schemas/onvif_TimeZone'
- description: Timezone information in Posix format.
UTCDateTime:
allOf:
- $ref: '#/components/schemas/onvif_DateTime'
- description: Current system date and time in UTC format. This field is
mandatory since version 2.0.
required:
- DateTimeType
- DaylightSavings
type: object
onvif_SystemDateTimeExtension:
type: object
onvif_Time:
properties:
Hour:
description: Range is 0 to 23.
format: int32
type: integer
Minute:
description: Range is 0 to 59.
format: int32
type: integer
Second:
description: Range is 0 to 61 (typically 59).
format: int32
type: integer
required:
- Hour
- Minute
- Second
type: object
onvif_TimeZone:
description: The TZ format is specified by POSIX, please refer to POSIX 1003.1
section 8.3
properties:
TZ:
description: Posix timezone string.
type: string
required:
- TZ
type: object
onvif_Transport:
properties:
Protocol:
allOf:
- $ref: '#/components/schemas/onvif_TransportProtocol'
- description: Defines the network protocol for streaming, either UDP=RTP/UDP,
RTSP=RTP/RTSP/TCP or HTTP=RTP/RTSP/HTTP/TCP
Tunnel:
allOf:
- $ref: '#/components/schemas/onvif_Transport'
- description: Optional element to describe further tunnel options. This
element is normally not needed
required:
- Protocol
type: object
onvif_TransportProtocol:
enum:
- UDP
- TCP
- RTSP
- HTTP
type: string
onvif_User:
properties:
Extension:
$ref: '#/components/schemas/onvif_UserExtension'
Password:
description: Password string.
type: string
UserLevel:
allOf:
- $ref: '#/components/schemas/onvif_UserLevel'
- description: User level string.
Username:
description: Username string.
type: string
required:
- Username
- UserLevel
type: object
onvif_UserExtension:
type: object
onvif_UserLevel:
enum:
- Administrator
- Operator
- User
- Anonymous
- Extended
type: string
onvif_Vector1D:
properties:
space:
description: 'Zoom coordinate space selector. The following options are
defined:'
type: string
x:
type: number
required:
- x
type: object
onvif_Vector2D:
properties:
space:
description: 'Pan/tilt coordinate space selector. The following options
are defined:'
type: string
x:
type: number
y:
type: number
required:
- x
- y
type: object
onvif_VideoAnalyticsConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
AnalyticsEngineConfiguration:
$ref: '#/components/schemas/onvif_AnalyticsEngineConfiguration'
RuleEngineConfiguration:
$ref: '#/components/schemas/onvif_RuleEngineConfiguration'
required:
- AnalyticsEngineConfiguration
- RuleEngineConfiguration
type: object
onvif_VideoEncoder2Configuration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Encoding:
description: Video Media Subtype for the video format. For definitions
see tt:VideoEncodingMimeNames and
type: string
GovLength:
description: Group of Video frames length. Determines typically the interval
in which the I-Frames will be coded. An entry of 1 indicates I-Frames
are continuously generated. An entry of 2 indicates that every 2nd image
is an I-Frame, and 3 only every 3rd frame, etc. The frames in between
are coded as P or B Frames.
format: int32
type: integer
GuaranteedFrameRate:
description: |-
A value of true indicates that frame rate is a fixed value rather than an upper limit,
and that the video encoder shall prioritize frame rate over all other adaptable
configuration values such as bitrate. Default is false.
type: boolean
Multicast:
allOf:
- $ref: '#/components/schemas/onvif_MulticastConfiguration'
- description: Defines the multicast settings that could be used for video
streaming.
Profile:
description: The encoder profile as defined in tt:VideoEncodingProfiles.
type: string
Quality:
description: Relative value for the video quantizers and the quality of
the video. A high value within supported quality range means higher
quality
type: number
RateControl:
allOf:
- $ref: '#/components/schemas/onvif_VideoRateControl2'
- description: Optional element to configure rate control related parameters.
Resolution:
allOf:
- $ref: '#/components/schemas/onvif_VideoResolution2'
- description: Configured video resolution
required:
- Encoding
- Resolution
- Quality
type: object
onvif_VideoEncoderConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Encoding:
allOf:
- $ref: '#/components/schemas/onvif_VideoEncoding'
- description: Used video codec, either Jpeg, H.264 or Mpeg4
GuaranteedFrameRate:
description: |-
A value of true indicates that frame rate is a fixed value rather than an upper limit,
and that the video encoder shall prioritize frame rate over all other adaptable
configuration values such as bitrate. Default is false.
type: boolean
H264:
allOf:
- $ref: '#/components/schemas/onvif_H264Configuration'
- description: Optional element to configure H.264 related parameters.
MPEG4:
allOf:
- $ref: '#/components/schemas/onvif_Mpeg4Configuration'
- description: Optional element to configure Mpeg4 related parameters.
Multicast:
allOf:
- $ref: '#/components/schemas/onvif_MulticastConfiguration'
- description: Defines the multicast settings that could be used for video
streaming.
Quality:
description: Relative value for the video quantizers and the quality of
the video. A high value within supported quality range means higher
quality
type: number
RateControl:
allOf:
- $ref: '#/components/schemas/onvif_VideoRateControl'
- description: Optional element to configure rate control related parameters.
Resolution:
allOf:
- $ref: '#/components/schemas/onvif_VideoResolution'
- description: Configured video resolution
SessionTimeout:
description: The rtsp session timeout for the related video stream
format: date-time
type: string
required:
- Encoding
- Resolution
- Quality
- Multicast
- SessionTimeout
type: object
onvif_VideoEncoderConfigurationOptions:
properties:
Extension:
$ref: '#/components/schemas/onvif_VideoEncoderOptionsExtension'
GuaranteedFrameRateSupported:
description: Indicates the support for the GuaranteedFrameRate attribute
on the VideoEncoderConfiguration element.
type: boolean
H264:
allOf:
- $ref: '#/components/schemas/onvif_H264Options'
- description: Optional H.264 encoder settings ranges (See also Extension
element).
JPEG:
allOf:
- $ref: '#/components/schemas/onvif_JpegOptions'
- description: Optional JPEG encoder settings ranges (See also Extension
element).
MPEG4:
allOf:
- $ref: '#/components/schemas/onvif_Mpeg4Options'
- description: Optional MPEG-4 encoder settings ranges (See also Extension
element).
QualityRange:
allOf:
- $ref: '#/components/schemas/onvif_IntRange'
- description: Range of the quality values. A high value means higher quality.
required:
- QualityRange
type: object
onvif_VideoEncoderOptionsExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_VideoEncoderOptionsExtension2'
H264:
allOf:
- $ref: '#/components/schemas/onvif_H264Options2'
- description: Optional H.264 encoder settings ranges.
JPEG:
allOf:
- $ref: '#/components/schemas/onvif_JpegOptions2'
- description: Optional JPEG encoder settings ranges.
MPEG4:
allOf:
- $ref: '#/components/schemas/onvif_Mpeg4Options2'
- description: Optional MPEG-4 encoder settings ranges.
type: object
onvif_VideoEncoderOptionsExtension2:
type: object
onvif_VideoEncoding:
enum:
- JPEG
- MPEG4
- H264
type: string
onvif_VideoRateControl:
properties:
BitrateLimit:
description: the maximum output bitrate in kbps
format: int32
type: integer
EncodingInterval:
description: Interval at which images are encoded and transmitted. (A value
of 1 means that every frame is encoded, a value of 2 means that every
2nd frame is encoded ...)
format: int32
type: integer
FrameRateLimit:
description: Maximum output framerate in fps. If an EncodingInterval is
provided the resulting encoded framerate will be reduced by the given
factor.
format: int32
type: integer
required:
- FrameRateLimit
- EncodingInterval
- BitrateLimit
type: object
onvif_VideoRateControl2:
properties:
BitrateLimit:
description: the maximum output bitrate in kbps
format: int32
type: integer
ConstantBitRate:
description: Enforce constant bitrate.
type: boolean
FrameRateLimit:
description: Desired frame rate in fps. The actual rate may be lower due
to e.g. performance limitations.
type: number
required:
- FrameRateLimit
- BitrateLimit
type: object
onvif_VideoResolution:
properties:
Height:
description: Number of the lines of the Video image.
format: int32
type: integer
Width:
description: Number of the columns of the Video image.
format: int32
type: integer
required:
- Width
- Height
type: object
onvif_VideoResolution2:
properties:
Height:
description: Number of the lines of the Video image.
format: int32
type: integer
Width:
description: Number of the columns of the Video image.
format: int32
type: integer
required:
- Width
- Height
type: object
onvif_VideoSourceConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ConfigurationEntity'
- properties:
Bounds:
allOf:
- $ref: '#/components/schemas/onvif_IntRectangle'
- description: Rectangle specifying the Video capturing area. The capturing
area shall not be larger than the whole Video source area.
Extension:
$ref: '#/components/schemas/onvif_VideoSourceConfigurationExtension'
SourceToken:
description: Reference to the physical input.
maxLength: 64
type: string
ViewMode:
description: Readonly parameter signalling Source configuration's view
mode, for devices supporting different view modes as defined in tt:viewModes.
type: string
required:
- SourceToken
- Bounds
type: object
onvif_VideoSourceConfigurationExtension:
properties:
Extension:
$ref: '#/components/schemas/onvif_VideoSourceConfigurationExtension2'
Rotate:
allOf:
- $ref: '#/components/schemas/onvif_Rotate'
- description: |-
Optional element to configure rotation of captured image.
What resolutions a device supports shall be unaffected by the Rotate parameters.
type: object
onvif_VideoSourceConfigurationExtension2:
properties:
LensDescription:
description: Optional element describing the geometric lens distortion.
Multiple instances for future variable lens support.
items:
$ref: '#/components/schemas/onvif_LensDescription'
type: array
SceneOrientation:
allOf:
- $ref: '#/components/schemas/onvif_SceneOrientation'
- description: Optional element describing the scene orientation in the
camera’s field of view.
type: object
onvif_ZoomLimits:
properties:
Range:
allOf:
- $ref: '#/components/schemas/onvif_Space1DDescription'
- description: A range of zoom limit
required:
- Range
type: object
soapenv_subcode:
properties:
Subcode:
$ref: '#/components/schemas/soapenv_subcode'
Value:
type: string
required:
- Value
type: object
wsnt_AbsoluteOrRelativeTimeType:
oneOf:
- type: string
- type: string
wsnt_FilterType:
type: object
wstop_Documentation:
type: object
wstop_ExtensibleDocumented:
properties:
documentation:
$ref: '#/components/schemas/wstop_Documentation'
type: object
wstop_TopicSetType:
allOf:
- $ref: '#/components/schemas/wstop_ExtensibleDocumented'
- type: object
device_AddScopes:
properties:
ScopeItem:
description: Contains a list of new configurable scope parameters that will
be added to the existing configurable scope.
items:
type: string
type: array
required:
- ScopeItem
type: object
device_CreateUsers:
properties:
User:
description: 'Creates new device users and corresponding credentials. Each
user entry includes: username, password and user level. Either all users
are created successfully or a fault message MUST be returned without creating
any user. If trying to create several users with exactly the same username
the request is rejected and no users are created. If password is missing,
then fault message Too weak password is returned.'
items:
$ref: '#/components/schemas/onvif_User'
type: array
required:
- User
type: object
device_DeleteUsers:
properties:
Username:
description: Deletes users on an device and there may exist users that cannot
be deleted to ensure access to the unit. Either all users are deleted
successfully or a fault message MUST be returned and no users be deleted.
If a username exists multiple times in the request, then a fault message
is returned.
items:
type: string
type: array
required:
- Username
type: object
device_DeviceServiceCapabilities:
properties:
Misc:
allOf:
- $ref: '#/components/schemas/device_MiscCapabilities'
- description: Capabilities that do not fit in any of the other categories.
Network:
allOf:
- $ref: '#/components/schemas/device_NetworkCapabilities'
- description: Network capabilities.
Security:
allOf:
- $ref: '#/components/schemas/device_SecurityCapabilities'
- description: Security capabilities.
System:
allOf:
- $ref: '#/components/schemas/device_SystemCapabilities'
- description: System capabilities.
required:
- Network
- Security
- System
type: object
device_GetCapabilities:
properties:
Category:
description: List of categories to retrieve capability information on.
items:
$ref: '#/components/schemas/onvif_CapabilityCategory'
type: array
type: object
device_GetCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/onvif_Capabilities'
- description: Capability information.
required:
- Capabilities
type: object
device_GetDNS:
type: object
device_GetDNSResponse:
properties:
DNSInformation:
allOf:
- $ref: '#/components/schemas/onvif_DNSInformation'
- description: DNS information.
required:
- DNSInformation
type: object
device_GetDeviceInformation:
type: object
device_GetDeviceInformationResponse:
properties:
FirmwareVersion:
description: The firmware version in the device.
type: string
HardwareId:
description: The hardware ID of the device.
type: string
Manufacturer:
description: The manufactor of the device.
type: string
Model:
description: The device model.
type: string
SerialNumber:
description: The serial number of the device.
type: string
required:
- Manufacturer
- Model
- FirmwareVersion
- SerialNumber
- HardwareId
type: object
device_GetDiscoveryMode:
type: object
device_GetDiscoveryModeResponse:
properties:
DiscoveryMode:
allOf:
- $ref: '#/components/schemas/onvif_DiscoveryMode'
- description: 'Indicator of discovery mode: Discoverable, NonDiscoverable.'
required:
- DiscoveryMode
type: object
device_GetEndpointReference:
type: object
device_GetEndpointReferenceResponse:
properties:
GUID:
type: string
required:
- GUID
type: object
device_GetHostname:
type: object
device_GetHostnameResponse:
properties:
HostnameInformation:
allOf:
- $ref: '#/components/schemas/onvif_HostnameInformation'
- description: Contains the hostname information.
required:
- HostnameInformation
type: object
device_GetNetworkDefaultGateway:
type: object
device_GetNetworkDefaultGatewayResponse:
properties:
NetworkGateway:
allOf:
- $ref: '#/components/schemas/onvif_NetworkGateway'
- description: Gets the default IPv4 and IPv6 gateway settings from the
device.
required:
- NetworkGateway
type: object
device_GetNetworkInterfaces:
type: object
device_GetNetworkInterfacesResponse:
properties:
NetworkInterfaces:
description: List of network interfaces.
items:
$ref: '#/components/schemas/onvif_NetworkInterface'
type: array
required:
- NetworkInterfaces
type: object
device_GetNetworkProtocols:
type: object
device_GetNetworkProtocolsResponse:
properties:
NetworkProtocols:
description: 'Contains an array of defined protocols supported by the device.
There are three protocols defined; HTTP, HTTPS and RTSP. The following
parameters can be retrieved for each protocol: port and enable/disable.'
items:
$ref: '#/components/schemas/onvif_NetworkProtocol'
type: array
type: object
device_GetScopes:
type: object
device_GetScopesResponse:
properties:
Scopes:
description: 'Contains a list of URI definining the device scopes. Scope
parameters can be of two types: fixed and configurable. Fixed parameters
can not be altered.'
items:
$ref: '#/components/schemas/onvif_Scope'
type: array
required:
- Scopes
type: object
device_GetServiceCapabilities:
type: object
device_GetServiceCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/device_DeviceServiceCapabilities'
- description: The capabilities for the device service is returned in the
Capabilities element.
required:
- Capabilities
type: object
device_GetSystemDateAndTime:
type: object
device_GetSystemDateAndTimeResponse:
properties:
SystemDateAndTime:
allOf:
- $ref: '#/components/schemas/onvif_SystemDateTime'
- description: Contains information whether system date and time are set
manually or by NTP, daylight savings is on or off, time zone in POSIX
1003.1 format and system date and time in UTC and also local system
date and time.
required:
- SystemDateAndTime
type: object
device_GetUsers:
type: object
device_GetUsersResponse:
properties:
User:
description: 'Contains a list of the onvif users and following information
is included in each entry: username and user level.'
items:
$ref: '#/components/schemas/onvif_User'
type: array
type: object
device_MiscCapabilities:
properties:
AuxiliaryCommands:
description: Lists of commands supported by SendAuxiliaryCommand.
type: string
type: object
device_NetworkCapabilities:
properties:
DHCPv6:
description: Indicates support for Stateful IPv6 DHCP.
type: boolean
Dot11Configuration:
description: Indicates support for IEEE 802.11 configuration.
type: boolean
Dot1XConfigurations:
description: Indicates the maximum number of Dot1X configurations supported
by the device
format: int32
type: integer
DynDNS:
description: Indicates support for dynamic DNS configuration.
type: boolean
HostnameFromDHCP:
description: Indicates support for retrieval of hostname from DHCP.
type: boolean
IPFilter:
description: Indicates support for IP filtering.
type: boolean
IPVersion6:
description: Indicates support for IPv6.
type: boolean
NTP:
description: Maximum number of NTP servers supported by the devices SetNTP
command.
format: int32
type: integer
ZeroConfiguration:
description: Indicates support for zeroconf.
type: boolean
type: object
device_RemoveScopes:
properties:
ScopeItem:
description: Contains a list of URIs that should be removed from the device
scope.
items:
type: string
type: array
required:
- ScopeItem
type: object
device_SecurityCapabilities:
properties:
AccessPolicyConfig:
description: Indicates support for access policy configuration.
type: boolean
DefaultAccessPolicy:
description: Indicates support for the ONVIF default access policy.
type: boolean
Dot1X:
description: Indicates support for IEEE 802.1X configuration.
type: boolean
HttpDigest:
description: Indicates support for WS over HTTP digest authenticated communication
layer.
type: boolean
KerberosToken:
description: Indicates support for WS-Security Kerberos token.
type: boolean
MaxPasswordHistory:
description: Maximum number of passwords that the device can remember for
each user
format: int32
type: integer
MaxPasswordLength:
description: Maximum number of characters supported for the password by
CreateUsers and SetUser.
format: int32
type: integer
MaxUserNameLength:
description: Maximum number of characters supported for the username by
CreateUsers.
format: int32
type: integer
MaxUsers:
description: The maximum number of users that the device supports.
format: int32
type: integer
OnboardKeyGeneration:
description: Indicates support for onboard key generation.
type: boolean
RELToken:
description: Indicates support for WS-Security REL token.
type: boolean
RemoteUserHandling:
description: Indicates support for remote user configuration. Used when
accessing another device.
type: boolean
SAMLToken:
description: Indicates support for WS-Security SAML token.
type: boolean
SecurityPolicies:
description: 'Indicates which security policies are supported. Options are:
ModifyPassword, PasswordComplexity, AuthFailureWarnings'
type: string
SupportedEAPMethods:
description: EAP Methods supported by the device. The int values refer to
the
format: int32
type: integer
TLS1.0:
description: Indicates support for TLS 1.0.
type: boolean
TLS1.1:
description: Indicates support for TLS 1.1.
type: boolean
TLS1.2:
description: Indicates support for TLS 1.2.
type: boolean
UsernameToken:
description: Indicates support for WS-Security Username token.
type: boolean
X.509Token:
description: Indicates support for WS-Security X.509 token.
type: boolean
type: object
device_SetDNS:
properties:
DNSManual:
description: DNS address(es) set manually.
items:
$ref: '#/components/schemas/onvif_IPAddress'
type: array
FromDHCP:
description: Indicate if the DNS address is to be retrieved using DHCP.
type: boolean
SearchDomain:
description: DNS search domain.
items:
type: string
type: array
required:
- FromDHCP
type: object
device_SetDiscoveryMode:
properties:
DiscoveryMode:
allOf:
- $ref: '#/components/schemas/onvif_DiscoveryMode'
- description: 'Indicator of discovery mode: Discoverable, NonDiscoverable.'
required:
- DiscoveryMode
type: object
device_SetHostname:
properties:
Name:
description: The hostname to set.
type: string
required:
- Name
type: object
device_SetNetworkDefaultGateway:
properties:
IPv4Address:
description: Sets IPv4 gateway address used as default setting.
items:
type: string
type: array
IPv6Address:
description: Sets IPv6 gateway address used as default setting.
items:
type: string
type: array
type: object
device_SetNetworkInterfaces:
properties:
InterfaceToken:
description: Symbolic network interface name.
maxLength: 64
type: string
NetworkInterface:
allOf:
- $ref: '#/components/schemas/onvif_NetworkInterfaceSetConfiguration'
- description: Network interface name.
required:
- InterfaceToken
- NetworkInterface
type: object
device_SetNetworkProtocols:
properties:
NetworkProtocols:
description: 'Configures one or more defined network protocols supported
by the device. There are currently three protocols defined; HTTP, HTTPS
and RTSP. The following parameters can be set for each protocol: port
and enable/disable.'
items:
$ref: '#/components/schemas/onvif_NetworkProtocol'
type: array
required:
- NetworkProtocols
type: object
device_SetScopes:
properties:
Scopes:
description: Contains a list of scope parameters that will replace all existing
configurable scope parameters.
items:
type: string
type: array
required:
- Scopes
type: object
device_SetSystemDateAndTime:
properties:
DateTimeType:
allOf:
- $ref: '#/components/schemas/onvif_SetDateTimeType'
- description: Defines if the date and time is set via NTP or manually.
DaylightSavings:
description: Automatically adjust Daylight savings if defined in TimeZone.
type: boolean
TimeZone:
allOf:
- $ref: '#/components/schemas/onvif_TimeZone'
- description: The time zone in POSIX 1003.1 format
UTCDateTime:
allOf:
- $ref: '#/components/schemas/onvif_DateTime'
- description: Date and time in UTC. If time is obtained via NTP, UTCDateTime
has no meaning
required:
- DateTimeType
- DaylightSavings
type: object
device_SetSystemFactoryDefault:
properties:
FactoryDefault:
allOf:
- $ref: '#/components/schemas/onvif_FactoryDefaultType'
- description: Specifies the factory default action type.
required:
- FactoryDefault
type: object
device_SetUser:
properties:
User:
description: Updates the credentials for one or several users on an device.
Either all change requests are processed successfully or a fault message
MUST be returned. If the request contains the same username multiple times,
a fault message is returned.
items:
$ref: '#/components/schemas/onvif_User'
type: array
required:
- User
type: object
device_SystemCapabilities:
properties:
Addons:
description: List of supported Addons by the device.
type: string
AutoGeo:
description: List of supported automatic GeoLocation adjustment supported
by the device. Valid items are defined by tds:AutoGeoMode.
type: string
DiscoveryBye:
description: Indicates support for WS-Discovery Bye.
type: boolean
DiscoveryNotSupported:
description: Indicates no support for network discovery.
type: boolean
DiscoveryResolve:
description: Indicates support for WS Discovery resolve requests.
type: boolean
FirmwareUpgrade:
description: Indicates support for firmware upgrade through MTOM.
type: boolean
GeoLocationEntries:
description: If present signals support for geo location. The value signals
the supported number of entries.
format: int32
type: integer
HttpFirmwareUpgrade:
description: Indicates support for firmware upgrade through HTTP.
type: boolean
HttpSupportInformation:
description: Indicates support for retrieving support information through
HTTP.
type: boolean
HttpSystemBackup:
description: Indicates support for system backup through HTTP.
type: boolean
HttpSystemLogging:
description: Indicates support for retrieval of system logging through HTTP.
type: boolean
MaxStorageConfigurations:
description: Indicates maximum number of storage configurations supported.
format: int32
type: integer
NetworkConfigNotSupported:
description: Indicates no support for network configuration.
type: boolean
RemoteDiscovery:
description: Indicates support for remote discovery.
type: boolean
StorageConfiguration:
description: Indicates support for storage configuration interfaces.
type: boolean
StorageTypesSupported:
description: Enumerates the supported StorageTypes, see tds:StorageType.
type: string
SystemBackup:
description: Indicates support for system backup through MTOM.
type: boolean
SystemLogging:
description: Indicates support for retrieval of system logging through MTOM.
type: boolean
UserConfigNotSupported:
description: Indicates no support for user configuration.
type: boolean
type: object
device_SystemReboot:
type: object
event_Capabilities:
properties:
EventBrokerProtocols:
description: A space separated list of supported event broker protocols
as defined by the tev:EventBrokerProtocol datatype.
type: string
MaxEventBrokers:
description: Maxiumum number of event broker configurations that can be
added to the device.
format: int32
type: integer
MaxNotificationProducers:
description: Maximum number of supported notification producers as defined
by WS-BaseNotification.
format: int32
type: integer
MaxPullPoints:
description: Maximum supported number of notification pull points.
format: int32
type: integer
MetadataOverMQTT:
description: Indicates that metadata streaming over MQTT is supported
type: boolean
PersistentNotificationStorage:
description: Indication if the device supports persistent notification storage.
type: boolean
WSPausableSubscriptionManagerInterfaceSupport:
description: Indicates that the WS Pausable Subscription Manager Interface
is supported.
type: boolean
WSPullPointSupport:
description: Indicates that the WS Pull Point is supported.
type: boolean
WSSubscriptionPolicySupport:
description: Indicates that the WS Subscription policy is supported.
type: boolean
type: object
event_GetEventProperties:
type: object
event_GetEventPropertiesResponse:
properties:
FixedTopicSet:
description: True when topicset is fixed for all times.
type: boolean
MessageContentFilterDialect:
description: Defines the XPath function set supported for message content
filtering.
items:
type: string
type: array
MessageContentSchemaLocation:
description: |-
The Message Content Description Language allows referencing
of vendor-specific types. In order to ease the integration of such types into a client application,
the GetEventPropertiesResponse shall list all URI locations to schema files whose types are
used in the description of notifications, with MessageContentSchemaLocation elements.
items:
type: string
type: array
ProducerPropertiesFilterDialect:
description: Optional ProducerPropertiesDialects. Refer to
items:
type: string
type: array
TopicExpressionDialect:
description: Defines the XPath expression syntax supported for matching
topic expressions.
items:
type: string
type: array
TopicNamespaceLocation:
description: List of topic namespaces supported.
items:
type: string
type: array
TopicSet:
allOf:
- $ref: '#/components/schemas/wstop_TopicSetType'
- description: Set of topics supported.
required:
- TopicNamespaceLocation
- FixedTopicSet
- TopicSet
- TopicExpressionDialect
- MessageContentFilterDialect
- MessageContentSchemaLocation
type: object
event_GetServiceCapabilities:
type: object
event_GetServiceCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/event_Capabilities'
- description: The capabilities for the event service is returned in the
Capabilities element.
required:
- Capabilities
type: object
imaging_Capabilities:
properties:
AdaptablePreset:
description: Indicates whether or not imaging preset settings can be updated.
type: boolean
ImageStabilization:
description: |-
Indicates whether or not Image Stabilization feature is supported.
The use of this capability is deprecated, a client should use GetOption to find out if image stabilization is supported.
type: boolean
Presets:
description: Indicates whether or not Imaging Presets feature is supported.
type: boolean
type: object
imaging_GetServiceCapabilities:
type: object
imaging_GetServiceCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/imaging_Capabilities'
- description: The capabilities for the imaging service is returned in the
Capabilities element.
required:
- Capabilities
type: object
media_AddMetadataConfiguration:
properties:
ConfigurationToken:
description: Contains a reference to the MetadataConfiguration to add
maxLength: 64
type: string
ProfileToken:
description: Reference to the profile where the configuration should be
added
maxLength: 64
type: string
required:
- ProfileToken
- ConfigurationToken
type: object
media_AddPTZConfiguration:
properties:
ConfigurationToken:
description: Contains a reference to the PTZConfiguration to add
maxLength: 64
type: string
ProfileToken:
description: Reference to the profile where the configuration should be
added
maxLength: 64
type: string
required:
- ProfileToken
- ConfigurationToken
type: object
media_Capabilities:
properties:
EXICompression:
description: Indicates the support for the Efficient XML Interchange (EXI)
binary XML format.
type: boolean
OSD:
description: Indicates if OSD is supported.
type: boolean
ProfileCapabilities:
allOf:
- $ref: '#/components/schemas/media_ProfileCapabilities'
- description: Media profile capabilities.
Rotation:
description: Indicates whether or not Rotation feature is supported.
type: boolean
SnapshotUri:
description: Indicates if GetSnapshotUri is supported.
type: boolean
StreamingCapabilities:
allOf:
- $ref: '#/components/schemas/media_StreamingCapabilities'
- description: Streaming capabilities.
TemporaryOSDText:
description: Indicates the support for temporary osd text configuration.
type: boolean
VideoSourceMode:
description: Indicates the support for changing video source mode.
type: boolean
required:
- ProfileCapabilities
- StreamingCapabilities
type: object
media_GetCompatibleMetadataConfigurations:
properties:
ProfileToken:
description: Contains the token of an existing media profile the configurations
shall be compatible with.
maxLength: 64
type: string
required:
- ProfileToken
type: object
media_GetCompatibleMetadataConfigurationsResponse:
properties:
Configurations:
description: Contains a list of metadata configurations that are compatible
with the specified media profile.
items:
$ref: '#/components/schemas/onvif_MetadataConfiguration'
type: array
type: object
media_GetMetadataConfiguration:
properties:
ConfigurationToken:
description: Token of the requested metadata configuration.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
media_GetMetadataConfigurationOptions:
properties:
ConfigurationToken:
description: Optional metadata configuration token that specifies an existing
configuration that the options are intended for.
maxLength: 64
type: string
ProfileToken:
description: Optional ProfileToken that specifies an existing media profile
that the options shall be compatible with.
maxLength: 64
type: string
type: object
media_GetMetadataConfigurationOptionsResponse:
properties:
Options:
allOf:
- $ref: '#/components/schemas/onvif_MetadataConfigurationOptions'
- description: This message contains the metadata configuration options.
If a metadata configuration is specified, the options shall concern
that particular configuration. If a media profile is specified, the
options shall be compatible with that media profile. If no tokens are
specified, the options shall be considered generic for the device.
required:
- Options
type: object
media_GetMetadataConfigurationResponse:
properties:
Configuration:
allOf:
- $ref: '#/components/schemas/onvif_MetadataConfiguration'
- description: The requested metadata configuration.
required:
- Configuration
type: object
media_GetMetadataConfigurations:
type: object
media_GetMetadataConfigurationsResponse:
properties:
Configurations:
description: This element contains a list of metadata configurations
items:
$ref: '#/components/schemas/onvif_MetadataConfiguration'
type: array
type: object
media_GetProfiles:
type: object
media_GetProfilesResponse:
properties:
Profiles:
description: lists all profiles that exist in the media service
items:
$ref: '#/components/schemas/onvif_Profile'
type: array
type: object
media_GetServiceCapabilities:
type: object
media_GetServiceCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/media_Capabilities'
- description: The capabilities for the media service is returned in the
Capabilities element.
required:
- Capabilities
type: object
media_GetSnapshotUri:
properties:
ProfileToken:
description: The ProfileToken element indicates the media profile to use
and will define the source and dimensions of the snapshot.
maxLength: 64
type: string
required:
- ProfileToken
type: object
media_GetSnapshotUriResponse:
properties:
MediaUri:
$ref: '#/components/schemas/onvif_MediaUri'
required:
- MediaUri
type: object
media_GetStreamUri:
properties:
ProfileToken:
description: The ProfileToken element indicates the media profile to use
and will define the configuration of the content of the stream.
maxLength: 64
type: string
StreamSetup:
allOf:
- $ref: '#/components/schemas/onvif_StreamSetup'
- description: Stream Setup that should be used with the uri
required:
- StreamSetup
- ProfileToken
type: object
media_GetStreamUriResponse:
properties:
MediaUri:
$ref: '#/components/schemas/onvif_MediaUri'
required:
- MediaUri
type: object
media_GetVideoEncoderConfiguration:
properties:
ConfigurationToken:
description: Token of the requested video encoder configuration.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
media_GetVideoEncoderConfigurationOptions:
properties:
ConfigurationToken:
description: Optional video encoder configuration token that specifies an
existing configuration that the options are intended for.
maxLength: 64
type: string
ProfileToken:
description: Optional ProfileToken that specifies an existing media profile
that the options shall be compatible with.
maxLength: 64
type: string
type: object
media_GetVideoEncoderConfigurationOptionsResponse:
properties:
Options:
$ref: '#/components/schemas/onvif_VideoEncoderConfigurationOptions'
required:
- Options
type: object
media_GetVideoEncoderConfigurationResponse:
properties:
Configuration:
allOf:
- $ref: '#/components/schemas/onvif_VideoEncoderConfiguration'
- description: The requested video encoder configuration.
required:
- Configuration
type: object
media_GetVideoEncoderConfigurations:
type: object
media_GetVideoEncoderConfigurationsResponse:
properties:
Configurations:
description: This element contains a list of video encoder configurations.
items:
$ref: '#/components/schemas/onvif_VideoEncoderConfiguration'
type: array
type: object
media_ProfileCapabilities:
properties:
MaximumNumberOfProfiles:
description: Maximum number of profiles supported.
format: int32
type: integer
type: object
media_RemoveMetadataConfiguration:
properties:
ProfileToken:
description: |-
Contains a reference to the media profile from which the
MetadataConfiguration shall be removed.
maxLength: 64
type: string
required:
- ProfileToken
type: object
media_RemovePTZConfiguration:
properties:
ProfileToken:
description: |-
Contains a reference to the media profile from which the
PTZConfiguration shall be removed.
maxLength: 64
type: string
required:
- ProfileToken
type: object
media_SetMetadataConfiguration:
properties:
Configuration:
allOf:
- $ref: '#/components/schemas/onvif_MetadataConfiguration'
- description: Contains the modified metadata configuration. The configuration
shall exist in the device.
ForcePersistence:
description: The ForcePersistence element is obsolete and should always
be assumed to be true.
type: boolean
required:
- Configuration
- ForcePersistence
type: object
media_SetVideoEncoderConfiguration:
properties:
Configuration:
allOf:
- $ref: '#/components/schemas/onvif_VideoEncoderConfiguration'
- description: Contains the modified video encoder configuration. The configuration
shall exist in the device.
ForcePersistence:
description: The ForcePersistence element is obsolete and should always
be assumed to be true.
type: boolean
required:
- Configuration
- ForcePersistence
type: object
media_StreamingCapabilities:
properties:
NoRTSPStreaming:
description: Indicates the device does not support live media streaming
via RTSP.
type: boolean
NonAggregateControl:
description: Indicates support for non aggregate RTSP control.
type: boolean
RTPMulticast:
description: Indicates support for RTP multicast.
type: boolean
RTP_RTSP_TCP:
description: Indicates support for RTP/RTSP/TCP.
type: boolean
RTP_TCP:
description: Indicates support for RTP over TCP.
type: boolean
type: object
media2_AddConfiguration:
properties:
Configuration:
description: List of configurations to be added. The types shall be provided
in the order defined by tr2:ConfigurationEnumeration. List entries with
tr2:ConfigurationEnumeration value "All" shall be ignored.
items:
$ref: '#/components/schemas/media2_ConfigurationRef'
type: array
Name:
description: Optional item. If present updates the Name property of the
profile.
maxLength: 64
type: string
ProfileToken:
description: Reference to the profile where the configuration should be
added
maxLength: 64
type: string
required:
- ProfileToken
type: object
media2_ConfigurationRef:
properties:
Token:
description: |-
Reference token of an existing configuration.
Token shall be included in the AddConfiguration request along with the type.
Token shall be included in the CreateProfile request when Configuration elements are included and type is selected.
Token is optional for RemoveConfiguration request. If no token is provided in RemoveConfiguration request, device shall
remove the configuration of the type included in the profile.
maxLength: 64
type: string
Type:
description: Type of the configuration as defined by tr2:ConfigurationEnumeration.
type: string
required:
- Type
type: object
media2_ConfigurationSet:
description: A set of media configurations.
properties:
Analytics:
allOf:
- $ref: '#/components/schemas/onvif_VideoAnalyticsConfiguration'
- description: Optional configuration of the analytics module and rule engine.
AudioDecoder:
allOf:
- $ref: '#/components/schemas/onvif_AudioDecoderConfiguration'
- description: Optional configuration of the Audio decoder.
AudioEncoder:
allOf:
- $ref: '#/components/schemas/onvif_AudioEncoder2Configuration'
- description: Optional configuration of the Audio encoder.
AudioOutput:
allOf:
- $ref: '#/components/schemas/onvif_AudioOutputConfiguration'
- description: Optional configuration of the Audio output.
AudioSource:
allOf:
- $ref: '#/components/schemas/onvif_AudioSourceConfiguration'
- description: Optional configuration of the Audio input.
Metadata:
allOf:
- $ref: '#/components/schemas/onvif_MetadataConfiguration'
- description: Optional configuration of the metadata stream.
PTZ:
allOf:
- $ref: '#/components/schemas/onvif_PTZConfiguration'
- description: Optional configuration of the pan tilt zoom unit.
Receiver:
allOf:
- $ref: '#/components/schemas/media2_ReceiverConfiguration'
- description: Optional configuration of the Receiver.
VideoEncoder:
allOf:
- $ref: '#/components/schemas/onvif_VideoEncoder2Configuration'
- description: Optional configuration of the Video encoder.
VideoSource:
allOf:
- $ref: '#/components/schemas/onvif_VideoSourceConfiguration'
- description: Optional configuration of the Video input.
type: object
media2_GetAnalyticsConfigurationsResponse:
properties:
Configurations:
description: This element contains a list of Analytics configurations.
items:
$ref: '#/components/schemas/onvif_VideoAnalyticsConfiguration'
type: array
type: object
media2_GetProfiles:
properties:
Token:
description: Optional token of the requested profile.
maxLength: 64
type: string
Type:
description: The types shall be provided as defined by tr2:ConfigurationEnumeration.
items:
type: string
type: array
type: object
media2_GetProfilesResponse:
properties:
Profiles:
description: |-
Lists all profiles that exist in the media service. The response provides the requested types of Configurations as far as available.
If a profile doesn't contain a type no error shall be provided.
items:
$ref: '#/components/schemas/media2_MediaProfile'
type: array
type: object
media2_MediaProfile:
description: A media profile consists of a set of media configurations.
properties:
Configurations:
allOf:
- $ref: '#/components/schemas/media2_ConfigurationSet'
- description: The configurations assigned to the profile.
Name:
description: User readable name of the profile.
maxLength: 64
type: string
fixed:
description: A value of true signals that the profile cannot be deleted.
Default is false.
type: boolean
token:
description: Unique identifier of the profile.
maxLength: 64
type: string
required:
- token
- Name
type: object
media2_ReceiverConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_ReceiverConfiguration'
- properties:
token:
maxLength: 64
type: string
type: object
media2_RemoveConfiguration:
properties:
Configuration:
description: List of configurations to be removed. The types shall be provided
in the order defined by tr2:ConfigurationEnumeration. Tokens appearing
in the configuration list shall be ignored. Presence of the "All" type
shall result in an empty profile.
items:
$ref: '#/components/schemas/media2_ConfigurationRef'
type: array
ProfileToken:
description: This element contains a reference to the media profile from
which the AudioDecoderConfiguration shall be removed.
maxLength: 64
type: string
required:
- ProfileToken
- Configuration
type: object
ptz_AbsoluteMove:
properties:
Position:
allOf:
- $ref: '#/components/schemas/onvif_PTZVector'
- description: A Position vector specifying the absolute target position.
ProfileToken:
description: A reference to the MediaProfile.
maxLength: 64
type: string
Speed:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: An optional Speed.
required:
- ProfileToken
- Position
type: object
ptz_Capabilities:
properties:
EFlip:
description: Indicates whether or not EFlip is supported.
type: boolean
GetCompatibleConfigurations:
description: Indicates support for the GetCompatibleConfigurations command.
type: boolean
MoveAndTrack:
description: Indication of the methods of MoveAndTrack that are supported,
acceptable values are defined in tt:MoveAndTrackMethod.
type: string
MoveStatus:
description: Indicates that the PTZStatus includes MoveStatus information.
type: boolean
Reverse:
description: Indicates whether or not reversing of PT control direction
is supported.
type: boolean
StatusPosition:
description: Indicates that the PTZStatus includes Position information.
type: boolean
type: object
ptz_ContinuousMove:
properties:
ProfileToken:
description: A reference to the MediaProfile.
maxLength: 64
type: string
Timeout:
description: An optional Timeout parameter.
format: date-time
type: string
Velocity:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: A Velocity vector specifying the velocity of pan, tilt and
zoom.
required:
- ProfileToken
- Velocity
type: object
ptz_GetConfiguration:
properties:
PTZConfigurationToken:
description: Token of the requested PTZConfiguration.
maxLength: 64
type: string
required:
- PTZConfigurationToken
type: object
ptz_GetConfigurationOptions:
properties:
ConfigurationToken:
description: Token of an existing configuration that the options are intended
for.
maxLength: 64
type: string
required:
- ConfigurationToken
type: object
ptz_GetConfigurationOptionsResponse:
properties:
PTZConfigurationOptions:
allOf:
- $ref: '#/components/schemas/onvif_PTZConfigurationOptions'
- description: The requested PTZ configuration options.
required:
- PTZConfigurationOptions
type: object
ptz_GetConfigurationResponse:
properties:
PTZConfiguration:
allOf:
- $ref: '#/components/schemas/onvif_PTZConfiguration'
- description: A requested PTZConfiguration.
required:
- PTZConfiguration
type: object
ptz_GetConfigurations:
type: object
ptz_GetConfigurationsResponse:
properties:
PTZConfiguration:
description: A list of all existing PTZConfigurations on the device.
items:
$ref: '#/components/schemas/onvif_PTZConfiguration'
type: array
type: object
ptz_GetNode:
properties:
NodeToken:
description: Token of the requested PTZNode.
maxLength: 64
type: string
required:
- NodeToken
type: object
ptz_GetNodeResponse:
properties:
PTZNode:
allOf:
- $ref: '#/components/schemas/onvif_PTZNode'
- description: A requested PTZNode.
required:
- PTZNode
type: object
ptz_GetNodes:
type: object
ptz_GetNodesResponse:
properties:
PTZNode:
description: A list of the existing PTZ Nodes on the device.
items:
$ref: '#/components/schemas/onvif_PTZNode'
type: array
type: object
ptz_GetPresets:
properties:
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
required:
- ProfileToken
type: object
ptz_GetPresetsResponse:
properties:
Preset:
description: A list of presets which are available for the requested MediaProfile.
items:
$ref: '#/components/schemas/onvif_PTZPreset'
type: array
type: object
ptz_GetServiceCapabilities:
type: object
ptz_GetServiceCapabilitiesResponse:
properties:
Capabilities:
allOf:
- $ref: '#/components/schemas/ptz_Capabilities'
- description: The capabilities for the PTZ service is returned in the Capabilities
element.
required:
- Capabilities
type: object
ptz_GetStatus:
properties:
ProfileToken:
description: A reference to the MediaProfile where the PTZStatus should
be requested.
maxLength: 64
type: string
required:
- ProfileToken
type: object
ptz_GetStatusResponse:
properties:
PTZStatus:
allOf:
- $ref: '#/components/schemas/onvif_PTZStatus'
- description: The PTZStatus for the requested MediaProfile.
required:
- PTZStatus
type: object
ptz_GotoHomePosition:
properties:
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
Speed:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: A requested speed.The speed parameter can only be specified
when Speed Spaces are available for the PTZ Node.
required:
- ProfileToken
type: object
ptz_GotoPreset:
properties:
PresetToken:
description: A requested preset token.
maxLength: 64
type: string
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
Speed:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: A requested speed.The speed parameter can only be specified
when Speed Spaces are available for the PTZ Node.
required:
- ProfileToken
- PresetToken
type: object
ptz_RelativeMove:
properties:
ProfileToken:
description: A reference to the MediaProfile.
maxLength: 64
type: string
Speed:
allOf:
- $ref: '#/components/schemas/onvif_PTZSpeed'
- description: An optional Speed parameter.
Translation:
allOf:
- $ref: '#/components/schemas/onvif_PTZVector'
- description: A positional Translation relative to the current position
required:
- ProfileToken
- Translation
type: object
ptz_RemovePreset:
properties:
PresetToken:
description: A requested preset token.
maxLength: 64
type: string
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
required:
- ProfileToken
- PresetToken
type: object
ptz_SendAuxiliaryCommand:
properties:
AuxiliaryData:
description: The Auxiliary request data.
maxLength: 128
type: string
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
required:
- ProfileToken
- AuxiliaryData
type: object
ptz_SetConfiguration:
properties:
ForcePersistence:
description: 'Flag that makes configuration persistent. Example: User wants
the configuration to exist after reboot.'
type: boolean
PTZConfiguration:
$ref: '#/components/schemas/onvif_PTZConfiguration'
required:
- PTZConfiguration
- ForcePersistence
type: object
ptz_SetHomePosition:
properties:
ProfileToken:
description: A reference to the MediaProfile where the home position should
be set.
maxLength: 64
type: string
required:
- ProfileToken
type: object
ptz_SetPreset:
properties:
PresetName:
description: A requested preset name.
type: string
PresetToken:
description: A requested preset token.
maxLength: 64
type: string
ProfileToken:
description: A reference to the MediaProfile where the operation should
take place.
maxLength: 64
type: string
required:
- ProfileToken
type: object
ptz_Stop:
properties:
PanTilt:
description: Set true when we want to stop ongoing pan and tilt movements.If
PanTilt arguments are not present, this command stops these movements.
type: boolean
ProfileToken:
description: A reference to the MediaProfile that indicate what should be
stopped.
maxLength: 64
type: string
Zoom:
description: Set true when we want to stop ongoing zoom movement.If Zoom
arguments are not present, this command stops ongoing zoom movement.
type: boolean
required:
- ProfileToken
type: object
Event:
description: A discrete event containing one or more readings
properties:
apiVersion:
description: A version number shows the API version in DTOs.
type: string
id:
description: The unique identifier for the event
type: string
format: uuid
deviceName:
description: The name of the device from which the event originated
type: string
profileName:
description: The name of the device profile from which the event originated
type: string
sourceName:
description: The name of the source device resource or command from which
the event originated
type: string
origin:
description: A Unix timestamp indicating when the event was originated at
the source device (can support nanoseconds)
type: integer
readings:
description: One or more readings captured at the time of the event
type: array
items:
$ref: '#/components/schemas/BaseReading'
required:
- apiVersion
- id
- deviceName
- profileName
- sourceName
- origin
- readings
BaseEventResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- properties:
event:
$ref: '#/components/schemas/Event'
description: A response type for returning an Event to the caller.
ObjectEventResponse:
allOf:
- $ref: '#/components/schemas/BaseEventResponse'
- properties:
event:
properties:
readings:
items:
$ref: '#/components/schemas/ObjectReading'
BinaryEventResponse:
allOf:
- $ref: '#/components/schemas/BaseEventResponse'
- properties:
event:
properties:
readings:
items:
$ref: '#/components/schemas/BinaryReading'
StringEventResponse:
allOf:
- $ref: '#/components/schemas/BaseEventResponse'
- properties:
event:
properties:
readings:
items:
$ref: '#/components/schemas/StringReading'
BoolEventResponse:
allOf:
- $ref: '#/components/schemas/BaseEventResponse'
- properties:
event:
properties:
readings:
items:
$ref: '#/components/schemas/BoolReading'
BaseResponse:
description: Defines basic properties which all use-case specific response DTO
instances should support
type: object
properties:
apiVersion:
description: A version number shows the API version in DTOs.
type: string
example: v3
statusCode:
description: A numeric code signifying the operational status of the response.
type: integer
BaseReading:
description: A base reading type containing common properties from which more
specific reading types inherit. This definition should not be implemented
but is used elsewhere to indicate support for a mixed list of simple/binary
readings in a single event.
type: object
properties:
id:
description: The unique identifier for the reading
type: string
format: uuid
origin:
description: A Unix timestamp indicating when the reading was originated
at the source device (can support nanoseconds)
type: integer
deviceName:
description: The name of the device from which the reading originated
type: string
resourceName:
description: The device resource name for the reading
type: string
profileName:
description: The device profile name for the reading
type: string
valueType:
description: Indicates the datatype of the value property
type: string
enum:
- Bool
- String
- Object
- Binary
required:
- apiVersion
- deviceName
- resourceName
- profileName
- origin
- valueType
BoolReading:
description: An event reading for a bool data type
allOf:
- $ref: '#/components/schemas/BaseReading'
- type: object
properties:
valueType:
example: Bool
value:
description: A string representation of the reading's value
type: string
enum:
- 'true'
- 'false'
required:
- value
StringReading:
description: An event reading for a string data type
allOf:
- $ref: '#/components/schemas/BaseReading'
- type: object
properties:
valueType:
example: String
value:
description: A string representation of the reading's value
type: string
required:
- value
ObjectReading:
description: An event reading for an object data type
allOf:
- $ref: '#/components/schemas/BaseReading'
- type: object
properties:
valueType:
example: Object
value:
description: Use objectValue instead.
type: string
example: ''
objectValue:
description: Object representation of the reading's value
type: object
required:
- objectValue
BinaryReading:
description: An event reading for a binary data type
allOf:
- $ref: '#/components/schemas/BaseReading'
- type: object
properties:
valueType:
description: Indicates the datatype of the value property
type: string
example: Binary
enum:
- Binary
binaryValue:
description: If the value of the reading is binary, it will be found in
this property as a base64 string
type: string
format: base64
mediaType:
description: E.g. MIME Type, indicates what the content type of the binaryValue
property is if it's populated.
type: string
example: image/jpeg
value:
description: Use binaryValue instead.
type: string
example: ''
required:
- binaryValue
- mediaType
ErrorResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- properties:
message:
description: A field that can contain a free-form message, such as an
error message.
type: string
description: A response type for returning a generic error to the caller.
type: object
SuccessResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- properties:
statusCode:
example: 200
headers:
correlatedResponseHeader:
description: A response header that returns the unique correlation ID used to
initiate the request.
schema:
type: string
format: uuid
example: 14a42ea6-c394-41c3-8bcd-a29b9f5e6835
examples:
200Example:
value:
apiVersion: v3
statusCode: 200
400Example:
value:
apiVersion: v3
statusCode: 400
message: Bad Request
404Example:
value:
apiVersion: v3
statusCode: 404
message: The requested resource does not exist
416Example:
value:
apiVersion: v3
statusCode: 416
message: Range Not Satisfiable
423Example:
value:
apiVersion: v3
statusCode: 423
message: The device is locked (AdminState)
500Example:
value:
apiVersion: v3
statusCode: 500
message: Internal Server Error
503Example:
value:
apiVersion: v3
statusCode: 503
message: HTTP request timeout
parameters:
EDGEX_DEVICE_NAME:
name: EDGEX_DEVICE_NAME
in: path
schema:
type: string
required: true
example: Camera001
description: |
This is the device name associated with the camera. It was
either assigned via the auto-discovery function, or manually
defined when you created the device.