{"groups": [
{
"groupName": "System API",
"urlPrefix": "/ec2",
"groupDescription": "This group contains functions related to whole system (all servers).",
"functions": [
{
"proprietary": true,
"name": "addCameraHistoryItem",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "serverGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "archivedCameras",
"type": "uuidArray",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "addDiscoveryInformation",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ignore",
"type": "boolean",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"arrayParams": true,
"name": "addLicenses",
"description": {"xml": "Register the specified Licenses in the System. Each License should be bound via Hardware Id\nto some Server in the System.\n
\nThe License Block can be obtained via the procedure offered in the VMS Client application,\nmenu System Administration -> Licenses -> Manual Activation.\n
\nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\".\n<\/p>"},
"permissions": "Administrator, or a user who owns the layout.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "Unique id of the layout to be deleted."},
"optional": false
}],
"result": {}
},
{
"name": "removeLayoutTour",
"description": {"xml": "Delete the specified Layout Tour from the System.\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameter should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\".\n<\/p>"},
"permissions": "Administrator, or a custom user with \"Edit camera settings\" permission,\nor a user who owns the resource in case the resource is a layout.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "Unique id of the resource."},
"optional": false
}],
"result": {}
},
{
"name": "removeResourceParam",
"description": {"xml": "Delete the specified property.\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\".\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "User unique id."},
"optional": false
}],
"result": {}
},
{
"name": "removeUserRole",
"description": {"xml": "Delete the specified user role.\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\".\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "User role unique id."},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "removeVideowall",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"name": "removeWebPage",
"description": {"xml": "Delete the specified web page.\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\".\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "Web page unique id."},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "resetEventRules",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "defaultRules",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].eventType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "undefinedEvent",
"description": {"xml": ""}
},
{
"name": "cameraMotionEvent",
"description": {"xml": ""}
},
{
"name": "cameraInputEvent",
"description": {"xml": ""}
},
{
"name": "cameraDisconnectEvent",
"description": {"xml": ""}
},
{
"name": "storageFailureEvent",
"description": {"xml": ""}
},
{
"name": "networkIssueEvent",
"description": {"xml": ""}
},
{
"name": "cameraIpConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverFailureEvent",
"description": {"xml": ""}
},
{
"name": "serverConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverStartEvent",
"description": {"xml": ""}
},
{
"name": "licenseIssueEvent",
"description": {"xml": ""}
},
{
"name": "backupFinishedEvent",
"description": {"xml": ""}
},
{
"name": "softwareTriggerEvent",
"description": {"xml": ""}
},
{
"name": "analyticsSdkEvent",
"description": {"xml": ""}
},
{
"name": "pluginDiagnosticEvent",
"description": {"xml": ""}
},
{
"name": "poeOverBudgetEvent",
"description": {"xml": ""}
},
{
"name": "fanErrorEvent",
"description": {"xml": ""}
},
{
"name": "systemHealthEvent",
"description": {"xml": ""}
},
{
"name": "maxSystemHealthEvent",
"description": {"xml": ""}
},
{
"name": "anyCameraEvent",
"description": {"xml": ""}
},
{
"name": "anyServerEvent",
"description": {"xml": ""}
},
{
"name": "anyEvent",
"description": {"xml": ""}
},
{
"name": "userDefinedEvent",
"description": {"xml": ""}
}
]
},
{
"name": "defaultRules[].eventResourceIds",
"type": "uuidArray",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].eventCondition",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].eventState",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "defaultRules[].actionType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "defaultRules[].actionResourceIds",
"type": "uuidArray",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].actionParams",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].aggregationPeriod",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].disabled",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].comment",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].schedule",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "defaultRules[].system",
"type": "boolean",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "restoreDatabase",
"description": {"xml": "Restore the System database (shared among all Servers) from the specified backup."},
"method": "POST",
"params": [{
"name": "data",
"type": "string",
"description": {"xml": "Binary database dump, encoded in Base64."},
"optional": false
}],
"result": {}
},
{
"name": "retryUpdate",
"description": {"xml": "Retries the latest failed update action. E.g. if one of servers has failed update because\nthere was not enough free space, it will repty to reserve space and start downloading."},
"method": "POST",
"params": [],
"result": {
"caption": {"xml": "Update status after retry. See ec2/updateStatus."},
"type": "object"
}
},
{
"proprietary": true,
"name": "runtimeInfo",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"proprietary": true,
"name": "runtimeInfoChanged",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "version",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "peer",
"type": "object",
"description": {"xml": ""},
"optional": false
},
{
"name": "peer.id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "peer.persistentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "peer.instanceId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "peer.peerType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "notDefined",
"description": {"xml": ""}
},
{
"name": "server",
"description": {"xml": ""}
},
{
"name": "desktopClient",
"description": {"xml": ""}
},
{
"name": "videowallClient",
"description": {"xml": ""}
},
{
"name": "oldMobileClient",
"description": {"xml": ""}
},
{
"name": "mobileClient",
"description": {"xml": ""}
},
{
"name": "cloudServer",
"description": {"xml": ""}
},
{
"name": "oldServer",
"description": {"xml": ""}
}
]
},
{
"name": "peer.dataFormat",
"description": {"xml": ""},
"optional": false
},
{
"name": "platform",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "box",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "brand",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "customization",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "publicIP",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "prematureLicenseExperationDate",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "videoWallInstanceGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "videoWallControlSession",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "hardwareIds",
"description": {"xml": ""},
"optional": false
},
{
"name": "nx1mac",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "nx1serial",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "updateStarted",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "userId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "flags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "masterCloudSync",
"description": {"xml": ""}
},
{
"name": "noStorages",
"description": {"xml": ""}
}
]
},
{
"name": "activeAnalyticsEngines",
"description": {"xml": ""},
"optional": false
},
{
"name": "prematureVideoWallLicenseExpirationDate",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveCamera",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "mac",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "physicalId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "manuallyAdded",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "model",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "groupId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "groupName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "statusFlags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "vendor",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "saveCameraUserAttributes",
"description": {"xml": "Save additional camera attributes for a single camera. If it is needed to change only a\nsubset of attributes on a given camera, \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby \nThe parameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". An example of such array can be seen in the result of\n \nThe parameters should be passed as a JSON object in POST message body with content type\n\"application/json\". An example of such object can be seen in an item of the array returned\nby Parameters should be passed as a JSON array of objects in POST\nmessage body with content type \"application/json\". Example of such object can be seen in\nthe result of GET /api/iflist function. <\/p>"},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "interfaces",
"type": "array",
"description": {"xml": "List of network interfaces settings"},
"optional": false
},
{
"name": "interfaces[].name",
"type": "string",
"description": {"xml": "Interface name."},
"optional": false
},
{
"name": "interfaces[].ipAddr",
"type": "string",
"description": {"xml": "IP address with dot-separated decimal components."},
"optional": false
},
{
"name": "interfaces[].netMask",
"type": "string",
"description": {"xml": "Network mask with dot-separated decimal components."},
"optional": false
},
{
"name": "interfaces[].mac",
"type": "string",
"description": {"xml": "MAC address with colon-separated upper-case hex components."},
"optional": false
},
{
"name": "interfaces[].gateway",
"type": "string",
"description": {"xml": "IP address of the gateway with dot-separated decimal components. Can\nbe empty."},
"optional": false
},
{
"name": "interfaces[].dhcp",
"type": "boolean",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": "DHCP is not used, IP address and other parameters should be specified in\nthe respective JSON fields."}
},
{
"name": "true",
"description": {"xml": "IP address and other parameters assigned via DHCP, the respective JSON\nfields can be empty."}
}
]
},
{
"name": "interfaces[].extraParams",
"type": "object",
"description": {"xml": "JSON object with data in the internal format."},
"optional": false
},
{
"name": "interfaces[].dns_servers",
"type": "string",
"description": {"xml": "Space-separated list of IP addresses with dot-separated decimal\ncomponents."},
"optional": false
}
],
"result": {}
},
{
"name": "iflist",
"description": {"xml": "Get network settings (list of interfaces) for the server. Can be called only if server flags\ninclude \"SF_IfListCtrl\" (server flags can be obtained via /ec2/getMediaServersEx in\n\"flags\" field)."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "List of objects with interface parameters."},
"type": "object",
"params": [
{
"name": "name",
"type": "string",
"description": {"xml": "Interface name."}
},
{
"name": "ipAddr",
"type": "string",
"description": {"xml": "IP address with dot-separated decimal components."}
},
{
"name": "netMask",
"type": "string",
"description": {"xml": "Network mask with dot-separated decimal components."}
},
{
"name": "mac",
"type": "string",
"description": {"xml": "MAC address with colon-separated upper-case hex components."}
},
{
"name": "gateway",
"type": "string",
"description": {"xml": "IP address of the gateway with dot-separated decimal components.\nCan be empty."}
},
{
"name": "dhcp",
"type": "boolean",
"description": {"xml": ""},
"values": [
{
"name": "false",
"description": {"xml": "DHCP is not used, IP address and other parameters should be specified\nin the respective JSON fields."}
},
{
"name": "true",
"description": {"xml": "IP address and other parameters assigned via DHCP, the respective JSON\nfields can be empty."}
}
]
},
{
"name": "extraParams",
"type": "object",
"description": {"xml": "JSON object with data in the internal format."}
},
{
"name": "dns_servers",
"type": "string",
"description": {"xml": "Space-separated list of IP addresses with dot-separated\ndecimal components."}
}
]
}
},
{
"proprietary": true,
"name": "iniConfig",
"description": {"xml": "Intended for debugging and experimenting. Retrieves the current state of ini-config\nmechanism, including the directory used for .ini files. Note that this directory is also\nused for other mechanisms like Output Redirector and log configuration snippets."},
"method": "GET",
"params": [],
"result": {}
},
{
"name": "installUpdate",
"description": {"xml": "Initiates update package installation."},
"method": "POST",
"params": [],
"result": {}
},
{
"name": "logLevel",
"description": {"xml": "Get or set server log level."},
"method": "GET",
"params": [
{
"name": "name",
"type": "integer",
"description": {"xml": "Log name."},
"optional": true,
"values": [
{
"name": "MAIN",
"description": {"xml": "Main server log."}
},
{
"name": "HTTP",
"description": {"xml": "HTTP log."}
},
{
"name": "EC2_TRAN",
"description": {"xml": "Transaction log."}
},
{
"name": "HWID",
"description": {"xml": "Service log."}
},
{
"name": "PERMISSIONS",
"description": {"xml": "Permissions log."}
}
]
},
{
"name": "id",
"type": "integer",
"description": {"xml": "Log id. Deprecated, use name instead."},
"optional": true,
"values": [
{
"name": "0",
"description": {"xml": "Main server log."}
},
{
"name": "1",
"description": {"xml": "HTTP log."}
},
{
"name": "2",
"description": {"xml": "Service log."}
},
{
"name": "3",
"description": {"xml": "Transaction log."}
},
{
"name": "4",
"description": {"xml": "Permissions log."}
}
]
},
{
"name": "value",
"type": "enum",
"description": {"xml": "Target value for log level. More detailed level includes all less\ndetailed levels. This parameter is ignored if neither name nor id is specified."},
"optional": true,
"values": [
{
"name": "None",
"description": {"xml": "Disable log."}
},
{
"name": "Always",
"description": {"xml": "Log only the most important messages."}
},
{
"name": "Error",
"description": {"xml": "Log errors."}
},
{
"name": "Warning",
"description": {"xml": "Log warnings."}
},
{
"name": "Info",
"description": {"xml": "Log information messages."}
},
{
"name": "Debug",
"description": {"xml": "Log debug messages."}
},
{
"name": "Debug2",
"description": {"xml": "Log additional debug messages."}
}
]
}
],
"result": {}
},
{
"proprietary": true,
"name": "manualCamera/add",
"description": {"xml": "Manually add camera(s). If several cameras are added, parameters \"url\" and \"manufacturer\"\nmust be defined several times with incrementing suffix \"0\", \"1\", etc."},
"method": "GET",
"params": [
{
"name": "url0",
"type": "string",
"description": {"xml": "Camera url, can be obtained from \"reply.cameras[].url\" field in the\nresult of /api/manualCamera/status."},
"optional": false
},
{
"name": "uniqueId0",
"type": "string",
"description": {"xml": "Camera physical id, can be obtained from \"reply.cameras[].uniqueId\"\nfield in the result of /api/manualCamera/status."},
"optional": false
},
{
"name": "manufacturer0",
"type": "string",
"description": {"xml": "Camera manufacturer, can be obtained from\n\"reply.cameras[].manufacturer\" field in the result of /api/manualCamera/status."},
"optional": false
},
{
"name": "user",
"type": "string",
"description": {"xml": "Username for the cameras."},
"optional": true
},
{
"name": "password",
"type": "string",
"description": {"xml": "Password for the cameras."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "manualCamera/add",
"description": {"xml": "Manually add camera(s).\n \nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object:\n \n Parameters should be passed as a JSON object in POST message body with\n content type \"application/json\". Example of such object:\nGET /ec2/getLicenses<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "key",
"type": "string",
"description": {"xml": "License serial number. Corresponds to the License Block SERIAL property."},
"optional": false
},
{
"name": "licenseBlock",
"type": "string",
"description": {"xml": "License Block - a plain-text \"property\" file (with \"key=value\" lines). It is generated by\nthe License Server, is bound to the particular Server (via Hardware Id), and is signed\n(the signature is stored in one of the properties). The License Block contains the following\nproperties (keys):\n
\n
NAME<\/code> VMS product name.<\/li>\n
SERIAL<\/code> Serial number of the License.<\/li>\n
HWID<\/code> Hardware Id of the Server to which the License is bound.<\/li>\n
COUNT<\/code> Number of cameras which are covered by the License.<\/li>\n
CLASS<\/code> Type of the License. Defines which VMS platforms can use the License,\n and for what kind of camera-like devices.<\/li>\n
VERSION<\/code> VMS version.<\/li>\n
BRAND<\/code> VMS product name.<\/li>\n
EXPIRATION<\/code> Expiration date in format
YYYY-MM-DD HH:MM:SS<\/code>.\n Optional; if omitted, the License lifetime is unlimited.<\/li>\n
SIGNATURE2<\/code> Digital signature created by the License Server.<\/li>\n
COMPANY<\/code> VMS vendor.<\/li>\n<\/ul>\nAdditionally, other proprietary keys may appear in the License Block."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "addStoredFile",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "path",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "data",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "analyticsEngineSettings",
"description": {"xml": "Return values of settings of the specified Engine."},
"method": "GET",
"params": [{
"name": "analyticsEngineId",
"type": "string",
"description": {"xml": "Id of an Analytics Engine."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with Engine settings model and values."}
},
{
"name": "reply.settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."}
},
{
"name": "reply.settingsModel",
"description": {"xml": "Model of settings containing setting names, types and value restrictions."}
},
{
"name": "reply.settingsModelId",
"type": "uuid",
"description": {"xml": "Current id of the Settings Model. Such ids are used to check that values match the Model."}
},
{
"name": "reply.settingsErrors",
"description": {"xml": "Name-value map with errors that occurred while performing the current settings operation."}
}
]
}
},
{
"name": "analyticsEngineSettings",
"description": {"xml": "Applies passed settings values to the specified Analytics Engine."},
"method": "POST",
"params": [
{
"name": "analyticsEngineId",
"type": "uuid",
"description": {"xml": "Unique id of an Analytics Engine."},
"optional": false
},
{
"name": "settingsModelId",
"type": "uuid",
"description": {"xml": "Id of the Settings Model the values supposed to be applied to."},
"optional": false
},
{
"name": "settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with Engine settings model and values that the Engine returns\nafter the values have been supplied."}
},
{
"name": "reply.settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."}
},
{
"name": "reply.settingsModel",
"description": {"xml": "Model of settings containing setting names, types and value restrictions."}
},
{
"name": "reply.settingsModelId",
"type": "uuid",
"description": {"xml": "Current id of the Settings Model. Such ids are used to check that values match the Model."}
},
{
"name": "reply.settingsErrors",
"description": {"xml": "Name-value map with errors that occurred while performing the current settings operation."}
}
]
}
},
{
"name": "analyticsLookupObjectTracks",
"description": {"xml": "Search analytics DB for objects that match filter specified."},
"method": "GET",
"params": [
{
"name": "deviceId",
"type": "string",
"description": {"xml": "device id (can be obtained from \"id\" field via\n/ec2/getCamerasEx), or MAC address (not supported for\ncertain cameras), or \"Logical Id\"."},
"optional": true
},
{
"name": "objectTypeId",
"type": "string",
"description": {"xml": "Analytics Object Type id."},
"optional": true
},
{
"name": "objectTrackId",
"type": "string",
"description": {"xml": "Analytics Object Track id."},
"optional": true
},
{
"name": "startTime",
"type": "integer",
"description": {"xml": "Milliseconds since epoch (1970-01-01 00:00, UTC)."},
"optional": true
},
{
"name": "endTime",
"type": "integer",
"description": {"xml": "Milliseconds since epoch (1970-01-01 00:00, UTC)."},
"optional": true
},
{
"name": "x1",
"type": "float",
"description": {"xml": "Top left \"x\" coordinate of picture bounding box to search within. In\nrange [0.0; 1.0]."},
"optional": true
},
{
"name": "y1",
"type": "float",
"description": {"xml": "Top left \"y\" coordinate of picture bounding box to search within. In\nrange [0.0; 1.0]."},
"optional": true
},
{
"name": "x2",
"type": "float",
"description": {"xml": "Bottom right \"x\" coordinate of picture bounding box to search within.\nIn range [0.0; 1.0]."},
"optional": true
},
{
"name": "y2",
"type": "float",
"description": {"xml": "Bottom right \"y\" coordinate of picture bounding box to search within.\nIn range [0.0; 1.0]."},
"optional": true
},
{
"name": "freeText",
"type": "string",
"description": {"xml": "Text to match within Object Track properties."},
"optional": true
},
{
"name": "limit",
"type": "integer",
"description": {"xml": "Maximum number of Object Tracks to return."},
"optional": true
},
{
"name": "needFullTrack",
"type": "boolean",
"description": {"xml": "Whether to select track details data. This is a heavy\noperation and makes the request much slower. For performance reason this parameter\nis ignored in case the parameter 'objectTrackId' is not present in the request."},
"optional": true
},
{
"name": "::enum",
"description": {"xml": "sortOrder Sort order of Object Tracks by a Track start timestamp."},
"optional": true,
"values": [
{
"name": "asc",
"description": {"xml": "Ascending order."}
},
{
"name": "desc",
"description": {"xml": "Descending order."}
}
]
},
{
"name": "isLocal",
"description": {"xml": "If \"false\" then request is forwarded to every other online Server and\nresults are merged. Otherwise, request is processed on receiving Server only."},
"optional": true
}
],
"result": {"caption": {"xml": "JSON data."}}
},
{
"name": "bookmarks",
"description": {"xml": "Read bookmarks using the specified parameters."},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "startTime",
"type": "string",
"description": {"xml": "Start time of the interval with bookmarks (in milliseconds\nsince epoch). Default value is 0. Should be less than endTime."},
"optional": true
},
{
"name": "endTime",
"type": "string",
"description": {"xml": "End time of the interval with bookmarks (in milliseconds since\nepoch). Default value is the current time. Should be greater than startTime."},
"optional": true
},
{
"name": "sortBy",
"type": "enum",
"description": {"xml": "Field to sort the results by. Default value is \"startTime\"."},
"optional": true,
"values": [
{
"name": "name",
"description": {"xml": "Sort bookmarks by name."}
},
{
"name": "startTime",
"description": {"xml": "Sort bookmarks by start time."}
},
{
"name": "duration",
"description": {"xml": "Sort bookmarks by duration."}
},
{
"name": "cameraName",
"description": {"xml": "Sort bookmarks by camera name."}
}
]
},
{
"name": "sortOrder",
"type": "enum",
"description": {"xml": "Sort order. Default order is ascending."},
"optional": true,
"values": [
{
"name": "asc",
"description": {"xml": "Ascending sort order."}
},
{
"name": "desc",
"description": {"xml": "Descending sort order."}
}
]
},
{
"name": "limit",
"type": "integer",
"description": {"xml": "Maximum number of bookmarks to return. Unlimited by default."},
"optional": true
},
{
"name": "filter",
"type": "string",
"description": {"xml": "Text-search filter string."},
"optional": true
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"name": "bookmarks/add",
"description": {"xml": "Add a bookmark to the target server."},
"method": "GET",
"params": [
{
"name": "guid",
"type": "uuid",
"description": {"xml": "Identifier of the bookmark."},
"optional": false
},
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Caption of the bookmark."},
"optional": false
},
{
"name": "description",
"type": "string",
"description": {"xml": "Details of the bookmark."},
"optional": true
},
{
"proprietary": true,
"name": "timeout",
"type": "integer",
"description": {"xml": "Time during which the recorded period should be preserved\n(in milliseconds)."},
"optional": true
},
{
"name": "startTime",
"type": "integer",
"description": {"xml": "Start time of the bookmark (in milliseconds since epoch)."},
"optional": false
},
{
"name": "duration",
"type": "integer",
"description": {"xml": "Length of the bookmark (in milliseconds)."},
"optional": false
},
{
"name": "tag",
"type": "string",
"description": {"xml": "Applied tag. Several \"tag\" parameters can be specified to set\nmultiple tags."},
"optional": true
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"name": "bookmarks/delete",
"description": {"xml": "Remove a bookmark with the specified identifier."},
"method": "GET",
"params": [
{
"name": "guid",
"type": "uuid",
"description": {"xml": "Identifier of the bookmark."},
"optional": false
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"name": "bookmarks/tags",
"description": {"xml": "Return currently used tags."},
"method": "GET",
"params": [
{
"name": "limit",
"type": "integer",
"description": {"xml": "Maximum number of tags to return."},
"optional": true
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"name": "bookmarks/update",
"description": {"xml": "Update information for a bookmark."},
"method": "GET",
"params": [
{
"name": "guid",
"type": "uuid",
"description": {"xml": "Identifier of the bookmark."},
"optional": false
},
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Caption of the bookmark."},
"optional": false
},
{
"name": "description",
"type": "string",
"description": {"xml": "Details of the bookmark."},
"optional": true
},
{
"proprietary": true,
"name": "timeout",
"type": "integer",
"description": {"xml": "Time during which the recorded period should be preserved\n(in milliseconds)."},
"optional": true
},
{
"name": "startTime",
"type": "integer",
"description": {"xml": "Start time of the bookmark (in milliseconds since epoch)."},
"optional": false
},
{
"name": "duration",
"type": "integer",
"description": {"xml": "Length of the bookmark (in milliseconds)."},
"optional": false
},
{
"name": "tag",
"type": "string",
"description": {"xml": "Applied tag. Several \"tag\" parameters can be specified to set\nmultiple tags."},
"optional": true
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"proprietary": true,
"name": "broadcastAction",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "actionType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "toggleState",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "receivedFromRemoteHost",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "resourceIds",
"type": "uuidArray",
"description": {"xml": ""},
"optional": false
},
{
"name": "params",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "runtimeParams",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ruleId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "aggregationCount",
"type": "integer",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "cameraHistory",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "cameraThumbnail",
"description": {"xml": "Get the static image from the camera."},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "time",
"type": "string",
"description": {"xml": "Timestamp of the requested image (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected).
\nThe special value \"now\" requires to retrieve the thumbnail only from the live stream.\n
The special value \"latest\", which is the default value, requires to retrieve\nthumbnail from the live stream if possible, otherwise the latest one from the archive.\n
Note: Extraction from the archive can be quite slow depending on the place where the\nframe is stored."},
"optional": true
},
{
"name": "rotate",
"type": "integer",
"description": {"xml": "Image orientation. Can be 0, 90, 180 or 270 degrees. If the\nparameter is absent or equals -1, the image will be rotated as defined in the camera\nsettings."},
"optional": true
},
{
"name": "height",
"type": "integer",
"description": {"xml": "Desired image height. Should be not less than 128, or equal to\n-1 (the default value) which implies the original frame size, and in this case the width\nshould also be omitted or set to -1."},
"optional": true
},
{
"name": "width",
"type": "integer",
"description": {"xml": "Desired image width. Should be not less than 128, or equal to -1\n(the default value) which implies auto-sizing: if the height is specified, the width\nwill be calculated based on the aspect ratio, otherwise, the original frame size will be\nused."},
"optional": true
},
{
"name": "imageFormat",
"type": "enum",
"description": {"xml": "Format of the requested image. Default value is \"JpgFormat\"."},
"optional": true,
"values": [
{
"name": "png",
"description": {"xml": "PNG"}
},
{
"name": "jpg",
"description": {"xml": "JPEG"}
},
{
"name": "tif",
"description": {"xml": "TIFF"}
},
{
"name": "raw",
"description": {"xml": "Raw video frame. Makes the request much more lightweight for Edge servers."}
}
]
},
{
"name": "method",
"type": "enum",
"description": {"xml": "Getting a thumbnail at the exact timestamp is costly, so, it\ncan be rounded to the nearest keyframe, thus, the default value is \"after\"."},
"optional": true,
"values": [
{
"name": "before",
"description": {"xml": "Get the thumbnail from the nearest keyframe before the given time."}
},
{
"name": "precise",
"description": {"xml": "Get the thumbnail as near to given time as possible."}
},
{
"name": "after",
"description": {"xml": "Get the thumbnail from the nearest keyframe after the given time."}
}
]
},
{
"name": "streamSelectionMode",
"type": "enum",
"description": {"xml": "Policy for stream selection. Default value is \"auto\"."},
"optional": true,
"values": [
{
"name": "auto",
"description": {"xml": "Chooses the most suitable stream automatically."}
},
{
"name": "forcedPrimary",
"description": {"xml": "Primary stream is forced. Secondary stream will be used if the\nprimary one is not available."}
},
{
"name": "forcedSecondary",
"description": {"xml": "Secondary stream is forced. Primary stream will be used if the\nsecondary one is not available."}
},
{
"name": "sameAsMotion",
"description": {"xml": "Use the same stream as the one used by software motion detection."}
}
]
},
{
"name": "aspectRatio",
"type": "enum",
"description": {"xml": "Allows to avoid scaling the image to the aspect ratio from\ncamera settings."},
"optional": true,
"values": [
{
"name": "auto",
"description": {"xml": "Default value. Use aspect ratio from camera settings (if any)."}
},
{
"name": "source",
"description": {"xml": "Use the source frame aspect ratio, despite the value in camera settings."}
}
]
},
{
"name": "ignoreExternalArchive",
"type": "option",
"description": {"xml": "If present and \"time\" parameter has value\n\"latest\", the image will not be downloaded from archive of the dts-based devices."},
"optional": true
},
{
"name": "tolerant",
"type": "option",
"description": {"xml": "If present and \"time\" parameter has some time value\nand there is no archive present at that time value, the next or previous available image\n(in accordance with the \"method\" parameter) will be obtained."},
"optional": true
},
{
"name": "crop",
"type": "string",
"description": {"xml": "Apply cropping to the source image. Parameter defines rect in range [0..1].\nFormat: 'left,top,widthxheight'. Example: '0.5,0.4,0.25x0.3'."},
"optional": true
},
{
"proprietary": true,
"name": "local",
"type": "option",
"description": {"xml": "If present, the request should not be redirected to another\nserver."},
"optional": true
},
{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
},
{
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}
],
"result": {}
},
{
"name": "cancelUpdate",
"description": {"xml": "Puts a system in the 'Idle' state update-wise. This means that the current update\nmanifest is cleared and all downloads are cancelled."},
"method": "POST",
"params": [],
"result": {}
},
{
"proprietary": true,
"name": "changeSystemId",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "systemId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "sysIdTime",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "tranLogTime",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "connect",
"description": {"xml": ""},
"method": "GET",
"params": [
{
"name": "login",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "passwordHash",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo",
"type": "object",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.skin",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.fullVersion",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.systemInfo",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.systemRuntime",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.cpuArchitecture",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.cpuModelName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.physicalMemory",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLVersion",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLVendor",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLRenderer",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {"type": "object"}
},
{
"name": "deviceAnalyticsSettings",
"description": {"xml": "Return settings values of the specified DeviceAgent (which is a device-engine pair)."},
"method": "GET",
"params": [
{
"name": "analyticsEngineId",
"type": "string",
"description": {"xml": "Id of an Analytics Engine."},
"optional": false
},
{
"name": "deviceId",
"type": "string",
"description": {"xml": "Id of a device."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with DeviceAgent settings model and values."}
},
{
"name": "reply.analyzedStreamIndex",
"type": "enum",
"description": {"xml": "Index of the stream that should be used for analytics purposes."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "primary",
"description": {"xml": ""}
},
{
"name": "secondary",
"description": {"xml": ""}
}
]
},
{
"name": "reply.disableStreamSelection",
"type": "boolean",
"description": {"xml": "Indicates whether the User is allowed to select which stream (primary or secondary) has to\nbe passed to the Plugin. If true, the analyzed stream is selected according to the Plugin\npreferences (if any) or defaults to the primary stream."}
},
{
"name": "reply.settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."}
},
{
"name": "reply.settingsModel",
"description": {"xml": "Model of settings containing setting names, types and value restrictions."}
},
{
"name": "reply.settingsErrors",
"description": {"xml": "Name-value map with errors that occurred while performing the current settings operation."}
},
{
"name": "reply.settingsModelId",
"type": "uuid",
"description": {"xml": "Current id of the Settings Model. Such ids are used to check that values match the Model."}
}
]
}
},
{
"name": "deviceAnalyticsSettings",
"description": {"xml": "Applies passed settings values to the corresponding DeviceAgent (which is a device-engine\npair)."},
"method": "POST",
"params": [
{
"name": "deviceId",
"type": "string",
"description": {"xml": "Id of Device."},
"optional": false
},
{
"name": "analyticsEngineId",
"type": "uuid",
"description": {"xml": "Unique id of an Analytics Engine."},
"optional": false
},
{
"name": "analyzedStreamIndex",
"type": "enum",
"description": {"xml": "Index of the stream that should be used for analytics purposes."},
"optional": false,
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "primary",
"description": {"xml": ""}
},
{
"name": "secondary",
"description": {"xml": ""}
}
]
},
{
"name": "settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."},
"optional": false
},
{
"name": "settingsModelId",
"type": "uuid",
"description": {"xml": "Id of the Settings Model the values supposed to be applied to."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with DeviceAgent settings model and values that the\nDeviceAgent returns after the values have been applied."}
},
{
"name": "reply.analyzedStreamIndex",
"type": "enum",
"description": {"xml": "Index of the stream that should be used for analytics purposes."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "primary",
"description": {"xml": ""}
},
{
"name": "secondary",
"description": {"xml": ""}
}
]
},
{
"name": "reply.disableStreamSelection",
"type": "boolean",
"description": {"xml": "Indicates whether the User is allowed to select which stream (primary or secondary) has to\nbe passed to the Plugin. If true, the analyzed stream is selected according to the Plugin\npreferences (if any) or defaults to the primary stream."}
},
{
"name": "reply.settingsValues",
"description": {"xml": "Name-value map with setting values, using JSON types corresponding to each setting type."}
},
{
"name": "reply.settingsModel",
"description": {"xml": "Model of settings containing setting names, types and value restrictions."}
},
{
"name": "reply.settingsErrors",
"description": {"xml": "Name-value map with errors that occurred while performing the current settings operation."}
},
{
"name": "reply.settingsModelId",
"type": "uuid",
"description": {"xml": "Current id of the Settings Model. Such ids are used to check that values match the Model."}
}
]
}
},
{
"proprietary": true,
"name": "discoverPeer",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "discoveredServerChanged",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "type",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "customization",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "brand",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "version",
"description": {"xml": ""},
"optional": false
},
{
"name": "osInfo",
"description": {"xml": ""},
"optional": false
},
{
"name": "systemName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "port",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "sslAllowed",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "protoVersion",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "runtimeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "serverFlags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "realm",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ecDbReadOnly",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudSystemId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudPortalUrl",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudHost",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "localSystemId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "hwPlatform",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "unknown",
"description": {"xml": ""}
},
{
"name": "raspberryPi",
"description": {"xml": ""}
},
{
"name": "bananaPi",
"description": {"xml": ""}
}
]
},
{
"name": "remoteAddresses",
"description": {"xml": ""},
"optional": false
},
{
"name": "status",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
}
],
"result": {}
},
{
"proprietary": true,
"name": "discoveredServersList",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "type",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "customization",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "brand",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "version",
"description": {"xml": ""},
"optional": false
},
{
"name": "osInfo",
"description": {"xml": ""},
"optional": false
},
{
"name": "systemName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "port",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "sslAllowed",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "protoVersion",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "runtimeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "serverFlags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "realm",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ecDbReadOnly",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudSystemId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudPortalUrl",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "cloudHost",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "localSystemId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "hwPlatform",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "unknown",
"description": {"xml": ""}
},
{
"name": "raspberryPi",
"description": {"xml": ""}
},
{
"name": "bananaPi",
"description": {"xml": ""}
}
]
},
{
"name": "remoteAddresses",
"description": {"xml": ""},
"optional": false
},
{
"name": "status",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
}
],
"result": {}
},
{
"name": "dumpDatabase",
"description": {"xml": "Back up the System database (shared among all Servers)."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "Object in the requested format, containing the binary database dump."},
"type": "object",
"params": [{
"name": "data",
"type": "string",
"description": {"xml": "Binary database dump, encoded in Base64."}
}]
}
},
{
"proprietary": true,
"name": "dumpDatabaseToFile",
"description": {"xml": "Back up the System database (shared among all Servers) to the specified file."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "path",
"type": "string",
"description": {"xml": "Path to a file to be created on the current Server's filesystem."},
"optional": false
}
],
"result": {
"caption": {"xml": "Object in the requested format, describing the created file."},
"type": "object",
"params": [{
"name": "size",
"type": "string",
"description": {"xml": "Binary database dump file size, in bytes."}
}]
}
},
{
"proprietary": true,
"name": "execAction",
"description": {"xml": "Execute an action. Action data should be in the internal binary format. This method is going\nto be refactored in next versions."},
"method": "POST",
"params": [
{
"name": "actionType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "toggleState",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "receivedFromRemoteHost",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "resourceIds",
"type": "uuidArray",
"description": {"xml": ""},
"optional": false
},
{
"name": "params",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "runtimeParams",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ruleId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "aggregationCount",
"type": "integer",
"description": {"xml": ""},
"optional": false
}
],
"result": {"caption": {"xml": "XML with the \"OK\" message or an error code."}}
},
{
"name": "finishUpdate",
"description": {"xml": "Puts a system in the 'Update Finished' state."},
"method": "POST",
"params": [{
"name": "ignorePendingPeers",
"type": "option",
"description": {"xml": "Force an update process completion regardless actual\npeers state."},
"optional": true
}],
"result": {}
},
{
"name": "forcePrimaryTimeServer",
"description": {"xml": "Set primary time server. Requires a JSON object with optional \"id\" field in the message\nbody. If \"id\" field is missing, the primary time server is turned off."},
"permissions": "Owner.",
"method": "POST",
"params": [],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "getAccessRights",
"description": {"xml": "Retrieve the list of ids of accessible Resources for each user in the System."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of access rights data objects in the requested format."},
"type": "array",
"params": [
{
"name": "userId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "resourceIds",
"type": "uuidArray",
"description": {"xml": ""}
}
]
}
},
{
"name": "getAnalyticsEngines",
"description": {"xml": ""},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of analytics engines in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "getAnalyticsPlugins",
"description": {"xml": ""},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of analytics plugins in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "getCameraHistoryItems",
"description": {"xml": "Read information about which servers have archive for which camera.\nThis information is used for archive playback if camera has been moved from\none server to another.\nThere is no detail information about archive time periods.\nTo obtain detail information please use method /ec2/recordedTimePeriods."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of camera history items in the requested format."},
"type": "array",
"params": [
{
"name": "serverGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "archivedCameras",
"type": "uuidArray",
"description": {"xml": ""}
}
]
}
},
{
"name": "getCameraUserAttributesList",
"description": {"xml": "Read additional camera attributes."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\"\nfield via /ec2/getCamerasEx) or MAC address (not supported for certain cameras). If\nomitted, return data for all cameras."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of objects with additional camera attributes for all cameras, in the requested\nformat. If JSON was requested, each object in this array has the same structure as an\nobject supplied to /ec2/saveCameraUserAttributes and as an item of the array supplied to\n/ec2/saveCameraUserAttributesList."},
"type": "array",
"params": [
{
"name": "cameraId",
"type": "uuid",
"description": {"xml": "Camera unique id."}
},
{
"name": "cameraName",
"type": "string",
"description": {"xml": "Camera name."}
},
{
"name": "userDefinedGroupName",
"type": "string",
"description": {"xml": "Name of the user-defined camera group."}
},
{
"name": "scheduleEnabled",
"type": "boolean",
"description": {"xml": "Whether recording to the archive is enabled for the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "licenseUsed",
"type": "boolean",
"description": {"xml": "Whether the license is used for the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "motionType",
"type": "enum",
"description": {"xml": "Type of motion detection method."},
"values": [
{
"name": "MT_Default",
"description": {"xml": "Use default method."}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": "Use motion detection grid implemented by the camera."}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": "Use motion detection grid implemented by the server."}
},
{
"name": "MT_MotionWindow",
"description": {"xml": "Use motion detection window implemented by the camera."}
},
{
"name": "MT_NoMotion",
"description": {"xml": "Do not perform motion detection."}
}
]
},
{
"name": "motionMask",
"type": "string",
"description": {"xml": "List of motion detection areas and their\nsensitivity. The format is proprietary and is likely to change in\nfuture API versions. Currently, this string defines several rectangles separated\nwith \":\", each rectangle is described by 5 comma-separated numbers: sensitivity,\nx and y (for left top corner), width, height."}
},
{
"name": "scheduleTasks",
"type": "array",
"description": {"xml": "List of scheduleTask objects which define the camera recording\nschedule."}
},
{
"name": "scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds\npassed from 00:00:00)."}
},
{
"name": "scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": "Time of day when the backup ends (in seconds passed\nfrom 00:00:00)."}
},
{
"name": "scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "RT_Always",
"description": {"xml": "Record always."}
},
{
"name": "RT_MotionOnly",
"description": {"xml": "Record only when the motion is detected."}
},
{
"name": "RT_Never",
"description": {"xml": "Never record."}
},
{
"name": "RT_MotionAndLowQuality",
"description": {"xml": "Always record low quality\nstream, and record high quality stream on motion."}
}
]
},
{
"name": "scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": "Weekday for the recording task."},
"values": [
{
"name": "1",
"description": {"xml": "Monday"}
},
{
"name": "2",
"description": {"xml": "Tuesday"}
},
{
"name": "3",
"description": {"xml": "Wednesday"}
},
{
"name": "4",
"description": {"xml": "Thursday"}
},
{
"name": "5",
"description": {"xml": "Friday"}
},
{
"name": "6",
"description": {"xml": "Saturday"}
},
{
"name": "7",
"description": {"xml": "Sunday"}
}
]
},
{
"name": "scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": "Quality of the recording."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
}
]
},
{
"name": "scheduleTasks[].fps",
"type": "integer",
"description": {"xml": "Frames per second (integer)."}
},
{
"name": "scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "audioEnabled",
"type": "boolean",
"description": {"xml": "Whether audio is enabled on the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "disableDualStreaming",
"type": "boolean",
"description": {"xml": ""},
"values": [
{
"name": "false",
"description": {"xml": "turn of dual streaming."}
},
{
"name": "true",
"description": {"xml": "enable dual streaming if it supported by camera."}
}
]
},
{
"name": "controlEnabled",
"type": "boolean",
"description": {"xml": "Whether server manages the camera (changes resolution, FPS, create\nprofiles, etc)."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams",
"type": "string",
"description": {"xml": "Image dewarping parameters.\nThe format is proprietary and is likely to change in future API\nversions."}
},
{
"name": "minArchiveDays",
"type": "integer",
"description": {"xml": "Minimum number of days to keep the archive for.\nIf the value is less than or equal zero, it is not used."}
},
{
"name": "maxArchiveDays",
"type": "integer",
"description": {"xml": "Maximum number of days to keep the archive for.\nIf the value is less than or equal zero, it is not used."}
},
{
"name": "preferredServerId",
"type": "uuid",
"description": {"xml": "Unique id of a server which has the highest priority of hosting\nthe camera for failover (if the current server fails)."}
},
{
"name": "failoverPriority",
"type": "enum",
"description": {"xml": "Priority for the camera to be moved\nto another server for failover (if the current server fails)."},
"values": [
{
"name": "FP_Never",
"description": {"xml": "Will never be moved to another server."}
},
{
"name": "FP_Low",
"description": {"xml": "Low priority against other cameras."}
},
{
"name": "FP_Medium",
"description": {"xml": "Medium priority against other cameras."}
},
{
"name": "FP_High",
"description": {"xml": "High priority against other cameras."}
}
]
},
{
"name": "backupType",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining backup options."},
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": "Backup is disabled."}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": "Backup is in high quality."}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": "Backup is in low quality."}
},
{
"name": "CameraBackup_Both",
"description": {"xml": "Equivalent of \"CameraBackup_HighQuality|CameraBackup_LowQuality\"."}
},
{
"name": "CameraBackup_Default",
"description": {"xml": "A default value is used for backup options."}
}
]
},
{
"name": "logicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "recordBeforeMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds before a motion event to record the\nvideo for."}
},
{
"name": "recordAfterMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds after a motion event to record the\nvideo for."}
}
]
}
},
{
"proprietary": true,
"name": "getCameras",
"description": {"xml": ""},
"method": "GET",
"params": [],
"result": {
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mac",
"type": "string",
"description": {"xml": ""}
},
{
"name": "physicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "manuallyAdded",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "model",
"type": "string",
"description": {"xml": ""}
},
{
"name": "groupId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "groupName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "statusFlags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "vendor",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"name": "getCamerasEx",
"description": {"xml": "Retrieve the list of Cameras in the System."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\"\nfield via /ec2/getCamerasEx) or MAC address (not\nsupported for certain cameras). If omitted, return data for all cameras."},
"optional": true
},
{
"name": "showDesktopCameras",
"type": "boolean",
"description": {"xml": "Whether desktop cameras should be listed. False by\ndefault."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of camera information objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Camera unique id."}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Unique id of the server hosting the camera."}
},
{
"name": "name",
"type": "string",
"description": {"xml": "Camera name."}
},
{
"name": "url",
"type": "string",
"description": {"xml": "Camera IP address, or a complete HTTP URL if the camera was added manually.\nAlso, for multichannel encoders a complete URL is always used."}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": "Unique id of the camera type. A camera type can describe predefined\ninformation such as camera maximum resolution, FPS, etc. Detailed type information\ncan be obtained via GET /ec2/getResourceTypes request."}
},
{
"name": "mac",
"type": "string",
"description": {"xml": "Camera MAC address."}
},
{
"name": "physicalId",
"type": "string",
"description": {"xml": "Camera unique identifier. This identifier can used in some requests\nrelated to a camera."}
},
{
"name": "manuallyAdded",
"type": "boolean",
"description": {"xml": "Whether the user added the camera manually."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "model",
"type": "string",
"description": {"xml": "Camera model."}
},
{
"name": "groupId",
"type": "string",
"description": {"xml": "Internal group identifier. It is used for grouping channels of\nmulti-channel cameras together."}
},
{
"name": "groupName",
"type": "string",
"description": {"xml": "Group name. This name can be changed by users."}
},
{
"name": "statusFlags",
"type": "flags",
"description": {"xml": "Usually this field is zero. Non-zero value indicates that the camera\nis causing a lot of network issues."},
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "vendor",
"type": "string",
"description": {"xml": "Camera manufacturer."}
},
{
"name": "cameraId",
"type": "uuid",
"description": {"xml": "Camera unique id. If such object exists, omitted fields will not be\n changed."}
},
{
"name": "cameraName",
"type": "string",
"description": {"xml": "Camera name."}
},
{
"name": "userDefinedGroupName",
"type": "string",
"description": {"xml": "Name of the user-defined camera group."}
},
{
"name": "scheduleEnabled",
"type": "boolean",
"description": {"xml": "Whether recording to the archive is enabled for the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "licenseUsed",
"type": "boolean",
"description": {"xml": "Whether the license is used for the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "motionType",
"type": "enum",
"description": {"xml": "Type of motion detection method."},
"values": [
{
"name": "MT_Default",
"description": {"xml": "Use default method."}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": "Use motion detection grid implemented by the camera."}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": "Use motion detection grid implemented by the server."}
},
{
"name": "MT_MotionWindow",
"description": {"xml": "Use motion detection window implemented by the camera."}
},
{
"name": "MT_NoMotion",
"description": {"xml": "Do not perform motion detection."}
}
]
},
{
"name": "motionMask",
"type": "string",
"description": {"xml": "List of motion detection areas and their\nsensitivity. The format is proprietary and is likely to change in\nfuture API versions. Currently, this string defines several rectangles separated\nwith \":\", each rectangle is described by 5 comma-separated numbers: sensitivity,\nx and y (for the left top corner), width, height."}
},
{
"name": "scheduleTasks",
"type": "array",
"description": {"xml": "List of scheduleTask objects which define the camera recording\nschedule."}
},
{
"name": "scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds\npassed from 00:00:00)."}
},
{
"name": "scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": "Time of day when the backup ends (in seconds passed\nfrom 00:00:00)."}
},
{
"name": "scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "RT_Always",
"description": {"xml": "Record always."}
},
{
"name": "RT_MotionOnly",
"description": {"xml": "Record only when the motion is detected."}
},
{
"name": "RT_Never",
"description": {"xml": "Never record."}
},
{
"name": "RT_MotionAndLowQuality",
"description": {"xml": "Always record low quality\nstream, and record high quality stream on motion."}
}
]
},
{
"name": "scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": "Day of week for the recording task."},
"values": [
{
"name": "1",
"description": {"xml": "Monday"}
},
{
"name": "2",
"description": {"xml": "Tuesday"}
},
{
"name": "3",
"description": {"xml": "Wednesday"}
},
{
"name": "4",
"description": {"xml": "Thursday"}
},
{
"name": "5",
"description": {"xml": "Friday"}
},
{
"name": "6",
"description": {"xml": "Saturday"}
},
{
"name": "7",
"description": {"xml": "Sunday"}
}
]
},
{
"name": "scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": "Quality of the recording."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
}
]
},
{
"name": "scheduleTasks[].fps",
"type": "integer",
"description": {"xml": "Frames per second (integer)."}
},
{
"name": "scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "audioEnabled",
"type": "boolean",
"description": {"xml": "Whether audio is enabled on the camera."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "disableDualStreaming",
"type": "boolean",
"description": {"xml": ""},
"values": [
{
"name": "false",
"description": {"xml": "turn of dual streaming."}
},
{
"name": "true",
"description": {"xml": "enable dual streaming if it supported by camera."}
}
]
},
{
"name": "controlEnabled",
"type": "boolean",
"description": {"xml": "Whether server manages the camera (changes resolution, FPS, create\nprofiles, etc)."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams",
"type": "string",
"description": {"xml": "Image dewarping parameters.\nThe format is proprietary and is likely to change in future API\nversions."}
},
{
"name": "minArchiveDays",
"type": "integer",
"description": {"xml": "Minimum number of days to keep the archive for.\nIf the value is less than or equal to zero, it is not used."}
},
{
"name": "maxArchiveDays",
"type": "integer",
"description": {"xml": "Maximum number of days to keep the archive for.\nIf the value is less than or equal to zero, it is not used."}
},
{
"name": "preferredServerId",
"type": "uuid",
"description": {"xml": "Unique id of a server which has the highest priority of hosting\nthe camera for failover (if the current server fails)."}
},
{
"name": "failoverPriority",
"type": "enum",
"description": {"xml": "Priority for the camera to be moved\nto another server for failover (if the current server fails)."},
"values": [
{
"name": "FP_Never",
"description": {"xml": "Will never be moved to another server."}
},
{
"name": "FP_Low",
"description": {"xml": "Low priority against other cameras."}
},
{
"name": "FP_Medium",
"description": {"xml": "Medium priority against other cameras."}
},
{
"name": "FP_High",
"description": {"xml": "High priority against other cameras."}
}
]
},
{
"name": "backupType",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining backup options."},
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": "Backup is disabled."}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": "Backup is in high quality."}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": "Backup is in low quality."}
},
{
"name": "CameraBackup_Both",
"description": {"xml": "Equivalent of \"CameraBackup_HighQuality|CameraBackup_LowQuality\"."}
},
{
"name": "CameraBackup_Default",
"description": {"xml": "A default value is used for backup options."}
}
]
},
{
"name": "logicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "recordBeforeMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds before a motion event to record the\nvideo for."}
},
{
"name": "recordAfterMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds after a motion event to record the\nvideo for."}
},
{
"name": "status",
"type": "enum",
"description": {"xml": "Camera status."},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
}
]
},
{
"name": "addParams",
"type": "array",
"description": {"xml": "List of additional parameters for the camera. This list can contain\nsuch information as full ONVIF URL, camera maximum FPS, etc."}
},
{
"name": "addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "addParams[].name",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"proprietary": true,
"name": "getDiscoveryData",
"description": {"xml": ""},
"method": "GET",
"params": [],
"result": {
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "ignore",
"type": "boolean",
"description": {"xml": ""}
}
]
}
},
{
"name": "getEventRules",
"description": {"xml": "Return all event rules."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Event rule unique id. If omitted, return data for all event rules."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of event rule objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Event rule unique id."}
},
{
"name": "eventType",
"type": "enum",
"description": {"xml": "One of the fixed values."},
"values": [
{
"name": "undefinedEvent",
"description": {"xml": "Event type is not defined."}
},
{
"name": "cameraMotionEvent",
"description": {"xml": "Motion has occurred on a camera."}
},
{
"name": "cameraInputEvent",
"description": {"xml": "Camera input signal is received."}
},
{
"name": "cameraDisconnectEvent",
"description": {"xml": "Camera was disconnected."}
},
{
"name": "storageFailureEvent",
"description": {"xml": "Storage read error has occurred."}
},
{
"name": "networkIssueEvent",
"description": {"xml": "Network issue: packet lost, RTP timeout, etc."}
},
{
"name": "cameraIpConflictEvent",
"description": {"xml": "Found some cameras with same IP address."}
},
{
"name": "serverFailureEvent",
"description": {"xml": "Connection to server lost."}
},
{
"name": "serverConflictEvent",
"description": {"xml": "Two or more servers are running."}
},
{
"name": "serverStartEvent",
"description": {"xml": "Server started."}
},
{
"name": "licenseIssueEvent",
"description": {"xml": "Not enough licenses."}
},
{
"name": "backupFinishedEvent",
"description": {"xml": "Archive backup done."}
},
{
"name": "softwareTriggerEvent",
"description": {"xml": "Software triggers."}
},
{
"name": "userDefinedEvent",
"description": {"xml": "Custom event defined by the user."}
}
]
},
{
"name": "eventResourceIds",
"type": "uuidArray",
"description": {"xml": "List of event resource ids."}
},
{
"name": "eventCondition",
"type": "objectJson",
"description": {"xml": "String containing a JSON object, some fields of which\ndepend on eventType. Defines the filter for an event to make the rule applicable.\nNOTE: Other fields than the described below can be stored in this object, but they\nare not used for event matching."}
},
{
"name": "eventCondition.resourceName",
"description": {"xml": "Substring to be found in the name of the resource\n(e.g. a camera) which caused the event. Empty string matches any value."},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "networkNoFrame",
"description": {"xml": ""}
},
{
"name": "networkConnectionClosed",
"description": {"xml": ""}
},
{
"name": "networkRtpPacketLoss",
"description": {"xml": ""}
},
{
"name": "serverTerminated",
"description": {"xml": ""}
},
{
"name": "serverStarted",
"description": {"xml": ""}
},
{
"name": "storageIoError",
"description": {"xml": ""}
},
{
"name": "storageTooSlow",
"description": {"xml": ""}
},
{
"name": "storageFull",
"description": {"xml": ""}
},
{
"name": "systemStorageFull",
"description": {"xml": ""}
},
{
"name": "metadataStorageOffline",
"description": {"xml": ""}
},
{
"name": "metadataStorageFull",
"description": {"xml": ""}
},
{
"name": "licenseRemoved",
"description": {"xml": ""}
},
{
"name": "backupFailedNoBackupStorageError",
"description": {"xml": ""}
},
{
"name": "backupFailedSourceStorageError",
"description": {"xml": ""}
},
{
"name": "backupFailedSourceFileError",
"description": {"xml": ""}
},
{
"name": "backupFailedTargetFileError",
"description": {"xml": ""}
},
{
"name": "backupFailedChunkError",
"description": {"xml": ""}
},
{
"name": "backupEndOfPeriod",
"description": {"xml": ""}
},
{
"name": "backupDone",
"description": {"xml": ""}
},
{
"name": "backupCancelled",
"description": {"xml": ""}
},
{
"name": "networkNoResponseFromDevice",
"description": {"xml": ""}
}
]
},
{
"name": "eventCondition.inputPortId",
"description": {"xml": "(string) Used for input events only. Empty string\nmatches any value."}
},
{
"name": "eventCondition.caption",
"description": {"xml": "Substring to be found in the short event description.\nEmpty string matches any value."}
},
{
"name": "eventCondition.description",
"description": {"xml": "Substring to be found in the long event\ndescription. Empty string matches any value."}
},
{
"name": "eventState",
"type": "enum",
"description": {"xml": "One of the fixed values."},
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": "Also used in event rule to associate non-toggle action with event\nwith any toggle state."}
}
]
},
{
"name": "actionType",
"type": "enum",
"description": {"xml": "Type of the action. The object fields in actionParams field depend on\nthis value, as shown in particular values description."},
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": "Change camera output state.\nactionParams:\n- relayOutputID (string, required) - Id of output to trigger.\n- durationMs (uint, optional) - Timeout (in milliseconds) to reset the camera\nstate back."}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": "Start camera recording."}
},
{
"name": "panicRecordingAction",
"description": {"xml": "Activate panic recording mode."}
},
{
"name": "sendMailAction",
"description": {"xml": "Send an email. This action can be executed from any endpoint.\nactionParams:\n- emailAddress (string, required)"}
},
{
"name": "diagnosticsAction",
"description": {"xml": "Write a record to the server log."}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": "actionParams:\n- url (string, required) - Url of the sound, contains path to the sound on the\nserver."}
},
{
"name": "playSoundOnceAction",
"description": {"xml": "actionParams:\n- url (string, required) - Url of the sound, contains path to the sound on the\nserver."}
},
{
"name": "sayTextAction",
"description": {"xml": "actionParams:\n- sayText (string, required) - Text that will be provided to TTS engine."}
},
{
"name": "executePtzPresetAction",
"description": {"xml": "Execute given PTZ preset.\nactionParams:\n- resourceId\n- presetId"}
},
{
"name": "showTextOverlayAction",
"description": {"xml": "Show text overlay over the given camera(s).\nactionParams:\n- text (string, required) - Text that will be displayed."}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": "Put the given camera(s) to the Alarm Layout.\nactionParams:\n- users - List of users which will receive this alarm notification."}
},
{
"name": "execHttpRequestAction",
"description": {"xml": "Send HTTP request as an action.\nactionParams:\n- url - Full HTTP url to execute. Username/password are stored as part of the\nURL.\n- text - HTTP message body for POST method."}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
}
]
},
{
"name": "actionResourceIds",
"type": "uuidArray",
"description": {"xml": "List of action resource ids."}
},
{
"name": "actionParams",
"type": "objectJson",
"description": {"xml": "String containing a JSON object which fields depend on actionType\nand thus are described next to the respective actionType values."}
},
{
"name": "aggregationPeriod",
"type": "integer",
"description": {"xml": "Period (in seconds) during which the consecutive similar events\nare aggregated into a single event."}
},
{
"name": "disabled",
"type": "boolean",
"description": {"xml": "Whether the rule is disabled."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "comment",
"type": "string",
"description": {"xml": "An arbitrary comment to the rule."}
},
{
"name": "schedule",
"type": "string",
"description": {"xml": "String containing a lower-case hex array of 21 bytes, which is a bit\nmask for a week (starting on Monday), where each consecutive bit corresponds to an\nhour and equals 1 for \"enabled\" and 0 for \"disabled\".\nThus, the first byte describes the first 8 hours of Monday after midnight, and the\nlast byte describes the last 8 hours of Sunday before midnight; in a byte, the\nhighest significant bit corresponds to the earliest hour.\nExample: Enable all hours in a week except for the Monday interval from 7am to 9am:\nfe7fffffffffffffffffffffffffffffffffffffff<\/code>"}
},
{
"name": "system",
"type": "boolean",
"description": {"xml": "Whether the rule is a built-in one, which cannot be deleted."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
}
]
}
},
{
"proprietary": true,
"name": "getEvents",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "getFullInfo",
"description": {"xml": "Read all data such as all servers, cameras, users, etc."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "Object in the requested format."},
"type": "object",
"params": [
{
"name": "resourceTypes",
"type": "array",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].vendor",
"type": "string",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].parentId",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].propertyTypes",
"type": "array",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].propertyTypes[].resourceTypeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].propertyTypes[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "resourceTypes[].propertyTypes[].defaultValue",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers",
"type": "array",
"description": {"xml": ""}
},
{
"name": "servers[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "servers[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "servers[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "servers[].networkAddresses",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].flags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "servers[].version",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].systemInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].authKey",
"type": "string",
"description": {"xml": ""}
},
{
"name": "servers[].osInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList",
"type": "array",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].serverId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].serverName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].maxCameras",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].allowAutoRedundancy",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].backupType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "manual",
"description": {"xml": ""}
},
{
"name": "realtime",
"description": {"xml": ""}
},
{
"name": "scheduled",
"description": {"xml": ""}
}
]
},
{
"name": "serversUserAttributesList[].backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "monday",
"description": {"xml": ""}
},
{
"name": "tuesday",
"description": {"xml": ""}
},
{
"name": "wednesday",
"description": {"xml": ""}
},
{
"name": "thursday",
"description": {"xml": ""}
},
{
"name": "friday",
"description": {"xml": ""}
},
{
"name": "saturday",
"description": {"xml": ""}
},
{
"name": "sunday",
"description": {"xml": ""}
},
{
"name": "weekdays",
"description": {"xml": ""}
},
{
"name": "weekends",
"description": {"xml": ""}
},
{
"name": "all",
"description": {"xml": ""}
}
]
},
{
"name": "serversUserAttributesList[].backupStart",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].backupDuration",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].backupBitrate",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "serversUserAttributesList[].metadataStorageId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameras[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].mac",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].physicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].manuallyAdded",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].model",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].groupId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].groupName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].statusFlags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].vendor",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].cameraId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].cameraName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].userDefinedGroupName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].licenseUsed",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].motionType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "MT_Default",
"description": {"xml": ""}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": ""}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": ""}
},
{
"name": "MT_MotionWindow",
"description": {"xml": ""}
},
{
"name": "MT_NoMotion",
"description": {"xml": ""}
}
]
},
{
"name": "cameraUserAttributesList[].motionMask",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "always",
"description": {"xml": ""}
},
{
"name": "motionOnly",
"description": {"xml": ""}
},
{
"name": "never",
"description": {"xml": ""}
},
{
"name": "motionAndLow",
"description": {"xml": ""}
}
]
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "rapidReview",
"description": {"xml": ""}
}
]
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].fps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].audioEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].disableDualStreaming",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].controlEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].dewarpingParams",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].minArchiveDays",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].maxArchiveDays",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].preferredServerId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].failoverPriority",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "never",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "medium",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
}
]
},
{
"name": "cameraUserAttributesList[].backupType",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": ""}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": ""}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": ""}
},
{
"name": "CameraBackup_Both",
"description": {"xml": ""}
},
{
"name": "CameraBackup_Default",
"description": {"xml": ""}
}
]
},
{
"name": "cameraUserAttributesList[].logicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].recordBeforeMotionSec",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameraUserAttributesList[].recordAfterMotionSec",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "users",
"type": "array",
"description": {"xml": ""}
},
{
"name": "users[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].isAdmin",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
},
{
"name": "users[].userRoleId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].email",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].digest",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].cryptSha512Hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].realm",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].isLdap",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].isEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].isCloud",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].fullName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "userRoles",
"type": "array",
"description": {"xml": ""}
},
{
"name": "userRoles[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "userRoles[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "userRoles[].permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
},
{
"name": "accessRights",
"type": "array",
"description": {"xml": ""}
},
{
"name": "accessRights[].userId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "accessRights[].resourceIds",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "layouts",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layouts[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].cellAspectRatio",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].cellSpacing",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].flags",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].left",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].top",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].right",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].bottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].rotation",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].resourcePath",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomLeft",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomTop",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomRight",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomBottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomTargetId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.blackLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.whiteLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.gamma",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.xAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.yAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.fov",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.panoFactor",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].displayInfo",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].locked",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].fixedWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].fixedHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].logicalId",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundImageFilename",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundOpacity",
"type": "float",
"description": {"xml": ""}
},
{
"name": "videowalls",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].autorun",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "videowalls[].timeline",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "videowalls[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].guid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapRight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapBottom",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].pcIndex",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items[].itemGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "rules",
"type": "array",
"description": {"xml": ""}
},
{
"name": "rules[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "rules[].eventType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "undefinedEvent",
"description": {"xml": ""}
},
{
"name": "cameraMotionEvent",
"description": {"xml": ""}
},
{
"name": "cameraInputEvent",
"description": {"xml": ""}
},
{
"name": "cameraDisconnectEvent",
"description": {"xml": ""}
},
{
"name": "storageFailureEvent",
"description": {"xml": ""}
},
{
"name": "networkIssueEvent",
"description": {"xml": ""}
},
{
"name": "cameraIpConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverFailureEvent",
"description": {"xml": ""}
},
{
"name": "serverConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverStartEvent",
"description": {"xml": ""}
},
{
"name": "licenseIssueEvent",
"description": {"xml": ""}
},
{
"name": "backupFinishedEvent",
"description": {"xml": ""}
},
{
"name": "softwareTriggerEvent",
"description": {"xml": ""}
},
{
"name": "analyticsSdkEvent",
"description": {"xml": ""}
},
{
"name": "pluginDiagnosticEvent",
"description": {"xml": ""}
},
{
"name": "poeOverBudgetEvent",
"description": {"xml": ""}
},
{
"name": "fanErrorEvent",
"description": {"xml": ""}
},
{
"name": "systemHealthEvent",
"description": {"xml": ""}
},
{
"name": "maxSystemHealthEvent",
"description": {"xml": ""}
},
{
"name": "anyCameraEvent",
"description": {"xml": ""}
},
{
"name": "anyServerEvent",
"description": {"xml": ""}
},
{
"name": "anyEvent",
"description": {"xml": ""}
},
{
"name": "userDefinedEvent",
"description": {"xml": ""}
}
]
},
{
"name": "rules[].eventResourceIds",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "rules[].eventCondition",
"type": "string",
"description": {"xml": ""}
},
{
"name": "rules[].eventState",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "rules[].actionType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "rules[].actionResourceIds",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "rules[].actionParams",
"type": "string",
"description": {"xml": ""}
},
{
"name": "rules[].aggregationPeriod",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "rules[].disabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "rules[].comment",
"type": "string",
"description": {"xml": ""}
},
{
"name": "rules[].schedule",
"type": "string",
"description": {"xml": ""}
},
{
"name": "rules[].system",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameraHistory",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameraHistory[].serverGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameraHistory[].archivedCameras",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "licenses",
"type": "array",
"description": {"xml": ""}
},
{
"name": "licenses[].key",
"type": "string",
"description": {"xml": "License serial number. Corresponds to the License Block SERIAL property."}
},
{
"name": "licenses[].licenseBlock",
"type": "string",
"description": {"xml": "License Block - a plain-text \"property\" file (with \"key=value\" lines). It is generated by\nthe License Server, is bound to the particular Server (via Hardware Id), and is signed\n(the signature is stored in one of the properties). The License Block contains the following\nproperties (keys):\n
\n
NAME<\/code> VMS product name.<\/li>\n
SERIAL<\/code> Serial number of the License.<\/li>\n
HWID<\/code> Hardware Id of the Server to which the License is bound.<\/li>\n
COUNT<\/code> Number of cameras which are covered by the License.<\/li>\n
CLASS<\/code> Type of the License. Defines which VMS platforms can use the License,\n and for what kind of camera-like devices.<\/li>\n
VERSION<\/code> VMS version.<\/li>\n
BRAND<\/code> VMS product name.<\/li>\n
EXPIRATION<\/code> Expiration date in format
YYYY-MM-DD HH:MM:SS<\/code>.\n Optional; if omitted, the License lifetime is unlimited.<\/li>\n
SIGNATURE2<\/code> Digital signature created by the License Server.<\/li>\n
COMPANY<\/code> VMS vendor.<\/li>\n<\/ul>\nAdditionally, other proprietary keys may appear in the License Block."}
},
{
"name": "discoveryData",
"type": "array",
"description": {"xml": ""}
},
{
"name": "discoveryData[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "discoveryData[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "discoveryData[].ignore",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "allProperties",
"type": "array",
"description": {"xml": ""}
},
{
"name": "allProperties[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "allProperties[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "allProperties[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages",
"type": "array",
"description": {"xml": ""}
},
{
"name": "storages[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].spaceLimit",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].usedForWriting",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "storages[].storageType",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "storages[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].isBackup",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "resStatusList",
"type": "array",
"description": {"xml": ""}
},
{
"name": "resStatusList[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "resStatusList[].status",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
},
{
"name": "webPages",
"type": "array",
"description": {"xml": ""}
},
{
"name": "webPages[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "webPages[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "webPages[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "webPages[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "webPages[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layoutTours",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layoutTours[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layoutTours[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layoutTours[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layoutTours[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layoutTours[].items[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layoutTours[].items[].delayMs",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layoutTours[].settings",
"type": "object",
"description": {"xml": ""}
},
{
"name": "layoutTours[].settings.manual",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins",
"type": "array",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "analyticsPlugins[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "analyticsEngines",
"type": "array",
"description": {"xml": ""}
},
{
"name": "analyticsEngines[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "analyticsEngines[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "analyticsEngines[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "analyticsEngines[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "analyticsEngines[].typeId",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "getHardwareIdsOfServers",
"description": {"xml": "Return the list of Hardware Ids for each Server in the System which is online at the moment\nof executing this function."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of objects representing Servers in the System."}
},
{
"name": "reply[].serverId",
"type": "uuid",
"description": {"xml": "Id of a server."}
},
{
"name": "reply[].hardwareIds",
"type": "stringArray",
"description": {"xml": "All Hardware Ids of the server, as a list of\nstrings."}
}
]
}
},
{
"name": "getLayoutTours",
"description": {"xml": "Retrieve the list of Layout Tours in the System."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Layout tour unique id. If omitted, return data for all tours."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of layout tour objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "items[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].delayMs",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "settings",
"type": "object",
"description": {"xml": ""}
},
{
"name": "settings.manual",
"type": "boolean",
"description": {"xml": ""}
}
]
}
},
{
"name": "getLayouts",
"description": {"xml": "Retrieve the list of User Layouts in the System."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "string",
"description": {"xml": "Layout unique id or logical id. If omitted, return data for all\nLayouts."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of Layout objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cellAspectRatio",
"type": "float",
"description": {"xml": ""}
},
{
"name": "cellSpacing",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "items[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].flags",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "items[].left",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].top",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].right",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].bottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].rotation",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].resourcePath",
"type": "string",
"description": {"xml": ""}
},
{
"name": "items[].zoomLeft",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].zoomTop",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].zoomRight",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].zoomBottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].zoomTargetId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].contrastParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "items[].contrastParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "items[].contrastParams.blackLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].contrastParams.whiteLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].contrastParams.gamma",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams.xAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams.yAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams.fov",
"type": "float",
"description": {"xml": ""}
},
{
"name": "items[].dewarpingParams.panoFactor",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "items[].displayInfo",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "locked",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "fixedWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "fixedHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "logicalId",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "backgroundImageFilename",
"type": "string",
"description": {"xml": ""}
},
{
"name": "backgroundWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "backgroundHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "backgroundOpacity",
"type": "float",
"description": {"xml": ""}
}
]
}
},
{
"name": "getLicenses",
"description": {"xml": "Retrieve all Licenses registered in the System."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of License information objects in the requested format."},
"type": "array",
"params": [
{
"name": "key",
"type": "string",
"description": {"xml": "License serial number. Corresponds to the License Block SERIAL property."}
},
{
"name": "licenseBlock",
"type": "string",
"description": {"xml": "License Block - a plain-text \"property\" file (with \"key=value\" lines). It is generated by\nthe License Server, is bound to the particular Server (via Hardware Id), and is signed\n(the signature is stored in one of the properties). The License Block contains the following\nproperties (keys):\n
\n
NAME<\/code> VMS product name.<\/li>\n
SERIAL<\/code> Serial number of the License.<\/li>\n
HWID<\/code> Hardware Id of the Server to which the License is bound.<\/li>\n
COUNT<\/code> Number of cameras which are covered by the License.<\/li>\n
CLASS<\/code> Type of the License. Defines which VMS platforms can use the License,\n and for what kind of camera-like devices.<\/li>\n
VERSION<\/code> VMS version.<\/li>\n
BRAND<\/code> VMS product name.<\/li>\n
EXPIRATION<\/code> Expiration date in format
YYYY-MM-DD HH:MM:SS<\/code>.\n Optional; if omitted, the License lifetime is unlimited.<\/li>\n
SIGNATURE2<\/code> Digital signature created by the License Server.<\/li>\n
COMPANY<\/code> VMS vendor.<\/li>\n<\/ul>\nAdditionally, other proprietary keys may appear in the License Block."}
}
]
}
},
{
"name": "getMediaServerUserAttributesList",
"description": {"xml": "Read additional Server attributes."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Server unique id. If omitted, return data for all servers."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of objects with additional server attributes for all servers, in the requested\nformat."},
"type": "array",
"params": [
{
"name": "serverId",
"type": "uuid",
"description": {"xml": "Server unique id."}
},
{
"name": "serverName",
"type": "string",
"description": {"xml": "Server name."}
},
{
"name": "maxCameras",
"type": "integer",
"description": {"xml": "Maximum number of cameras on the server."}
},
{
"name": "allowAutoRedundancy",
"type": "boolean",
"description": {"xml": "Whether the server can take cameras from\nan offline server automatically."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "backupType",
"type": "enum",
"description": {"xml": "Settings for storage redundancy."},
"values": [
{
"name": "Backup_Manual",
"description": {"xml": "Backup is performed only at a user's request."}
},
{
"name": "Backup_RealTime",
"description": {"xml": "Backup is performed during recording."}
},
{
"name": "Backup_Schedule",
"description": {"xml": "Backup is performed on schedule."}
}
]
},
{
"name": "backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the days of week on which the backup\nis active on."},
"values": [
{
"name": "Monday",
"description": {"xml": ""}
},
{
"name": "Tuesday",
"description": {"xml": ""}
},
{
"name": "Wednesday",
"description": {"xml": ""}
},
{
"name": "Thursday",
"description": {"xml": ""}
},
{
"name": "Friday",
"description": {"xml": ""}
},
{
"name": "Saturday",
"description": {"xml": ""}
},
{
"name": "Sunday",
"description": {"xml": ""}
}
]
},
{
"name": "backupStart",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds passed from 00:00:00)."}
},
{
"name": "backupDuration",
"type": "integer",
"description": {"xml": "Duration of the synchronization period in seconds. -1 if not set."}
},
{
"name": "backupBitrate",
"type": "integer",
"description": {"xml": "Maximum backup bitrate in bytes per second. Negative\nvalue if not limited."}
},
{
"name": "metadataStorageId",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"proprietary": true,
"name": "getMediaServers",
"description": {"xml": ""},
"method": "GET",
"params": [],
"result": {
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "networkAddresses",
"type": "string",
"description": {"xml": ""}
},
{
"name": "flags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "version",
"type": "string",
"description": {"xml": ""}
},
{
"name": "systemInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "authKey",
"type": "string",
"description": {"xml": ""}
},
{
"name": "osInfo",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"name": "getMediaServersEx",
"description": {"xml": "Retrieve the list of Servers in the System."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "Server object in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "networkAddresses",
"type": "string",
"description": {"xml": ""}
},
{
"name": "flags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "version",
"type": "string",
"description": {"xml": ""}
},
{
"name": "systemInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "authKey",
"type": "string",
"description": {"xml": ""}
},
{
"name": "osInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "serverId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "serverName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "maxCameras",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "allowAutoRedundancy",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "backupType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "manual",
"description": {"xml": ""}
},
{
"name": "realtime",
"description": {"xml": ""}
},
{
"name": "scheduled",
"description": {"xml": ""}
}
]
},
{
"name": "backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "monday",
"description": {"xml": ""}
},
{
"name": "tuesday",
"description": {"xml": ""}
},
{
"name": "wednesday",
"description": {"xml": ""}
},
{
"name": "thursday",
"description": {"xml": ""}
},
{
"name": "friday",
"description": {"xml": ""}
},
{
"name": "saturday",
"description": {"xml": ""}
},
{
"name": "sunday",
"description": {"xml": ""}
},
{
"name": "weekdays",
"description": {"xml": ""}
},
{
"name": "weekends",
"description": {"xml": ""}
},
{
"name": "all",
"description": {"xml": ""}
}
]
},
{
"name": "backupStart",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "backupDuration",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "backupBitrate",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "metadataStorageId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "status",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
},
{
"name": "addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages",
"type": "array",
"description": {"xml": ""}
},
{
"name": "storages[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "storages[].spaceLimit",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].usedForWriting",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "storages[].storageType",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "storages[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "storages[].isBackup",
"type": "boolean",
"description": {"xml": ""}
}
]
}
},
{
"name": "getPredefinedRoles",
"description": {"xml": "Retrieve the list of predefined User Roles."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of predefined User Role objects in the requested format."},
"type": "array",
"params": [
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
},
{
"name": "isOwner",
"type": "boolean",
"description": {"xml": ""}
}
]
}
},
{
"name": "getResourceParams",
"description": {"xml": "Read resource (camera, user or server) additional parameters (camera firmware version, etc).\nThe list of parameters depends on the resource type."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Resource unique id."},
"optional": false
}
],
"result": {
"caption": {"xml": "List of objects in the requested format."},
"type": "array",
"params": [
{
"name": "value",
"type": "string",
"description": {"xml": "Parameter value."}
},
{
"name": "name",
"type": "string",
"description": {"xml": "Parameter name."}
},
{
"name": "resourceId",
"type": "uuid",
"description": {"xml": "Resource unique id."}
}
]
}
},
{
"name": "getResourceTypes",
"description": {"xml": "Read all resource types. Resource type contains object type such as\n\"Server\", \"Camera\", etc. Also, resource type contains additional information\nfor cameras such as maximum FPS, resolution, etc."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "Object in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "vendor",
"type": "string",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "propertyTypes",
"type": "array",
"description": {"xml": ""}
},
{
"name": "propertyTypes[].resourceTypeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "propertyTypes[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "propertyTypes[].defaultValue",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"name": "getSettings",
"description": {"xml": "Read general System settings such as email address, etc."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of objects in the requested format."},
"type": "array",
"params": [
{
"name": "value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"proprietary": true,
"name": "getStatisticsReport",
"description": {"xml": "Get anonymous statistic about the System."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "System statistics:"},
"type": "object",
"params": [
{
"name": "systemId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "reportInfo",
"type": "object",
"description": {"xml": "Information about the statistics report itself."}
},
{
"name": "reportInfo.id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "reportInfo.number",
"type": "string",
"description": {"xml": ""}
},
{
"name": "businessRules",
"type": "array",
"description": {"xml": "Anonymous statistics data about event rules in the System."}
},
{
"name": "businessRules[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "businessRules[].eventType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "undefinedEvent",
"description": {"xml": ""}
},
{
"name": "cameraMotionEvent",
"description": {"xml": ""}
},
{
"name": "cameraInputEvent",
"description": {"xml": ""}
},
{
"name": "cameraDisconnectEvent",
"description": {"xml": ""}
},
{
"name": "storageFailureEvent",
"description": {"xml": ""}
},
{
"name": "networkIssueEvent",
"description": {"xml": ""}
},
{
"name": "cameraIpConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverFailureEvent",
"description": {"xml": ""}
},
{
"name": "serverConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverStartEvent",
"description": {"xml": ""}
},
{
"name": "licenseIssueEvent",
"description": {"xml": ""}
},
{
"name": "backupFinishedEvent",
"description": {"xml": ""}
},
{
"name": "softwareTriggerEvent",
"description": {"xml": ""}
},
{
"name": "analyticsSdkEvent",
"description": {"xml": ""}
},
{
"name": "pluginDiagnosticEvent",
"description": {"xml": ""}
},
{
"name": "poeOverBudgetEvent",
"description": {"xml": ""}
},
{
"name": "fanErrorEvent",
"description": {"xml": ""}
},
{
"name": "systemHealthEvent",
"description": {"xml": ""}
},
{
"name": "maxSystemHealthEvent",
"description": {"xml": ""}
},
{
"name": "anyCameraEvent",
"description": {"xml": ""}
},
{
"name": "anyServerEvent",
"description": {"xml": ""}
},
{
"name": "anyEvent",
"description": {"xml": ""}
},
{
"name": "userDefinedEvent",
"description": {"xml": ""}
}
]
},
{
"name": "businessRules[].eventResourceIds",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "businessRules[].eventCondition",
"type": "string",
"description": {"xml": ""}
},
{
"name": "businessRules[].eventState",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "businessRules[].actionType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "businessRules[].actionResourceIds",
"type": "uuidArray",
"description": {"xml": ""}
},
{
"name": "businessRules[].actionParams",
"type": "string",
"description": {"xml": ""}
},
{
"name": "businessRules[].aggregationPeriod",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "businessRules[].disabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "businessRules[].comment",
"type": "string",
"description": {"xml": ""}
},
{
"name": "businessRules[].schedule",
"type": "string",
"description": {"xml": ""}
},
{
"name": "businessRules[].system",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras",
"type": "array",
"description": {"xml": "Anonymous statistics data about Devices in the System."}
},
{
"name": "cameras[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].mac",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].physicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].manuallyAdded",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].model",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].groupId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].groupName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].statusFlags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].vendor",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].cameraId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].cameraName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].userDefinedGroupName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].licenseUsed",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].motionType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "MT_Default",
"description": {"xml": ""}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": ""}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": ""}
},
{
"name": "MT_MotionWindow",
"description": {"xml": ""}
},
{
"name": "MT_NoMotion",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].motionMask",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "always",
"description": {"xml": ""}
},
{
"name": "motionOnly",
"description": {"xml": ""}
},
{
"name": "never",
"description": {"xml": ""}
},
{
"name": "motionAndLow",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "rapidReview",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].scheduleTasks[].fps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].audioEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].disableDualStreaming",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].controlEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "cameras[].dewarpingParams",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].minArchiveDays",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].maxArchiveDays",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].preferredServerId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "cameras[].failoverPriority",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "never",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "medium",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].backupType",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": ""}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": ""}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": ""}
},
{
"name": "CameraBackup_Both",
"description": {"xml": ""}
},
{
"name": "CameraBackup_Default",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].logicalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].recordBeforeMotionSec",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].recordAfterMotionSec",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "cameras[].status",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
},
{
"name": "cameras[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "cameras[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cameras[].analyticsInfo",
"type": "object",
"description": {"xml": "Statistics information about the analytics subsystem."}
},
{
"name": "cameras[].analyticsInfo.supportedEventTypes",
"type": "array",
"description": {"xml": "Analytics Event types supported by the System."}
},
{
"name": "cameras[].analyticsInfo.supportedEventTypes[].id",
"type": "string",
"description": {"xml": "Id of Object/Event type."}
},
{
"name": "cameras[].analyticsInfo.supportedEventTypes[].name",
"type": "string",
"description": {"xml": "Name of Object/Event type."}
},
{
"name": "cameras[].analyticsInfo.supportedEventTypes[].provider",
"type": "string",
"description": {"xml": "Name of the vendor that provides this Object/Event type. Empty string if unknown."}
},
{
"name": "cameras[].analyticsInfo.supportedObjectTypes",
"type": "array",
"description": {"xml": "Analytics Object types supported by the System."}
},
{
"name": "cameras[].analyticsInfo.supportedObjectTypes[].id",
"type": "string",
"description": {"xml": "Id of Object/Event type."}
},
{
"name": "cameras[].analyticsInfo.supportedObjectTypes[].name",
"type": "string",
"description": {"xml": "Name of Object/Event type."}
},
{
"name": "cameras[].analyticsInfo.supportedObjectTypes[].provider",
"type": "string",
"description": {"xml": "Name of the vendor that provides this Object/Event type. Empty string if unknown."}
},
{
"name": "licenses",
"type": "array",
"description": {"xml": "Anonymous statistics data about licenses in the System."}
},
{
"name": "licenses[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].key",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].licenseType",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].version",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].brand",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].expiration",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].validation",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenses[].cameraCount",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers",
"type": "array",
"description": {"xml": "Anonymous statistics data about Servers in the System."}
},
{
"name": "mediaservers[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].networkAddresses",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].flags",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "mediaservers[].version",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].systemInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].authKey",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].osInfo",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].serverId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].serverName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].maxCameras",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "mediaservers[].allowAutoRedundancy",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "mediaservers[].backupType",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "manual",
"description": {"xml": ""}
},
{
"name": "realtime",
"description": {"xml": ""}
},
{
"name": "scheduled",
"description": {"xml": ""}
}
]
},
{
"name": "mediaservers[].backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "monday",
"description": {"xml": ""}
},
{
"name": "tuesday",
"description": {"xml": ""}
},
{
"name": "wednesday",
"description": {"xml": ""}
},
{
"name": "thursday",
"description": {"xml": ""}
},
{
"name": "friday",
"description": {"xml": ""}
},
{
"name": "saturday",
"description": {"xml": ""}
},
{
"name": "sunday",
"description": {"xml": ""}
},
{
"name": "weekdays",
"description": {"xml": ""}
},
{
"name": "weekends",
"description": {"xml": ""}
},
{
"name": "all",
"description": {"xml": ""}
}
]
},
{
"name": "mediaservers[].backupStart",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "mediaservers[].backupDuration",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "mediaservers[].backupBitrate",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "mediaservers[].metadataStorageId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].status",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
},
{
"name": "mediaservers[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "mediaservers[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages",
"type": "array",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].spaceLimit",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].usedForWriting",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].storageType",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].isBackup",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages",
"type": "array",
"description": {"xml": "Anonymous statistics data about Storages on the Server."}
},
{
"name": "mediaservers[].storages[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].spaceLimit",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].usedForWriting",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].storageType",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams",
"type": "array",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].storages[].isBackup",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "mediaservers[].pluginInfo",
"type": "array",
"description": {"xml": "Anonymous statistics data about Plugins on the Server."}
},
{
"name": "mediaservers[].pluginInfo[].name",
"type": "string",
"description": {"xml": "Name of the plugin from its manifest."}
},
{
"name": "mediaservers[].pluginInfo[].description",
"type": "string",
"description": {"xml": "Description of the plugin from its manifest."}
},
{
"name": "mediaservers[].pluginInfo[].libName",
"type": "string",
"description": {"xml": "Plugin name for logging: library file name with no `lib` prefix (on Linux) and no extension."}
},
{
"name": "mediaservers[].pluginInfo[].libraryFilename",
"type": "string",
"description": {"xml": "Absolute path to the plugin dynamic library."}
},
{
"name": "mediaservers[].pluginInfo[].homeDir",
"type": "string",
"description": {"xml": "Absolute path to the plugin's dedicated directory where its dynamic library resides together\nwith its possible dependencies, or an empty string if the plugin resides in a common\ndirectory with other plugins."}
},
{
"name": "mediaservers[].pluginInfo[].vendor",
"type": "string",
"description": {"xml": "Vendor of the plugin from its manifest."}
},
{
"name": "mediaservers[].pluginInfo[].version",
"type": "string",
"description": {"xml": "Version of the plugin from its manifest."}
},
{
"name": "mediaservers[].pluginInfo[].optionality",
"type": "enum",
"description": {"xml": "Whether the plugin resides in \"plugins_optional\" folder or in the regular \"plugins\" folder."},
"values": [
{
"name": "nonOptional",
"description": {"xml": ""}
},
{
"name": "optional",
"description": {"xml": ""}
}
]
},
{
"name": "mediaservers[].pluginInfo[].status",
"type": "enum",
"description": {"xml": "Status of the plugin after the plugin loading attempt."},
"values": [
{
"name": "notFound",
"description": {"xml": "There's no such file in the downloader."}
},
{
"name": "downloading",
"description": {"xml": "The file is being downloaded from an external URL and System Servers."}
},
{
"name": "uploading",
"description": {"xml": "Waiting for the file to be manually uploaded."}
},
{
"name": "downloaded",
"description": {"xml": "The file is stored on the Server entirely."}
},
{
"name": "corrupted",
"description": {"xml": "The file has been downloaded, but the checksum validation has failed."}
}
]
},
{
"name": "mediaservers[].pluginInfo[].statusMessage",
"type": "string",
"description": {"xml": "Message in English with details about the plugin loading attempt."}
},
{
"name": "mediaservers[].pluginInfo[].errorCode",
"type": "enum",
"description": {"xml": "If the plugin status is \"notLoadedBecauseOfError\", describes the error."},
"values": [
{
"name": "noError",
"description": {"xml": "No error."}
},
{
"name": "cannotLoadLibrary",
"description": {"xml": "OS cannot load the library file."}
},
{
"name": "invalidLibrary",
"description": {"xml": "The library does not seem to be a valid Nx Plugin library, e.g. no expected entry point\nfunctions found."}
},
{
"name": "libraryFailure",
"description": {"xml": "The plugin library failed to initialize, e.g. its entry point function returned an\nerror."}
},
{
"name": "badManifest",
"description": {"xml": "The plugin has returned a bad manifest, e.g. null, empty, non-json, or json with an\nunexpected structure."}
},
{
"name": "unsupportedVersion",
"description": {"xml": "The plugin API version is no longer supported."}
},
{
"name": "internalError",
"description": {"xml": "Some internal error has occured which made the proper PluginInfo structure unavailable.\nIn this case the error message is stored in statusMessage field."}
}
]
},
{
"name": "mediaservers[].pluginInfo[].mainInterface",
"type": "enum",
"description": {"xml": "The highest interface that the Plugin object (the one returned by the plugin entry function)\nsupports via queryInterface()."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "nxpl_PluginInterface",
"description": {"xml": "Base interface for the old 3.2 SDK."}
},
{
"name": "nxpl_Plugin",
"description": {"xml": "Old 3.2 SDK plugin supporting roSettings."}
},
{
"name": "nxpl_Plugin2",
"description": {"xml": "Old 3.2 SDK plugin supporting pluginContainer."}
},
{
"name": "nx_sdk_IPlugin",
"description": {"xml": "Base interface for the new 4.0 SDK."}
},
{
"name": "nx_sdk_analytics_IPlugin",
"description": {"xml": "New 4.0 SDK Analytics plugin."}
}
]
},
{
"name": "mediaservers[].pluginInfo[].isActive",
"type": "boolean",
"description": {"xml": "For non-Analytics plugins and for device-independent Analytics plugins, is always set to\ntrue. For device-dependent Analytics plugins, is set to true if and only if the plugin has\never had a DeviceAgent since the Server start."}
},
{
"name": "mediaservers[].pluginInfo[].nxSdkVersion",
"type": "string",
"description": {"xml": "Version of the SDK, as reported by plugin's function nxSdkVersion()). Not empty - if the\nplugin fails to report the SDK version, this value is set to the description of the reason."}
},
{
"name": "mediaservers[].pluginInfo[].resourceBindingInfo",
"type": "array",
"description": {"xml": "Array with information about bound resources. For Device Plugins contains zero (if the\nPlugin is not loaded) or one item. For Analytics Plugins the number of items is equal to the\nnumber of Plugin Engines."}
},
{
"name": "mediaservers[].pluginInfo[].resourceBindingInfo[].id",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mediaservers[].pluginInfo[].resourceBindingInfo[].name",
"type": "string",
"description": {"xml": "Name of the Engine (for Analytics Plugins) or the Plugin (for Device Plugins)."}
},
{
"name": "mediaservers[].pluginInfo[].resourceBindingInfo[].boundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User. In the case of Device Plugins - the number of resources that are produced by\nthe Plugin."}
},
{
"name": "mediaservers[].pluginInfo[].resourceBindingInfo[].onlineBoundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User and that are currently online (thus a Device Agent is created for them). In\nthe case of Device Plugins - the number of resources that are produced by the Plugin and are\nonline."}
},
{
"name": "layouts",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layouts[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].cellAspectRatio",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].cellSpacing",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].flags",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].left",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].top",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].right",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].bottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].rotation",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].resourceId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].resourcePath",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomLeft",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomTop",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomRight",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomBottom",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].zoomTargetId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.blackLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.whiteLevel",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].contrastParams.gamma",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams",
"type": "object",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.enabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.xAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.yAngle",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.fov",
"type": "float",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].dewarpingParams.panoFactor",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].items[].displayInfo",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].locked",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "layouts[].fixedWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].fixedHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].logicalId",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundImageFilename",
"type": "string",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "layouts[].backgroundOpacity",
"type": "float",
"description": {"xml": ""}
},
{
"name": "users",
"type": "array",
"description": {"xml": "Anonymous statistics data about Users in the System."}
},
{
"name": "users[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].isAdmin",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
},
{
"name": "users[].userRoleId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "users[].email",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].digest",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].cryptSha512Hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].realm",
"type": "string",
"description": {"xml": ""}
},
{
"name": "users[].isLdap",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].isEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].isCloud",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "users[].fullName",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].autorun",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "videowalls[].timeline",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "videowalls[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].guid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapRight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].items[].snapBottom",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].pcIndex",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].desktopHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].screens[].layoutHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items[].itemGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "videowalls[].matrices[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "getStatusList",
"description": {"xml": "Read the current status of the Resources: cameras, Servers and Storages."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Resource unique id. If omitted, return data for all Resources."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of status objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "status",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
}
]
}
},
{
"name": "getStorages",
"description": {"xml": "Retrieve the current list of Storages in the System."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "Parent server unique id. If omitted, return storages for all servers."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of storages."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Storage unique id."}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Id of a server to which the storage belongs."}
},
{
"name": "name",
"type": "string",
"description": {"xml": "Storage name."}
},
{
"name": "url",
"type": "string",
"description": {"xml": "Storage URL."}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "spaceLimit",
"type": "string",
"description": {"xml": "Storage space to leave free on the storage,\nin bytes."}
},
{
"name": "usedForWriting",
"type": "boolean",
"description": {"xml": "Whether writing to the storage is allowed."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "storageType",
"type": "string",
"description": {"xml": "Type of the method to access the storage."},
"values": [
{
"name": "local",
"description": {"xml": ""}
},
{
"name": "smb",
"description": {"xml": ""}
}
]
},
{
"name": "addParams",
"type": "array",
"description": {"xml": "List of storage additional parameters.\nIntended for internal use."}
},
{
"name": "addParams[].value",
"type": "string",
"description": {"xml": ""}
},
{
"name": "addParams[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "isBackup",
"type": "boolean",
"description": {"xml": "Whether the storage is used for backup."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
}
]
}
},
{
"name": "getStoredFile",
"description": {"xml": "Read file data from a virtual FS"},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "folder",
"type": "string",
"description": {"xml": "File name"},
"optional": true
}
],
"result": {
"caption": {"xml": "Object in the requested format."},
"type": "object",
"params": [
{
"name": "path",
"type": "string",
"description": {"xml": ""}
},
{
"name": "data",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"proprietary": true,
"name": "getSystemMergeHistory",
"description": {"xml": "Return information about previous system merges."},
"method": "GET",
"params": [],
"result": {
"type": "array",
"params": [
{
"name": "timestamp",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mergedSystemLocalId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "mergedSystemCloudId",
"type": "string",
"description": {"xml": ""}
},
{
"name": "username",
"type": "string",
"description": {"xml": ""}
},
{
"name": "signature",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"proprietary": true,
"name": "getTimeOfServers",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"proprietary": true,
"name": "getTransactionLog",
"description": {"xml": ""},
"method": "GET",
"params": [],
"result": {"type": "array"}
},
{
"name": "getUserRoles",
"description": {"xml": "Return User roles registered in the System."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "User role unique id. If omitted, return data for all user roles."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of user role objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
}
]
}
},
{
"name": "getUsers",
"description": {"xml": "Return users registered in the System. User's password contains MD5 hash data with the salt."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "id",
"type": "uuid",
"description": {"xml": "User unique id. If omitted, return data for all users."},
"optional": true
}
],
"result": {
"caption": {"xml": "List of user data objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "isAdmin",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": ""}
},
{
"name": "admin",
"description": {"xml": ""}
},
{
"name": "editCameras",
"description": {"xml": ""}
},
{
"name": "controlVideowall",
"description": {"xml": ""}
},
{
"name": "viewLogs",
"description": {"xml": ""}
},
{
"name": "viewArchive",
"description": {"xml": ""}
},
{
"name": "exportArchive",
"description": {"xml": ""}
},
{
"name": "viewBookmarks",
"description": {"xml": ""}
},
{
"name": "manageBookmarks",
"description": {"xml": ""}
},
{
"name": "userInput",
"description": {"xml": ""}
},
{
"name": "accessAllMedia",
"description": {"xml": ""}
},
{
"name": "customUser",
"description": {"xml": ""}
},
{
"name": "liveViewerPermissions",
"description": {"xml": ""}
},
{
"name": "viewerPermissions",
"description": {"xml": ""}
},
{
"name": "advancedViewerPermissions",
"description": {"xml": ""}
},
{
"name": "adminPermissions",
"description": {"xml": ""}
},
{
"name": "videowallModePermissions",
"description": {"xml": ""}
},
{
"name": "acsModePermissions",
"description": {"xml": ""}
}
]
},
{
"name": "userRoleId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "email",
"type": "string",
"description": {"xml": ""}
},
{
"name": "digest",
"type": "string",
"description": {"xml": ""}
},
{
"name": "hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "cryptSha512Hash",
"type": "string",
"description": {"xml": ""}
},
{
"name": "realm",
"type": "string",
"description": {"xml": ""}
},
{
"name": "isLdap",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "isEnabled",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "isCloud",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "fullName",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"name": "getVideowalls",
"description": {"xml": "Retrieve the list of Video Walls in the System."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of video wall objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "autorun",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "timeline",
"type": "boolean",
"description": {"xml": ""}
},
{
"name": "items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "items[].guid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "items[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "items[].snapLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "items[].snapTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "items[].snapRight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "items[].snapBottom",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens",
"type": "array",
"description": {"xml": ""}
},
{
"name": "screens[].pcGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "screens[].pcIndex",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].desktopLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].desktopTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].desktopWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].desktopHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].layoutLeft",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].layoutTop",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].layoutWidth",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "screens[].layoutHeight",
"type": "integer",
"description": {"xml": ""}
},
{
"name": "matrices",
"type": "array",
"description": {"xml": ""}
},
{
"name": "matrices[].id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "matrices[].name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "matrices[].items",
"type": "array",
"description": {"xml": ""}
},
{
"name": "matrices[].items[].itemGuid",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "matrices[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "getWebPages",
"description": {"xml": "Retrieve the list of web pages in the System."},
"method": "GET",
"params": [{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
}],
"result": {
"caption": {"xml": "List of web page objects in the requested format."},
"type": "array",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""}
},
{
"name": "name",
"type": "string",
"description": {"xml": ""}
},
{
"name": "url",
"type": "string",
"description": {"xml": ""}
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""}
}
]
}
},
{
"name": "listDirectory",
"description": {"xml": "Retrieve the list of folders and files in a virtual FS stored inside the database. This\nfunction is used to add files (such as audio for notifications) to the database."},
"method": "GET",
"params": [
{
"name": "format",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "xml",
"description": {"xml": "XML data format."}
},
{
"name": "csv",
"description": {"xml": "CSV data format. In case of a hierarchical structure,\nonly the top level data is provided."}
}
]
},
{
"name": "folder",
"type": "string",
"description": {"xml": "Folder name in a virtual FS"},
"optional": true
}
],
"result": {
"caption": {"xml": "List of objects in the requested format."},
"type": "array",
"params": [{
"name": "path",
"type": "string",
"description": {"xml": ""}
}]
}
},
{
"name": "mergeStatus",
"description": {"xml": "Return information if the last merge request still is in progress.\nIf merge is not in progress it means all data that belongs to servers on the moment when merge was requested\nare synchronized. This functions is a system wide and can be called from any server in the system to check merge status."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "mergeId",
"type": "uuid",
"description": {"xml": "Id of the last merge operation."}
},
{
"name": "mergeInProgress",
"type": "boolean",
"description": {"xml": "Whether the last merge operation is in progress."}
}
]
}
},
{
"name": "metrics/alarms",
"description": {"xml": "Returns the currently active alarms."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": ""}
},
{
"name": "reply.{resourceGroupId}",
"type": "object",
"description": {"xml": " Resource group alarms. Possible {resourceGroupId} values match reply[].id\n from manifest."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}",
"type": "object",
"description": {"xml": " Resource group alarms. Possible {resourceId} values indicate VMS resources."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}",
"type": "object",
"description": {"xml": " Parameter group alarms. Possible {groupId} values match\n reply[].values[].id from manifest."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}.{parameterId}",
"description": {"xml": " Parameter alarm. Possible {parameterId} values match\n reply[].values[].values[].id from manifest."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}.{parameterId}.level",
"type": "string",
"description": {"xml": " Alarm level."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}.{parameterId}.text",
"type": "string",
"description": {"xml": " Alarm text."}
}
]
}
},
{
"name": "metrics/manifest",
"description": {"xml": "Returns the manifest for GET /ec2/metrics/alarms and GET /ec2/metrics/values visualization."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": ""}
},
{
"name": "reply[].id",
"type": "string",
"description": {"xml": "Resource group id."}
},
{
"name": "reply[].name",
"type": "string",
"description": {"xml": "Resource group name."}
},
{
"name": "reply[].resource",
"type": "string",
"description": {"xml": "Resource label."}
},
{
"name": "reply[].values",
"type": "array",
"description": {"xml": "Resource group manifest."}
},
{
"name": "reply[].values[].id",
"type": "string",
"description": {"xml": "Parameter group id."}
},
{
"name": "reply[].values[].name",
"type": "string",
"description": {"xml": "Parameter group name."}
},
{
"name": "reply[].values[].values",
"type": "array",
"description": {"xml": "Parameter group manifest."}
},
{
"name": "reply[].values[].values[].id",
"type": "string",
"description": {"xml": "Parameter id."}
},
{
"name": "reply[].values[].values[].name",
"type": "string",
"description": {"xml": "Parameter name."}
},
{
"name": "reply[].values[].values[].description",
"type": "string",
"description": {"xml": "Parameter description."}
},
{
"name": "reply[].values[].values[].format",
"type": "string",
"description": {"xml": "Parameter format or units."}
},
{
"name": "reply[].values[].values[].display",
"type": "string",
"description": {"xml": "Display type."}
}
]
}
},
{
"proprietary": true,
"name": "metrics/rules",
"description": {"xml": "The rules to calculate the final manifest and raise alarms. See metrics.md for details."},
"method": "GET",
"params": [],
"result": {}
},
{
"name": "metrics/values",
"description": {"xml": "Returns the current state of the values."},
"method": "GET",
"params": [{
"name": "formatted",
"type": "string",
"description": {"xml": "Apply format like in /ec2/metrics/alarms."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": ""}
},
{
"name": "reply.{resourceGroupId}",
"type": "object",
"description": {"xml": " Resource group values. Possible {resourceGroupId} values match reply[].id\n from manifest."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}",
"type": "object",
"description": {"xml": " Resource group values. Possible {resourceId} values indicate VMS resources."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}",
"type": "object",
"description": {"xml": " Parameter group values. Possible {groupId} values match\n reply[].values[].id from manifest."}
},
{
"name": "reply.{resourceGroupId}.{resourceId}.{groupId}.{parameterId}",
"description": {"xml": " Parameter value. Possible {parameterId} values match\n reply[].values[].values[].id from manifest."}
}
]
}
},
{
"name": "pluginInfo",
"description": {"xml": ""},
"method": "GET",
"params": [{
"name": "isLocal",
"type": "boolean",
"description": {"xml": "If true, data is collected only from the Server that received the\nrequest. Otherwise data is collected from all online Servers in the System."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and a list with information\nabout Server plugins on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Map containing per Server information about Plugins."}
},
{
"name": "key",
"type": "string",
"description": {"xml": "Unique id of a Server"}
},
{
"name": "value",
"type": "object",
"description": {"xml": ""}
},
{
"name": "value.name",
"type": "string",
"description": {"xml": "Name of the plugin from its manifest."}
},
{
"name": "value.description",
"type": "string",
"description": {"xml": "Description of the plugin from its manifest."}
},
{
"name": "value.libName",
"type": "string",
"description": {"xml": "Plugin name for logging: library file name with no `lib` prefix (on Linux) and no extension."}
},
{
"name": "value.libraryFilename",
"type": "string",
"description": {"xml": "Absolute path to the plugin dynamic library."}
},
{
"name": "value.homeDir",
"type": "string",
"description": {"xml": "Absolute path to the plugin's dedicated directory where its dynamic library resides together\nwith its possible dependencies, or an empty string if the plugin resides in a common\ndirectory with other plugins."}
},
{
"name": "value.vendor",
"type": "string",
"description": {"xml": "Vendor of the plugin from its manifest."}
},
{
"name": "value.version",
"type": "string",
"description": {"xml": "Version of the plugin from its manifest."}
},
{
"name": "value.optionality",
"type": "enum",
"description": {"xml": "Whether the plugin resides in \"plugins_optional\" folder or in the regular \"plugins\" folder."},
"values": [
{
"name": "nonOptional",
"description": {"xml": ""}
},
{
"name": "optional",
"description": {"xml": ""}
}
]
},
{
"name": "value.status",
"type": "enum",
"description": {"xml": "Status of the plugin after the plugin loading attempt."},
"values": [
{
"name": "notFound",
"description": {"xml": "There's no such file in the downloader."}
},
{
"name": "downloading",
"description": {"xml": "The file is being downloaded from an external URL and System Servers."}
},
{
"name": "uploading",
"description": {"xml": "Waiting for the file to be manually uploaded."}
},
{
"name": "downloaded",
"description": {"xml": "The file is stored on the Server entirely."}
},
{
"name": "corrupted",
"description": {"xml": "The file has been downloaded, but the checksum validation has failed."}
}
]
},
{
"name": "value.statusMessage",
"type": "string",
"description": {"xml": "Message in English with details about the plugin loading attempt."}
},
{
"name": "value.errorCode",
"type": "enum",
"description": {"xml": "If the plugin status is \"notLoadedBecauseOfError\", describes the error."},
"values": [
{
"name": "noError",
"description": {"xml": "No error."}
},
{
"name": "cannotLoadLibrary",
"description": {"xml": "OS cannot load the library file."}
},
{
"name": "invalidLibrary",
"description": {"xml": "The library does not seem to be a valid Nx Plugin library, e.g. no expected entry point\nfunctions found."}
},
{
"name": "libraryFailure",
"description": {"xml": "The plugin library failed to initialize, e.g. its entry point function returned an\nerror."}
},
{
"name": "badManifest",
"description": {"xml": "The plugin has returned a bad manifest, e.g. null, empty, non-json, or json with an\nunexpected structure."}
},
{
"name": "unsupportedVersion",
"description": {"xml": "The plugin API version is no longer supported."}
},
{
"name": "internalError",
"description": {"xml": "Some internal error has occured which made the proper PluginInfo structure unavailable.\nIn this case the error message is stored in statusMessage field."}
}
]
},
{
"name": "value.mainInterface",
"type": "enum",
"description": {"xml": "The highest interface that the Plugin object (the one returned by the plugin entry function)\nsupports via queryInterface()."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "nxpl_PluginInterface",
"description": {"xml": "Base interface for the old 3.2 SDK."}
},
{
"name": "nxpl_Plugin",
"description": {"xml": "Old 3.2 SDK plugin supporting roSettings."}
},
{
"name": "nxpl_Plugin2",
"description": {"xml": "Old 3.2 SDK plugin supporting pluginContainer."}
},
{
"name": "nx_sdk_IPlugin",
"description": {"xml": "Base interface for the new 4.0 SDK."}
},
{
"name": "nx_sdk_analytics_IPlugin",
"description": {"xml": "New 4.0 SDK Analytics plugin."}
}
]
},
{
"name": "value.isActive",
"type": "boolean",
"description": {"xml": "For non-Analytics plugins and for device-independent Analytics plugins, is always set to\ntrue. For device-dependent Analytics plugins, is set to true if and only if the plugin has\never had a DeviceAgent since the Server start."}
},
{
"name": "value.nxSdkVersion",
"type": "string",
"description": {"xml": "Version of the SDK, as reported by plugin's function nxSdkVersion()). Not empty - if the\nplugin fails to report the SDK version, this value is set to the description of the reason."}
},
{
"name": "value.resourceBindingInfo",
"type": "array",
"description": {"xml": "Array with information about bound resources. For Device Plugins contains zero (if the\nPlugin is not loaded) or one item. For Analytics Plugins the number of items is equal to the\nnumber of Plugin Engines."}
},
{
"name": "value.resourceBindingInfo[].id",
"type": "string",
"description": {"xml": ""}
},
{
"name": "value.resourceBindingInfo[].name",
"type": "string",
"description": {"xml": "Name of the Engine (for Analytics Plugins) or the Plugin (for Device Plugins)."}
},
{
"name": "value.resourceBindingInfo[].boundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User. In the case of Device Plugins - the number of resources that are produced by\nthe Plugin."}
},
{
"name": "value.resourceBindingInfo[].onlineBoundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User and that are currently online (thus a Device Agent is created for them). In\nthe case of Device Plugins - the number of resources that are produced by the Plugin and are\nonline."}
}
]
}
},
{
"name": "recordedTimePeriods",
"description": {"xml": "Return the recorded chunks info for the specified cameras."},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras).\nThis parameter can be used several times to define a list of cameras."},
"optional": false
},
{
"name": "startTime",
"type": "string",
"description": {"xml": "Start time of the interval (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": true
},
{
"name": "endTime",
"type": "string",
"description": {"xml": "End time of the interval (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": true
},
{
"name": "filter",
"type": "arrayJson",
"description": {"xml": "This parameter is used for Motion and Analytics Search\n(if \"periodsType\" is set to 1 or 2). Search motion or analytics event on a video\naccording to the specified attribute values.\n
Motion Search Format: string with a JSON list of sensors<\/i>,\neach sensor<\/i> is a JSON list of rectangles<\/i>, each rectangle<\/i> is:\n
\n\n {\"x\": x<\/i>, \"y\": y<\/i>, \"width\": width<\/i>,\"height\": height<\/i>}\n<\/code>\n
All values are measured in relative portions of a video frame,\nx<\/i> and width<\/i> in range [0..43], y<\/i> and height<\/i> in range [0..31],\nzero is the left-top corner.\n
Example of a full-frame rectangle for a single-sensor camera:\n[[{\"x\":0,\"y\":0,\"width\":43,\"height\":31}]]<\/code>\n
Example of two rectangles for a single-sensor camera:\n[[{\"x\":0,\"y\":0,\"width\":5,\"height\":7},{\"x\":12,\"y\":10,\"width\":8,\"height\":6}]]<\/code>\n
Analytics Search Format: string with a JSON object that might contain the following\nfields (keys):\n
\n\n
Example of the JSON object:\n{\"boundingBox\":{\"height\":0,\"width\":0.1,\"x\":0.0,\"y\":1.0},\"freeText\":\"Test\"}<\/code>"},
"optional": true
},
{
"proprietary": true,
"name": "format",
"type": "enum",
"description": {"xml": "Data format. Default value is \"json\"."},
"optional": true,
"values": [
{
"name": "ubjson",
"description": {"xml": "Universal Binary JSON data format."}
},
{
"name": "json",
"description": {"xml": "JSON data format."}
},
{
"name": "periods",
"description": {"xml": "Internal compressed binary format."}
}
]
},
{
"name": "detail",
"type": "integer",
"description": {"xml": "Chunk detail level, in milliseconds. Time periods that are\nshorter than the detail level are discarded. You can treat the detail level as the\namount of microseconds per screen pixel."},
"optional": true
},
{
"name": "periodsType",
"type": "integer",
"description": {"xml": "Chunk type."},
"optional": true,
"values": [
{
"name": "0",
"description": {"xml": "All records."}
},
{
"name": "1",
"description": {"xml": "Only chunks with motion (parameter \"filter\" might be applied)."}
},
{
"name": "2",
"description": {"xml": "Only chunks with analytics event (parameter \"filter\" might be applied)."}
}
]
},
{
"name": "keepSmallChunks",
"type": "option",
"description": {"xml": "If specified, standalone chunks smaller than the detail\nlevel are not removed from the result."},
"optional": true
},
{
"name": "limit",
"type": "integer",
"description": {"xml": "Maximum number of chunks to return."},
"optional": true
},
{
"name": "flat",
"type": "option",
"description": {"xml": "[DEPRECATED in favor of \"groupBy\"] If specified, do not group chunk\nlists by Server."},
"optional": true
},
{
"name": "groupBy",
"type": "enum",
"description": {"xml": "group type. Default value is \"serverId\"."},
"optional": true,
"values": [
{
"name": "serverId",
"description": {"xml": "group data by serverId. Result field 'guid' has server Guid value."}
},
{
"name": "cameraId",
"description": {"xml": "group data by cameraId. Result field 'guid' has camera Guid value."}
},
{
"name": "none",
"description": {"xml": "do not group data. Result is the flat list of data."}
}
]
},
{
"name": "desc",
"type": "option",
"description": {"xml": "Sort data in descending order if provided."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "If no \"flat\" parameter is specified, it is the list which contains\nfor each server its GUID (as \"guid\" field) and the list of chunks (as \"periods\"\nfield). If \"flat\" parameter is specified, it is just the list of chunks.\n
\nEach chunk is a pair of (durationMs, startTimeMs)<\/code>. Chunks are merged\nfor all requested cameras. Start time and duration are in milliseconds since epoch.\nDuration -1 means the last chunk is being recorded now."}
}
]
}
},
{
"proprietary": true,
"name": "removeDiscoveryInformation",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "ignore",
"type": "boolean",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "removeEventRule",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"name": "removeLayout",
"description": {"xml": "Delete the specified layout.\n
GET /ec2/getLayoutTours<\/code>.\n<\/p>"},
"permissions": "Administrator",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "Unique id of the Layout Tour to be deleted."},
"optional": false
}],
"result": {}
},
{
"name": "removeLicense",
"description": {"xml": "Remove the specified License from the System.\n
GET /ec2/getLicenses<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "key",
"type": "string",
"description": {"xml": "License serial number. Corresponds to the License Block SERIAL property."},
"optional": false
},
{
"name": "licenseBlock",
"type": "string",
"description": {"xml": "License Block - a plain-text \"property\" file (with \"key=value\" lines). It is generated by\nthe License Server, is bound to the particular Server (via Hardware Id), and is signed\n(the signature is stored in one of the properties). The License Block contains the following\nproperties (keys):\n
\n
NAME<\/code> VMS product name.<\/li>\n
SERIAL<\/code> Serial number of the License.<\/li>\n
HWID<\/code> Hardware Id of the Server to which the License is bound.<\/li>\n
COUNT<\/code> Number of cameras which are covered by the License.<\/li>\n
CLASS<\/code> Type of the License. Defines which VMS platforms can use the License,\n and for what kind of camera-like devices.<\/li>\n
VERSION<\/code> VMS version.<\/li>\n
BRAND<\/code> VMS product name.<\/li>\n
EXPIRATION<\/code> Expiration date in format
YYYY-MM-DD HH:MM:SS<\/code>.\n Optional; if omitted, the License lifetime is unlimited.<\/li>\n
SIGNATURE2<\/code> Digital signature created by the License Server.<\/li>\n
COMPANY<\/code> VMS vendor.<\/li>\n<\/ul>\nAdditionally, other proprietary keys may appear in the License Block."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "removeMediaServer",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"name": "removeResource",
"description": {"xml": "Delete the resource.\n
GET /ec2/getResourceParams<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "value",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "property name to remove."},
"optional": false
},
{
"name": "resourceId",
"type": "uuid",
"description": {"xml": "resource id."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "removeResources",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "removeStorage",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "removeStorages",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "removeStoredFile",
"description": {"xml": ""},
"method": "POST",
"params": [{
"name": "path",
"type": "string",
"description": {"xml": ""},
"optional": false
}],
"result": {}
},
{
"name": "removeUser",
"description": {"xml": "Delete the specified user.\n
GET /ec2/getCameraUserAttributesList<\/code>\nshould be called, the JSON object corresponding to the given camera extracted from the\nreturned array, patched, and supplied to this function.\n
GET /ec2/getCameraUserAttributesList<\/code>, and such object has the same\nstructure as an item of the array supplied to\n
POST /ec2/saveCameraUserAttributesList<\/code>.\n<\/p>"},
"permissions": "Administrator, or a custom user with \"Edit camera settings\" permission.",
"method": "POST",
"params": [
{
"name": "cameraId",
"type": "uuid",
"description": {"xml": "Camera unique id. If such object exists, omitted fields will not be changed."},
"optional": false
},
{
"name": "cameraName",
"type": "string",
"description": {"xml": "Camera name."},
"optional": false
},
{
"name": "userDefinedGroupName",
"type": "string",
"description": {"xml": "Name of the user-defined camera group."},
"optional": false
},
{
"name": "scheduleEnabled",
"type": "boolean",
"description": {"xml": "Whether recording to the archive is enabled for the camera."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "motionType",
"type": "enum",
"description": {"xml": "Type of motion detection method."},
"optional": false,
"values": [
{
"name": "MT_Default",
"description": {"xml": "Use default method."}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": "Use motion detection grid implemented by the camera."}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": "Use motion detection grid implemented by the server."}
},
{
"name": "MT_MotionWindow",
"description": {"xml": "Use motion detection window implemented by the camera."}
},
{
"name": "MT_NoMotion",
"description": {"xml": "Do not perform motion detection."}
}
]
},
{
"name": "motionMask",
"type": "string",
"description": {"xml": "List of motion detection areas and their\nsensitivity. The format is proprietary and is likely to change in\nfuture API versions. Currently, this string defines several rectangles separated\nwith \":\", each rectangle is described by 5 comma-separated numbers: sensitivity,\nx and y (for left top corner), width, height."},
"optional": false
},
{
"name": "scheduleTasks",
"type": "array",
"description": {"xml": "List of scheduleTask objects which define the camera recording\nschedule."},
"optional": false
},
{
"name": "scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds passed\nfrom 00:00:00)."},
"optional": false
},
{
"name": "scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": "Time of day when the backup ends (in seconds passed\nfrom 00:00:00)."},
"optional": false
},
{
"name": "scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "RT_Always",
"description": {"xml": "Record always."}
},
{
"name": "RT_MotionOnly",
"description": {"xml": "Record only when the motion is detected."}
},
{
"name": "RT_Never",
"description": {"xml": "Never record."}
},
{
"name": "RT_MotionAndLowQuality",
"description": {"xml": "Always record low quality\nstream, and record high quality stream on motion."}
}
]
},
{
"name": "scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": "Weekday for the recording task."},
"optional": false,
"values": [
{
"name": "1",
"description": {"xml": "Monday"}
},
{
"name": "2",
"description": {"xml": "Tuesday"}
},
{
"name": "3",
"description": {"xml": "Wednesday"}
},
{
"name": "4",
"description": {"xml": "Thursday"}
},
{
"name": "5",
"description": {"xml": "Friday"}
},
{
"name": "6",
"description": {"xml": "Saturday"}
},
{
"name": "7",
"description": {"xml": "Sunday"}
}
]
},
{
"name": "scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": "Quality of the recording."},
"optional": false,
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
}
]
},
{
"name": "scheduleTasks[].fps",
"type": "integer",
"description": {"xml": "Frames per second (integer)."},
"optional": false
},
{
"name": "scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "audioEnabled",
"type": "boolean",
"description": {"xml": "Whether audio is enabled on the camera."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "disableDualStreaming",
"type": "boolean",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": "turn of dual streaming."}
},
{
"name": "true",
"description": {"xml": "enable dual streaming if it supported by camera."}
}
]
},
{
"name": "controlEnabled",
"type": "boolean",
"description": {"xml": "Whether server manages the camera (changes resolution, FPS, create\nprofiles, etc)."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams",
"type": "string",
"description": {"xml": "Image dewarping parameters.\nThe format is proprietary and is likely to change in future API\nversions."},
"optional": false
},
{
"name": "minArchiveDays",
"type": "integer",
"description": {"xml": "Minimum number of days to keep the archive for.\nIf the value is less than or equal zero, it is not used."},
"optional": false
},
{
"name": "maxArchiveDays",
"type": "integer",
"description": {"xml": "Maximum number of days to keep the archive for.\nIf the value is less than or equal zero, it is not used."},
"optional": false
},
{
"name": "preferredServerId",
"type": "uuid",
"description": {"xml": "Unique id of a server which has the highest priority of hosting\nthe camera for failover (if the current server fails)."},
"optional": false
},
{
"name": "failoverPriority",
"type": "enum",
"description": {"xml": "Priority for the camera to be moved\nto another server for failover (if the current server fails)."},
"optional": false,
"values": [
{
"name": "FP_Never",
"description": {"xml": "Will never be moved to another server."}
},
{
"name": "FP_Low",
"description": {"xml": "Low priority against other cameras."}
},
{
"name": "FP_Medium",
"description": {"xml": "Medium priority against other cameras."}
},
{
"name": "FP_High",
"description": {"xml": "High priority against other cameras."}
}
]
},
{
"name": "backupType",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining backup options."},
"optional": false,
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": "Backup is disabled."}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": "Backup is in high quality."}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": "Backup is in low quality."}
},
{
"name": "CameraBackup_Both",
"description": {"xml": "Equivalent of \"CameraBackup_HighQuality|CameraBackup_LowQuality\"."}
},
{
"name": "CameraBackup_Default",
"description": {"xml": "A default value is used for backup options."}
}
]
},
{
"name": "logicalId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "recordBeforeMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds before a motion event to record the video\nfor."},
"optional": false
},
{
"name": "recordAfterMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds after a motion event to record the video\nfor."},
"optional": false
}
],
"result": {}
},
{
"arrayParams": true,
"name": "saveCameraUserAttributesList",
"description": {"xml": "Save additional camera attributes for a number of cameras.\n
GET /ec2/getCameraUserAttributesList<\/code>, and each object of such array has the\nsame structure as the object supplied to
POST /ec2/saveCameraUserAttributes<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "cameraId",
"type": "uuid",
"description": {"xml": "Camera unique id. If such object exists, omitted fields will not be changed."},
"optional": false
},
{
"name": "cameraName",
"type": "string",
"description": {"xml": "Camera name."},
"optional": false
},
{
"name": "userDefinedGroupName",
"type": "string",
"description": {"xml": "Name of the user-defined camera group."},
"optional": false
},
{
"name": "scheduleEnabled",
"type": "boolean",
"description": {"xml": "Whether recording to the archive is enabled for the camera."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "motionType",
"type": "enum",
"description": {"xml": "Type of motion detection method."},
"optional": false,
"values": [
{
"name": "MT_Default",
"description": {"xml": "Use default method."}
},
{
"name": "MT_HardwareGrid",
"description": {"xml": "Use motion detection grid implemented by the camera."}
},
{
"name": "MT_SoftwareGrid",
"description": {"xml": "Use motion detection grid implemented by the server."}
},
{
"name": "MT_MotionWindow",
"description": {"xml": "Use motion detection window implemented by the camera."}
},
{
"name": "MT_NoMotion",
"description": {"xml": "Do not perform motion detection."}
}
]
},
{
"name": "motionMask",
"type": "string",
"description": {"xml": "List of motion detection areas and their\nsensitivity. The format is proprietary and is likely to change in\nfuture API versions. Currently, this string defines several rectangles separated\nwith \":\", each rectangle is described by 5 comma-separated numbers: sensitivity,\nx and y (for left top corner), width, height."},
"optional": false
},
{
"name": "scheduleTasks",
"type": "array",
"description": {"xml": "List of scheduleTask objects which define the camera recording\nschedule."},
"optional": false
},
{
"name": "scheduleTasks[].startTime",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds passed\nfrom 00:00:00)."},
"optional": false
},
{
"name": "scheduleTasks[].endTime",
"type": "integer",
"description": {"xml": "Time of day when the backup ends (in seconds passed\nfrom 00:00:00)."},
"optional": false
},
{
"name": "scheduleTasks[].recordingType",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "RT_Always",
"description": {"xml": "Record always."}
},
{
"name": "RT_MotionOnly",
"description": {"xml": "Record only when the motion is detected."}
},
{
"name": "RT_Never",
"description": {"xml": "Never record."}
},
{
"name": "RT_MotionAndLowQuality",
"description": {"xml": "Always record low quality\nstream, and record high quality stream on motion."}
}
]
},
{
"name": "scheduleTasks[].dayOfWeek",
"type": "integer",
"description": {"xml": "Day of week for the recording task."},
"optional": false,
"values": [
{
"name": "1",
"description": {"xml": "Monday"}
},
{
"name": "2",
"description": {"xml": "Tuesday"}
},
{
"name": "3",
"description": {"xml": "Wednesday"}
},
{
"name": "4",
"description": {"xml": "Thursday"}
},
{
"name": "5",
"description": {"xml": "Friday"}
},
{
"name": "6",
"description": {"xml": "Saturday"}
},
{
"name": "7",
"description": {"xml": "Sunday"}
}
]
},
{
"name": "scheduleTasks[].streamQuality",
"type": "enum",
"description": {"xml": "Quality of the recording."},
"optional": false,
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
}
]
},
{
"name": "scheduleTasks[].fps",
"type": "integer",
"description": {"xml": "Frames per second (integer)."},
"optional": false
},
{
"name": "scheduleTasks[].bitrateKbps",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "audioEnabled",
"type": "boolean",
"description": {"xml": "Whether audio is enabled on the camera."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "disableDualStreaming",
"type": "boolean",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": "Turn of dual streaming."}
},
{
"name": "true",
"description": {"xml": "Enable dual streaming if it supported by camera."}
}
]
},
{
"name": "controlEnabled",
"type": "boolean",
"description": {"xml": "Whether server manages the camera (changes resolution, FPS, create\nprofiles, etc)."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams",
"type": "string",
"description": {"xml": "Image dewarping parameters.\nThe format is proprietary and is likely to change in future API\nversions."},
"optional": false
},
{
"name": "minArchiveDays",
"type": "integer",
"description": {"xml": "Minimum number of days to keep the archive for.\nIf the value is less than or equal to zero, it is not used."},
"optional": false
},
{
"name": "maxArchiveDays",
"type": "integer",
"description": {"xml": "Maximum number of days to keep the archive for.\nIf the value is less than or equal zero, it is not used."},
"optional": false
},
{
"name": "preferredServerId",
"type": "uuid",
"description": {"xml": "Unique id of a server which has the highest priority of hosting\nthe camera for failover (if the current server fails)."},
"optional": false
},
{
"name": "failoverPriority",
"type": "enum",
"description": {"xml": "Priority for the camera to be moved\nto another server for failover (if the current server fails)."},
"optional": false,
"values": [
{
"name": "FP_Never",
"description": {"xml": "Will never be moved to another server."}
},
{
"name": "FP_Low",
"description": {"xml": "Low priority against other cameras."}
},
{
"name": "FP_Medium",
"description": {"xml": "Medium priority against other cameras."}
},
{
"name": "FP_High",
"description": {"xml": "High priority against other cameras."}
}
]
},
{
"name": "backupType",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining backup options."},
"optional": false,
"values": [
{
"name": "CameraBackup_Disabled",
"description": {"xml": "Backup is disabled."}
},
{
"name": "CameraBackup_HighQuality",
"description": {"xml": "Backup is in high quality."}
},
{
"name": "CameraBackup_LowQuality",
"description": {"xml": "Backup is in low quality."}
},
{
"name": "CameraBackup_Both",
"description": {"xml": "Equivalent of \"CameraBackup_HighQuality|CameraBackup_LowQuality\"."}
},
{
"name": "CameraBackup_Default",
"description": {"xml": "A default value is used for backup options."}
}
]
},
{
"name": "logicalId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "recordBeforeMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds before a motion event to record the video\nfor."},
"optional": false
},
{
"name": "recordAfterMotionSec",
"type": "integer",
"description": {"xml": "The number of seconds after a motion event to record the video\nfor."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveCameras",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "mac",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "physicalId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "manuallyAdded",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "model",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "groupId",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "groupName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "statusFlags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "CSF_NoFlags",
"description": {"xml": ""}
},
{
"name": "CSF_HasIssuesFlag",
"description": {"xml": ""}
}
]
},
{
"name": "vendor",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "saveEventRule",
"description": {"xml": "Create or update an Event Rule in the Event/Actions Rule list.\n
GET /ec2/getEventRules<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "eventType",
"type": "enum",
"description": {"xml": "Event type to match the rule. An example of possible values can be seen in\nthe result of
GET /ec2/getEventRules<\/code>."},
"optional": false,
"values": [
{
"name": "undefinedEvent",
"description": {"xml": ""}
},
{
"name": "cameraMotionEvent",
"description": {"xml": ""}
},
{
"name": "cameraInputEvent",
"description": {"xml": ""}
},
{
"name": "cameraDisconnectEvent",
"description": {"xml": ""}
},
{
"name": "storageFailureEvent",
"description": {"xml": ""}
},
{
"name": "networkIssueEvent",
"description": {"xml": ""}
},
{
"name": "cameraIpConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverFailureEvent",
"description": {"xml": ""}
},
{
"name": "serverConflictEvent",
"description": {"xml": ""}
},
{
"name": "serverStartEvent",
"description": {"xml": ""}
},
{
"name": "licenseIssueEvent",
"description": {"xml": ""}
},
{
"name": "backupFinishedEvent",
"description": {"xml": ""}
},
{
"name": "softwareTriggerEvent",
"description": {"xml": ""}
},
{
"name": "analyticsSdkEvent",
"description": {"xml": ""}
},
{
"name": "pluginDiagnosticEvent",
"description": {"xml": ""}
},
{
"name": "poeOverBudgetEvent",
"description": {"xml": ""}
},
{
"name": "fanErrorEvent",
"description": {"xml": ""}
},
{
"name": "systemHealthEvent",
"description": {"xml": ""}
},
{
"name": "maxSystemHealthEvent",
"description": {"xml": ""}
},
{
"name": "anyCameraEvent",
"description": {"xml": ""}
},
{
"name": "anyServerEvent",
"description": {"xml": ""}
},
{
"name": "anyEvent",
"description": {"xml": ""}
},
{
"name": "userDefinedEvent",
"description": {"xml": ""}
}
]
},
{
"name": "eventResourceIds",
"type": "uuidArray",
"description": {"xml": "List of resources to match. Any resource if the list is empty."},
"optional": true
},
{
"name": "eventCondition",
"type": "string",
"description": {"xml": "Additional text filter for event rule. Used for some event types."},
"optional": true
},
{
"name": "eventState",
"type": "enum",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "inactive",
"description": {"xml": ""}
},
{
"name": "active",
"description": {"xml": ""}
},
{
"name": "undefined",
"description": {"xml": ""}
}
]
},
{
"name": "actionType",
"type": "enum",
"description": {"xml": "Action to execute if the Rule matches. An example of possible values can\nbe seen in the result of
GET /ec2/getEventRules<\/code>."},
"optional": false,
"values": [
{
"name": "undefinedAction",
"description": {"xml": ""}
},
{
"name": "cameraOutputAction",
"description": {"xml": ""}
},
{
"name": "bookmarkAction",
"description": {"xml": ""}
},
{
"name": "cameraRecordingAction",
"description": {"xml": ""}
},
{
"name": "panicRecordingAction",
"description": {"xml": ""}
},
{
"name": "sendMailAction",
"description": {"xml": ""}
},
{
"name": "diagnosticsAction",
"description": {"xml": ""}
},
{
"name": "showPopupAction",
"description": {"xml": ""}
},
{
"name": "playSoundAction",
"description": {"xml": ""}
},
{
"name": "playSoundOnceAction",
"description": {"xml": ""}
},
{
"name": "sayTextAction",
"description": {"xml": ""}
},
{
"name": "executePtzPresetAction",
"description": {"xml": ""}
},
{
"name": "showTextOverlayAction",
"description": {"xml": ""}
},
{
"name": "showOnAlarmLayoutAction",
"description": {"xml": ""}
},
{
"name": "execHttpRequestAction",
"description": {"xml": ""}
},
{
"name": "acknowledgeAction",
"description": {"xml": ""}
},
{
"name": "fullscreenCameraAction",
"description": {"xml": ""}
},
{
"name": "exitFullscreenAction",
"description": {"xml": ""}
},
{
"name": "openLayoutAction",
"description": {"xml": ""}
},
{
"name": "buzzerAction",
"description": {"xml": ""}
},
{
"name": "pushNotificationAction",
"description": {"xml": ""}
}
]
},
{
"name": "actionResourceIds",
"type": "uuidArray",
"description": {"xml": "Resource list associated with the action. The action is\nexecuted for each resource in the list."},
"optional": true
},
{
"name": "actionParams",
"type": "string",
"description": {"xml": "Additional parameters used in the action. It depends on the action\ntype."},
"optional": true
},
{
"name": "aggregationPeriod",
"type": "integer",
"description": {"xml": "Aggregation period in seconds. The action is not going to\ntrigger more often than the aggregation period."},
"optional": true
},
{
"name": "disabled",
"type": "boolean",
"description": {"xml": "Enable or disable the rule."},
"optional": false
},
{
"name": "comment",
"type": "string",
"description": {"xml": "Human-readable text. Not used on the server side."},
"optional": true
},
{
"name": "schedule",
"type": "string",
"description": {"xml": "Hex representation of the binary data. Each bit defines whether\nthe action should or should not be executed at some hour of week. Hour numbers\nstart with 0. There are 24 * 7 = 168 bits."},
"optional": true
},
{
"name": "system",
"type": "boolean",
"description": {"xml": "Whether the rule can't be deleted by user. System rules can't be deleted."},
"optional": true
},
{
"name": "EventState",
"description": {"xml": "Event state to match the rule."},
"optional": true,
"values": [
{
"name": "inactive",
"description": {"xml": "Prolonged event has finished."}
},
{
"name": "active",
"description": {"xml": "Prolonged event has started."}
},
{
"name": "undefined",
"description": {"xml": "Any state."}
}
]
}
],
"result": {}
},
{
"name": "saveLayout",
"description": {"xml": "Save layout.\n
GET /ec2/getLayouts<\/code>.\n<\/p>"},
"permissions": "Administrator, or a user who owns the layout.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Layout unique id. Can be omitted when creating a new object. If such object\nexists, omitted fields will not be changed."},
"optional": true
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Unique id of the user owning the layout."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Layout name."},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "Should be empty string."},
"optional": false
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{e02fdf56-e399-2d8f-731d-7a457333af7f}",
"description": {"xml": ""}
}]
},
{
"name": "cellAspectRatio",
"type": "float",
"description": {"xml": "Aspect ratio of a cell for layout items\n(floating-point)."},
"optional": false
},
{
"name": "cellSpacing",
"type": "float",
"description": {"xml": "Cell spacing between layout items as a share of an item's size\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items",
"type": "array",
"description": {"xml": "List of the layout items."},
"optional": false
},
{
"name": "items[].id",
"type": "uuid",
"description": {"xml": "Item unique id. Can be omitted when creating a new object."},
"optional": false
},
{
"name": "items[].flags",
"type": "integer",
"description": {"xml": "Should have fixed value."},
"optional": false,
"values": [{
"name": "0",
"description": {"xml": ""}
}]
},
{
"name": "items[].left",
"type": "float",
"description": {"xml": "Left coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].top",
"type": "float",
"description": {"xml": "Top coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].right",
"type": "float",
"description": {"xml": "Right coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].bottom",
"type": "float",
"description": {"xml": "Bottom coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].rotation",
"type": "float",
"description": {"xml": "Degree of image tilt; a positive value rotates\ncounter-clockwise (floating-point, 0..360)."},
"optional": false
},
{
"name": "items[].resourceId",
"type": "uuid",
"description": {"xml": "Camera unique id."},
"optional": false
},
{
"name": "items[].resourcePath",
"type": "string",
"description": {"xml": "If the item represents a local file - URL of the file,\notherwise is empty. Can be filled with the camera logical id when saving layout."},
"optional": false
},
{
"name": "items[].zoomLeft",
"type": "float",
"description": {"xml": "Left coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomTop",
"type": "float",
"description": {"xml": "Top coordinate of the displayed window inside\nthe camera image, as a fraction of the image height\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomRight",
"type": "float",
"description": {"xml": "Right coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomBottom",
"type": "float",
"description": {"xml": "Bottom coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomTargetId",
"type": "uuid",
"description": {"xml": "Unique id of the original layout item for\nwhich the zoom window was created."},
"optional": false
},
{
"name": "items[].contrastParams",
"type": "object",
"description": {"xml": "Image enhancement parameters."},
"optional": false
},
{
"name": "items[].contrastParams.enabled",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.blackLevel",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.whiteLevel",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.gamma",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams",
"type": "object",
"description": {"xml": "Image dewarping parameters."},
"optional": false
},
{
"name": "items[].dewarpingParams.enabled",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.xAngle",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.yAngle",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.fov",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.panoFactor",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].displayInfo",
"type": "boolean",
"description": {"xml": "Whether to display info for the layout item."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "locked",
"type": "boolean",
"description": {"xml": "Whether the layout is locked."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "fixedWidth",
"type": "integer",
"description": {"xml": "Fixed width of the layout in cells (integer)."},
"optional": false
},
{
"name": "fixedHeight",
"type": "integer",
"description": {"xml": "Fixed height of the layout in cells (integer)."},
"optional": false
},
{
"name": "logicalId",
"type": "integer",
"description": {"xml": "Logical id of the layout, set by user (integer)."},
"optional": false
},
{
"name": "backgroundImageFilename",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "backgroundWidth",
"type": "integer",
"description": {"xml": "Width of the background image in cells (integer)."},
"optional": false
},
{
"name": "backgroundHeight",
"type": "integer",
"description": {"xml": "Height of the background image in cells (integer)."},
"optional": false
},
{
"name": "backgroundOpacity",
"type": "float",
"description": {"xml": "Level of opacity of the background image (floating-point, 0..1)."},
"optional": false
},
{
"name": "contrastParams.enabled",
"description": {"xml": "Whether the image enhancement is enabled."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "contrastParams.blackLevel",
"description": {"xml": "Level of the black color\n (floating-point, 0..99)."},
"optional": false
},
{
"name": "contrastParams.whiteLevel",
"description": {"xml": "Level of the white color\n (floating-point, 0.1..100)."},
"optional": false
},
{
"name": "contrastParams.gamma",
"description": {"xml": "Gamma enhancement value\n (floating-point, 0.1..10)."},
"optional": false
},
{
"name": "dewarpingParams.enabled",
"description": {"xml": "Whether the image dewarping is enabled."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams.xAngle",
"description": {"xml": "Pan in radians."},
"optional": false
},
{
"name": "dewarpingParams.yAngle",
"description": {"xml": "Tilt in radians."},
"optional": false
},
{
"name": "dewarpingParams.fov",
"description": {"xml": "FOV in radians."},
"optional": false
},
{
"name": "dewarpingParams.panoFactor",
"description": {"xml": "Aspect ratio correction value (integer)."},
"optional": false
}
],
"result": {}
},
{
"name": "saveLayoutTour",
"description": {"xml": "Save the Layout Tour.\n
GET /ec2/getLayoutTours<\/code>.\n<\/p>"},
"permissions": "Administrator",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Layout Tour unique id. Can be omitted when creating a new object. If such\nobject exists, omitted fields will not be changed."},
"optional": true
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Tour name."},
"optional": false
},
{
"name": "items",
"type": "array",
"description": {"xml": "List of the Layout tour items."},
"optional": false
},
{
"name": "items[].resourceId",
"type": "uuid",
"description": {"xml": "Resource unique id. Can be a Layout or a Camera or something else."},
"optional": false
},
{
"name": "items[].delayMs",
"type": "integer",
"description": {"xml": "Delay between layouts switching in milliseconds."},
"optional": false
},
{
"name": "settings",
"type": "object",
"description": {"xml": ""},
"optional": true
},
{
"name": "settings.manual",
"type": "boolean",
"description": {"xml": ""},
"optional": true
}
],
"result": {}
},
{
"arrayParams": true,
"name": "saveLayouts",
"description": {"xml": "Save the list of layouts.\n
GET /ec2/getLayouts<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Layout unique id."},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Unique id of the user owning the layout."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Layout name."},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "Should be empty string."},
"optional": false
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{e02fdf56-e399-2d8f-731d-7a457333af7f}",
"description": {"xml": ""}
}]
},
{
"name": "cellAspectRatio",
"type": "float",
"description": {"xml": "Aspect ratio of a cell for layout items\n(floating-point)."},
"optional": false
},
{
"name": "cellSpacing",
"type": "float",
"description": {"xml": "Cell spacing between layout items as a share of an item's size\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items",
"type": "array",
"description": {"xml": "List of the layout items."},
"optional": false
},
{
"name": "items[].id",
"type": "uuid",
"description": {"xml": "Item unique id. Can be omitted when creating a new object."},
"optional": false
},
{
"name": "items[].flags",
"type": "integer",
"description": {"xml": "Should have fixed value."},
"optional": false,
"values": [{
"name": "0",
"description": {"xml": ""}
}]
},
{
"name": "items[].left",
"type": "float",
"description": {"xml": "Left coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].top",
"type": "float",
"description": {"xml": "Top coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].right",
"type": "float",
"description": {"xml": "Right coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].bottom",
"type": "float",
"description": {"xml": "Bottom coordinate of the layout item (floating-point)."},
"optional": false
},
{
"name": "items[].rotation",
"type": "float",
"description": {"xml": "Degree of image tilt; a positive value rotates\ncounter-clockwise (floating-point, 0..360)."},
"optional": false
},
{
"name": "items[].resourceId",
"type": "uuid",
"description": {"xml": "Camera unique id."},
"optional": false
},
{
"name": "items[].resourcePath",
"type": "string",
"description": {"xml": "If the item represents a local file - URL of the file,\notherwise is empty. Can be filled with the camera logical id when saving layout."},
"optional": false
},
{
"name": "items[].zoomLeft",
"type": "float",
"description": {"xml": "Left coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomTop",
"type": "float",
"description": {"xml": "Top coordinate of the displayed window inside\nthe camera image, as a fraction of the image height\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomRight",
"type": "float",
"description": {"xml": "Right coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomBottom",
"type": "float",
"description": {"xml": "Bottom coordinate of the displayed window inside\nthe camera image, as a fraction of the image width\n(floating-point, 0..1)."},
"optional": false
},
{
"name": "items[].zoomTargetId",
"type": "uuid",
"description": {"xml": "Unique id of the original layout item for\nwhich the zoom window was created."},
"optional": false
},
{
"name": "items[].contrastParams",
"type": "object",
"description": {"xml": "Image enhancement parameters."},
"optional": false
},
{
"name": "items[].contrastParams.enabled",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.blackLevel",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.whiteLevel",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].contrastParams.gamma",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams",
"type": "object",
"description": {"xml": "Image dewarping parameters."},
"optional": false
},
{
"name": "items[].dewarpingParams.enabled",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.xAngle",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.yAngle",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.fov",
"type": "float",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].dewarpingParams.panoFactor",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].displayInfo",
"type": "boolean",
"description": {"xml": "Whether to display info for the layout item."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "locked",
"type": "boolean",
"description": {"xml": "Whether the layout is locked."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "fixedWidth",
"type": "integer",
"description": {"xml": "Fixed width of the layout in cells (integer)."},
"optional": false
},
{
"name": "fixedHeight",
"type": "integer",
"description": {"xml": "Fixed height of the layout in cells (integer)."},
"optional": false
},
{
"name": "logicalId",
"type": "integer",
"description": {"xml": "Logical id of the layout, set by user (integer)."},
"optional": false
},
{
"name": "backgroundImageFilename",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "backgroundWidth",
"type": "integer",
"description": {"xml": "Width of the background image in pixels (integer)."},
"optional": false
},
{
"name": "backgroundHeight",
"type": "integer",
"description": {"xml": "Height of the background image in pixels (integer)."},
"optional": false
},
{
"name": "backgroundOpacity",
"type": "float",
"description": {"xml": "Level of opacity of the background image in pixels (floating-point\n0..1)."},
"optional": false
},
{
"name": "contrastParams.enabled",
"description": {"xml": "Whether the image enhancement is enabled."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "contrastParams.blackLevel",
"description": {"xml": "Level of the black color\n (floating-point, 0..99)."},
"optional": false
},
{
"name": "contrastParams.whiteLevel",
"description": {"xml": "Level of the white color\n (floating-point, 0.1..100)."},
"optional": false
},
{
"name": "contrastParams.gamma",
"description": {"xml": "Gamma enhancement value\n (floating-point, 0.1..10)."},
"optional": false
},
{
"name": "dewarpingParams.enabled",
"description": {"xml": "Whether the image dewarping is enabled."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "dewarpingParams.xAngle",
"description": {"xml": "Pan in radians."},
"optional": false
},
{
"name": "dewarpingParams.yAngle",
"description": {"xml": "Tilt in radians."},
"optional": false
},
{
"name": "dewarpingParams.fov",
"description": {"xml": "FOV in radians."},
"optional": false
},
{
"name": "dewarpingParams.panoFactor",
"description": {"xml": "Aspect ratio correction value (integer)."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveMediaServer",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "networkAddresses",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "flags",
"type": "flags",
"description": {"xml": ""},
"optional": false,
"values": [
{
"name": "SF_None",
"description": {"xml": ""}
},
{
"name": "SF_Edge",
"description": {"xml": ""}
},
{
"name": "SF_RemoteEC",
"description": {"xml": ""}
},
{
"name": "SF_HasPublicIP",
"description": {"xml": ""}
},
{
"name": "SF_IfListCtrl",
"description": {"xml": ""}
},
{
"name": "SF_timeCtrl",
"description": {"xml": ""}
},
{
"name": "SF_ArmServer",
"description": {"xml": ""}
},
{
"name": "SF_Has_HDD",
"description": {"xml": ""}
},
{
"name": "SF_NewSystem",
"description": {"xml": ""}
},
{
"name": "SF_SupportsTranscoding",
"description": {"xml": ""}
},
{
"name": "SF_HasLiteClient",
"description": {"xml": ""}
},
{
"name": "SF_P2pSyncDone",
"description": {"xml": ""}
},
{
"name": "SF_RequiresEdgeLicense",
"description": {"xml": ""}
},
{
"name": "SF_HasPoeManagementCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasFanMonitoringCapability",
"description": {"xml": ""}
},
{
"name": "SF_HasBuzzer",
"description": {"xml": ""}
}
]
},
{
"name": "version",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "systemInfo",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "authKey",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "osInfo",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "saveMediaServerUserAttributes",
"description": {"xml": "Save additional attributes of a server.\n
GET /ec2/getMediaServerUserAttributesList<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "serverId",
"type": "uuid",
"description": {"xml": "Server unique id. If such object exists, omitted fields will not be changed."},
"optional": false
},
{
"name": "serverName",
"type": "string",
"description": {"xml": "Server name."},
"optional": false
},
{
"name": "maxCameras",
"type": "integer",
"description": {"xml": "Maximum number of cameras on the server."},
"optional": false
},
{
"name": "allowAutoRedundancy",
"type": "boolean",
"description": {"xml": "Whether the server can take cameras from\nan offline server automatically."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "backupType",
"type": "enum",
"description": {"xml": "Settings for storage redundancy."},
"optional": false,
"values": [
{
"name": "Backup_Manual",
"description": {"xml": "Backup is performed only at a user's request."}
},
{
"name": "Backup_RealTime",
"description": {"xml": "Backup is performed during recording."}
},
{
"name": "Backup_Schedule",
"description": {"xml": "Backup is performed on schedule."}
}
]
},
{
"name": "backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the days of week on which the backup is\nactive."},
"optional": false,
"values": [
{
"name": "Monday",
"description": {"xml": ""}
},
{
"name": "Tuesday",
"description": {"xml": ""}
},
{
"name": "Wednesday",
"description": {"xml": ""}
},
{
"name": "Thursday",
"description": {"xml": ""}
},
{
"name": "Friday",
"description": {"xml": ""}
},
{
"name": "Saturday",
"description": {"xml": ""}
},
{
"name": "Sunday",
"description": {"xml": ""}
}
]
},
{
"name": "backupStart",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds passed from 00:00:00)."},
"optional": false
},
{
"name": "backupDuration",
"type": "integer",
"description": {"xml": "Duration of the synchronization period (in seconds). -1 if not set."},
"optional": false
},
{
"name": "backupBitrate",
"type": "integer",
"description": {"xml": "Maximum backup bitrate (in bytes per second). Negative value if not\nlimited."},
"optional": false
},
{
"name": "metadataStorageId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"arrayParams": true,
"name": "saveMediaServerUserAttributesList",
"description": {"xml": "Save additional attributes of a number of servers.\n
GET /ec2/getMediaServerUserAttributesList<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "serverId",
"type": "uuid",
"description": {"xml": "Server unique id."},
"optional": false
},
{
"name": "serverName",
"type": "string",
"description": {"xml": "Server name."},
"optional": false
},
{
"name": "maxCameras",
"type": "integer",
"description": {"xml": "Maximum number of cameras on the server."},
"optional": false
},
{
"name": "allowAutoRedundancy",
"type": "boolean",
"description": {"xml": "Whether the server can take cameras from an offline server\nautomatically."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "backupType",
"type": "enum",
"description": {"xml": "Settings for storage redundancy."},
"optional": false,
"values": [
{
"name": "Backup_Manual",
"description": {"xml": "Backup is performed only at a user's request."}
},
{
"name": "Backup_RealTime",
"description": {"xml": "Backup is performed during recording."}
},
{
"name": "Backup_Schedule",
"description": {"xml": "Backup is performed on schedule."}
}
]
},
{
"name": "backupDaysOfTheWeek",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of weekdays the backup is active on."},
"optional": false,
"values": [
{
"name": "Monday",
"description": {"xml": ""}
},
{
"name": "Tuesday",
"description": {"xml": ""}
},
{
"name": "Wednesday",
"description": {"xml": ""}
},
{
"name": "Thursday",
"description": {"xml": ""}
},
{
"name": "Friday",
"description": {"xml": ""}
},
{
"name": "Saturday",
"description": {"xml": ""}
},
{
"name": "Sunday",
"description": {"xml": ""}
}
]
},
{
"name": "backupStart",
"type": "integer",
"description": {"xml": "Time of day when the backup starts (in seconds passed from 00:00:00)."},
"optional": false
},
{
"name": "backupDuration",
"type": "integer",
"description": {"xml": "Duration of the synchronization period (in seconds). -1 if not set."},
"optional": false
},
{
"name": "backupBitrate",
"type": "integer",
"description": {"xml": "Maximum backup bitrate (in bytes per second). Negative\nvalue if not limited."},
"optional": false
},
{
"name": "metadataStorageId",
"type": "uuid",
"description": {"xml": "Storage identifier to keep metadata SQL database."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveStorage",
"description": {"xml": "Save the storage.\n
GET /ec2/getStorages<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Storage unique id. Can be omitted when creating a new object."},
"optional": true
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Parent server unique id."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Arbitrary resource name (optional)"},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "Full storage url (path to the local folder)."},
"optional": false
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{f8544a40-880e-9442-b78a-9da6db6862b4}",
"description": {"xml": ""}
}]
},
{
"name": "spaceLimit",
"type": "string",
"description": {"xml": "Free space to maintain on the storage,\nin bytes. Recommended value is 10 gigabytes for local storages and\n100 gigabytes for NAS."},
"optional": false
},
{
"name": "usedForWriting",
"type": "boolean",
"description": {"xml": "Whether writing to the storage is allowed."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "storageType",
"type": "string",
"description": {"xml": "Type of the method to access the storage."},
"optional": false,
"values": [
{
"name": "local",
"description": {"xml": ""}
},
{
"name": "network",
"description": {"xml": "(manually mounted NAS)"}
},
{
"name": "smb",
"description": {"xml": "(auto mounted NAS)"}
}
]
},
{
"name": "addParams",
"type": "array",
"description": {"xml": "List of storage additional parameters. Intended for\ninternal use; leave empty when creating a new storage."},
"optional": false
},
{
"name": "addParams[].value",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "addParams[].name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "isBackup",
"type": "boolean",
"description": {"xml": "Whether the storage is used for backup."},
"optional": false,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveStorages",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "spaceLimit",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "usedForWriting",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "storageType",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "addParams",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "addParams[].value",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "addParams[].name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "isBackup",
"type": "boolean",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "saveUser",
"description": {"xml": "
GET /ec2/getUsers<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "User unique id. Can be omitted when creating a new object. If such object\nexists, omitted fields will not be changed."},
"optional": true
},
{
"proprietary": true,
"name": "parentId",
"type": "uuid",
"description": {"xml": "Should be empty."},
"optional": true
},
{
"name": "name",
"type": "string",
"description": {"xml": "User name."},
"optional": false
},
{
"proprietary": true,
"name": "url",
"type": "string",
"description": {"xml": "Should be empty."},
"optional": true
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{774e6ecd-ffc6-ae88-0165-8f4a6d0eafa7}",
"description": {"xml": ""}
}]
},
{
"proprietary": true,
"name": "isAdmin",
"type": "boolean",
"description": {"xml": "Intended for internal use; keep the value when saving\na previously received object, use false when creating a new one."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining permissions."},
"optional": false,
"values": [
{
"name": "GlobalAdminPermission",
"description": {"xml": "Admin, can edit other non-admins."}
},
{
"name": "GlobalEditCamerasPermission",
"description": {"xml": "Can edit camera settings."}
},
{
"name": "GlobalControlVideoWallPermission",
"description": {"xml": "Can control video walls."}
},
{
"name": "GlobalViewArchivePermission",
"description": {"xml": "Can view archives of available cameras."}
},
{
"name": "GlobalExportPermission",
"description": {"xml": "Can export archives of available cameras."}
},
{
"name": "GlobalViewBookmarksPermission",
"description": {"xml": "Can view bookmarks of available cameras."}
},
{
"name": "GlobalManageBookmarksPermission",
"description": {"xml": "Can modify bookmarks of available cameras."}
},
{
"name": "GlobalUserInputPermission",
"description": {"xml": "Can change PTZ state of a camera, use 2-way audio, I/O\nbuttons."}
},
{
"name": "GlobalAccessAllMediaPermission",
"description": {"xml": "Has access to all media (cameras and web pages)."}
},
{
"name": "GlobalCustomUserPermission",
"description": {"xml": "Flag: this user has custom permissions"}
}
]
},
{
"name": "userRoleId",
"type": "uuid",
"description": {"xml": "User role unique id."},
"optional": true
},
{
"name": "email",
"type": "string",
"description": {"xml": "User's email."},
"optional": false
},
{
"proprietary": true,
"name": "digest",
"type": "string",
"description": {"xml": "HA1 digest hash from user password, as per RFC 2069. When modifying an\nexisting user, supply empty string. When creating a new user, calculate the value\nbased on UTF-8 password as follows:\n
digest = md5_hex(user_name + \":\" + realm + \":\" + password);<\/code>"},
"optional": true
},
{
"proprietary": true,
"name": "hash",
"type": "string",
"description": {"xml": "User's password hash. When modifying an existing user, supply empty string.\nWhen creating a new user, calculate the value based on UTF-8 password as follows:\n
salt = rand_hex();\nhash = \"md5$\" + salt + \"$\" + md5_hex(salt + password);<\/code>"},
"optional": true
},
{
"proprietary": true,
"name": "cryptSha512Hash",
"type": "string",
"description": {"xml": "Cryptography key hash. Supply empty string\nwhen creating, keep the value when modifying."},
"optional": true
},
{
"proprietary": true,
"name": "realm",
"type": "string",
"description": {"xml": "HTTP authorization realm as defined in RFC 2617, can be obtained\nvia /api/getTime."},
"optional": true
},
{
"name": "isLdap",
"type": "boolean",
"description": {"xml": "Whether the user was imported from LDAP."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "isEnabled",
"type": "boolean",
"description": {"xml": "Whether the user is enabled."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": "Default value."}
}
]
},
{
"name": "isCloud",
"type": "boolean",
"description": {"xml": "Whether the user is a cloud user, as opposed to a local one."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": "Default value."}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "fullName",
"type": "string",
"description": {"xml": "Full name of the user."},
"optional": false
},
{
"name": "password",
"type": "string",
"description": {"xml": "User's password"},
"optional": true
}
],
"result": {}
},
{
"name": "saveUserRole",
"description": {"xml": "
GET /ec2/getUserRoles<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "User role unique id. Can be omitted when creating a new object. If such\nobject exists, omitted fields will not be changed."},
"optional": true
},
{
"name": "name",
"type": "string",
"description": {"xml": "User role name."},
"optional": false
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining permissions."},
"optional": false,
"values": [
{
"name": "GlobalEditCamerasPermission",
"description": {"xml": "Can edit camera settings."}
},
{
"name": "GlobalControlVideoWallPermission",
"description": {"xml": "Can control video walls."}
},
{
"name": "GlobalViewArchivePermission",
"description": {"xml": "Can view archives of available cameras."}
},
{
"name": "GlobalExportPermission",
"description": {"xml": "Can export archives of available cameras."}
},
{
"name": "GlobalViewBookmarksPermission",
"description": {"xml": "Can view bookmarks of available cameras."}
},
{
"name": "GlobalManageBookmarksPermission",
"description": {"xml": "Can modify bookmarks of available cameras."}
},
{
"name": "GlobalUserInputPermission",
"description": {"xml": "Can change PTZ state of a camera, use 2-way audio, I/O\nbuttons."}
},
{
"name": "GlobalAccessAllMediaPermission",
"description": {"xml": "Has access to all media (cameras and web pages)."}
}
]
}
],
"result": {}
},
{
"arrayParams": true,
"name": "saveUsers",
"description": {"xml": "Saves the list of Users. Only local and LDAP users are supported. Cloud users won't be saved.\n
GET /ec2/getUsers<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "User unique id."},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": "Should be empty."},
"optional": true
},
{
"name": "name",
"type": "string",
"description": {"xml": "User name."},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "Should be empty."},
"optional": true
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{774e6ecd-ffc6-ae88-0165-8f4a6d0eafa7}",
"description": {"xml": ""}
}]
},
{
"proprietary": true,
"name": "isAdmin",
"type": "boolean",
"description": {"xml": "Intended for internal use; keep the value when saving\na previously received object, use false when creating a new one."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "permissions",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags defining permissions."},
"optional": false,
"values": [
{
"name": "GlobalAdminPermission",
"description": {"xml": "Admin, can edit other non-admins."}
},
{
"name": "GlobalEditCamerasPermission",
"description": {"xml": "Can edit camera settings."}
},
{
"name": "GlobalControlVideoWallPermission",
"description": {"xml": "Can control video walls."}
},
{
"name": "GlobalViewArchivePermission",
"description": {"xml": "Can view archives of available cameras."}
},
{
"name": "GlobalExportPermission",
"description": {"xml": "Can export archives of available cameras."}
},
{
"name": "GlobalViewBookmarksPermission",
"description": {"xml": "Can view bookmarks of available cameras."}
},
{
"name": "GlobalManageBookmarksPermission",
"description": {"xml": "Can modify bookmarks of available cameras."}
},
{
"name": "GlobalUserInputPermission",
"description": {"xml": "Can change PTZ state of a camera, use 2-way audio, I/O\nbuttons."}
},
{
"name": "GlobalAccessAllMediaPermission",
"description": {"xml": "Has access to all media (cameras and web pages)."}
},
{
"name": "GlobalCustomUserPermission",
"description": {"xml": "Flag: this user has custom permissions"}
}
]
},
{
"name": "userRoleId",
"type": "uuid",
"description": {"xml": "User role unique id."},
"optional": true
},
{
"name": "email",
"type": "string",
"description": {"xml": "User's email."},
"optional": false
},
{
"name": "digest",
"type": "string",
"description": {"xml": "HA1 digest hash from user password, as per RFC 2069. When modifying an\nexisting user, supply empty string. When creating a new user, calculate the value\nbased on UTF-8 password as follows:\n
digest = md5_hex(user_name + \":\" + realm + \":\" + password);<\/code>"},
"optional": true
},
{
"name": "hash",
"type": "string",
"description": {"xml": "User's password hash. When modifying an existing user, supply empty string.\nWhen creating a new user, calculate the value based on UTF-8 password as follows:\n
salt = rand_hex();\nhash = \"md5$\" + salt + \"$\" + md5_hex(salt + password);<\/code>"},
"optional": true
},
{
"name": "cryptSha512Hash",
"type": "string",
"description": {"xml": "Cryptography key hash. Supply empty string\nwhen creating, keep the value when modifying."},
"optional": true
},
{
"name": "realm",
"type": "string",
"description": {"xml": "HTTP authorization realm as defined in RFC 2617, can be obtained via\n/api/getTime."},
"optional": true
},
{
"name": "isLdap",
"type": "boolean",
"description": {"xml": "Whether the user was imported from LDAP."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "isEnabled",
"type": "boolean",
"description": {"xml": "Whether the user is enabled."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": "Default value."}
}
]
},
{
"name": "isCloud",
"type": "boolean",
"description": {"xml": "Whether the user is a cloud user, as opposed to a local one."},
"optional": true,
"values": [
{
"name": "false",
"description": {"xml": "Default value."}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "fullName",
"type": "string",
"description": {"xml": "Full name of the user."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "saveVideowall",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "typeId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "autorun",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "timeline",
"type": "boolean",
"description": {"xml": ""},
"optional": false
},
{
"name": "items",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].guid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].pcGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].snapLeft",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].snapTop",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].snapRight",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "items[].snapBottom",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].pcGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].pcIndex",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].desktopLeft",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].desktopTop",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].desktopWidth",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].desktopHeight",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].layoutLeft",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].layoutTop",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].layoutWidth",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "screens[].layoutHeight",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices[].id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices[].name",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices[].items",
"type": "array",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices[].items[].itemGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "matrices[].items[].layoutGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"name": "saveWebPage",
"description": {"xml": "
GET /ec2/getWebPages<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Web page unique id. Can be omitted when creating a new object. If such object\nexists, omitted fields will not be changed."},
"optional": true
},
{
"proprietary": true,
"name": "parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": true
},
{
"name": "name",
"type": "string",
"description": {"xml": "Web page name."},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "Web page url."},
"optional": false
},
{
"proprietary": true,
"name": "typeId",
"type": "uuid",
"description": {"xml": "Should have fixed value."},
"optional": true,
"values": [{
"name": "{57d7112a-b9c3-247b-c045-1660250adae5}",
"description": {"xml": ""}
}]
}
],
"result": {}
},
{
"name": "setAccessRights",
"description": {"xml": "
GET /ec2/getAccessRights<\/code>.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "userId",
"type": "uuid",
"description": {"xml": "User or user role unique id."},
"optional": false
},
{
"name": "resourceIds",
"type": "uuidArray",
"description": {"xml": "List of accessible resources ids."},
"optional": false
}
],
"result": {}
},
{
"arrayParams": true,
"name": "setResourceParams",
"description": {"xml": "Set resource (camera, user or server) additional parameters (camera firmware version, etc).\nThe list of parameters depends on the resource type.\n
GET /ec2/getResourceParams<\/code>.\n<\/p>"},
"method": "POST",
"params": [
{
"name": "value",
"type": "string",
"description": {"xml": "Parameter value."},
"optional": false
},
{
"name": "name",
"type": "string",
"description": {"xml": "Parameter name."},
"optional": false
},
{
"name": "resourceId",
"type": "uuid",
"description": {"xml": "Resource unique id."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "setResourceStatus",
"description": {"xml": "Change a resource status.\n
GET /ec2/getStatusList<\/code>.\n<\/p>"},
"permissions": "Administrator, or a custom user with \"Edit camera settings\" permission,\nor a user who owns the resource in case the resource is a layout.",
"method": "POST",
"params": [
{
"name": "id",
"type": "uuid",
"description": {"xml": "Unique id of the resource."},
"optional": false
},
{
"name": "status",
"type": "enum",
"description": {"xml": "new resource status."},
"optional": false,
"values": [
{
"name": "Offline",
"description": {"xml": ""}
},
{
"name": "Unauthorized",
"description": {"xml": ""}
},
{
"name": "Online",
"description": {"xml": ""}
},
{
"name": "Recording",
"description": {"xml": ""}
},
{
"name": "NotDefined",
"description": {"xml": ""}
},
{
"name": "Incompatible",
"description": {"xml": ""}
},
{
"name": "AnyStatus",
"description": {"xml": ""}
}
]
}
],
"result": {}
},
{
"name": "startUpdate",
"description": {"xml": "Starts an update process."},
"method": "POST",
"params": [{
"name": "JSON",
"type": "object",
"description": {"xml": "with the update manifest. This JSON might be requested with the\n/ec2/updateInformation?version=versionId request."},
"optional": false
}],
"result": {}
},
{
"proprietary": true,
"name": "statistics",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"proprietary": true,
"name": "testConnection",
"description": {"xml": ""},
"method": "GET",
"params": [
{
"name": "login",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "passwordHash",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo",
"type": "object",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.id",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.parentId",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.skin",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.fullVersion",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.systemInfo",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.systemRuntime",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.cpuArchitecture",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.cpuModelName",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.physicalMemory",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLVersion",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLVendor",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "clientInfo.openGLRenderer",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {"type": "object"}
},
{
"proprietary": true,
"name": "triggerStatisticsReport",
"description": {"xml": "Initiate delivery of the System statistics to the statistics server."},
"method": "POST",
"params": [],
"result": {
"caption": {"xml": "Status of the triggered delivery operation:"},
"type": "object",
"params": [
{
"name": "systemId",
"type": "uuid",
"description": {"xml": "Id of the System."}
},
{
"name": "url",
"type": "string",
"description": {"xml": "Url of the statistics Server the report is going to be delivered to."}
},
{
"name": "status",
"type": "string",
"description": {"xml": "Current status of the statistics delivery procedure."}
}
]
}
},
{
"name": "updateInformation",
"description": {"xml": "Retrieves a currently present or specified via a parameter update information manifest."},
"method": "GET",
"params": [{
"name": "version",
"type": "string",
"description": {"xml": "If present, The Server makes an attempt to retrieve an update\n manifest for the specified version id from the dedicated updates server and return it\n as a result."},
"optional": true
}],
"result": {
"caption": {"xml": "JSON with the update manifest."},
"type": "object"
}
},
{
"name": "updateStatus",
"description": {"xml": "Retrieves a current update processing system-wide state."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "A JSON array with the current update per-server state. Possible values for a\nspecific server are: idle, downloading, preparing, readyToInstall,\nlatestUpdateInstalled, offline, error."},
"type": "object"
}
},
{
"proprietary": true,
"name": "updateStoredFile",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "path",
"type": "string",
"description": {"xml": ""},
"optional": false
},
{
"name": "data",
"type": "string",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "videowallControl",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "operation",
"type": "integer",
"description": {"xml": ""},
"optional": false
},
{
"name": "videowallGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "instanceGuid",
"type": "uuid",
"description": {"xml": ""},
"optional": false
},
{
"name": "params",
"description": {"xml": ""},
"optional": false
}
],
"result": {}
}
]
},
{
"groupName": "Server API",
"urlPrefix": "/api",
"groupDescription": "This group contains functions related to a single server.",
"functions": [
{
"proprietary": true,
"name": "RecordedTimePeriods",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "activateLicense",
"description": {"xml": "Activate the new License and return the signed License Block on success. The activation is\nperformed by sending the License serial number and the current Server Hardware Id to the\nLicense Server over the internet (thus, an internet connection is required), and getting\nback the LicenseBlock signed by the License Server. After activation, the License is\nregistered in the System the same way as POST /ec2/addLicenses does."},
"method": "POST",
"params": [{
"name": "licenseKey",
"type": "string",
"description": {"xml": "License serial number."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object containing the structured representation of the License Block.\nSee the description of License Block properties in the documentation for the result of\n
GET /ec2/getLicenses<\/code>."},
"type": "object",
"params": [
{
"name": "key",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
SERIAL<\/code>."}
},
{
"name": "name",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
NAME<\/code>."}
},
{
"name": "cameraCount",
"type": "integer",
"description": {"xml": "Corresponds to the License Block property
COUNT<\/code>."}
},
{
"name": "hardwareId",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
HWID<\/code>."}
},
{
"name": "licenseType",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
CLASS<\/code>."}
},
{
"name": "version",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
VERSION<\/code>."}
},
{
"name": "brand",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
BRAND<\/code>."}
},
{
"name": "expiration",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
EXPIRATION<\/code>."}
},
{
"name": "signature",
"type": "string",
"description": {"xml": "Corresponds to the License Block property
SIGNATURE2<\/code>."}
},
{
"proprietary": true,
"name": "orderType",
"type": "string",
"description": {"xml": ""},
"optional": true
},
{
"name": "company",
"type": "string",
"description": {"xml": ""}
},
{
"name": "support",
"type": "string",
"description": {"xml": ""}
},
{
"name": "deactivations",
"type": "integer",
"description": {"xml": ""}
}
]
}
},
{
"name": "aggregator",
"description": {"xml": "This function allows to execute several requests with json content type and returns result\nas a single JSON object."},
"method": "GET",
"params": [{
"name": "exec_cmd",
"type": "string",
"description": {"xml": "HTTP url path to execute. This parameter could be repeated\nseveral times to execute several nested methods. All additions parameters after current\n\"exec_cmd\" and before next \"exec_cmd\" are passed as parameters to the nested method."},
"optional": true
}],
"result": {
"caption": {"xml": "Merged JSON data from nested methods."},
"type": "object"
}
},
{
"name": "auditLog",
"description": {"xml": "Return audit log information."},
"permissions": "Owner.",
"method": "GET",
"params": [
{
"name": "from",
"type": "string",
"description": {"xml": "Start time of a time interval (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": false
},
{
"name": "to",
"type": "string",
"description": {"xml": "End time of a time interval(as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": true
}
],
"result": {
"caption": {"xml": "Tail of the server log file in plain text format."},
"type": "text"
}
},
{
"name": "backupControl",
"description": {"xml": "Start or stop the recorded data backup process, also can report this process status."},
"method": "GET",
"params": [{
"name": "action",
"type": "enum",
"description": {"xml": "What to do and what to report about the backup process."},
"optional": true,
"values": [
{
"name": "start",
"description": {"xml": "Start backup just now."}
},
{
"name": "stop",
"description": {"xml": "Stop backup."}
},
{
"name": "
Example:\n <\/pre>\n This example triggers a generic event informing the system that a\n credit card has been used on September 16, 2016 at 16:03:41 UTC in a POS\n terminal being watched by the two specified cameras.\n<\/tt>"},
"method": "GET",
"params": [
{
"name": "timestamp",
"type": "string",
"description": {"xml": "Event date and time (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected). If \"timestamp\" is absent, the current server date and\ntime is used."},
"optional": true
},
{
"name": "source",
"type": "string",
"description": {"xml": "Name of the device which has triggered the event. It can be used\nin a filter in event rules to assign different actions to different devices. Also, the\nuser could see this name in the notifications panel. Example: \"POS terminal 5\"."},
"optional": true
},
{
"name": "caption",
"type": "string",
"description": {"xml": "Short event description. It can be used in a filter in event\nrules to assign actions depending on this text."},
"optional": true
},
{
"name": "description",
"type": "string",
"description": {"xml": "Long event description. It can be used as a filter in event\nrules to assign actions depending on this text."},
"optional": true
},
{
"name": "metadata",
"type": "objectJson",
"description": {"xml": "Additional information associated with the event, in the\nform of a JSON object. Currently this object can specify the only field \"cameraRefs\",\nbut other fields could be added in the future.\n
\n
ATTENTION: Works only if enabled by nx_vms_server.ini."},
"permissions": "Owner.",
"method": "GET",
"params": [
{
"name": "crash",
"type": "option",
"description": {"xml": "Intentionally crashes the Server."},
"optional": true
},
{
"name": "fullDump",
"type": "option",
"description": {"xml": "If specified together with \"crash\", creates full crash dump."},
"optional": true
},
{
"name": "exit",
"type": "option",
"description": {"xml": "Terminates the Server normally, via \"exit(64)\"."},
"optional": true
},
{
"name": "throwException",
"type": "option",
"description": {"xml": "Terminates the Server via throwing an exception."},
"optional": true
},
{
"name": "abort",
"type": "option",
"description": {"xml": "Terminates the Server via \"abort()\"."},
"optional": true
},
{
"name": "delayS",
"description": {"xml": "Sleep for the specified number of seconds, and then reply."},
"optional": true
}
],
"result": {}
},
{
"proprietary": true,
"name": "debugEvent",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "detachFromCloud",
"description": {"xml": "Detaches the Server from the Cloud. Local admin user is enabled, admin password is changed to\nnew value (if specified), all cloud users are disabled. Cloud link is removed. Function can\nbe called either via GET or POST method. POST data should be a json object."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "password",
"type": "string",
"description": {"xml": "Set new admin password after detach."},
"optional": true
},
{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Current user password."},
"optional": false
}
],
"result": {"caption": {"xml": "JSON result with error code."}}
},
{
"name": "detachFromSystem",
"description": {"xml": "Detaches the Server from the System and resets its state to the initial one."},
"permissions": "Owner.",
"method": "POST",
"params": [{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Current user password."},
"optional": false
}],
"result": {"caption": {"xml": "JSON result with error code."}}
},
{
"name": "discoveredPeers",
"description": {"xml": "Return a list of the discovered peers."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON with a list of the discovered peers."},
"type": "object"
}
},
{
"name": "doCameraDiagnosticsStep",
"description": {"xml": "Performs camera diagnostics."},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "type",
"type": "enum",
"description": {"xml": "Diagnostics to perform."},
"optional": false,
"values": [
{
"name": "mediaServerAvailability",
"description": {"xml": "Checks server availability"}
},
{
"name": "cameraAvailability",
"description": {"xml": "Checks if camera is accessible from the server"}
},
{
"name": "mediaStreamAvailability",
"description": {"xml": "Checks if camera media stream can be opened"}
},
{
"name": "mediaStreamIntegrity",
"description": {"xml": "Checks additional media stream parameters"}
}
]
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Diagnostics result."}
}
]
}
},
{
"name": "downloads/status",
"description": {"xml": "Retrieves the detailed status information for all files previously registered in the\nServer's Downloader via POST /api/downloads/{fileName}."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error message, and the reply data on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "On success, contains the list of file information objects for\neach file registered in the Server's Downloader."},
"optional": true
},
{
"name": "reply[].name",
"type": "string",
"description": {"xml": "Id of the file record, supplied to API calls as {fileName}."}
},
{
"name": "reply[].size",
"type": "string",
"description": {"xml": "Size of the file, in bytes."}
},
{
"name": "reply[].md5",
"type": "string",
"description": {"xml": "MD5 checksum of the entire file."}
},
{
"name": "reply[].url",
"description": {"xml": "URL via which the file could be downloaded from the internet."}
},
{
"name": "reply[].chunkSize",
"type": "string",
"description": {"xml": "Size of a chunk, in bytes."}
},
{
"name": "reply[].status",
"type": "enum",
"description": {"xml": "Current state of the file record."},
"values": [
{
"name": "notFound",
"description": {"xml": "There's no such file in the downloader."}
},
{
"name": "downloading",
"description": {"xml": "The file is being downloaded from an external URL and System Servers."}
},
{
"name": "uploading",
"description": {"xml": "Waiting for the file to be manually uploaded."}
},
{
"name": "downloaded",
"description": {"xml": "The file is stored on the Server entirely."}
},
{
"name": "corrupted",
"description": {"xml": "The file has been downloaded, but the checksum validation has failed."}
}
]
},
{
"name": "reply[].downloadedChunks",
"description": {"xml": "Bit mask, where each bit represents the respective chunk of the file and shows whether the\nServer has the chunk content. The bit mask is represented as an array of bytes encoded in\nBase64. The first chunk (with index 0) corresponds to the least significant bit of the first\nbyte (with index 0), and the last chunk corresponds to the most significant bit of the last\nbyte."}
},
{
"proprietary": true,
"name": "reply[].peerPolicy",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": "Only the provided url will be used for downloading."}
},
{
"name": "all",
"description": {"xml": ""}
},
{
"name": "byPlatform",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].touchTime",
"type": "string",
"description": {"xml": ""}
},
{
"name": "reply[].ttl",
"type": "string",
"description": {"xml": "Time-to-live of the file record, in milliseconds. After this period is expired since the\nmoment defined by \"touchTime\" field, the file record and the file content is deleted. 0\nmeans the record will not be automatically deleted."}
},
{
"proprietary": true,
"name": "reply[].additionalPeers",
"description": {"xml": ""}
},
{
"name": "reply[].absoluteDirectoryPath",
"type": "string",
"description": {"xml": "Path to the file's parent directory on the Server. If empty, the default path is used."}
}
]
}
},
{
"name": "downloads/{fileName}",
"description": {"xml": "Deletes the record about the specified file previously registered in the Server's Downloader\nvia POST /api/downloads/{fileName}."},
"method": "DELETE",
"params": [{
"name": "deleteData",
"type": "boolean",
"description": {"xml": "If set to false, the actual file will not be deleted from\nthe Server's filesystem. Default: true."},
"optional": true
}],
"result": {}
},
{
"proprietary": true,
"name": "downloads/{fileName}",
"description": {"xml": "Equivalent of POST /api/downloads/{fileName}."},
"method": "PUT",
"params": [],
"result": {}
},
{
"name": "downloads/{fileName}",
"description": {"xml": "Registers the file in the Server's Downloader. Here {fileName} is an arbitrary identifier\nfor the file; it must be unique throughout the entire VMS System, and is intended to be used\nin further calls related to this file record.\n
\nAfter registering, starts the download session for the file - the content for the file will\nbe downloaded by the Server from the internet and/or other Servers in the System which have\nalready downloaded certain chunks of the file.\n
\nThe file, when its content is obtained by the Server, can then be used for various purposes,\ne.g. to create a Virtual Camera having the file content as its video archive."},
"method": "POST",
"params": [
{
"name": "size",
"type": "integer",
"description": {"xml": "File size, in bytes. Can be omitted if unknown."},
"optional": true
},
{
"name": "md5",
"type": "string",
"description": {"xml": "MD5 checksum of the whole file content. Can be omitted if unknown."},
"optional": true
},
{
"name": "url",
"type": "string",
"description": {"xml": "Internet URL from which the Server will download the file content."},
"optional": false
},
{
"proprietary": true,
"name": "peerPolicy",
"type": "string",
"description": {"xml": "Default: none. Defines whether the Server will attempt\nto download the file from other Servers in the System, and which Servers."},
"optional": true,
"values": [
{
"name": "none",
"description": {"xml": "Do not attempt to download the file from other Servers of the System."}
},
{
"name": "all",
"description": {"xml": "Attempt to download the file from other Servers of the System."}
},
{
"name": "byPlatform",
"description": {"xml": "Attempt to download the file from other Servers of the System, but\nonly those Servers which have the same hardware platform."}
}
]
}
],
"result": {
"caption": {"xml": "JSON object with an error code and error message."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
}
]
}
},
{
"name": "downloads/{fileName}/checksums",
"description": {"xml": "Retrieves chunk checksums for the specified file previously registered in the Server's\nDownloader via POST /api/downloads/{fileName}."},
"method": "GET",
"params": [{
"proprietary": true,
"name": "extraFormatting",
"type": "option",
"description": {"xml": "If present and the requested result format is\nnon-binary, indentation and spacing will be used to improve readability."},
"optional": true
}],
"result": {
"caption": {"xml": "List of base64-encoded checksums for all chunks."},
"type": "stringArray"
}
},
{
"name": "downloads/{fileName}/chunks/{chunkIndex}",
"description": {"xml": "Retrieves the binary content of the specified chunk ({chunkIndex} is zero-based) of the file\npreviously registered in the Server's Downloader via POST /api/downloads/{fileName}."},
"method": "GET",
"params": [
{
"proprietary": true,
"name": "fromInternet",
"type": "boolean",
"description": {"xml": "Whether the chunk should be downloaded from the\ninternet and stored in the Server's Downloader. Default: false."},
"optional": true
},
{
"proprietary": true,
"name": "url",
"type": "string",
"description": {"xml": "Must be specified if and only if fromInternet is true."},
"optional": true
},
{
"proprietary": true,
"name": "chunkSize",
"type": "integer",
"description": {"xml": "Size of the chunk, in bytes, from 1 to 10485760 (10\nMB). Must be specified if and only if fromInternet is true."},
"optional": true
}
],
"result": {
"caption": {"xml": "Content of the specified file chunk, as raw bytes."},
"type": "binary"
}
},
{
"proprietary": true,
"name": "downloads/{fileName}/chunks/{chunkIndex}",
"description": {"xml": "Equivalent of PUT /api/downloads/{fileName}/chunks/{chunkIndex}."},
"method": "POST",
"params": [],
"result": {}
},
{
"name": "downloads/{fileName}/chunks/{chunkIndex}",
"description": {"xml": "Sends to the Server the binary content of the specified chunk of the file previously\nregistered in the Server's Downloader via POST /api/downloads/{fileName}. Here {chunkIndex}\nis zero-based, and the request body must contain the chunk bytes and must have\n\"Content-Type: application/octet-stream\". To validate the upload, call\nGET /api/downloads/{fileName}/status."},
"method": "PUT",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code and error message."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
}
]
}
},
{
"name": "downloads/{fileName}/status",
"description": {"xml": "Retrieves the detailed status information for the specified file previously registered in\nthe Server's Downloader via POST /api/downloads/{fileName}."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error message, and the reply data on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "On success, contains the file information object."},
"optional": true
},
{
"name": "reply.name",
"type": "string",
"description": {"xml": "Id of the file record, supplied to API calls as {fileName}."}
},
{
"name": "reply.size",
"type": "string",
"description": {"xml": "Size of the file, in bytes."}
},
{
"name": "reply.md5",
"type": "string",
"description": {"xml": "MD5 checksum of the entire file."}
},
{
"name": "reply.url",
"description": {"xml": "URL via which the file could be downloaded from the internet."}
},
{
"name": "reply.chunkSize",
"type": "string",
"description": {"xml": "Size of a chunk, in bytes."}
},
{
"name": "reply.status",
"type": "enum",
"description": {"xml": "Current state of the file record."},
"values": [
{
"name": "notFound",
"description": {"xml": "There's no such file in the downloader."}
},
{
"name": "downloading",
"description": {"xml": "The file is being downloaded from an external URL and System Servers."}
},
{
"name": "uploading",
"description": {"xml": "Waiting for the file to be manually uploaded."}
},
{
"name": "downloaded",
"description": {"xml": "The file is stored on the Server entirely."}
},
{
"name": "corrupted",
"description": {"xml": "The file has been downloaded, but the checksum validation has failed."}
}
]
},
{
"name": "reply.downloadedChunks",
"description": {"xml": "Bit mask, where each bit represents the respective chunk of the file and shows whether the\nServer has the chunk content. The bit mask is represented as an array of bytes encoded in\nBase64. The first chunk (with index 0) corresponds to the least significant bit of the first\nbyte (with index 0), and the last chunk corresponds to the most significant bit of the last\nbyte."}
},
{
"proprietary": true,
"name": "reply.peerPolicy",
"type": "enum",
"description": {"xml": ""},
"values": [
{
"name": "none",
"description": {"xml": "Only the provided url will be used for downloading."}
},
{
"name": "all",
"description": {"xml": ""}
},
{
"name": "byPlatform",
"description": {"xml": ""}
}
]
},
{
"name": "reply.touchTime",
"type": "string",
"description": {"xml": ""}
},
{
"name": "reply.ttl",
"type": "string",
"description": {"xml": "Time-to-live of the file record, in milliseconds. After this period is expired since the\nmoment defined by \"touchTime\" field, the file record and the file content is deleted. 0\nmeans the record will not be automatically deleted."}
},
{
"proprietary": true,
"name": "reply.additionalPeers",
"description": {"xml": ""}
},
{
"name": "reply.absoluteDirectoryPath",
"type": "string",
"description": {"xml": "Path to the file's parent directory on the Server. If empty, the default path is used."}
}
]
}
},
{
"proprietary": true,
"name": "downloads/{fileName}?upload",
"description": {"xml": "Equivalent of POST /api/downloads/{fileName}?upload."},
"method": "PUT",
"params": [],
"result": {}
},
{
"name": "downloads/{fileName}?upload",
"description": {"xml": "Registers the file in the Server's Downloader. Here {fileName} is an arbitrary identifier\nfor the file; it must be unique throughout the entire VMS System, and is intended to be used\nin further calls related to this file record.\n
\nAfter registering, starts the upload session for the file - the content for the file should\nthen be uploaded chunk-by-chunk via PUT /api/downloads/{fileName}/chunks/{chunkIndex}.\n
\nThe file, when its content is obtained by the Server, can then be used for various purposes,\ne.g. to create a Virtual Camera having the file content as its video archive."},
"method": "POST",
"params": [
{
"name": "size",
"type": "integer",
"description": {"xml": "File size, in bytes."},
"optional": false
},
{
"name": "md5",
"type": "string",
"description": {"xml": "MD5 checksum of the entire file."},
"optional": false
},
{
"name": "chunkSize",
"type": "integer",
"description": {"xml": "Size of the chunk, in bytes, from 1 to 10485760 (10 MB)."},
"optional": false
},
{
"name": "ttl",
"type": "integer",
"description": {"xml": "If specified, defines the time-to-live for the file, in\nmilliseconds: if the file was not written to during the specified amount of time, its\nrecord and content will be deleted from the Server."},
"optional": true
},
{
"name": "recreate",
"type": "boolean",
"description": {"xml": "Allows to create the new file record if a record for the same\n{fileName} already exists. Default: false."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with an error code and error message."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
}
]
}
},
{
"proprietary": true,
"name": "events",
"description": {"xml": "Return event log in the proprietary binary format."},
"method": "GET",
"params": [
{
"name": "from",
"type": "string",
"description": {"xml": "Start of time period (in milliseconds since epoch)."},
"optional": false
},
{
"name": "to",
"type": "string",
"description": {"xml": "End of time period (in milliseconds since epoch)."},
"optional": true
},
{
"name": "event",
"type": "enum",
"description": {"xml": "Event type."},
"optional": true
},
{
"name": "action",
"type": "enum",
"description": {"xml": "Action type."},
"optional": true
},
{
"name": "brule_id",
"type": "uuid",
"description": {"xml": "Event rule id."},
"optional": true
}
],
"result": {
"caption": {"xml": "Server event log in the proprietary binary format."},
"type": "binary"
}
},
{
"proprietary": true,
"name": "execute",
"description": {"xml": "Execute any script from subfolder \"scripts\" of the Server. Script name provides directly\nin a URL path like \"/api/execute/script1.sh\". All URL parameters are passed directly to\na script as an parameters."},
"permissions": "Owner.",
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "executeAnalyticsAction",
"description": {"xml": "Execute analytics Action from the particular analytics Plugin on this Server. The action is\napplied to the specified Object Track."},
"method": "POST",
"params": [
{
"name": "engineId",
"description": {"xml": "Id of an Analytics Engine which offers the Action."},
"optional": false
},
{
"name": "actionId",
"description": {"xml": "Id of an Action to execute."},
"optional": false
},
{
"name": "objectTrackId",
"description": {"xml": "Id of an Object Track to which the Action is applied."},
"optional": false
},
{
"name": "deviceId",
"description": {"xml": "Id of a Device from which the Action was triggered."},
"optional": false
},
{
"name": "timestampUs",
"description": {"xml": "Timestamp (microseconds) of the video frame from which the Action was\ntriggered."},
"optional": false
},
{
"name": "params",
"description": {"xml": "JSON object with key-value pairs containing values for the Action params\ndescribed in the Engine manifest."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Result returned by the executed Action."}
},
{
"name": "reply.actionUrl",
"description": {"xml": "If not empty, provides a URL composed by the Plugin, to be\nopened by the Client in an embedded browser."}
},
{
"name": "reply.messageToUser",
"description": {"xml": "If not empty, provides a message composed by the Plugin,\nto be shown to the user who triggered the Action."}
}
]
}
},
{
"proprietary": true,
"name": "executeEventAction",
"description": {"xml": "Execute event action."},
"method": "POST",
"params": [
{
"name": "actionType",
"type": "enum",
"description": {"xml": "Type of the action."},
"optional": false,
"values": [
{
"name": "UndefinedAction",
"description": {"xml": ""}
},
{
"name": "CameraOutputAction",
"description": {"xml": "Change camera output state."}
},
{
"name": "BookmarkAction",
"description": {"xml": ""}
},
{
"name": "CameraRecordingAction",
"description": {"xml": "Start camera recording."}
},
{
"name": "PanicRecordingAction",
"description": {"xml": "Activate panic recording mode."}
},
{
"name": "SendMailAction",
"description": {"xml": "Send an email."}
},
{
"name": "DiagnosticsAction",
"description": {"xml": "Write a record to the server's log."}
},
{
"name": "ShowPopupAction",
"description": {"xml": ""}
},
{
"name": "PlaySoundAction",
"description": {"xml": ""}
},
{
"name": "PlaySoundOnceAction",
"description": {"xml": ""}
},
{
"name": "SayTextAction",
"description": {"xml": ""}
},
{
"name": "ExecutePtzPresetAction",
"description": {"xml": "Execute given PTZ preset."}
},
{
"name": "ShowTextOverlayAction",
"description": {"xml": "Show text overlay over the given camera(s)."}
},
{
"name": "ShowOnAlarmLayoutAction",
"description": {"xml": "Put the given camera(s) to the Alarm Layout."}
},
{
"name": "ExecHttpRequestAction",
"description": {"xml": "Send HTTP request as an action."}
},
{
"name": "BuzzerAction",
"description": {"xml": "Enable an NVR buzzer"}
}
]
},
{
"name": "EventState",
"type": "enum",
"description": {"xml": ""},
"optional": true,
"values": [
{
"name": "inactive",
"description": {"xml": "Event has been finished (for prolonged events)."}
},
{
"name": "active",
"description": {"xml": "Event has been started (for prolonged events)."}
},
{
"name": "undefined",
"description": {"xml": "Event state is undefined (for instant events)."}
}
]
},
{
"proprietary": true,
"name": "receivedFromRemoteHost",
"type": "boolean",
"description": {"xml": ""},
"optional": true
},
{
"name": "resourceIds",
"type": "stringArray",
"description": {"xml": "List of ids for resources associated with the event.\nEach id can be either camera id, camera MAC address or camera External id."},
"optional": false
},
{
"name": "params",
"type": "objectJson",
"description": {"xml": "Json object with action parameters."},
"optional": true
},
{
"name": "runtimeParams",
"type": "objectJson",
"description": {"xml": "Json object with event parameters."},
"optional": true
},
{
"name": "ruleId",
"type": "integer",
"description": {"xml": "Event rule id."},
"optional": true
},
{
"name": "aggregationCount",
"type": "integer",
"description": {"xml": "How many events were aggregated together for this action."},
"optional": true
}
],
"result": {}
},
{
"name": "getAnalyticsActions",
"description": {"xml": "Get analytics actions from all analytics plugins on the current server which are applicable\n to the specified metadata object type."},
"method": "GET",
"params": [{
"name": "objectTypeId",
"description": {"xml": "Id of an object type to which an action should be applicable."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of objects corresponding to Analytics Actions."}
},
{
"name": "reply[].actions",
"description": {"xml": "List of JSON objects, each describing a set of actions from a\nparticular analytics plugin."}
},
{
"name": "reply[].actions[].actionIds",
"type": "stringArray",
"description": {"xml": "List of action ids."}
},
{
"name": "reply[].actions[].pluginId",
"type": "string",
"description": {"xml": "Id of an analytics plugin which offers the\n actions."}
}
]
}
},
{
"name": "getCameraParam",
"description": {"xml": "Read camera parameters. For instance: brightness, contrast e.t.c. Parameters to read should\nbe specified."},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx),\nor MAC address (not supported for certain cameras), or \"Logical Id\"."},
"optional": false
},
{
"name": "\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": false
},
{
"name": "to",
"type": "string",
"description": {"xml": "End time of a time interval (as a string containing time in\nmilliseconds since epoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": false
},
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via\n/ec2/getCamerasEx) or MAC address (not supported for\ncertain cameras). Used to filter events log by a single camera."},
"optional": true
},
{
"name": "event_type",
"type": "enum",
"description": {"xml": "Filter events log by specified event type."},
"optional": true
},
{
"name": "action_type",
"type": "enum",
"description": {"xml": "Filter events log by specified action type."},
"optional": true
},
{
"name": "brule_id",
"type": "uuid",
"description": {"xml": "Filter events log by specified event rule (keep only records\ngenerated via that event rule). This id could be obtained via /ec2/getEventRules."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of objects describing the events."}
},
{
"name": "reply[].actionType",
"type": "enum",
"description": {"xml": "Type of the action."},
"values": [
{
"name": "UndefinedAction",
"description": {"xml": ""}
},
{
"name": "CameraOutputAction",
"description": {"xml": "Change camera output state."}
},
{
"name": "BookmarkAction",
"description": {"xml": ""}
},
{
"name": "CameraRecordingAction",
"description": {"xml": "Start camera recording."}
},
{
"name": "PanicRecordingAction",
"description": {"xml": "Activate panic recording mode."}
},
{
"name": "SendMailAction",
"description": {"xml": "Send an email."}
},
{
"name": "DiagnosticsAction",
"description": {"xml": "Write a record to the server's log."}
},
{
"name": "ShowPopupAction",
"description": {"xml": ""}
},
{
"name": "PlaySoundAction",
"description": {"xml": ""}
},
{
"name": "PlaySoundOnceAction",
"description": {"xml": ""}
},
{
"name": "SayTextAction",
"description": {"xml": ""}
},
{
"name": "ExecutePtzPresetAction",
"description": {"xml": "Execute given PTZ preset."}
},
{
"name": "ShowTextOverlayAction",
"description": {"xml": "Show text overlay over the given camera(s)."}
},
{
"name": "ShowOnAlarmLayoutAction",
"description": {"xml": "Put the given camera(s) to the Alarm Layout."}
},
{
"name": "ExecHttpRequestAction",
"description": {"xml": "Send HTTP request as an action."}
},
{
"name": "BuzzerAction",
"description": {"xml": "Enable an NVR buzzer"}
}
]
},
{
"name": "reply[].actionParams",
"type": "object",
"description": {"xml": "JSON object with action parameters. Only fields\nthat are applicable to the particular action are used."}
},
{
"name": "reply[].actionParams.actionResourceId",
"type": "uuid",
"description": {"xml": "Additional parameter for event\nlog convenience."}
},
{
"name": "reply[].actionParams.url",
"type": "string",
"description": {"xml": "Play Sound / exec HTTP action."}
},
{
"name": "reply[].actionParams.emailAddress",
"type": "string",
"description": {"xml": "Email."}
},
{
"name": "reply[].actionParams.userGroup",
"type": "enum",
"description": {"xml": "Popups and System Health."},
"values": [
{
"name": "EveryOne",
"description": {"xml": ""}
},
{
"name": "AdminOnly",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].actionParams.fps",
"type": "integer",
"description": {"xml": "Frames per second for recording."}
},
{
"name": "reply[].actionParams.streamQuality",
"type": "enum",
"description": {"xml": "Stream quality for recording."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "lowest",
"description": {"xml": ""}
},
{
"name": "low",
"description": {"xml": ""}
},
{
"name": "normal",
"description": {"xml": ""}
},
{
"name": "high",
"description": {"xml": ""}
},
{
"name": "highest",
"description": {"xml": ""}
},
{
"name": "preset",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].actionParams.recordingDuration",
"type": "integer",
"description": {"xml": "Duration of the recording,\nin seconds."}
},
{
"name": "reply[].actionParams.recordAfter",
"type": "integer",
"description": {"xml": "For Bookmark, extension to the\nrecording time, in seconds."}
},
{
"name": "reply[].actionParams.relayOutputId",
"type": "string",
"description": {"xml": "Camera Output."}
},
{
"name": "reply[].actionParams.sayText",
"type": "string",
"description": {"xml": ""}
},
{
"name": "reply[].actionParams.tags",
"type": "string",
"description": {"xml": "Bookmark."}
},
{
"name": "reply[].actionParams.text",
"type": "string",
"description": {"xml": "Text for Show Text Overlay, or message\nbody for Exec HTTP Action."}
},
{
"name": "reply[].actionParams.durationMs",
"type": "integer",
"description": {"xml": "Duration in milliseconds for\nBookmark and Show Text Overlay."}
},
{
"name": "reply[].actionParams.additionalResources",
"type": "arrayJson",
"description": {"xml": "JSON list of ids of\nadditional resources; user ids for Show On Alarm Layout."}
},
{
"name": "reply[].actionParams.forced",
"type": "boolean",
"description": {"xml": "Alarm Layout - if it must be opened\nimmediately."},
"values": [
{
"name": "true",
"description": {"xml": ""}
},
{
"name": "false",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].actionParams.presetId",
"type": "string",
"description": {"xml": "Execute PTZ preset action."}
},
{
"name": "reply[].actionParams.useSource",
"type": "boolean",
"description": {"xml": "Alarm Layout - if the source\nresource should also be used."}
},
{
"name": "reply[].actionParams.recordBeforeMs",
"type": "integer",
"description": {"xml": "Bookmark start time is\nadjusted to the left by this value in milliseconds."}
},
{
"name": "reply[].actionParams.playToClient",
"type": "boolean",
"description": {"xml": "Text to be pronounced."}
},
{
"name": "reply[].actionParams.contentType",
"type": "string",
"description": {"xml": "HTTP action."}
},
{
"name": "reply[].eventParams",
"type": "object",
"description": {"xml": "JSON object with event parameters."}
},
{
"name": "reply[].eventParams.eventType",
"type": "enum",
"description": {"xml": "Type of the event."},
"values": [
{
"name": "UndefinedEvent",
"description": {"xml": "Event type is not defined. Used in rules."}
},
{
"name": "CameraMotionEvent",
"description": {"xml": "Motion has occurred on a camera."}
},
{
"name": "CameraInputEvent",
"description": {"xml": "Camera input signal is received."}
},
{
"name": "CameraDisconnectEvent",
"description": {"xml": "Camera was disconnected."}
},
{
"name": "StorageFailureEvent",
"description": {"xml": "Storage read error has occurred."}
},
{
"name": "NetworkIssueEvent",
"description": {"xml": "Network issue: packet lost, RTP timeout, etc."}
},
{
"name": "CameraIpConflictEvent",
"description": {"xml": "Found some cameras with same IP address."}
},
{
"name": "ServerFailureEvent",
"description": {"xml": "Connection to server lost."}
},
{
"name": "ServerConflictEvent",
"description": {"xml": "Two or more servers are running."}
},
{
"name": "ServerStartEvent",
"description": {"xml": "Server started."}
},
{
"name": "LicenseIssueEvent",
"description": {"xml": "Not enough licenses."}
},
{
"name": "BackupFinishedEvent",
"description": {"xml": "Archive backup done."}
},
{
"name": "SystemHealthEvent",
"description": {"xml": "System health message."}
},
{
"name": "MaxSystemHealthEvent",
"description": {"xml": "System health message."}
},
{
"name": "AnyCameraEvent",
"description": {"xml": "Event group."}
},
{
"name": "AnyServerEvent",
"description": {"xml": "Event group."}
},
{
"name": "AnyBusinessEvent",
"description": {"xml": "Event group."}
},
{
"name": "UserDefinedEvent",
"description": {"xml": "Base index for the user-defined events."}
}
]
},
{
"name": "reply[].eventParams.eventTimestampUsec",
"type": "integer",
"description": {"xml": "When did the event occur,\nin microseconds."}
},
{
"name": "reply[].eventParams.eventResourceId",
"type": "uuid",
"description": {"xml": "Event source - camera or server\nid."}
},
{
"name": "reply[].eventParams.resourceName",
"type": "string",
"description": {"xml": "Name of the resource which caused\nthe event. Used if no resource is actually registered in the system. Generic\nevent can provide some resource name which doesn't match any resourceId in\nthe system. In this case resourceName is filled and resourceId remains\nempty."}
},
{
"name": "reply[].eventParams.sourceServerId",
"type": "uuid",
"description": {"xml": "Id of a server that generated the\nevent."}
},
{
"name": "reply[].eventParams.reasonCode",
"type": "enum",
"description": {"xml": "Used in Reasoned Events as a reason\ncode."},
"values": [
{
"name": "NoReason",
"description": {"xml": ""}
},
{
"name": "NetworkNoFrameReason",
"description": {"xml": ""}
},
{
"name": "NetworkConnectionClosedReason",
"description": {"xml": ""}
},
{
"name": "NetworkRtpPacketLossReason",
"description": {"xml": ""}
},
{
"name": "ServerTerminatedReason",
"description": {"xml": ""}
},
{
"name": "ServerStartedReason",
"description": {"xml": ""}
},
{
"name": "StorageIoErrorReason",
"description": {"xml": ""}
},
{
"name": "StorageTooSlowReason",
"description": {"xml": ""}
},
{
"name": "StorageFullReason",
"description": {"xml": ""}
},
{
"name": "LicenseRemoved",
"description": {"xml": ""}
},
{
"name": "BackupFailedNoBackupStorageError",
"description": {"xml": ""}
},
{
"name": "BackupFailedSourceStorageError",
"description": {"xml": ""}
},
{
"name": "BackupFailedSourceFileError",
"description": {"xml": ""}
},
{
"name": "BackupFailedTargetFileError",
"description": {"xml": ""}
},
{
"name": "BackupFailedChunkError",
"description": {"xml": ""}
},
{
"name": "BackupEndOfPeriod",
"description": {"xml": ""}
},
{
"name": "BackupDone",
"description": {"xml": ""}
},
{
"name": "BackupCancelled",
"description": {"xml": ""}
},
{
"name": "NetworkNoResponseFromDevice",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].eventParams.inputPortId",
"type": "string",
"description": {"xml": "Used for Input events only."}
},
{
"name": "reply[].eventParams.caption",
"type": "string",
"description": {"xml": "Short event description. Used for\ncamera/server conflict as resource name which cause error. Used in generic\nevents as a short description."}
},
{
"name": "reply[].eventParams.description",
"type": "string",
"description": {"xml": "Long event description. Used for\ncamera/server conflict as a long description (conflict list). Used in\nReasoned Events as reason description. Used in generic events as a long\ndescription."}
},
{
"name": "reply[].eventParams.metadata",
"type": "arrayJson",
"description": {"xml": "Camera list which is associated\nwith the event. EventResourceId may be a POS terminal, but this is a camera\nlist which should be shown with this event."}
},
{
"name": "reply[].businessRuleId",
"type": "uuid",
"description": {"xml": "Id of the event rule."}
},
{
"name": "reply[].aggregationCount",
"type": "integer",
"description": {"xml": "Number of identical events grouped into one."}
},
{
"proprietary": true,
"name": "reply[].flags",
"type": "flags",
"description": {"xml": "Combination (via \"|\") of the flags."},
"values": [{
"name": "VideoLinkExists",
"description": {"xml": ""}
}]
}
]
}
},
{
"name": "getHardwareIds",
"description": {"xml": "Get the list of Hardware Ids of the server."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "stringArray",
"description": {"xml": "List of ids."}
}
]
}
},
{
"proprietary": true,
"name": "getHardwareInfo",
"description": {"xml": "Get hardware information"},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON with hardware information."},
"type": "object"
}
},
{
"name": "getNonce",
"description": {"xml": "Return authentication parameters: \"nonce\" and \"realm\"."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with the nonce parameters."}
},
{
"name": "reply.realm",
"type": "string",
"description": {"xml": "A string token used in authentication methods as \"realm\"."}
},
{
"name": "reply.nonce",
"type": "string",
"description": {"xml": "A session key for the current user. The current server\ntime is used as a nonce value, and the nonce is valid for about 5 minutes."}
}
]
}
},
{
"proprietary": true,
"name": "getRemoteNonce",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"proprietary": true,
"name": "getSystemId",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "getTime",
"description": {"xml": "Get the Server time, time zone and authentication realm (realm is added for convenience)."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Time-related data."}
},
{
"name": "reply.realm",
"type": "string",
"description": {"xml": "Authentication realm."}
},
{
"name": "reply.timeZoneOffset",
"type": "string",
"description": {"xml": "Time zone offset, in milliseconds."}
},
{
"name": "reply.timeZoneId",
"type": "string",
"description": {"xml": "Identification of the time zone in the text form."}
},
{
"name": "reply.osTime",
"type": "string",
"description": {"xml": "Local OS time on the Server, in milliseconds since epoch."}
},
{
"name": "reply.vmsTime",
"type": "string",
"description": {"xml": "Synchronized time of the VMS System, in milliseconds\nsince epoch."}
}
]
}
},
{
"name": "getTimeZones",
"description": {"xml": "Return the complete list of time zones supported by the server machine."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of objects representing the time zones."}
},
{
"name": "reply[].comment",
"type": "string",
"description": {"xml": "Time zone description in English."}
},
{
"name": "reply[].displayName",
"type": "string",
"description": {"xml": "Time zone verbose name in English."}
},
{
"name": "reply[].hasDaylightTime",
"type": "boolean",
"description": {"xml": "Whether the time zone has the DST feature."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].id",
"type": "string",
"description": {"xml": "Time zone identifier, to be used for e.g. /api/setTime."}
},
{
"name": "reply[].isDaylightTime",
"type": "boolean",
"description": {"xml": "Whether the time zone is on DST right now. To\nbe reported properly, the server machine should have the correct current time\nset."},
"values": [
{
"name": "false",
"description": {"xml": ""}
},
{
"name": "true",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].offsetFromUtc",
"type": "integer",
"description": {"xml": "Time zone offset from UTC (in seconds)."}
}
]
}
},
{
"name": "gettime",
"description": {"xml": "[DEPRECATED in favor of /api/getTime] Get the Server time, time zone and authentication\nrealm (the realm is added for convenience)."},
"method": "GET",
"params": [{
"proprietary": true,
"name": "local",
"type": "boolean",
"description": {"xml": "If specified, the returned utcTime will contain the local\nOS time on the Server, otherwise, it will contain the synchronized time of the VMS\nSystem. All values are in milliseconds since epoch."},
"optional": true
}],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Time-related data."}
},
{
"name": "reply.realm",
"type": "string",
"description": {"xml": "Authentication realm."}
},
{
"name": "reply.timeZoneOffset",
"type": "string",
"description": {"xml": "Time zone offset, in seconds."}
},
{
"name": "reply.timezoneId",
"type": "string",
"description": {"xml": "Identification of the time zone in the text form."}
},
{
"name": "reply.utcTime",
"type": "string",
"description": {"xml": "Server time, in milliseconds since epoch."}
}
]
}
},
{
"name": "ifconfig",
"description": {"xml": "Set new network settings (list of interfaces) for the server. Can be called only if server\nflags include \"SF_IfListCtrl\" (server flags can be obtained via /ec2/getMediaServersEx\nin \"flags\" field).
\n{\n \"user\": \"some_user\",\n \"password\": \"some_password\",\n \"cameras\":\n [\n {\n \"uniqueId\": \"00-1A-07-00-FF-FF\",\n \"url\": \"192.168.0.100\",\n \"manufacturer\": \"3100\"\n }\n ]\n}\n<\/code><\/pre><\/p>"},
"method": "POST",
"params": [
{
"name": "user",
"type": "string",
"description": {"xml": "Username for the cameras."},
"optional": true
},
{
"name": "password",
"type": "string",
"description": {"xml": "Password for the cameras."},
"optional": true
},
{
"name": "cameras",
"type": "array",
"description": {"xml": "List of objects representing the cameras."},
"optional": false
},
{
"name": "cameras[].url",
"type": "string",
"description": {"xml": "Camera url, can be obtained from \"reply.cameras[].url\"\nfield in the result of /api/manualCamera/status."},
"optional": false
},
{
"name": "cameras[].uniqueId",
"type": "string",
"description": {"xml": "Camera physical id, can be obtained from\n\"reply.cameras[].uniqueId\" field in the result of /api/manualCamera/status."},
"optional": false
},
{
"name": "cameras[].manufacturer",
"type": "string",
"description": {"xml": "Camera manufacturer, can be obtained from\n\"reply.cameras[].manufacturer\" field in the result of /api/manualCamera/status."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "manualCamera/search",
"description": {"xml": "Start searching for the cameras in manual mode. There are two ways to call this method:\nIP range search and single host search. To scan an IP range, \"start_ip\" and \"end_ip\" must be\nspecified. To run a single host search, \"url\" must be specified."},
"method": "GET",
"params": [
{
"name": "url",
"type": "string",
"description": {"xml": "A valid URL, hostname or hostname:port are accepted."},
"optional": true
},
{
"name": "start_ip",
"type": "string",
"description": {"xml": "First IP address in the range to scan. Conflicts with \"url\"."},
"optional": true
},
{
"name": "end_ip",
"type": "string",
"description": {"xml": "Last IP address in the range to scan. Conflicts with \"url\"."},
"optional": true
},
{
"name": "port",
"type": "integer",
"description": {"xml": "Cameras IP port to check. Port is auto-detected if this parameter\nis omitted and \"url\" does not contain one. Overwrites the port in \"url\" if specified."},
"optional": true
},
{
"name": "user",
"type": "string",
"description": {"xml": "Camera(s) username. Overwrites the user in \"url\" if specified."},
"optional": true
},
{
"name": "password",
"type": "string",
"description": {"xml": "Camera(s) password. Overwrites the password in \"url\" if specified."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with the initial status of camera search process, including\nprocessUuid used for other /api/manualCamera calls, and the list of objects describing\ncameras found to the moment."},
"type": "object"
}
},
{
"name": "manualCamera/status",
"description": {"xml": "Get the current status of the process of searching for the cameras."},
"method": "GET",
"params": [{
"name": "uuid",
"type": "uuid",
"description": {"xml": "Process unique id, can be obtained from \"processUuid\" field in the result\nof /api/manualCamera/search."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with the initial status of camera search process, including\nprocessUuid used for other /api/manualCamera calls, and the list of objects describing\ncameras found to the moment."},
"type": "object"
}
},
{
"name": "manualCamera/stop",
"description": {"xml": "Stop manual adding progress."},
"method": "POST",
"params": [{
"name": "uuid",
"type": "uuid",
"description": {"xml": "Process unique id, can be obtained from \"processUuid\" field in the result\nof /api/manualCamera/search."},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"proprietary": true,
"name": "mergeLdapUsers",
"description": {"xml": ""},
"method": "TODO",
"params": [],
"result": {}
},
{
"name": "mergeSystems",
"description": {"xml": "Merge two Systems.
The System that joins another System is called the current System,\nthe joinable System is called the target System. The URL<\/b> parameter sets the\ntarget Server which should be joined with the current System. Other servers, that are\nmerged with the target Server will be joined if parameter mergeOneServer<\/b> is set\nto false.
The method uses digest authentication. Two hashes should be previously\ncalculated: getKey<\/b> and postKey<\/b>. Both are mandatory. The calculation\nalgorithm is described in the \"Calculating authentication hash\"<\/b> section of this\ndocumentation. While calculating hashes, username and password of the target Server are\nneeded. Digest authentication needs realm and nonce, both can be obtained with GET\n/api/getNonce<\/code> call. The lifetime of a nonce is about a few minutes."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Current user password."},
"optional": false
},
{
"name": "url",
"type": "string",
"description": {"xml": "URL of one Server in the target System to join. The URL may contain\ncredentials for the target System, in that case getKey and postKey are not required.\nThe target System user should have Owner permissions as well."},
"optional": false
},
{
"name": "getKey",
"type": "string",
"description": {"xml": "Authorization key (\"auth\" param) for GET requests to the target\nSystem. Required if the URL does not contain credentials."},
"optional": true
},
{
"name": "postKey",
"type": "string",
"description": {"xml": "Authorization key (\"auth\" param) for POST requests to the target\nSystem. Required if the URL does not contain credentials."},
"optional": true
},
{
"name": "takeRemoteSettings",
"type": "boolean",
"description": {"xml": "Direction of the merge. Default value is false. If\nmergeOneServer<\/b> is true, takeRemoteSettings<\/b> parameter is ignored and\ntreated as false."},
"optional": true,
"values": [
{
"name": "true",
"description": {"xml": "The current system will get system name and administrator password of the\ntarget system."}
},
{
"name": "false",
"description": {"xml": "The target system will get system name and administrator password of the\ncurrent system."}
}
]
},
{
"name": "mergeOneServer",
"type": "boolean",
"description": {"xml": "Whether to merge with servers merged with the target\nserver. Default value is false. If mergeOneServer<\/b> is set to true,\ntakeRemoteSettings<\/b> is ignored and treated as false."},
"optional": true,
"values": [
{
"name": "true",
"description": {"xml": "The current system will merge with target server only. The target server\nwill be disjoined from another system (if it was joined)."}
},
{
"name": "false",
"description": {"xml": "The current system will merge with target server and all servers which are\nmerged with the target server."}
}
]
},
{
"name": "ignoreIncompatible",
"type": "boolean",
"description": {"xml": "Whether to ignore different version of merged server\nprotocols. Default value is false."},
"optional": true,
"values": [
{
"name": "true",
"description": {"xml": "Merge will start anyway."}
},
{
"name": "false",
"description": {"xml": "If the target server protocol version differs from the current server\nprotocol version merge aborts."}
}
]
},
{
"name": "dryRun",
"type": "boolean",
"description": {"xml": "Only check for merge possibility, do not perform actual merge.\nKnown issues: dry run may produce false positive results in some rare cases."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with an error code and error string."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error token, or an empty string on success."},
"values": [
{
"name": "\"FAIL\"",
"description": {"xml": "The specified System is unreachable or there is no System."}
},
{
"name": "\"UNAUTHORIZED\"",
"description": {"xml": "The authentication credentials are invalid."}
},
{
"name": "\"INCOMPATIBLE\"",
"description": {"xml": "The found system has an incompatible version or a different\ncustomization."}
},
{
"name": "\"FORBIDDEN\"",
"description": {"xml": "The user does not have permission for merge."}
},
{
"name": "\"BACKUP_ERROR\"",
"description": {"xml": "The database backup could not be created."}
},
{
"name": "\"STARTER_LICENSE_ERROR\"",
"description": {"xml": "You are about to merge Systems with Starter licenses."}
},
{
"name": "\"CONFIGURATION_ERROR\"",
"description": {"xml": "Could not configure the remote System."}
},
{
"name": "\"DEPENDENT_SYSTEM_BOUND_TO_CLOUD\"",
"description": {"xml": "System can only be merged with non-cloud."}
},
{
"name": "\"CLOUD_SYSTEMS_HAVE_DIFFERENT_OWNERS\"",
"description": {"xml": "Cannot merge two cloud systems with\ndifferent owners."}
},
{
"name": "\"UNCONFIGURED_SYSTEM\"",
"description": {"xml": "Cannot merge to the unconfigured system."}
},
{
"name": "\"UNKNOWN_ERROR\"",
"description": {"xml": "something unexpected has happend."}
},
{
"name": "\"DUPLICATE_MEDIASERVER_FOUND\"",
"description": {"xml": "Cannot merge Systems because they have at least\none Server with the same id."}
}
]
}
]
}
},
{
"name": "metrics",
"description": {"xml": ""},
"method": "GET",
"params": [{
"name": "brief",
"type": "string",
"description": {"xml": "Suppress parameters description and other details in result JSON file.\nKeep parameter name and its value only."},
"optional": true
}],
"result": {
"caption": {"xml": "JSON with various counters that display server load, amount of DB transactions, etc.\nThese counters may be used for server health monitoring, etc."},
"type": "object"
}
},
{
"proprietary": true,
"name": "metrics/",
"description": {"xml": "Returns the same values as GET /ec2/metrics/ but without multiserver aggregation.\nSee metrics.md for details."},
"method": "GET",
"params": [],
"result": {}
},
{
"name": "moduleInformation",
"description": {"xml": "Get information about the server."},
"method": "GET",
"params": [
{
"name": "allModules",
"type": "boolean",
"description": {"xml": "Set it to true to get all modules from the system."},
"optional": true
},
{
"name": "showAddresses",
"type": "boolean",
"description": {"xml": "Set it to true to show server addresses."},
"optional": true
}
],
"result": {
"caption": {"xml": "JSON object with module information."},
"type": "object"
}
},
{
"name": "moduleInformationAuthenticated",
"description": {"xml": "The same as moduleInformation but requires authentication. Useful to test connection."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with module information."},
"type": "object"
}
},
{
"name": "nvrNetworkBlock",
"description": {"xml": ""},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and an object with information\nabout NVR network block, including each port state and the total power consumption\nlimit."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "JSON object with the following structure:"}
},
{
"name": "reply.portStates",
"type": "array",
"description": {"xml": "Array of current network port states with the following structure:"}
},
{
"name": "reply.portStates[].portNumber",
"type": "integer",
"description": {"xml": "Number of the port, starting from 1."}
},
{
"name": "reply.portStates[].poweringMode",
"type": "enum",
"description": {"xml": "Device power supply policy defined by the user."},
"values": [
{
"name": "off",
"description": {"xml": "PoE is forcibly disabled on the port."}
},
{
"name": "on",
"description": {"xml": "PoE is forcibly enabled on the port."}
},
{
"name": "automatic",
"description": {"xml": "OS driver is managing the power supply on the port."}
}
]
},
{
"name": "reply.portStates[].macAddress",
"type": "string",
"description": {"xml": "MAC address of the connected device."}
},
{
"name": "reply.portStates[].devicePowerConsumptionWatts",
"description": {"xml": "Current real device power consumption in watts."}
},
{
"name": "reply.portStates[].devicePowerConsumptionLimitWatts",
"description": {"xml": "Device power consumption limit depending on its PoE class."}
},
{
"name": "reply.portStates[].linkSpeedMbps",
"type": "integer",
"description": {"xml": "Link speed in Mbps."}
},
{
"name": "reply.portStates[].poweringStatus",
"type": "enum",
"description": {"xml": "Current device power supply status."},
"values": [
{
"name": "disconnected",
"description": {"xml": "Device is disconnected, no power supply, no networking at all."}
},
{
"name": "connected",
"description": {"xml": "Device is connected but doesn't require power supply."}
},
{
"name": "powered",
"description": {"xml": "Device is connected and is being powered."}
}
]
},
{
"name": "reply.upperPowerLimitWatts",
"description": {"xml": "Upper power limit for the NVR in watts. When this limit is exceeded NVR goes to the \"PoE\n over budget\" state."}
},
{
"name": "reply.lowerPowerLimitWatts",
"description": {"xml": "Lower power limit for the NVR in watts. If the NVR is in the \"PoE over budget\" state and\n power consumption goes below this limit then the NVR goes to the normal state."}
},
{
"name": "reply.isInPoeOverBudgetMode",
"type": "boolean",
"description": {"xml": "Indicates whether the NVR is in \"PoE over budget\" state."}
}
]
}
},
{
"name": "nvrNetworkBlock",
"description": {"xml": ""},
"method": "POST",
"params": [
{
"name": "portPoweringModes",
"type": "array",
"description": {"xml": "List of port powering modes with the following structure:"},
"optional": false
},
{
"name": "portPoweringModes[].portNumber",
"type": "integer",
"description": {"xml": "Number of the port, starting from 1."},
"optional": false
},
{
"name": "portPoweringModes[].poweringMode",
"type": "enum",
"description": {"xml": "Device power supply policy defined by the user."},
"optional": false,
"values": [
{
"name": "off",
"description": {"xml": "PoE is forcibly disabled on the port."}
},
{
"name": "on",
"description": {"xml": "PoE is forcibly enabled on the port."}
},
{
"name": "automatic",
"description": {"xml": "OS driver is managing the power supply on the port."}
}
]
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and an object with information\nabout NVR network block after powering mode update, including each port state and the\ntotal power consumption limit."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of port powering modes after update with the following\nstructure:"}
},
{
"name": "reply[].portNumber",
"type": "integer",
"description": {"xml": "Number of the port, starting from 1."}
},
{
"name": "reply[].poweringMode",
"type": "enum",
"description": {"xml": "Device power supply policy defined by the user."},
"values": [
{
"name": "off",
"description": {"xml": "PoE is forcibly disabled on the port."}
},
{
"name": "on",
"description": {"xml": "PoE is forcibly enabled on the port."}
},
{
"name": "automatic",
"description": {"xml": "OS driver is managing the power supply on the port."}
}
]
}
]
}
},
{
"name": "ping",
"description": {"xml": "Ping the Server."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Object with data."}
},
{
"name": "reply.moduleGuid",
"type": "uuid",
"description": {"xml": "Id of the Server Module."}
},
{
"name": "reply.localSystemId",
"type": "uuid",
"description": {"xml": "Id of the System."}
},
{
"proprietary": true,
"name": "sysIdTime",
"type": "integer",
"description": {"xml": ""}
},
{
"proprietary": true,
"name": "tranLogTime",
"description": {"xml": ""}
}
]
}
},
{
"name": "pingSystem",
"description": {"xml": "Ping the system."},
"method": "GET",
"params": [
{
"name": "url",
"type": "string",
"description": {"xml": "System URL to ping."},
"optional": false
},
{
"name": "getKey",
"type": "string",
"description": {"xml": "Authorization key (\"auth\" param) for the System to ping."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error token, or an empty string on success."},
"values": [
{
"name": "\"FAIL\"",
"description": {"xml": "The specified System is unreachable or there is no System."}
},
{
"name": "\"UNAUTHORIZED\"",
"description": {"xml": "The authentication credentials are invalid."}
},
{
"name": "\"INCOMPATIBLE\"",
"description": {"xml": "The found system has an incompatible version or a different\ncustomization."}
}
]
},
{
"name": "reply",
"type": "object",
"description": {"xml": "Module information."}
}
]
}
},
{
"name": "pluginInfo",
"description": {"xml": "Deprecated in favor of /ec2/pluginInfo."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and a list with information\nabout Server plugins on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of JSON objects with the following structure:"}
},
{
"name": "reply[].name",
"type": "string",
"description": {"xml": "Name of the plugin from its manifest."}
},
{
"name": "reply[].description",
"type": "string",
"description": {"xml": "Description of the plugin from its manifest."}
},
{
"name": "reply[].libName",
"type": "string",
"description": {"xml": "Plugin name for logging: library file name with no `lib` prefix (on Linux) and no extension."}
},
{
"name": "reply[].libraryFilename",
"type": "string",
"description": {"xml": "Absolute path to the plugin dynamic library."}
},
{
"name": "reply[].homeDir",
"type": "string",
"description": {"xml": "Absolute path to the plugin's dedicated directory where its dynamic library resides together\nwith its possible dependencies, or an empty string if the plugin resides in a common\ndirectory with other plugins."}
},
{
"name": "reply[].vendor",
"type": "string",
"description": {"xml": "Vendor of the plugin from its manifest."}
},
{
"name": "reply[].version",
"type": "string",
"description": {"xml": "Version of the plugin from its manifest."}
},
{
"name": "reply[].optionality",
"type": "enum",
"description": {"xml": "Whether the plugin resides in \"plugins_optional\" folder or in the regular \"plugins\" folder."},
"values": [
{
"name": "nonOptional",
"description": {"xml": ""}
},
{
"name": "optional",
"description": {"xml": ""}
}
]
},
{
"name": "reply[].status",
"type": "enum",
"description": {"xml": "Status of the plugin after the plugin loading attempt."},
"values": [
{
"name": "notFound",
"description": {"xml": "There's no such file in the downloader."}
},
{
"name": "downloading",
"description": {"xml": "The file is being downloaded from an external URL and System Servers."}
},
{
"name": "uploading",
"description": {"xml": "Waiting for the file to be manually uploaded."}
},
{
"name": "downloaded",
"description": {"xml": "The file is stored on the Server entirely."}
},
{
"name": "corrupted",
"description": {"xml": "The file has been downloaded, but the checksum validation has failed."}
}
]
},
{
"name": "reply[].statusMessage",
"type": "string",
"description": {"xml": "Message in English with details about the plugin loading attempt."}
},
{
"name": "reply[].errorCode",
"type": "enum",
"description": {"xml": "If the plugin status is \"notLoadedBecauseOfError\", describes the error."},
"values": [
{
"name": "noError",
"description": {"xml": "No error."}
},
{
"name": "cannotLoadLibrary",
"description": {"xml": "OS cannot load the library file."}
},
{
"name": "invalidLibrary",
"description": {"xml": "The library does not seem to be a valid Nx Plugin library, e.g. no expected entry point\nfunctions found."}
},
{
"name": "libraryFailure",
"description": {"xml": "The plugin library failed to initialize, e.g. its entry point function returned an\nerror."}
},
{
"name": "badManifest",
"description": {"xml": "The plugin has returned a bad manifest, e.g. null, empty, non-json, or json with an\nunexpected structure."}
},
{
"name": "unsupportedVersion",
"description": {"xml": "The plugin API version is no longer supported."}
},
{
"name": "internalError",
"description": {"xml": "Some internal error has occured which made the proper PluginInfo structure unavailable.\nIn this case the error message is stored in statusMessage field."}
}
]
},
{
"name": "reply[].mainInterface",
"type": "enum",
"description": {"xml": "The highest interface that the Plugin object (the one returned by the plugin entry function)\nsupports via queryInterface()."},
"values": [
{
"name": "undefined",
"description": {"xml": ""}
},
{
"name": "nxpl_PluginInterface",
"description": {"xml": "Base interface for the old 3.2 SDK."}
},
{
"name": "nxpl_Plugin",
"description": {"xml": "Old 3.2 SDK plugin supporting roSettings."}
},
{
"name": "nxpl_Plugin2",
"description": {"xml": "Old 3.2 SDK plugin supporting pluginContainer."}
},
{
"name": "nx_sdk_IPlugin",
"description": {"xml": "Base interface for the new 4.0 SDK."}
},
{
"name": "nx_sdk_analytics_IPlugin",
"description": {"xml": "New 4.0 SDK Analytics plugin."}
}
]
},
{
"name": "reply[].isActive",
"type": "boolean",
"description": {"xml": "For non-Analytics plugins and for device-independent Analytics plugins, is always set to\ntrue. For device-dependent Analytics plugins, is set to true if and only if the plugin has\never had a DeviceAgent since the Server start."}
},
{
"name": "reply[].nxSdkVersion",
"type": "string",
"description": {"xml": "Version of the SDK, as reported by plugin's function nxSdkVersion()). Not empty - if the\nplugin fails to report the SDK version, this value is set to the description of the reason."}
},
{
"name": "reply[].resourceBindingInfo",
"type": "array",
"description": {"xml": "Array with information about bound resources. For Device Plugins contains zero (if the\nPlugin is not loaded) or one item. For Analytics Plugins the number of items is equal to the\nnumber of Plugin Engines."}
},
{
"name": "reply[].resourceBindingInfo[].id",
"type": "string",
"description": {"xml": ""}
},
{
"name": "reply[].resourceBindingInfo[].name",
"type": "string",
"description": {"xml": "Name of the Engine (for Analytics Plugins) or the Plugin (for Device Plugins)."}
},
{
"name": "reply[].resourceBindingInfo[].boundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User. In the case of Device Plugins - the number of resources that are produced by\nthe Plugin."}
},
{
"name": "reply[].resourceBindingInfo[].onlineBoundResourceCount",
"type": "integer",
"description": {"xml": "For Analytics Plugins - number of resources on which the Engine is enabled automatically or\nby the User and that are currently online (thus a Device Agent is created for them). In\nthe case of Device Plugins - the number of resources that are produced by the Plugin and are\nonline."}
}
]
}
},
{
"name": "ptz",
"description": {"xml": "Perform reading or writing PTZ operation"},
"method": "GET",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx)\nor MAC address (not supported for certain cameras)."},
"optional": false
},
{
"name": "command",
"type": "enum",
"description": {"xml": "PTZ operation"},
"optional": false,
"values": [
{
"name": "ContinuousMovePtzCommand",
"description": {"xml": "Start PTZ continues move. Parameters xSpeed, ySpeed and\nzSpeed are used in range [-1.0..+1.0]. To stop moving use value 0 for all\nparameters."}
},
{
"name": "ContinuousFocusPtzCommand",
"description": {"xml": "Start PTZ focus in or out. Parameter speed defines\nspeed and focus direction in range [-1.0..+1.0]."}
},
{
"name": "AbsoluteDeviceMovePtzCommand",
"description": {"xml": "Move camera to absolute position. Parameters xPos,\nyPos and zPos are used in range defined by camera. Parameter speed is used in range\n[0..1.0]."}
},
{
"name": "AbsoluteLogicalMovePtzCommand",
"description": {"xml": "Move camera to absolute position. Parameters xPos,\nyPos range are: [-180..+180]. Parameter zPos range is: [0..180] (field of view in\ndegree). Parameters speed range is: [0..1.0]."}
},
{
"name": "GetDevicePositionPtzCommand",
"description": {"xml": "Read camera current position. Return parameters xPos,\nyPos and zPos in range defined by camera."}
},
{
"name": "GetLogicalPositionPtzCommand",
"description": {"xml": "Read camera current position. Return parameters\nxPos, yPos in range [-180..+180]. Return parameter zPos in range [0..180] (field of\nview in degree)."}
},
{
"name": "CreatePresetPtzCommand",
"description": {"xml": "Create PTZ preset. Parameter presetId defines internal\npreset name. Parameter presetName defines display preset name."}
},
{
"name": "UpdatePresetPtzCommand",
"description": {"xml": "Update PTZ preset display name. Parameter presetId defines\ninternal preset name. Parameter presetName defines display preset name."}
},
{
"name": "RemovePresetPtzCommand",
"description": {"xml": "Update PTZ preset display name. Parameter presetId defines\ninternal preset name"}
},
{
"name": "ActivatePresetPtzCommand",
"description": {"xml": "Go to PTZ preset. Parameter presetId defines internal\npreset name. Parameter speed defines move speed in range [0..1.0.]"}
},
{
"name": "GetPresetsPtzCommand",
"description": {"xml": "Read PTZ presets list."}
},
{
"name": "GetToursPtzCommand",
"description": {"xml": "Read PTZ tours list."}
},
{
"name": "ActivateTourPtzCommand",
"description": {"xml": "Activate PTZ tour. Parameter tourId defines defines internal\ntour name. Parameter tourName defines display preset name."}
}
]
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "rebuildArchive",
"description": {"xml": "Start or stop the server archive rebuilding, also can report this process status."},
"method": "GET",
"params": [
{
"name": "action",
"type": "enum",
"description": {"xml": "What to do and what to report about the server archive rebuild."},
"optional": true,
"values": [
{
"name": "start",
"description": {"xml": "Start server archive rebuild."}
},
{
"name": "stop",
"description": {"xml": "Stop rebuild."}
},
{
"name": "
Server will restart after executing this command."},
"permissions": "Owner.",
"method": "POST",
"params": [{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Current admin password"},
"optional": false
}],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"proprietary": true,
"name": "saveCloudSystemCredentials",
"description": {"xml": "Sets or resets cloud credentials (systemId and authorization key) to be used by system"},
"method": "POST",
"params": [
{
"name": "cloudSystemId",
"type": "string",
"description": {"xml": ""},
"optional": true
},
{
"name": "cloudAuthenticationKey",
"type": "string",
"description": {"xml": ""},
"optional": true
},
{
"name": "reset",
"type": "string",
"description": {"xml": ""},
"optional": true,
"values": [{
"name": "true",
"description": {"xml": "If specified, removes cloud credentials from DB. System will not connect to\ncloud anymore"}
}]
}
],
"result": {}
},
{
"proprietary": true,
"name": "scriptList",
"description": {"xml": "Return list of scripts to execute."},
"permissions": "Owner.",
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with string list."},
"type": "object"
}
},
{
"name": "setCameraParam",
"description": {"xml": "Sets values of several camera parameters. These parameters are used on the Advanced tab in\ncamera settings. For instance: brightness, contrast, etc."},
"method": "POST",
"params": [
{
"name": "cameraId",
"type": "string",
"description": {"xml": "Camera id (can be obtained from \"id\" field via /ec2/getCamerasEx),\nor MAC address (not supported for certain cameras), or \"Logical Id\"."},
"optional": false
},
{
"name": "paramValues",
"type": "object",
"description": {"xml": "Name-to-value map of camera parameters to set."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with an error code, error string, and the reply on success."},
"type": "object",
"params": [
{
"name": "error",
"type": "string",
"description": {"xml": "Error code, \"0\" means no error."}
},
{
"name": "errorString",
"type": "string",
"description": {"xml": "Error message in English, or an empty string."}
},
{
"name": "reply",
"type": "array",
"description": {"xml": "List of objects representing the camera parameters that have\nchanged their values, including the ones that were changed by the device in\nresponse to changing some other parameters."}
},
{
"name": "reply[].id",
"type": "string",
"description": {"xml": "Parameter id."}
},
{
"name": "reply[].value",
"type": "string",
"description": {"xml": "Parameter value."}
}
]
}
},
{
"name": "setTime",
"description": {"xml": "Set current time on the server machine.\nCan be called only if server flags include \"SF_timeCtrl\"\n(server flags can be obtained via /ec2/getMediaServersEx in \"flags\" field).\n\n{\n \"dateTime\": \"2015-02-28T16:37:00\",\n \"timeZoneId\": \"Europe/Moscow\"\n}\n<\/code><\/pre>\n<\/p>"},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "timeZoneId",
"type": "string",
"description": {"xml": "Time zone identifier, can be obtained via /api/getTimeZones."},
"optional": true
},
{
"name": "dateTime",
"type": "string",
"description": {"xml": "Date and time (as string containing time in milliseconds since\nepoch, or a local time formatted like\n
\"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>: