{
	"$id": "https://www.atsc-schemas.org/atsc3.0/a362/20230220/org.atsc.drmOperation-request.json",
	"$ref": "https://www.atsc-schemas.org/atsc3.0/a344/20210323/org.atsc.drmOperation-request.json",
	"type": "object",
	"properties": {
		"params": {
			"type": "object",
			"properties": {
				"systemId": {
					"type": "string",
					"format": "uri",
					"pattern": "^urn:uuid:"
				},
				"service": {
					"type": "string",
					"format": "uri"
				},
				"message": {
					"$ref": "#/definitions/message"
				}
			},
			"required": [ "systemId", "service", "message" ]
		}
	},
	"required": [ "jsonrpc", "id", "method", "params" ],
	"definitions": {
		"message": {
			"type": "array",
			"items": [
				{
					"type": "object",
					"properties": {
						"kid": {
							"type": "string"
						},
						"drmSessionId": {
							"type": "string"
						},
						"drmMsgType": {
							"type": "string",
							"enum": [
								"individualizationRequest",
								"serverCertificateRequest",
								"update",
								"generateRequest"
							]
						},
						"drmData": {
							"type": "string",
							"contentEncoding": "base64"
						}
					},
					"allOf": [
						{
							"required": [ "kid", "drmMsgType", "drmData" ]
						},
						{
							"if": {
								"not": {
									"properties": {
										"drmMsgType": {
											"const": "generateRequest"
										}
									}
								}
							},
							"then": {
								"required": [ "drmSessionId" ]
							}
						}
					]
				}
			]
		}
	}
}