{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "definitions": {
    "AllFaultsOfSingleDevice": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "operatingProperlySince": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "deviceReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceReferenceG"
        },
        "deviceFault": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceFault"
          },
          "minItems": 0
        },
        "fstAllFaultsOfSingleDeviceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "deviceReference"
      ]
    },
    "CatalogueInformation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "catalogueReferenceByOID": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/ObjectIdentifier"
        },
        "catalogueElement": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "fstCatalogueInformationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "catalogueElement",
        "catalogueReferenceByOID"
      ]
    },
    "Component": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "typeOfDevice": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTypeEnumG"
        },
        "lastUpdateOfDeviceInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "externalDeviceId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "lastDeviceCheck": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "softwareVersion": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "softwareVersionDate": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "additionalDeviceInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "ipAddress": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/IpAddress"
        },
        "portNumber": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/PortNumber"
        },
        "componentType": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceComponentEnumG"
        },
        "accountableAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "pointLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
        },
        "physicalDeviceDetails": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/PhysicalDeviceDetails"
        },
        "component": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Component"
          },
          "minItems": 0
        },
        "dependsOn": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceReferenceG"
          },
          "minItems": 0
        },
        "fstDeviceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstComponentExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "lastUpdateOfDeviceInformation",
        "typeOfDevice",
        "componentType",
        "pointLocation"
      ]
    },
    "Device": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "typeOfDevice": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTypeEnumG"
        },
        "lastUpdateOfDeviceInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "externalDeviceId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "lastDeviceCheck": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "softwareVersion": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "softwareVersionDate": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "additionalDeviceInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "ipAddress": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/IpAddress"
        },
        "portNumber": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/PortNumber"
        },
        "accountableAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "pointLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
        },
        "physicalDeviceDetails": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/PhysicalDeviceDetails"
        },
        "component": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Component"
          },
          "minItems": 0
        },
        "dependsOn": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceReferenceG"
          },
          "minItems": 0
        },
        "fstDeviceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "lastUpdateOfDeviceInformation",
        "typeOfDevice",
        "pointLocation"
      ]
    },
    "DeviceComponentEnum": {
      "type": "string",
      "enum": [
        "ambientLightMonitor",
        "cabinet",
        "communicationsEquipment",
        "controller",
        "display",
        "fan",
        "generalPurposeIoPort",
        "heater",
        "other",
        "powerSupply",
        "processor",
        "sensor",
        "extendedG"
      ]
    },
    "DeviceComponentEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceComponentEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DeviceFault": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "faultIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "faultDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "faultCreationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "faultLastUpdateTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "faultImpactSeverity": {
          "$ref": "DATEXII_3_Common.json#/definitions/FaultSeverityEnumG"
        },
        "faultUrgencyToRectify": {
          "$ref": "DATEXII_3_Common.json#/definitions/FaultUrgencyEnumG"
        },
        "manufacturerFaultCode": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "faultType": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/FaultTypeEnumG"
        },
        "faultInstructions": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "faultImpactOnData": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/FaultImpactOnDataEnumG"
          },
          "minItems": 0
        },
        "faultComponent": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "faultComponentType": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceComponentEnumG"
        },
        "faultObjectInformation": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/CatalogueInformation"
        },
        "comFaultExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceFaultExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "faultLastUpdateTime",
        "faultType"
      ]
    },
    "DeviceG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "fstDevice": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Device"
        },
        "fstComponent": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Component"
        }
      }
    },
    "DeviceHealthEnum": {
      "type": "string",
      "enum": [
        "ok",
        "notOk",
        "functionalityPartlyOk",
        "intermittentlyOk",
        "alarm",
        "notResponding",
        "offline",
        "unknown",
        "extendedG"
      ]
    },
    "DeviceHealthEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceHealthEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DevicePower": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "health": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceHealthEnumG"
        },
        "sourceType": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/PowerSourceEnumG"
        },
        "fstDevicePowerExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "health",
        "sourceType"
      ]
    },
    "DevicePublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "headerInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/HeaderInformation"
        },
        "device": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceG"
          },
          "minItems": 0
        },
        "deviceTable": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTable"
          },
          "minItems": 0
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDevicePublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "lang",
        "publicationTime",
        "publicationCreator",
        "headerInformation"
      ]
    },
    "DeviceReferenceG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "fstVmsUnitReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/VmsUnitReference"
        },
        "fstMeasurementSiteReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/MeasurementSiteReference"
        },
        "fstGeneralDeviceReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/GeneralDeviceReference"
        }
      }
    },
    "DeviceTable": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "deviceTableName": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "accountableAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "device": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceG"
          },
          "minItems": 1
        },
        "fstDeviceTableExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "device"
      ]
    },
    "DeviceTableReferenceG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "fstMeasurementSiteTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/MeasurementSiteTableReference"
        },
        "fstGeneralDeviceTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/GeneralDeviceTableReference"
        },
        "fstVmsUnitTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/VmsUnitTableReference"
        }
      }
    },
    "DeviceTableVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "DeviceTable"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "DeviceTypeEnum": {
      "type": "string",
      "enum": [
        "accessControl",
        "camera",
        "fireDetection",
        "firefightingDevice",
        "itsStation",
        "lighting",
        "meteorological",
        "roadsideTelephone",
        "tollingDevice",
        "trafficDetector",
        "ventilation",
        "parkingGuidance",
        "parkingManagement",
        "roadsideEquipment",
        "trafficSignal",
        "transportLink",
        "transportRoute",
        "tunnel",
        "vehicle",
        "vms",
        "other",
        "extendedG"
      ]
    },
    "DeviceTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DeviceVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "Device"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "FaultImpactOnDataEnum": {
      "type": "string",
      "enum": [
        "downloadFailed",
        "intermittentData",
        "noData",
        "unreliableData",
        "unspecified",
        "extendedG"
      ]
    },
    "FaultImpactOnDataEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/FaultImpactOnDataEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "FaultPublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "headerInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/HeaderInformation"
        },
        "allFaultsOfSingleDevice": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/AllFaultsOfSingleDevice"
          },
          "minItems": 0
        },
        "faultsOfAllDevicesFromTable": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/FaultsOfAllDevicesFromTable"
          },
          "minItems": 0
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstFaultPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "lang",
        "publicationTime",
        "publicationCreator",
        "headerInformation"
      ]
    },
    "FaultsOfAllDevicesFromTable": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "deviceTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTableReferenceG"
        },
        "allFaultsOfSingleDevice": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/AllFaultsOfSingleDevice"
          },
          "minItems": 1
        },
        "fstFaultsOfAllDevicesFromTableExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "deviceTableReference",
        "allFaultsOfSingleDevice"
      ]
    },
    "FaultTypeEnum": {
      "type": "string",
      "enum": [
        "internalCommunicationFault",
        "synchronizationFault",
        "componentFault",
        "configurationError",
        "disconnected",
        "electronicsFault",
        "generalSystemError",
        "hardwareFault",
        "controlFault",
        "intermittentlyWorking",
        "mechanicalFault",
        "notWorking",
        "operatingSystemFault",
        "powerFailure",
        "securityFault",
        "softwareFault",
        "timeOrClockFault",
        "unspecifiedFault",
        "unknownFault",
        "otherFault",
        "extendedG"
      ]
    },
    "FaultTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/FaultTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "GeneralDeviceReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "deviceReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstGeneralDeviceReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "deviceReference"
      ]
    },
    "GeneralDeviceTableReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "deviceTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTableVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstGeneralDeviceTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "deviceTableReference"
      ]
    },
    "MeasurementSiteReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "measurementSiteReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/MeasurementSiteVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstMeasurementSiteReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "measurementSiteReference"
      ]
    },
    "MeasurementSiteTableReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "measurementSiteTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/MeasurementSiteTableVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstMeasurementSiteTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "measurementSiteTableReference"
      ]
    },
    "MeasurementSiteTableVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "MeasurementSiteTable"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "MeasurementSiteVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "MeasurementSite"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "ObjectIdentifier": {
      "$ref": "DATEXII_3_Common.json#/definitions/String"
    },
    "OperationalDeviceStateEnum": {
      "type": "string",
      "enum": [
        "maintenanceMode",
        "on",
        "off",
        "powerSafeMode",
        "specialMode",
        "temporarilyDeactivated",
        "permanentlyDeactivated",
        "unknown",
        "extendedG"
      ]
    },
    "OperationalDeviceStateEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/OperationalDeviceStateEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "OperationalState": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "operationalDeviceState": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/OperationalDeviceStateEnumG"
        },
        "stateDescription": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
          },
          "minItems": 0
        },
        "lastStateChange": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "lastStateUpdate": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "operationalStateCatalogueInformation": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/CatalogueInformation"
        },
        "fstOperationalStateExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "operationalDeviceState"
      ]
    },
    "PhysicalDeviceDetails": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "barcode": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "installationDate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Date"
        },
        "manufactureDate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Date"
        },
        "manufacturer": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "model": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "name": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "serialNumber": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "stockCode": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "fstPhysicalDeviceDetailsExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "PowerSourceEnum": {
      "type": "string",
      "enum": [
        "battery",
        "generator",
        "hydro",
        "mains",
        "solar",
        "wind",
        "extendedG"
      ]
    },
    "PowerSourceEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/PowerSourceEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "Status": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "health": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceHealthEnumG"
        },
        "statusDescription": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
          },
          "minItems": 0
        },
        "lastStatusChange": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "lastStatusUpdate": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "relatedFault": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/VersionedReference"
          },
          "minItems": 0
        },
        "deviceReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceReferenceG"
        },
        "operationalState": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/OperationalState"
        },
        "statusCatalogueInformation": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/CatalogueInformation"
        },
        "devicePower": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DevicePower"
          },
          "minItems": 0
        },
        "fstStatusExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "health",
        "lastStatusUpdate",
        "deviceReference"
      ]
    },
    "StatusOfAllDevicesFromTable": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "deviceTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/DeviceTableReferenceG"
        },
        "status": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Status"
          },
          "minItems": 1
        },
        "fstStatusOfAllDevicesFromTableExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "deviceTableReference",
        "status"
      ]
    },
    "StatusPublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "headerInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/HeaderInformation"
        },
        "status": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/Status"
          },
          "minItems": 0
        },
        "statusOfAllDevicesFromTable": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/StatusOfAllDevicesFromTable"
          },
          "minItems": 0
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstStatusPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "lang",
        "publicationTime",
        "publicationCreator",
        "headerInformation"
      ]
    },
    "VmsControllerTableVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "VmsControllerTable"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "VmsControllerVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "VmsController"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "VmsUnitReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "vmsUnitReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/VmsControllerVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstVmsUnitReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "vmsUnitReference"
      ]
    },
    "VmsUnitTableReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "externalPublicationIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "vmsUnitTableReference": {
          "$ref": "DATEXII_3_FaultAndStatus.json#/definitions/VmsControllerTableVersionedReferenceG"
        },
        "externalPublisher": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "comGlobalReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstDeviceTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "fstVmsUnitTableReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "vmsUnitTableReference"
      ]
    }
  }
}