{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceAcknowledgementDocument",
	"title": "UneceAcknowledgementDocument",
	"description": "A document exchanged between parties for a business application level acknowledgement of the receipt of information.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "AcknowledgementDocument",
			"description": "JSON-LD Type."
		},
		"acknowledgementDocumentChannelCode": {
			"type": "string",
			"description": "The code specifying the channel by which this acknowledgement document is sent, such as mail, email, fax."
		},
		"acknowledgementDocumentReasonInformation": {
			"type": "string",
			"description": "Reason information, expressed as text, for this acknowledgement document."
		},
		"acknowledgementDocumentStatusCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceStatusCodeList"
			},
			"description": "A code specifying a status for this acknowledgement document."
		},
		"acknowledgementStatusCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAcknowledgementCodeList"
			},
			"description": "A code specifying an acknowledgment status for this acknowledgement document."
		},
		"channelCode": {
			"type": "string",
			"description": "The code specifying the channel by which this acknowledgement document is sent, such as mail, email, fax."
		},
		"controlRequirementIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this acknowledgement document has a control requirement."
		},
		"creationDateTime": {
			"type": "string",
			"description": "The date or date time value of the creation of this acknowledgement document.",
			"format": "date-time"
		},
		"documentTypeCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocumentCodeList"
			},
			"description": "A code specifying a type of acknowledgement document."
		},
		"identifier": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of this acknowledgement document."
		},
		"issueDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value for the issuance of this acknowledgement document.",
			"format": "date-time"
		},
		"itemIdentificationId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of an item in this acknowledgement document."
		},
		"multipleReferencesIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this acknowledgement document has multiple references."
		},
		"name": {
			"type": "string",
			"description": "The name, expressed as text, for this acknowledgement document."
		},
		"processCondition": {
			"type": "string",
			"description": "A process condition, expressed as text, for this acknowledgement document."
		},
		"processConditionCode": {
			"type": "string",
			"description": "The code specifying the process condition for this acknowledgement document."
		},
		"referenceDocument": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocument"
			},
			"description": "A document referenced by this acknowledgement document."
		},
		"reportReceiptDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value of the receipt of the report being acknowledged by this\nacknowledgment document.",
			"format": "date-time"
		},
		"reportSubmissionDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value of the submission of the report being acknowledged by this\nacknowledgment document.",
			"format": "date-time"
		},
		"status": {
			"type": "string",
			"description": "A status, expressed as text, for this acknowledgement document."
		}
	},
	"required": ["type"]
}
