Getting /API/rest/v1/cameras/{id}/settings returns all settings as they are defined for the particular camera type. Therefore, the returned set of settings may vary per camera type, and settings with the same name may, in theory, have different value types across camera types.
For all camera types we have investigated, the edgeStorageSupported property is defined as an enum (string) with "True" and "False" as the possible values.
To determine how individual properties are defined, add the definitions parameter to the request:
definitions: get definition of object (including task) parameters
This is documented here:
Example:
/API/rest/v1/cameras/{id}/settings?definitions
The response may look like the example below. Notice the difference between:
ptzEnabled, which is a real boolean ("valueType": "bool")
edgeStorageSupported, which is an enum ("valueType": "enum")
{
"array": [
{
"displayName": "Settings",
"ptz": {
"displayName": "Pan-Tilt-Zoom",
"ptzEnabled": false
},
"stream": [
{
"displayName": "Video stream 1",
"edgeStorageSupported": "True"
}
]
}
],
"definitions": [
{
"ptz": {
"ptzEnabled": {
"canSet": true,
"valueType": "bool",
"translationId": "969b7199-ee1f-4ebf-9c44-65894963eac2"
}
},
"stream": [
{
"edgeStorageSupported": {
"canSet": false,
"hidden": true,
"options": [
{
"value": "True",
"displayName": "true",
"translationId": "d4823f08-f51e-4ff0-b16b-b58fbbb84405"
},
{
"value": "False",
"displayName": "false",
"translationId": "7d22c838-6f15-4d37-8381-67810041507a"
}
],
"valueType": "enum",
"translationId": "f86c7224-b336-4024-82ab-76d698e5c448"
}
}
]
}
]
}
The online documentation currently states:
edgeStorageSupported
Boolean
Edge storage support
However, this is not correct based on all examined camera types. In every case investigated, the property is declared as an enum with the possible values "True" and "False" rather than as a boolean.
Documentation link:
Config REST API - Object model and URIs