fe7fffffffffffffffffffffffffffffffffffffff<\/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": ""}
}
]
}
]
}
},
{
"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": "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": "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": "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": ""}
},
{
"name": "licenses[].licenseBlock",
"type": "string",
"description": {"xml": ""}
},
{
"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": "integer",
"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": "Return list of layout tours"},
"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": "Return list of user layout"},
"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": "Read license list"},
"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 objects in the requested format."},
"type": "array",
"params": [
{
"name": "key",
"type": "string",
"description": {"xml": ""}
},
{
"name": "licenseBlock",
"type": "string",
"description": {"xml": ""}
}
]
}
},
{
"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": ""}
}
]
}
},
{
"name": "getMediaServersEx",
"description": {"xml": "Return server list."},
"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": "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": "integer",
"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": "Return 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": ""}
}
]
}
},
{
"name": "getStatusList",
"description": {"xml": "Read 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": "Read the list of current 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": "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": "integer",
"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",
"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": "integer",
"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": ""}
}
]
}
},
{
"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": "Return list of video walls"},
"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": "Return list of web pages"},
"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": "Return list of folders and files in a virtual FS stored inside\ndatabase. This function is used to add files (such audio for notifications)\nto 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",
"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": "unique",
"type": "string",
"description": {"xml": "id of the last merge operation."}
},
{
"name": "true",
"type": "boolean",
"description": {"xml": "if last merge operation is in progress."}
}
]
}
},
{
"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(\"periodsType\" must be set to 1 or 2). Search motion or analytics event on a video according\nto specified attributes 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 take the following attributes\nas an input:\n
\n\n- \"boundingBox\" key represents a rectangle<\/i>. Value is a dictionary with same format\nas for Motion Search rectangle;<\/li>\n
- \"freeText\" key for full-text search over analytics data attributes. Value is expected to be a\nstring with search input;\n<\/li>\n<\/ul>\n
Example of JSON object:\n{\"boundingBox\":{\"height\":0,\"width\":0.1,\"x\":0.,\"y\":1.},\"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\" is required)."}
},
{
"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."}
}
]
}
},
{
"name": "removeLayout",
"description": {"xml": "Delete the specified layout.\n\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "removeResource",
"description": {"xml": "Delete the resource.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": {}
},
{
"name": "removeUser",
"description": {"xml": "Delete the specified user.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "User role unique id."},
"optional": false
}],
"result": {}
},
{
"name": "removeWebPage",
"description": {"xml": "Delete the specified web page.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [{
"name": "id",
"type": "uuid",
"description": {"xml": "Web page unique id."},
"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"
}
},
{
"name": "saveCameraUserAttributes",
"description": {"xml": "Save additional camera attributes for a single camera.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "QualityLowest",
"description": {"xml": ""}
},
{
"name": "QualityLow",
"description": {"xml": ""}
},
{
"name": "QualityNormal",
"description": {"xml": ""}
},
{
"name": "QualityHigh",
"description": {"xml": ""}
},
{
"name": "QualityHighest",
"description": {"xml": ""}
},
{
"name": "QualityPreSet",
"description": {"xml": ""}
},
{
"name": "QualityNotDefined",
"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
\nParameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "QualityLowest",
"description": {"xml": ""}
},
{
"name": "QualityLow",
"description": {"xml": ""}
},
{
"name": "QualityNormal",
"description": {"xml": ""}
},
{
"name": "QualityHigh",
"description": {"xml": ""}
},
{
"name": "QualityHighest",
"description": {"xml": ""}
},
{
"name": "QualityPreSet",
"description": {"xml": ""}
},
{
"name": "QualityNotDefined",
"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": {}
},
{
"name": "saveEventRule",
"description": {"xml": "Create or update event rule in event/actions rule list.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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. Example of possible values can be seen in\nthe result of the corresponding GET function."},
"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": "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. Example of possible values can be\nseen in the result of the corresponding GET function."},
"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": "actionResourceIds",
"type": "uuidArray",
"description": {"xml": "Resource list associated with the action. The action is executed\nfor each resource in the list."},
"optional": true
},
{
"name": "actionParams",
"type": "string",
"description": {"xml": "Additional parameters used in the action. It depends on the action type."},
"optional": true
},
{
"name": "aggregationPeriod",
"type": "integer",
"description": {"xml": "Aggregation period in seconds. The action is not going to trigger\nmore 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
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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 layout tour.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\n<\/p>"},
"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": 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": {}
},
{
"name": "saveMediaServerUserAttributes",
"description": {"xml": "Save additional attributes of a server.\n
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\n<\/p>"},
"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 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
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "integer",
"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": {}
},
{
"name": "saveUser",
"description": {"xml": "
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "Indended 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:\ndigest = 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:\nsalt = 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": "\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
},
{
"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": "Indended 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:\ndigest = 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:\nsalt = 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": {}
},
{
"name": "saveWebPage",
"description": {"xml": "\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": "
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\n<\/p>"},
"permissions": "Administrator.",
"method": "POST",
"params": [
{
"name": "userId",
"type": "uuid",
"description": {"xml": "User 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
\nParameters should be passed as a JSON array of objects in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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
\nParameters should be passed as a JSON object in POST message body with\ncontent type \"application/json\". Example of such object can be seen in\nthe result of the corresponding GET function.\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": {}
},
{
"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"
}
}
]
},
{
"groupName": "Server API",
"urlPrefix": "/api",
"groupDescription": "This group contains functions related to a single server.",
"functions": [
{
"name": "activateLicense",
"description": {"xml": "Activate new license and return license JSON data if success. It requires internet to\nconnect to the license server."},
"method": "POST",
"params": [{
"name": "licenseKey",
"type": "string",
"description": {"xml": "License serial number."},
"optional": false
}],
"result": {
"caption": {"xml": "License JSON data."},
"type": "object"
}
},
{
"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": "",
"description": {"xml": "Report the backup process status."}
}
]
}],
"result": {
"caption": {"xml": "Bakcup process progress status or an error code."},
"type": "object"
}
},
{
"name": "backupDatabase",
"description": {"xml": "Back up server database."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "changeCameraPassword",
"description": {"xml": "Change password for already existing user on a camera.\nThis method is allowed for cameras with 'SetUserPasswordCapability' capability only.\nOtherwise it returns an error in the JSON result."},
"permissions": "Owner.",
"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)."},
"optional": false
},
{
"name": "user",
"type": "string",
"description": {"xml": "User name."},
"optional": false
},
{
"name": "password",
"type": "string",
"description": {"xml": "New password to set."},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "configure",
"description": {"xml": "Configure various server parameters."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "systemName",
"type": "string",
"description": {"xml": "System display name. It affects all servers in the system."},
"optional": true
},
{
"name": "port",
"type": "integer",
"description": {"xml": "Server API port. It affects the current server only."},
"optional": true
},
{
"name": "password",
"type": "string",
"description": {"xml": "Set new admin password."},
"optional": true
},
{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Required if new admin password is provided."},
"optional": true
}
],
"result": {"caption": {"xml": "JSON with error code, error string, and flag \"restartNeeded\" that shows whether the\nserver must be restarted to apply settings. Error string contains a hint to identify the\nproblem: \"SYSTEM_NAME\" or \"PORT\"."}}
},
{
"name": "createEvent",
"description": {"xml": "Using this method it is possible to trigger a generic event in the system from a 3rd party\nsystem. Such event will be handled and logged according to current event rules.\nParameters of the generated event, such as \"source\", \"caption\" and \"description\", are\nintended to be analyzed by these rules.\n\n
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 - \"cameraRefs\" specifies the list of cameras which are linked to the event (e.g.\n the event will appear on their timelines), in the form of a list of camera ids (can\n be obtained from \"id\" field via /ec2/getCamerasEx).<\/li>\n<\/ul>"},
"optional": true
},
{
"name": "state",
"type": "enum",
"description": {"xml": "Generic events can be used either with \"long\" actions like\n\"do recording\", or instant actions like \"send email\". This parameter should be specified\nin case \"long\" actions are going to be used with generic events."},
"optional": true,
"values": [
{
"name": "Active",
"description": {"xml": "Generic event is considered a \"long\" event. It transits to the \"active\"\nstate. \"Long\" actions will continue executing until the generic event transits to\nthe \"inactive\" state."}
},
{
"name": "Inactive",
"description": {"xml": "A \"long\" action associated with this generic event in event rules will\nstop."}
}
]
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"proprietary": true,
"name": "debug",
"description": {"xml": "Intended for debugging and experimenting.\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": {}
},
{
"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."}
}
]
}
},
{
"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": "trackId",
"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."}
}
]
}
},
{
"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": "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",
"description": {"xml": "List of action ids (strings)."}
},
{
"name": "reply[].actions[].pluginId",
"description": {"xml": "Id of a analytics plugin which offers the 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)."},
"optional": false
},
{
"name": "",
"type": "string",
"description": {"xml": "Parameter name to read. Request can contain one or more\nparameters."},
"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 representing the camera parameters."}
},
{
"name": "reply[].id",
"type": "string",
"description": {"xml": "Parameter id."}
},
{
"name": "reply[].value",
"type": "string",
"description": {"xml": "Parameter value."}
}
]
}
},
{
"name": "getEvents",
"description": {"xml": "Get server event log information."},
"permissions": "At least Advanced Viewer.",
"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": 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": "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": "QualityLowest",
"description": {"xml": ""}
},
{
"name": "QualityLow",
"description": {"xml": ""}
},
{
"name": "QualityNormal",
"description": {"xml": ""}
},
{
"name": "QualityHigh",
"description": {"xml": ""}
},
{
"name": "QualityHighest",
"description": {"xml": ""}
},
{
"name": "QualityPreSet",
"description": {"xml": ""}
},
{
"name": "QualityNotDefined",
"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."}
}
]
}
},
{
"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). 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."}
}
]
}
},
{
"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": "id",
"type": "integer",
"description": {"xml": "Log id"},
"optional": true,
"values": [
{
"name": "0",
"description": {"xml": "Main server log"}
},
{
"name": "2",
"description": {"xml": "Http log"}
},
{
"name": "3",
"description": {"xml": "Transaction log"}
}
]
},
{
"name": "value",
"type": "enum",
"description": {"xml": "Target value for log level. More detailed level includes all less\ndetailed levels."},
"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{\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"
}
},
{
"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 previouly\ncalculated: getKey<\/b> and postKey<\/b>. Both are mandatory. The calculation\nalgorithm is described in Calculating authentication hash<\/b> section (in the bootom\nof the page). 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 call<\/code> call. The lifetime of a nonce is about a few minutes."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "url",
"type": "string",
"description": {"xml": "URL of one Server in the System to join."},
"optional": false
},
{
"name": "getKey",
"type": "string",
"description": {"xml": "Authentication hash of the target Server for GET requests."},
"optional": false
},
{
"name": "postKey",
"type": "string",
"description": {"xml": "Authentication hash of the target Server for POST requests."},
"optional": false
},
{
"name": "currentPassword",
"type": "string",
"description": {"xml": "Current user password."},
"optional": false
},
{
"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."}
}
]
}
],
"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": "\"BACKUP_ERROR\"",
"description": {"xml": "The database backup could not be created."}
}
]
}
]
}
},
{
"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"
}
},
{
"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": "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": "string",
"description": {"xml": "Module unique id."}
}
]
}
},
{
"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": ""},
"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": "loaded",
"description": {"xml": ""}
},
{
"name": "notLoadedBecauseOfError",
"description": {"xml": ""}
},
{
"name": "notLoadedBecauseOfBlackList",
"description": {"xml": ""}
},
{
"name": "notLoadedBecauseOptional",
"description": {"xml": ""}
}
]
},
{
"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": "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": "",
"description": {"xml": "Report server archive rebuild status"}
}
]
},
{
"name": "mainPool",
"type": "integer",
"description": {"xml": "1 (for the main storage) or 0 (for the backup storage)"},
"optional": false
}
],
"result": {
"caption": {"xml": "Rebuild progress status or an error code."},
"type": "object"
}
},
{
"name": "restart",
"description": {"xml": "Restarts the server."},
"permissions": "Owner.",
"method": "POST",
"params": [],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"proprietary": true,
"name": "restoreState",
"description": {"xml": "Restore initial server state, i.e. delete server's database<\/b>.\n
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)."},
"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 Parameters should be passed as a JSON object in POST message body with\n content type \"application/json\". Example of such object:\n
\n{\n \"dateTime\": \"2015-02-28T16:37:00\",\n \"timeZoneId\": \"Europe/Moscow\"\n}\n<\/code>\n<\/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>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code>\n- the format is auto-detected)."},
"optional": false
}
],
"result": {}
},
{
"proprietary": true,
"name": "settime",
"description": {"xml": "Set current time on the server machine. Can be called only if server flags include\n\"SF_timeCtrl\" (server flags can be obtained via /ec2/getMediaServersEx in \"flags\"\nfield)."},
"permissions": "Owner.",
"method": "GET",
"params": [
{
"name": "timezone",
"type": "string",
"description": {"xml": "Time zone identifier, can be obtained via /api/getTimeZones."},
"optional": true
},
{
"name": "datetime",
"type": "string",
"description": {"xml": "System date and time (as a string containing time in milliseconds\nsince 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
}
],
"result": {}
},
{
"name": "settingsDocumentation",
"description": {"xml": "Return settings documentation."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "List of setting descriptions."},
"type": "array",
"params": [
{
"name": "name",
"type": "string",
"description": {"xml": "Setting name."}
},
{
"name": "defaultValue",
"type": "string",
"description": {"xml": "Setting default value."}
},
{
"name": "description",
"type": "string",
"description": {"xml": "Setting description."}
}
]
}
},
{
"name": "setupCloudSystem",
"description": {"xml": "Configure server system name and attach it to cloud. This function can be called for server\nwith default system name. Otherwise function returns error. This method requires owner\npermissions."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "systemName",
"type": "string",
"description": {"xml": "New system name"},
"optional": false
},
{
"name": "cloudAuthKey",
"type": "string",
"description": {"xml": "could authentication key"},
"optional": false
},
{
"name": "cloudSystemID",
"type": "string",
"description": {"xml": "could system id"},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "setupLocalSystem",
"description": {"xml": "Configure server system name and password. This function can be called for server with\ndefault system name. Otherwise function returns error. This method requires owner\npermissions."},
"permissions": "Owner.",
"method": "POST",
"params": [
{
"name": "password",
"type": "string",
"description": {"xml": "New password for admin user"},
"optional": false
},
{
"name": "systemName",
"type": "string",
"description": {"xml": "New system name"},
"optional": false
}
],
"result": {
"caption": {"xml": "JSON object with error message and error code (0 means OK)."},
"type": "object"
}
},
{
"name": "showLog",
"description": {"xml": "Return tail of the server log file"},
"method": "GET",
"params": [
{
"name": "lines",
"type": "integer",
"description": {"xml": "Display last N log lines."},
"optional": true
},
{
"name": "id",
"type": "integer",
"description": {"xml": "Id of log file. By default main log is returned"},
"optional": true,
"values": [
{
"name": "0",
"description": {"xml": "Main server log"}
},
{
"name": "2",
"description": {"xml": "Http log"}
},
{
"name": "3",
"description": {"xml": "Transaction log"}
}
]
}
],
"result": {
"caption": {"xml": "Tail of the server log file in text format"},
"type": "text"
}
},
{
"name": "statistics",
"description": {"xml": "Get the Server info: CPU usage, HDD usage e.t.c."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON data with statistics."},
"type": "object"
}
},
{
"name": "storageSpace",
"description": {"xml": "Get the list of all server storages."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "JSON data with server storages."},
"type": "object"
}
},
{
"name": "storageStatus",
"description": {"xml": "Check whether the specified location could be used as a server storage path and report the location details.\nIf the location is already used as the server storage report, the details, storage id and status are expected in\nresponse."},
"method": "GET",
"params": [{
"name": "path",
"type": "string",
"description": {"xml": "Folder to check."},
"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": "JSON object with details about the requested folder."}
}
]
}
},
{
"name": "synchronizedTime",
"description": {"xml": "This method is used for internal purpose to synchronize time between mediaservers and clients."},
"method": "GET",
"params": [],
"result": {
"caption": {"xml": "Information about server synchronized time."},
"type": "object",
"params": [
{
"name": "utcTimeMs",
"type": "integer",
"description": {"xml": "Server synchronized time."}
},
{
"name": "isTakenFromInternet",
"type": "boolean",
"description": {"xml": "Whether the server has got the time from the internet."}
}
]
}
},
{
"name": "systemSettings",
"description": {"xml": "Get or set global system settings. If called with no arguments, just returns the list of all\nsystem settings with their values.\nTo modify a settings, it is needed to specify the setting name as a query parameter. Thus,\nthis method doesn't have fixed parameter names. To obtain the full list of possible names,\ncall this method without parameters.\nExample: /api/systemSettings?smtpTimeout=30&smtpUser=test"},
"method": "GET",
"params": [],
"result": {}
}
]
},
{
"groupName": "Video API",
"urlPrefix": "",
"groupDescription": "\n This group contains information about accessing cameras\" live video and footage.\n ",
"functions": [
{
"name": "",
"caption": "RTSP Streaming",
"description": {"xml": "\n Open RTSP video stream from a camera.\n It is not exactly an API method but rather a URL format which may contain\n any camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\" field via /ec2/getCamerasEx) or MAC address (not\n supported for certain cameras).\n Example:\n rtsp://<server_ip>:<port>/12AB42FD5912?pos=1235631&resolution=240p"},
"method": "PLAY",
"params": [
{
"name": "pos",
"description": {"xml": "By default, the server opens a camera at the live position.\n This parameter defines position in an archive\n (as a string containing time in milliseconds since epoch,\n or a local time formatted like \"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code> - the format is auto-detected).\n Position can be passed via standard RTSP attribute as well as via URL parameter"},
"optional": true
},
{
"name": "resolution",
"description": {"xml": "Turn on video transcoding to the specified resolution. Resolution string either may contain width and height (for instance 320x240) or\n height only (for instance 240p)"},
"optional": true
},
{
"name": "rotation",
"description": {"xml": "Rotate item. Can be 0, 90, 180 or 270 degrees. If the parameter is absent, video will be rotated to default value defined in a camera settings dialog.\n Parameter take place if video transcoding is activated (parameter codec and/or parameter resolution are presents.)"},
"optional": true
},
{
"name": "codec",
"description": {"xml": "Defines video codec used for transcoding. Default value is H263p."},
"optional": true,
"values": [
{
"name": "H263p",
"description": {"xml": "H263 plus format"}
},
{
"name": "mpeg2video",
"description": {"xml": ""}
},
{
"name": "mjpeg",
"description": {"xml": "Motion JPEG"}
},
{
"name": "mpeg4",
"description": {"xml": "MPEG-4 part 2"}
},
{
"name": "libvpx",
"description": {"xml": "VP8 video codec"}
}
]
},
{
"name": "stream",
"description": {"xml": "Open high quality stream if parameter is 0 or low quality stream if parameter is 1.\n By default server auto detect preferred stream index based on destination resolution."},
"optional": true
},
{
"name": "speed",
"description": {"xml": "Playback speed. Only values in range [1..32] are supported. Default value is 1. The special value 'max' means streaming without delay"},
"optional": true
},
{
"name": "multiple_payload_types",
"description": {"xml": "Generate SDP with two payload types(high and low qualities). Payload type of RTP packets will changed accordingly transmitted stream"},
"optional": true
},
{
"name": "onvif_replay",
"description": {"xml": "Insert ONVIF header extension that contains absolute timestamp (See: ONVIF Streaming Specification Ver. 17.06, 6.3 RTP header extension)"},
"optional": true
}
],
"result": {"caption": {"xml": "RTSP video stream."}}
},
{
"name": "media/.",
"caption": "HTTP Streaming",
"description": {"xml": "\n Open HTTP video stream from a camera.\n It is not exactly an API method but rather a URL format which may contain\n any camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\" field via /ec2/getCamerasEx) or MAC address (not\n supported for certain cameras).\n Codec and stream format can be specified in URL parameters. Live stream and\n archive can be downloaded. If required and possible, media stream\n transcoding is performed on-the-fly. Stream format can be one of the\n following: webm, mpegts, mpjpeg (multipart jpeg), mp4. For formats webm and mp4 a watermark is added to the end of stream.\n Example:\n http://<server_ip>:<port>/media/12AB42FD5912.webm"},
"method": "GET",
"params": [
{
"name": "resolution",
"description": {"xml": "Video stream resolution. Example: 720x576, 1920x1080, 720p, 1080p. By default, 640x480 is used"},
"optional": true
},
{
"name": "pos",
"description": {"xml": "If present and not equal to <now>, specifies archive stream start position\n (as a string containing time in milliseconds since epoch,\n or a local time formatted like \"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code> - the format is auto-detected).\n Otherwise, LIVE stream is provided"},
"optional": true
},
{
"name": "endPos",
"description": {"xml": "If present, specifies archive stream end position\n (as a string containing time in milliseconds since epoch,\n or a local time formatted like \"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code> - the format is auto-detected).\n It is used only if \"pos\" parameter is present."},
"optional": true
},
{
"name": "rotation",
"description": {"xml": "Rotate item. Can be 0, 90, 180 or 270 degrees. If the parameter is absent, video will be rotated to default value defined in a camera settings dialog."},
"optional": true
},
{
"name": "sfd",
"description": {"xml": "Stand Frame Duration. If the parameter is present, video speed is limited by real time."},
"optional": true
},
{
"name": "rt",
"description": {"xml": "Turn on realtime optimization. It will drop some frames if not enough CPU for realtime transcoding."},
"optional": true
}
],
"result": {"caption": {"xml": "Video stream in the requested format"}}
},
{
"name": "hls/.m3u",
"caption": "HLS Streaming",
"description": {"xml": "\n Open HTTP Live Streaming (HLS) video stream from a camera.\n It is not exactly an API method but rather a URL format which may contain\n any camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\" field via /ec2/getCamerasEx) or MAC address (not\n supported for certain cameras).\n This protocol is supported by iOS-based devices (iPhone, iPad).\n Example:\n http://<server_ip>:<port>/hls/12AB42FD5912.m3u"},
"method": "GET",
"params": [
{
"name": "pos",
"description": {"xml": "Camera archive position to open\n (as a string containing time in milliseconds since epoch,\n or a local time formatted like \"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code> - the format is auto-detected)."},
"optional": true
},
{
"name": "hi",
"description": {"xml": "If specified, only hi quality is available on streaming session. If neither <hi> nor <lo> is specified than HLS client is allowed to perform dynamic stream switching (to fit in available bandwidth and compensate for traffic congestion)"},
"optional": true
},
{
"name": "lo",
"description": {"xml": "If specified, only low quality is available on streaming session. If neither <hi> nor <lo> is specified than HLS client is allowed to perform dynamic stream switching (to fit in available bandwidth and compensate for traffic congestion)"},
"optional": true
}
],
"result": {"caption": {"xml": "Video stream in mpeg-2/ts format"}}
},
{
"name": "hls/.",
"caption": "Direct download",
"description": {"xml": "\n Download fragment of a camera archive, identified by its start time and\n duration.\n It is not exactly an API method but rather a URL format which may contain\n any camera id (can be obtained from \"id\", \"physicalId\" or \"logicalId\" field via /ec2/getCamerasEx) or MAC address (not\n supported for certain cameras).\n Fragment can be downloaded in mpeg-2/ts (.ts) or Matroska (.mkv) format.\n No transcoding is performed. Stream format can be one of following: ts, mkv.\n Example:\n http://<server_ip>:<port>/hls/12AB42FD5912.mkv?pos=2015-02-05T19:00&duration=10"},
"method": "GET",
"params": [
{
"name": "pos",
"description": {"xml": "Fragment start time\n (as a string containing time in milliseconds since epoch,\n or a local time formatted like \"YYYY<\/i>-MM<\/i>-DD<\/i>THH<\/i>:mm<\/i>:ss<\/i>.zzz<\/i>\"<\/code> - the format is auto-detected)."},
"optional": true
},
{
"name": "duration",
"description": {"xml": "Fragment length in seconds"},
"optional": false
},
{
"name": "hi",
"description": {"xml": "Return high quality stream"},
"optional": true
},
{
"name": "lo",
"description": {"xml": "Return low quality stream"},
"optional": true
}
],
"result": {"caption": {"xml": "Video stream in the requested format"}}
}
]
},
{
"groupName": "Proxy API",
"urlPrefix": "/proxy",
"groupDescription": "\n This group contains information requests proxy from one server to another.\n ",
"functions": [{
"name": "//",
"description": {"xml": "Proxy methods allows to send any request to any server using the existing public connection. Can also be used to get video streams.\n Example: rtsp://10.0.2.1/proxy/rtsp/{72934575-ceb7-54bb-23a0-84b81cf1d3f1}/12AB42FD5912?pos=1235631&resolution=240p\n Example: http://10.0.2.1/proxy/http/{72934575-ceb7-54bb-23a0-84b81cf1d3f1}/showLog"},
"method": "GET",
"params": [],
"result": {"caption": {"xml": "Result of the target API request."}}
}]
},
{
"groupName": "WebSocket API",
"urlPrefix": "/ec2",
"groupDescription": "\n This group contains information about an access to the Server transaction bus via WebSocket connection endpoint.\n ",
"functions": [{
"name": "transactionBus",
"description": {"xml": "Allows third-party systems to get an access to the Server transaction bus.\n A third-party peer should undergo usual (the same as when accessing Server API or System API) authentication process before using WebSocket connection.\n Transactions are transferred in JSON format by default.\n
\n Example: ws://10.0.2.1/ec2/transactionBus\n "},
"method": "",
"params": [],
"result": {"caption": {"xml": "A ready-to-use WebSocket connection, read-only as for now"}}
}]
},
{
"groupName": "Authentication & Encryption",
"urlPrefix": "",
"groupDescription": "\n Authentication methods and encryption standards supported by the Server for HTTP and RTSP requests.\n ",
"functions": [
{
"name": "Encryption",
"description": {"xml": "\n The Server may process requests by HTTP<\/b> and RTSP<\/b> protocols as well as HTTPS<\/b> and RTSPS<\/b> protocols (HTTP and RTSP over encrypted connection).\n \n - Protocols supported by default: TLS 1.1<\/b> and TLS 1.2.<\/b>\n <\/li>\n
- Deprecated protocols (disabled by default): SSL 3<\/i> and TLS 1.0<\/i>.<\/li>\n <\/ul>\n"},
"method": "",
"params": [],
"result": {}
},
{
"name": "HTTP Basic/Digest authentication",
"description": {"xml": "\n This method is preferable for external applications, most of HTTP libraries support it.<\/b>\n
\n Server is fully conformant with the authentication defined in rfc2617 (https://tools.ietf.org/html/rfc2617).\n "},
"method": "",
"params": [],
"result": {}
},
{
"name": "Cookie-based authentication",
"description": {"xml": "\n This method should only be used in browser javascript applications which share the origin with the Server (e.g. application and the Server are accessible by the a single gateway).<\/b>\n
\n Cookie authorization scheme allows to avoid standard login/password dialog in web-applications.
\n It provides you a way to replace it with your own dialog.
\n It works mostly like sessions, but is a bit more secure because it doesn't send user's password over HTTP.
\n \n - To check authentication:\n
\n - Call
GET /api/getCurrentUser<\/code>\n <\/li>\n - You will get 401 (Unauthorised) in case you need authorization<\/li>\n
- You will get 200 (OK) and the user object otherwise<\/li>\n <\/ol>\n <\/li>\n
- To log in:\n
\n - Call
GET /api/getNonce<\/code>\n <\/li>\n - In response you'll get a JSON object with realm<\/i> and nonce<\/i> (nonce is a session key for this user)<\/li>\n
- Calculate authentication hash auth_digest<\/i>, using realm and nonce (see algorithm below)<\/li>\n
- Call
POST /api/cookieLogin<\/code> and pass the \"auth\" parameter in the json request body<\/li>\n - Server will check authentication and set session cookies<\/li>\n <\/ol>\n <\/li>\n
- Executing requests:\n
\n - Session cookie should be supplied with every request, browser does it automatically if cookies are enabled<\/li>\n
- HTTP header X-Runtime-Guid<\/i> should contain the key from x-runtime-guid<\/i> cookie value<\/li>\n <\/ol>\n <\/li>\n
- To log out:\n
\n - Call
POST /api/cookieLogout<\/code>\n <\/li>\n - Server will clear the session cookies<\/li>\n <\/ol>\n <\/li>\n <\/ul>\n"},
"method": "",
"params": [],
"result": {}
},
{
"name": "URL-based authentication",
"description": {"xml": "\n This method should only be used if other methods are not applicable, e.g. webm direct link or javascript application with different origin.<\/b>\n
\n Add the \"auth\" parameter to the URL query section of any HTTP request:\n \n - Call
/api/getNonce<\/code> to get realm<\/i> and nonce<\/i> from the server (the current server time is used as a nonce value, and the nonce is valid for about 5 minutes)<\/li>\n - Calculate the authentication hash auth_digest<\/i>, using realm and nonce (see algorithm below)<\/li>\n
- Specify the authentication hash in the URL parameter: http://127.0.0.1:7001/method<\/i>?auth=auth_digest<\/i>&other_params<\/i>\n <\/li>\n <\/ul>\n"},
"method": "",
"params": [],
"result": {}
},
{
"name": "Calculating authentication hash",
"description": {"xml": "For URL-based authentication and cookie-based authentication you need to calculate the hash manually, using the following algorithm:\n
\n - Call
GET /api/getNonce<\/code>\n <\/li>\n - In response you'll get a JSON object with realm<\/i> and nonce<\/i>\n <\/li>\n
- Translate user's username<\/i> to the lower case<\/li>\n
- Check the required method<\/i> (\"GET\" for HTTP GET requests, \"POST\" for HTTP POST requests, \"PLAY\" for RTSP etc)<\/li>\n
- \n
digest = md5_hex(user_name + \":\" + realm + \":\" + password)<\/code>\n <\/li>\n - \n
partial_ha2 = md5_hex(method + \":\")<\/code>\n <\/li>\n - \n
simplified_ha2 = md5_hex(digest + \":\" + nonce + \":\" + partial_ha2)<\/code>\n <\/li>\n - \n
auth_digest = base64(user_name + \":\" + nonce + \":\" + simplified_ha2)<\/code>\n <\/li>\n - Here auth_digest<\/i> is the required authentication hash<\/li>\n <\/ul>\n"},
"method": "",
"params": [],
"result": {}
}
]
}
]}