{ "$id": "https://gs1.github.io/EPCIS/EPCIS-JSON-Schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string" } }, "allOf": [ { "if": { "type": "object", "properties": { "type": { "enum": [ "EPCISDocument" ] } } }, "then": { "$ref": "#/definitions/epcisDocument" } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "EPCISQueryDocument" ] } } }, "then": { "$ref": "#/definitions/epcisQueryDocument" } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "ObjectEvent" ] } } }, "then": { "allOf": [ { "$ref": "#/definitions/ObjectEvent" }, { "$ref": "#/definitions/required-ld-context" } ] } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "AggregationEvent" ] } } }, "then": { "allOf": [ { "$ref": "#/definitions/AggregationEvent" }, { "$ref": "#/definitions/required-ld-context" } ] } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "AssociationEvent" ] } } }, "then": { "allOf": [ { "$ref": "#/definitions/AssociationEvent" }, { "$ref": "#/definitions/required-ld-context" } ] } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "TransformationEvent" ] } } }, "then": { "allOf": [ { "$ref": "#/definitions/TransformationEvent" }, { "$ref": "#/definitions/required-ld-context" } ] } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "TransactionEvent" ] } } }, "then": { "allOf": [ { "$ref": "#/definitions/TransactionEvent" }, { "$ref": "#/definitions/required-ld-context" } ] } }, { "if": { "not": { "type": "object", "properties": { "type": { "enum": [ "AssociationEvent", "ObjectEvent", "AggregationEvent", "TransactionEvent", "TransformationEvent", "EPCISQueryDocument", "EPCISDocument" ] } } } }, "then": { "allOf": [ { "$ref": "#/definitions/Extended-Event" }, { "$ref": "#/definitions/required-ld-context" } ] } } ], "definitions": { "id": { "type": "string", "format": "uri" }, "@context": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "object" }, { "type": "array", "uniqueItems": true, "items": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "object" } ] } } ] }, "version": { "type": "string", "pattern": "^\\d+(\\.\\d+)*$" }, "time": { "type": "string", "format": "date-time" }, "uri": { "type": "string", "format": "uri" }, "attribute": { "type": "object", "properties": { "id": { "$ref": "#/definitions/uri" }, "attribute": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "object" } ] } }, "required": [ "id" ] }, "vocabularyElement": { "type": "object", "properties": { "id": { "$ref": "#/definitions/uri" }, "attributes": { "type": "array", "items": { "$ref": "#/definitions/attribute" } }, "children": { "type": "array", "items": { "$ref": "#/definitions/uri" } } }, "required": [ "id" ] }, "vocabulary": { "type": "object", "properties": { "type": { "$ref": "#/definitions/uri" }, "vocabularyElementList": { "type": "array", "items": { "$ref": "#/definitions/vocabularyElement" } } }, "required": [ "type" ] }, "vocab-uri": { "type": "string", "format": "uri" }, "epcisHeader": { "type": "object", "properties": { "epcisMasterData": { "type": "object", "properties": { "vocabularyList": { "type": "array", "items": { "$ref": "#/definitions/vocabulary" } } } } }, "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "epcisMasterData" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "eventID": { "$ref": "#/definitions/uri" }, "certificationInfo": { "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/uri" } }, { "$ref": "#/definitions/uri" } ] }, "vocab-other-uri": { "type": "string", "format": "uri", "pattern": "^(?!(urn:epcglobal:cbv|https?:\\/\\/ns\\.gs1\\.org/cbv\\/))" }, "error-reason": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "did_not_occur", "incorrect_data" ] } ] }, "errorDeclaration": { "type": "object", "properties": { "declarationTime": { "$ref": "#/definitions/time" }, "reason": { "$ref": "#/definitions/error-reason" }, "correctiveEventIDs": { "type": "array", "items": { "$ref": "#/definitions/eventID" } } }, "required": [ "declarationTime" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/vocab-uri" }, { "type": "string", "enum": [ "declarationTime", "reason", "correctiveEventIDs" ] } ] } }, "Event": { "type": "object", "properties": { "@context": { "$ref": "#/definitions/%40context" }, "eventTime": { "$ref": "#/definitions/time" }, "recordTime": { "$ref": "#/definitions/time" }, "eventTimeZoneOffset": { "type": "string", "pattern": "^([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)$" }, "eventID": { "$ref": "#/definitions/eventID" }, "certificationInfo": { "$ref": "#/definitions/certificationInfo" }, "errorDeclaration": { "$ref": "#/definitions/errorDeclaration" } }, "required": [ "eventTime", "eventTimeZoneOffset" ] }, "epcList": { "type": "array", "items": { "$ref": "#/definitions/uri" }, "uniqueItems": true }, "decimal": { "type": "number" }, "uom": { "type": "string", "pattern": "^[A-Z0-9]{2,3}$" }, "quantityElement": { "type": "object", "properties": { "epcClass": { "$ref": "#/definitions/uri" }, "quantity": { "$ref": "#/definitions/decimal" }, "uom": { "$ref": "#/definitions/uom" } }, "required": [ "epcClass" ], "additionalProperties": false }, "quantityList": { "type": "array", "items": { "$ref": "#/definitions/quantityElement" } }, "action": { "type": "string", "enum": [ "OBSERVE", "ADD", "DELETE" ] }, "bizStep": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "accepting", "arriving", "assembling", "collecting", "commissioning", "consigning", "creating_class_instance", "cycle_counting", "decommissioning", "departing", "destroying", "disassembling", "dispensing", "encoding", "entering_exiting", "holding", "inspecting", "installing", "killing", "loading", "other", "packing", "picking", "receiving", "removing", "repackaging", "repairing", "replacing", "reserving", "retail_selling", "shipping", "staging_outbound", "stock_taking", "stocking", "storing", "transporting", "unloading", "unpacking", "void_shipping", "sensor_reporting", "sampling" ] } ] }, "disposition": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "active", "container_closed", "damaged", "destroyed", "dispensed", "disposed", "encoded", "expired", "in_progress", "in_transit", "inactive", "no_pedigree_match", "non_sellable_other", "partially_dispensed", "recalled", "reserved", "retail_sold", "returned", "sellable_accessible", "sellable_not_accessible", "stolen", "unknown", "available", "completeness_verified", "completeness_inferred", "conformant", "container_open", "mismatch_instance", "mismatch_class", "mismatch_quantity", "needs_replacement", "non_conformant", "unavailable" ] } ] }, "persistentDisposition": { "allOf": [ { "type": "object", "properties": { "set": { "type": "array", "items": { "$ref": "#/definitions/disposition" }, "minItems": 1, "uniqueItems": true }, "unset": { "type": "array", "items": { "$ref": "#/definitions/disposition" }, "minItems": 1, "uniqueItems": true } }, "additionalProperties": false }, { "anyOf": [ { "type": "object", "required": [ "set" ] }, { "type": "object", "required": [ "unset" ] } ] } ] }, "readPoint": { "type": "object", "properties": { "id": { "$ref": "#/definitions/uri" } }, "required": [ "id" ] }, "bizLocation": { "type": "object", "properties": { "id": { "$ref": "#/definitions/uri" } }, "required": [ "id" ] }, "bizTransaction-type": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "bol", "cert", "desadv", "inv", "pedigree", "po", "poc", "prodorder", "recadv", "rma", "testprd", "testres", "upevt" ] } ] }, "bizTransaction": { "type": "object", "properties": { "type": { "$ref": "#/definitions/bizTransaction-type" }, "bizTransaction": { "$ref": "#/definitions/uri" } }, "required": [ "bizTransaction" ], "additionalProperties": false }, "source-dest-type": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "owning_party", "possessing_party", "location" ] } ] }, "source": { "type": "object", "properties": { "type": { "$ref": "#/definitions/source-dest-type" }, "source": { "$ref": "#/definitions/uri" } }, "required": [ "type", "source" ], "additionalProperties": false }, "destination": { "type": "object", "properties": { "type": { "$ref": "#/definitions/source-dest-type" }, "destination": { "$ref": "#/definitions/uri" } }, "required": [ "type", "destination" ], "additionalProperties": false }, "sensorMetadata": { "type": "object", "properties": { "time": { "$ref": "#/definitions/time" }, "deviceID": { "$ref": "#/definitions/uri" }, "deviceMetadata": { "$ref": "#/definitions/uri" }, "rawData": { "$ref": "#/definitions/uri" }, "startTime": { "$ref": "#/definitions/time" }, "endTime": { "$ref": "#/definitions/time" }, "dataProcessingMethod": { "$ref": "#/definitions/uri" }, "bizRules": { "$ref": "#/definitions/uri" } }, "propertyNames": { "anyOf": [ { "$ref": "#/definitions/vocab-uri" }, { "type": "string", "enum": [ "time", "deviceID", "deviceMetadata", "rawData", "startTime", "endTime", "dataProcessingMethod", "bizRules" ] } ] } }, "vocab-nonGS1WebVoc-uri": { "type": "string", "format": "uri", "pattern": "^(?!(https?:\\/\\/gs1\\.org\\/voc\\/|https?:\\/\\/www\\.gs1\\.org\\/voc\\/))" }, "measurementType": { "anyOf": [ { "$ref": "#/definitions/vocab-nonGS1WebVoc-uri" }, { "type": "string", "enum": [ "AbsoluteHumidity", "AbsorbedDose", "AbsorbedDoseRate", "Acceleration", "Radioactivity", "Altitude", "AmountOfSubstance", "AmountOfSubstancePerUnitVolume", "Angle", "AngularAcceleration", "AngularMomentum", "AngularVelocity", "Area", "Capacitance", "Conductance", "Conductivity", "Count", "Density", "Dimensionless", "DoseEquivalent", "DoseEquivalentRate", "DynamicViscosity", "ElectricCharge", "ElectricCurrent", "ElectricCurrentDensity", "ElectricFieldStrength", "Energy", "Exposure", "Force", "Frequency", "Illuminance", "Inductance", "Irradiance", "KinematicViscosity", "Length", "LinearMomentum", "Luminance", "LuminousFlux", "LuminousIntensity", "MagneticFlux", "MagneticFluxDensity", "MagneticVectorPotential", "Mass", "MassConcentration", "MassFlowRate", "MassPerAreaTime", "MemoryCapacity", "MolalityOfSolute", "MolarEnergy", "MolarMass", "MolarVolume", "Power", "Pressure", "RadiantFlux", "RadiantIntensity", "RelativeHumidity", "Resistance", "Resistivity", "SolidAngle", "SpecificVolume", "Speed", "SurfaceDensity", "SurfaceTension", "Temperature", "Time", "Torque", "Voltage", "Volume", "VolumeFlowRate", "VolumeFraction", "VolumetricFlux", "Wavenumber" ] } ] }, "sensorAlertType": { "anyOf": [ { "$ref": "#/definitions/vocab-nonGS1WebVoc-uri" }, { "type": "string", "enum": [ "ALARM_CONDITION", "ERROR_CONDITION" ] } ] }, "component": { "anyOf": [ { "$ref": "#/definitions/vocab-other-uri" }, { "type": "string", "enum": [ "x", "y", "z", "axial_distance", "azimuth", "height", "spherical_radius", "polar_angle", "elevation_angle", "easting", "northing", "latitude", "longitude", "altitude" ] } ] }, "string": { "type": "string" }, "boolean": { "type": "boolean" }, "hexBinary": { "type": "string", "pattern": "^[A-Fa-f0-9]+$" }, "sensorReport": { "type": "object", "properties": { "type": { "$ref": "#/definitions/measurementType" }, "exception": { "$ref": "#/definitions/sensorAlertType" }, "deviceID": { "$ref": "#/definitions/uri" }, "deviceMetadata": { "$ref": "#/definitions/uri" }, "rawData": { "$ref": "#/definitions/uri" }, "dataProcessingMethod": { "$ref": "#/definitions/uri" }, "bizRules": { "$ref": "#/definitions/uri" }, "time": { "$ref": "#/definitions/time" }, "microorganism": { "$ref": "#/definitions/uri" }, "chemicalSubstance": { "$ref": "#/definitions/uri" }, "coordinateReferenceSystem": { "$ref": "#/definitions/uri" }, "value": { "$ref": "#/definitions/decimal" }, "component": { "$ref": "#/definitions/component" }, "stringValue": { "$ref": "#/definitions/string" }, "booleanValue": { "$ref": "#/definitions/boolean" }, "hexBinaryValue": { "$ref": "#/definitions/hexBinary" }, "uriValue": { "$ref": "#/definitions/uri" }, "minValue": { "$ref": "#/definitions/decimal" }, "maxValue": { "$ref": "#/definitions/decimal" }, "meanValue": { "$ref": "#/definitions/decimal" }, "sDev": { "$ref": "#/definitions/decimal" }, "percRank": { "$ref": "#/definitions/decimal" }, "percValue": { "$ref": "#/definitions/decimal" }, "uom": { "$ref": "#/definitions/string" } }, "required": [ "type" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/vocab-uri" }, { "type": "string", "enum": [ "type", "exception", "deviceID", "deviceMetadata", "rawData", "dataProcessingMethod", "bizRules", "time", "microorganism", "chemicalSubstance", "coordinateReferenceSystem", "value", "component", "stringValue", "booleanValue", "hexBinaryValue", "uriValue", "minValue", "maxValue", "meanValue", "sDev", "percRank", "percValue", "uom" ] } ] } }, "sensorReportList": { "type": "array", "items": { "$ref": "#/definitions/sensorReport" }, "minItems": 1 }, "sensorElement": { "type": "object", "properties": { "sensorMetadata": { "$ref": "#/definitions/sensorMetadata" }, "sensorReport": { "$ref": "#/definitions/sensorReportList" } }, "required": [ "sensorReport" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/vocab-uri" }, { "type": "string", "enum": [ "sensorMetadata", "sensorReport" ] } ] } }, "ilmd": { "type": "object", "propertyNames": { "type": "string", "format": "uri" } }, "common-event-properties": { "anyOf": [ { "type": "string", "enum": [ "@context", "type", "eventTime", "recordTime", "eventTimeZoneOffset", "eventID", "certificationInfo", "errorDeclaration" ] }, { "$ref": "#/definitions/vocab-uri" } ] }, "ObjectEvent": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ObjectEvent" ] }, "epcList": { "$ref": "#/definitions/epcList" }, "quantityList": { "$ref": "#/definitions/quantityList" }, "action": { "$ref": "#/definitions/action" }, "bizStep": { "$ref": "#/definitions/bizStep" }, "disposition": { "$ref": "#/definitions/disposition" }, "persistentDisposition": { "$ref": "#/definitions/persistentDisposition" }, "readPoint": { "$ref": "#/definitions/readPoint" }, "bizLocation": { "$ref": "#/definitions/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/definitions/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/definitions/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/definitions/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" } }, "ilmd": { "$ref": "#/definitions/ilmd" } }, "required": [ "type", "action" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/common-event-properties" }, { "type": "string", "enum": [ "action", "epcList", "quantityList", "bizStep", "disposition", "persistentDisposition", "readPoint", "bizLocation", "bizTransactionList", "sourceList", "destinationList", "sensorElementList", "ilmd" ] } ] } }, { "anyOf": [ { "type": "object", "properties": { "epcList": { "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/id" } } }, "required": [ "epcList" ] }, { "type": "object", "properties": { "quantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/quantityElement" } } }, "required": [ "quantityList" ] }, { "allOf": [ { "type": "object", "properties": { "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" }, "minItems": 1 } }, "required": [ "sensorElementList" ] }, { "type": "object", "properties": { "readPoint": { "$ref": "#/definitions/readPoint" } }, "required": [ "readPoint" ] } ] } ] }, { "anyOf": [ { "type": "object", "properties": { "ilmd": { "not": {} }, "action": { "type": "string", "pattern": "^OBSERVE$" } } }, { "type": "object", "properties": { "ilmd": { "not": {} }, "action": { "type": "string", "pattern": "^DELETE$" } } }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^ADD$" } } } ] } ] }, "AggregationEvent": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AggregationEvent" ] }, "parentID": { "$ref": "#/definitions/uri" }, "childEPCs": { "type": "array", "items": { "$ref": "#/definitions/uri" } }, "childQuantityList": { "type": "array", "items": { "$ref": "#/definitions/quantityElement" } }, "action": { "$ref": "#/definitions/action" }, "bizStep": { "$ref": "#/definitions/bizStep" }, "disposition": { "$ref": "#/definitions/disposition" }, "readPoint": { "$ref": "#/definitions/readPoint" }, "bizLocation": { "$ref": "#/definitions/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/definitions/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/definitions/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/definitions/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" } } }, "required": [ "type", "action" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/common-event-properties" }, { "type": "string", "enum": [ "parentID", "childEPCs", "childQuantityList", "action", "bizStep", "disposition", "readPoint", "bizLocation", "bizTransactionList", "sourceList", "destinationList", "sensorElementList" ] } ] } }, { "anyOf": [ { "type": "object", "properties": { "childEPCs": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/id" } } }, "required": [ "childEPCs" ] }, { "type": "object", "properties": { "childQuantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/quantityElement" } } }, "required": [ "childQuantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] }, "TransactionEvent": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "TransactionEvent" ] }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/definitions/bizTransaction" }, "minItems": 1 }, "parentID": { "$ref": "#/definitions/uri" }, "epcList": { "type": "array", "items": { "$ref": "#/definitions/uri" } }, "quantityList": { "type": "array", "items": { "$ref": "#/definitions/quantityElement" } }, "action": { "$ref": "#/definitions/action" }, "bizStep": { "$ref": "#/definitions/bizStep" }, "disposition": { "$ref": "#/definitions/disposition" }, "readPoint": { "$ref": "#/definitions/readPoint" }, "bizLocation": { "$ref": "#/definitions/bizLocation" }, "sourceList": { "type": "array", "items": { "$ref": "#/definitions/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/definitions/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" } } }, "required": [ "type", "bizTransactionList", "action" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/common-event-properties" }, { "type": "string", "enum": [ "bizTransactionList", "parentID", "epcList", "quantityList", "action", "bizStep", "disposition", "readPoint", "bizLocation", "sourceList", "destinationList", "sensorElementList" ] } ] } }, { "anyOf": [ { "type": "object", "properties": { "epcList": { "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/id" } } }, "required": [ "epcList" ] }, { "type": "object", "properties": { "quantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/quantityElement" } } }, "required": [ "quantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] }, "TransformationEvent": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "TransformationEvent" ] }, "inputEPCList": { "$ref": "#/definitions/epcList" }, "inputQuantityList": { "$ref": "#/definitions/quantityList" }, "outputEPCList": { "$ref": "#/definitions/epcList" }, "outputQuantityList": { "$ref": "#/definitions/quantityList" }, "transformationID": { "$ref": "#/definitions/uri" }, "bizStep": { "$ref": "#/definitions/bizStep" }, "disposition": { "$ref": "#/definitions/disposition" }, "persistentDisposition": { "$ref": "#/definitions/persistentDisposition" }, "readPoint": { "$ref": "#/definitions/readPoint" }, "bizLocation": { "$ref": "#/definitions/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/definitions/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/definitions/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/definitions/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" } }, "ilmd": { "$ref": "#/definitions/ilmd" } }, "required": [ "type" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/common-event-properties" }, { "type": "string", "enum": [ "inputEPCList", "inputQuantityList", "outputEPCList", "outputQuantityList", "transformationID", "bizStep", "disposition", "persistentDisposition", "readPoint", "bizLocation", "bizTransactionList", "sourceList", "destinationList", "sensorElementList", "ilmd" ] } ] } }, { "anyOf": [ { "allOf": [ { "anyOf": [ { "type": "object", "properties": { "inputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "inputEPCList" ] }, { "type": "object", "properties": { "inputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "inputQuantityList" ] } ] }, { "anyOf": [ { "type": "object", "properties": { "outputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "outputEPCList" ] }, { "type": "object", "properties": { "outputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "outputQuantityList" ] } ] } ] }, { "anyOf": [ { "type": "object", "properties": { "inputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "inputEPCList" ] }, { "type": "object", "properties": { "inputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "inputQuantityList" ] }, { "type": "object", "properties": { "outputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "outputEPCList" ] }, { "type": "object", "properties": { "outputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "outputQuantityList" ] } ], "type": "object", "required": [ "transformationID" ] } ] } ] }, "AssociationEvent": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AssociationEvent" ] }, "parentID": { "$ref": "#/definitions/uri" }, "childEPCs": { "type": "array", "items": { "$ref": "#/definitions/uri" } }, "childQuantityList": { "type": "array", "items": { "$ref": "#/definitions/quantityElement" } }, "action": { "$ref": "#/definitions/action" }, "bizStep": { "$ref": "#/definitions/bizStep" }, "disposition": { "$ref": "#/definitions/disposition" }, "readPoint": { "$ref": "#/definitions/readPoint" }, "bizLocation": { "$ref": "#/definitions/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/definitions/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/definitions/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/definitions/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/definitions/sensorElement" } } }, "required": [ "type", "action", "parentID" ], "propertyNames": { "anyOf": [ { "$ref": "#/definitions/common-event-properties" }, { "type": "string", "enum": [ "parentID", "childEPCs", "childQuantityList", "action", "bizStep", "disposition", "readPoint", "bizLocation", "bizTransactionList", "sourceList", "destinationList", "sensorElementList" ] } ] } }, { "anyOf": [ { "type": "object", "properties": { "childEPCs": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/id" } } }, "required": [ "childEPCs" ] }, { "type": "object", "properties": { "childQuantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/quantityElement" } } }, "required": [ "childQuantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] }, "Extended-Event": { "allOf": [ { "$ref": "#/definitions/Event" }, { "type": "object", "properties": { "type": { "$ref": "#/definitions/vocab-uri" } }, "required": [ "type" ] } ] }, "EPCIS-Document-Event": { "type": "object", "required": [ "type" ], "allOf": [ { "if": { "type": "object", "properties": { "type": { "enum": [ "ObjectEvent" ] } } }, "then": { "$ref": "#/definitions/ObjectEvent" } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "AggregationEvent" ] } } }, "then": { "$ref": "#/definitions/AggregationEvent" } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "TransactionEvent" ] } } }, "then": { "$ref": "#/definitions/TransactionEvent" } }, { "if": { "properties": { "type": { "enum": [ "TransformationEvent" ] } } }, "then": { "$ref": "#/definitions/TransformationEvent" } }, { "if": { "type": "object", "properties": { "type": { "enum": [ "AssociationEvent" ] } } }, "then": { "$ref": "#/definitions/AssociationEvent" } }, { "if": { "not": { "type": "object", "properties": { "type": { "enum": [ "AssociationEvent", "ObjectEvent", "AggregationEvent", "TransactionEvent", "TransformationEvent" ] } } } }, "then": { "$ref": "#/definitions/Extended-Event" } } ], "properties": { "type": { "type": "string" } } }, "eventList": { "type": "array", "items": { "$ref": "#/definitions/EPCIS-Document-Event" } }, "epcisDocument": { "type": "object", "properties": { "id": { "$ref": "#/definitions/id" }, "type": { "type": "string", "enum": [ "EPCISDocument" ] }, "@context": { "$ref": "#/definitions/%40context" }, "schemaVersion": { "$ref": "#/definitions/version" }, "creationDate": { "$ref": "#/definitions/time" }, "instanceIdentifier": { "type": "string" }, "sender": { "type": "string" }, "receiver": { "type": "string" }, "epcisHeader": { "$ref": "#/definitions/epcisHeader" }, "epcisBody": { "type": "object", "properties": { "eventList": { "$ref": "#/definitions/eventList" } }, "required": [ "eventList" ] } }, "required": [ "@context", "type", "schemaVersion", "creationDate", "epcisBody" ], "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "@context", "id", "type", "schemaVersion", "creationDate", "instanceIdentifier", "sender", "receiver", "epcisHeader", "epcisBody" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "vocabularyList": { "type": "array", "items": { "$ref": "#/definitions/vocabulary" } }, "resultsBody": { "type": "object", "properties": { "eventList": { "$ref": "#/definitions/eventList" }, "vocabularyList": { "$ref": "#/definitions/vocabularyList" } }, "required": [ "eventList" ], "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "eventList", "vocabularyList" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "queryResults": { "type": "object", "properties": { "queryName": { "type": "string" }, "subscriptionID": { "type": "string" }, "resultsBody": { "$ref": "#/definitions/resultsBody" } }, "required": [ "queryName", "resultsBody" ], "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "queryName", "subscriptionID", "resultsBody" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "epcisQueryDocumentBody": { "type": "object", "properties": { "queryResults": { "$ref": "#/definitions/queryResults" } }, "required": [ "queryResults" ], "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "queryResults" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "epcisQueryDocument": { "type": "object", "properties": { "@context": { "$ref": "#/definitions/%40context" }, "id": { "$ref": "#/definitions/id" }, "type": { "type": "string", "enum": [ "EPCISQueryDocument" ] }, "schemaVersion": { "$ref": "#/definitions/version" }, "creationDate": { "$ref": "#/definitions/time" }, "epcisBody": { "$ref": "#/definitions/epcisQueryDocumentBody" } }, "required": [ "@context", "type", "epcisBody" ], "propertyNames": { "anyOf": [ { "type": "string", "enum": [ "@context", "id", "type", "schemaVersion", "creationDate", "epcisBody" ] }, { "$ref": "#/definitions/vocab-uri" } ] } }, "EPCIS-Document": { "oneOf": [ { "$ref": "#/definitions/epcisDocument" }, { "$ref": "#/definitions/epcisQueryDocument" } ] }, "required-ld-context": { "type": "object", "required": [ "@context" ] } } }