{
	"$schema":"https://json-schema.org/draft/2020-12/schema",
	"$id":"http://www.itu.int/schema/disposition-list",
	"description":"Structure definition of the disposition list",	
	"type":"array",
	"items":{
		"$ref":"#/$defs/disposition"
	},
	"$defs":{
		"disposition":{
			"type":"object",
			"description":"Structure description of disposition object",
			"properties" : {
				"DispositionID":{
					"description":"The disposition ID is generated by DSS when disposing, and cannot be empty when cascading calls",
					"$ref":"/schema/components#/$defs/businessObjectId"
				},
				"Title":{
					"description":"The title of disposition, describing the theme and purpose of disposition",
					"type":"string"
				},
				"DispositionCategory":{
					"description":"Disposition category. 1: Motor vehicle; 2: Non-motor vehicle; 3: Keyword",
					"enum":[1,2,3,4,5]
				},				
				"TargetFeature":{
					"description":"Features of the disposed object. Value is a combination of multiple kvs:'((k1=v1) and (k2=v2)) or (k3=v3)' Supports regular expressions for fuzzy matching. The value and meaning of kn are, 1: license plate; 2: license plate color; 3: vehicle brand; 4: vehicle model; 5: vehicle model year; 6: keyword.",
					"type":"string",
					"examples":"2=blue"
				},
				"TargetImageURI":{
					"description":"Disposed object image path",
					"$ref":"/schema/components#/$defs/storagePath"
				},
				"PriorityLevel":{
					"description":"Disposition priority, 1 means the highest level",
					"enum":[1,2,3]
				},
				"ApplicantName":{
					"description":"Applicant",
					"type":"string"
				},
				"ApplicantInfo":{
					"description":"Applicant's contact information, mobile phone number, email address, etc.",
					"type":"string"
				},
				"ApplicantOrg":{
					"description":"Applicant unit",
					"type":"string"
				},
				"BeginTime":{
					"description":"Disposition start time",
					"type":"string",
					"format":"dateTime"
				},
				"EndTime":{
					"description":"Disposition end time",
					"type":"string",
					"format":"dateTime"
				},
				"CreatTime":{
					"description":"The creation time of disposing is automatically generated by the system",
					"type":"string",
					"format":"dateTime"
				},
				"OperateType":{
					"description":"Disposition type.0: Disposition; 1: Remove disposition",
					"enum":[0,1]
				},
				"DispositionStatus":{
					"description":"Disposition status. 0: Disposed; 1: Removed disposition; 2: Disposition expired; 9: Not disposed",
					"enum":[0,1,2,9]
				},
				"DispositionRange":{
					"description":"Disposition range. 1: tollgate; 2: area range",
					"enum":[1,2]
				},
				"TollgateList":{
					"description":"The ID of the disposed tollgate, can be multiple, if multiple, they are separated by an English semicolon \";\"",
					"$ref":"/schema/tollgate-list#/$defs/tollgate/properties/TollgateID"
				},
				"DispositionArea":{
					"description":"Disposition area code, can be multiple, if multiple, they are separated by an English semicolon \";\"",
					"type":"string"
				},
				"DeviceList": {
					"description": "Disposed device ID, can be multiple, if multiple, they are separated by an English semicolon \";\"",
					"$ref": "/schema/ape-list#/$defs/ape/properties/ApeID"
				},
				"ReceiveAddr":{
					"description":"The receiving address of the notification information, according to the address to decide whether to receive or forward",
					"$ref":"/schema/components#/$defs/urlPath"
				},
				"ReceiveMobile": {
					"description": "Notification receiving mobile phone number, can be multiple, if multiple, they are separated by an English semicolon \";\"",
					"type": "string"
				},
				"Reason":{
					"description":"Reason for disposition",
					"type":"string"
				},
				"DispositionRemoveOrg":{
					"description":"Name of removing disposition unit",
					"type":"string"
				},
				"DispositionRemovePerson":{
					"description":"Removing disposition people",
					"type":"string"
				},
				"DispositionRemoveTime":{
					"description":"Removing disposition time",
					"type":"string",
					"format":"dateTime"
				},
				"DispositionRemoveReason":{
					"description":"Reason for removing disposition",
					"type":"string"
				},
				"SubImageInfoListObject":{
					"description":"Image list",
					"$ref":"/schema/subimage-info-list"
				},
				"FeatureObject":{
					"description":"Feature list",
					"$ref":"/schema/feature-ext-result-list#/$defs/featureInfo"
				},
				"ResultImageDeclare":{
					"description":"Return picture convention. -1: No picture; 01: Large image of the vehicle; 02: Small color image of the license plate; 03: Binary image of the license plate; 04: Vehicle logo; 05: Violation composite image; 06: Passing vehicle composite image; 07: Vehicle close-up image; 08: Non-motorized vehicle image; 100: General picture",
					"enum":["-1","01","02","03","04","05","06","07","08",100]
				},
				"ResultFeatureDeclare":{
					"description":"Return feature vector flag. -1: No need to return feature vector; 1: Need to return feature vector",
					"enum":[-1,1]
				},
				"TabID":{
					"description":"Disposition label flag",
					"$ref":"/schema/components#/$defs/basicObjectIdType"
				},
				"AlarmSensitivity":{
					"description":"Warning sensitivity, the higher the sensitivity, the lower the warning threshold, the higher the false alarm rate. 1: Level 1; 2: Level 2; 3: Level 3",
					"enum":[1,2,3]
				}
			},
			"required":["OperateType"],
			
			"allOf":[
			{
				"if":{
					"properties":{	"OperateType":0	}
				},
				"then":{
					"required":["Title","DispositionCategory","TargetFeature","ApplicantName","ApplicantOrg","DispositionRange"]
				}
			},
			{
				"if":{
					"properties":{	"OperateType":1	}
				},
				"then":{
					"required":["DispositionID"]
				}
			}
			]
		}
	}
}
