{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "http://www.itu.int/schema/components",
    "description": " Common item definition ",
    "$defs": {
      "deviceID": {
        "description": "Device ID, identifying the uniqueness of the device",
        "type": "string",
        "format": "deviceIDType"
      },
      "basicObjectId": {
        "description": "Video image basic information object ID and data organization library, used to identify the uniqueness of videoSliceInfo, imageInfo, motorVehicle library, nonMotorVehicle library, etc.",
        "type": "string",
        "format": "basicObjectIdType"
      },
      "imageCntObjectId": {
        "description": "Video image information semantic attribute object ID, used to identify the uniqueness of motorVehicle, nonMotorVehicle, etc.",
        "type": "string",
        "format": "imageCntObjectIdType"
      },
      "caseObjectId": {
        "description": "Case object ID",
        "type": "string",
        "format": "caseObjectIdType"
      },
      "businessObjectId": {
        "description": "Unified identification of business operation tasks, disposition/cancel disposition, announcements, subscriptions, notifications, analysis tasks, etc.",
        "type": "string",
        "format": "businessObjectIdType"
      },
      "hDirection": {
        "description": "Horizontal direction. 1: west to east; 2: east to west; 3: north to south; 4: south to north; 5: southwest to northeast; 6: northeast to southwest; 7: northwest to southeast; 8: southeast to northwest; 9: Other directions",
        "enum": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
      },
      "vDirection": {
        "description": "Vertical direction. 1: From top to bottom; 2: From bottom to top; 3: Horizontal; 9: Other",
        "enum": [ 1, 2, 3, 9 ]
      },
      "statusType": {
        "description": "Device status, 1: online; 2: offline; 9: other",
        "enum": [ "1", "2", "9" ]
      },
      "storagePath": {
        "description": "Storage path",
        "type": "string",
        "format": "uri",
        "maxLength": 256
      },
      "urlPath": {
        "description": "url address",
        "type": "string",
        "format": "uri",
        "maxLength": 256
      },
      "flag": {
        "description": "Judgmental flag. 0:false;1:true",
        "enum": [ 0, 1 ]
      },
      "wearedFlag": {
        "description": "Weared flag. 0:false;1:true;2:not sure",
        "enum": [ 0, 1, 2 ]
      },
      "securityLevel": {
        "description": "Sensitivity level. 1: Sensitive; 2: Normal; 9: Other",
        "enum": [ 1, 2, 9 ]
      },
      "binary": {
        "description": "File Binary Content ",
        "type": "string",
        "contentMediaType": "application/octet-stream",
        "contentEncoding": "binary"
      },
      "base64": {
        "description": "File base64 encoding, the base64 encoding method adopts the method specified by rfc2046",
        "type": "string",
        "contentEncoding": "base64"
      },
      "infoKind": {
        "description": "Information acquisition classification, 0: other; 1: automatic acquired by acquisition device or analysis system; 2: manual acquisition and input through the application platform",
        "enum": [ 0, 1, 2 ]
      },
      "imageCoordinates": {
        "description": "The position of the smaller image in the larger image, starting from the upper left pixel of the larger image, moving horizontally to the right is the X-axis forward direction, and moving horizontally downward is the Y-axis forward direction, in pixels.",
        "type": "integer"
      },
      "color": {
        "description": "The video focuses on the target color. A: white; B: gray; C: yellow; D: pink; E: red; F: purple; G: green; H: blue; I: brown; J: black; K: orange; L: green; Y: colorless; Z: other",
        "enum": [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "Y", "Z" ]
      },
      "dataClassTab": {
        "description": "Structure definition of data organization library",
        "type": "object",
        "properties": {
          "TabID": {
            "description": "Library ID",
            "$ref": "#/$defs/basicObjectId"
          },
          "TabName": {
            "description": "Library name",
            "type": "string"
          },
          "Description": {
            "description": "Library Description",
            "type": "string"
          },
          "IsAffirmed": {
            "description": "Known identity. 0: Known identity; 1: Unknown identity",
            "enum": [ 0, 1 ]
          }
        },
        "required": [ "TabID", "TabName" ]
      },
      "dataClassTabList": {
        "description": "Structure definition of data organization library list",
        "type": "array",
        "items": {
          "$ref": "#/$defs/dataClassTab"
        }
      },
      "responseStatus": {
        "description": "Structure definition of response object",
        "type": "object",
        "properties": {
          "RequestURL": {
            "description": "URL for corresponding operation",
            "$ref": "#/$defs/urlPath"
          },
          "StatusCode": {
            "description": "status code. 0:OK, normal. 1. Other errors. 4: invalid operation; 7: The JSON format is invalid. 8: Invalid JSON content",
            "enum": [ 0, 1, 4, 7, 8 ]
          },
          "StatusString": {
            "description": "Response description information",
            "type": "string"
          },
          "Id": {
            "description": "The POST method will return a new ID if it succeeds in creating a resource, but it will not return if it fails.",
            "type": "string"
          },
          "LocalTime": {
            "description": "Current time, used for occasions when time adjustment is needed",
            "type": "string",
            "format": "dateTime"
          }
        },
        "required": [ "RequestURL", "StatusCode", "StatusString" ]
      },
      "responseStatusList": {
        "description": "Structure definition of response object list",
        "type": "array",
        "items": {
          "$ref": "#/$defs/responseStatus"
        }
      },
      "register": {
        "description": "Structure definition of registered object",
        "type": "object",
        "properties": {
          "DeviceID": {
            "description": "Registration ID refers to apeID, application platform ID, analysis system ID, etc.",
            "$ref": "#/$defs/deviceID"
          }
        },
        "required": [ "DeviceID" ]
      },
      "unRegister": {
        "description": "Structure definition of de-registration object",
        "type": "object",
        "properties": {
          "DeviceID": {
            "description": "Logout ID refers to apeID, application platform ID, analysis system ID, etc.",
            "$ref": "#/$defs/deviceID"
          }
        },
        "required": [ "DeviceID" ]
      },
      "keepalive": {
        "description": "Structure Definition of keep alive objects",
        "type": "object",
        "properties": {
          "DeviceID": {
            "description": "Logout ID refers to apeID, application platform ID, analysis system ID, etc.",
            "$ref": "#/$defs/deviceID"
          }
        },
        "required": [ "DeviceID" ]
      },
      "systemTime": {
        "description": "System time object",
        "type": "object",
        "properties": {
          "VIIDServerID": {
            "description": "Server ID",
            "$ref": "#/$defs/deviceID"
          },
          "TimeMode": {
            "description": "Time calibration mode. 1: network; 2: manual",
            "enum": [ "1", "2" ]
          },
          "LocalTime": {
            "description": "Date time",
            "type": "string",
            "format": "dateTime"
          },
          "TimeZone": {
            "description": "Time zone",
            "type": "string"
          }
        },
        "required": [ "VIIDServerID", "TimeMode", "LocalTime", "TimeZone" ]
      },
      "featureExtTask": {
        "description": "Feature vector extraction task object",
        "type": "object",
        "properties": {
          "ExtractID": {
            "description": "Extract task ID",
            "$ref": "#/$defs/businessObjectId"
          },
          "IsSaved": {
            "description": "Save settings. 0: do not save; 1: save",
            "enum": [ 0, 1 ]
          },
          "MotorVehicleListObject": {
            "description": "List of motor vehicle objects",
            "$ref": "/schema/motor-vehicle-list"
          },
          "NonMotorVehicleListObject": {
            "description": "List of Non-motor vehicle objects",
            "$ref": "/schema/nonmotor-vehicle-list"
          }
        },
        "required": [ "ExtractID", "IsSaved" ]
      },
      "featureExtTaskList": {
        "description": "Feature vector extraction task list",
        "type": "array",
        "items": {
          "$ref": "#/$defs/featureExtTask"
        }
      }
    }
  }