{
  "$id": "http://www.admin-shell.io/schema/json/v2.0.1",
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "definitions": {
    "AccessControl": {
      "properties": {
        "accessPermissionRule": {
          "items": {
            "$ref": "#/definitions/AccessPermissionRule"
          },
          "type": "array"
        },
        "defaultEnvironmentAttributes": {
          "$ref": "#/definitions/Reference"
        },
        "defaultPermissions": {
          "$ref": "#/definitions/Reference"
        },
        "defaultSubjectAttributes": {
          "$ref": "#/definitions/Reference"
        },
        "selectableEnvironmentAttributes": {
          "$ref": "#/definitions/Reference"
        },
        "selectablePermissions": {
          "$ref": "#/definitions/Reference"
        },
        "selectableSubjectAttributes": {
          "$ref": "#/definitions/Reference"
        }
      },
      "type": "object"
    },
    "AccessControlPolicyPoints": {
      "properties": {
        "policyAdministrationPoint": {
          "$ref": "#/definitions/PolicyAdministrationPoint"
        },
        "policyDecisionPoint": {
          "$ref": "#/definitions/PolicyDecisionPoint"
        },
        "policyEnforcementPoint": {
          "$ref": "#/definitions/PolicyEnforcementPoint"
        },
        "policyInformationPoints": {
          "$ref": "#/definitions/PolicyInformationPoints"
        }
      },
      "required": [
        "policyAdministrationPoint",
        "policyDecisionPoint",
        "policyEnforcementPoint"
      ],
      "type": "object"
    },
    "AccessPermissionRule": {
      "allOf": [
        {
          "$ref": "#/definitions/Referable"
        },
        {
          "$ref": "#/definitions/Qualifiable"
        },
        {
          "properties": {
            "permissionsPerObject": {
              "items": {
                "$ref": "#/definitions/PermissionsPerObject"
              },
              "type": "array"
            },
            "targetSubjectAttributes": {
              "items": {
                "$ref": "#/definitions/SubjectAttributes"
              },
              "minItems": 1,
              "type": "array"
            }
          },
          "required": [
            "targetSubjectAttributes"
          ]
        }
      ]
    },
    "AdministrativeInformation": {
      "properties": {
        "revision": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AnnotatedRelationshipElement": {
      "allOf": [
        {
          "$ref": "#/definitions/RelationshipElement"
        },
        {
          "properties": {
            "annotation": {
              "items": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/Blob"
                  },
                  {
                    "$ref": "#/definitions/File"
                  },
                  {
                    "$ref": "#/definitions/MultiLanguageProperty"
                  },
                  {
                    "$ref": "#/definitions/Property"
                  },
                  {
                    "$ref": "#/definitions/Range"
                  },
                  {
                    "$ref": "#/definitions/ReferenceElement"
                  }
                ]
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "Asset": {
      "allOf": [
        {
          "$ref": "#/definitions/Identifiable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "properties": {
            "assetIdentificationModel": {
              "$ref": "#/definitions/Reference"
            },
            "billOfMaterial": {
              "$ref": "#/definitions/Reference"
            },
            "kind": {
              "$ref": "#/definitions/AssetKind"
            }
          },
          "required": [
            "kind"
          ]
        }
      ]
    },
    "AssetAdministrationShell": {
      "allOf": [
        {
          "$ref": "#/definitions/Identifiable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "properties": {
            "asset": {
              "$ref": "#/definitions/Reference"
            },
            "conceptDictionaries": {
              "items": {
                "$ref": "#/definitions/ConceptDictionary"
              },
              "type": "array"
            },
            "derivedFrom": {
              "$ref": "#/definitions/Reference"
            },
            "security": {
              "$ref": "#/definitions/Security"
            },
            "submodels": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            },
            "views": {
              "items": {
                "$ref": "#/definitions/View"
              },
              "type": "array"
            }
          },
          "required": [
            "asset"
          ]
        }
      ]
    },
    "AssetKind": {
      "enum": [
        "Type",
        "Instance"
      ],
      "type": "string"
    },
    "BasicEvent": {
      "allOf": [
        {
          "$ref": "#/definitions/Event"
        },
        {
          "properties": {
            "observed": {
              "$ref": "#/definitions/Reference"
            }
          },
          "required": [
            "observed"
          ]
        }
      ]
    },
    "Blob": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "mimeType": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": [
            "mimeType"
          ]
        }
      ]
    },
    "BlobCertificate": {
      "allOf": [
        {
          "$ref": "#/definitions/Certificate"
        },
        {
          "properties": {
            "blobCertificate": {
              "$ref": "#/definitions/Blob"
            },
            "containedExtension": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            },
            "lastCertificate": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    "Capability": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        }
      ]
    },
    "Certificate": {
      "type": "object"
    },
    "ConceptDescription": {
      "allOf": [
        {
          "$ref": "#/definitions/Identifiable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "properties": {
            "isCaseOf": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "ConceptDictionary": {
      "allOf": [
        {
          "$ref": "#/definitions/Referable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "properties": {
            "conceptDescriptions": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "Constraint": {
      "properties": {
        "modelType": {
          "$ref": "#/definitions/ModelType"
        }
      },
      "required": [
        "modelType"
      ],
      "type": "object"
    },
    "DataSpecificationContent": {
      "oneOf": [
        {
          "$ref": "#/definitions/DataSpecificationIEC61360Content"
        },
        {
          "$ref": "#/definitions/DataSpecificationPhysicalUnitContent"
        }
      ]
    },
    "DataSpecificationIEC61360Content": {
      "allOf": [
        {
          "$ref": "#/definitions/ValueObject"
        },
        {
          "properties": {
            "dataType": {
              "enum": [
                "DATE",
                "STRING",
                "STRING_TRANSLATABLE",
                "REAL_MEASURE",
                "REAL_COUNT",
                "REAL_CURRENCY",
                "BOOLEAN",
                "URL",
                "RATIONAL",
                "RATIONAL_MEASURE",
                "TIME",
                "TIMESTAMP",
                "INTEGER_COUNT",
                "INTEGER_MEASURE",
                "INTEGER_CURRENCY"
              ]
            },
            "definition": {
              "items": {
                "$ref": "#/definitions/LangString"
              },
              "type": "array"
            },
            "levelType": {
              "items": {
                "$ref": "#/definitions/LevelType"
              },
              "type": "array"
            },
            "preferredName": {
              "items": {
                "$ref": "#/definitions/LangString"
              },
              "type": "array"
            },
            "shortName": {
              "items": {
                "$ref": "#/definitions/LangString"
              },
              "type": "array"
            },
            "sourceOfDefinition": {
              "type": "string"
            },
            "symbol": {
              "type": "string"
            },
            "unit": {
              "type": "string"
            },
            "unitId": {
              "$ref": "#/definitions/Reference"
            },
            "valueFormat": {
              "type": "string"
            },
            "valueList": {
              "$ref": "#/definitions/ValueList"
            }
          },
          "required": [
            "preferredName"
          ],
          "type": "object"
        }
      ]
    },
    "DataSpecificationPhysicalUnitContent": {
      "properties": {
        "conversionFactor": {
          "type": "string"
        },
        "definition": {
          "items": {
            "$ref": "#/definitions/LangString"
          },
          "type": "array"
        },
        "dinNotation": {
          "type": "string"
        },
        "eceCode": {
          "type": "string"
        },
        "eceName": {
          "type": "string"
        },
        "nistName": {
          "type": "string"
        },
        "registrationAuthorityId": {
          "type": "string"
        },
        "siName": {
          "type": "string"
        },
        "siNotation": {
          "type": "string"
        },
        "sourceOfDefinition": {
          "type": "string"
        },
        "supplier": {
          "type": "string"
        },
        "unitName": {
          "type": "string"
        },
        "unitSymbol": {
          "type": "string"
        }
      },
      "required": [
        "unitName",
        "unitSymbol",
        "definition"
      ],
      "type": "object"
    },
    "EmbeddedDataSpecification": {
      "properties": {
        "dataSpecification": {
          "$ref": "#/definitions/Reference"
        },
        "dataSpecificationContent": {
          "$ref": "#/definitions/DataSpecificationContent"
        }
      },
      "required": [
        "dataSpecification",
        "dataSpecificationContent"
      ],
      "type": "object"
    },
    "Entity": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "asset": {
              "$ref": "#/definitions/Reference"
            },
            "entityType": {
              "$ref": "#/definitions/EntityType"
            },
            "statements": {
              "items": {
                "$ref": "#/definitions/SubmodelElement"
              },
              "type": "array"
            }
          },
          "required": [
            "entityType"
          ]
        }
      ]
    },
    "EntityType": {
      "enum": [
        "CoManagedEntity",
        "SelfManagedEntity"
      ],
      "type": "string"
    },
    "Event": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        }
      ]
    },
    "File": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "mimeType": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": [
            "mimeType"
          ]
        }
      ]
    },
    "Formula": {
      "allOf": [
        {
          "$ref": "#/definitions/Constraint"
        },
        {
          "properties": {
            "dependsOn": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "HasDataSpecification": {
      "properties": {
        "embeddedDataSpecifications": {
          "items": {
            "$ref": "#/definitions/EmbeddedDataSpecification"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "HasSemantics": {
      "properties": {
        "semanticId": {
          "$ref": "#/definitions/Reference"
        }
      },
      "type": "object"
    },
    "Identifiable": {
      "allOf": [
        {
          "$ref": "#/definitions/Referable"
        },
        {
          "properties": {
            "administration": {
              "$ref": "#/definitions/AdministrativeInformation"
            },
            "identification": {
              "$ref": "#/definitions/Identifier"
            }
          },
          "required": [
            "identification"
          ]
        }
      ]
    },
    "Identifier": {
      "properties": {
        "id": {
          "type": "string"
        },
        "idType": {
          "$ref": "#/definitions/KeyType"
        }
      },
      "required": [
        "id",
        "idType"
      ],
      "type": "object"
    },
    "Key": {
      "properties": {
        "idType": {
          "$ref": "#/definitions/KeyType"
        },
        "local": {
          "type": "boolean"
        },
        "type": {
          "$ref": "#/definitions/KeyElements"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "idType",
        "value",
        "local"
      ],
      "type": "object"
    },
    "KeyElements": {
      "enum": [
        "Asset",
        "AssetAdministrationShell",
        "ConceptDescription",
        "Submodel",
        "AccessPermissionRule",
        "AnnotatedRelationshipElement",
        "BasicEvent",
        "Blob",
        "Capability",
        "ConceptDictionary",
        "DataElement",
        "File",
        "Entity",
        "Event",
        "MultiLanguageProperty",
        "Operation",
        "Property",
        "Range",
        "ReferenceElement",
        "RelationshipElement",
        "SubmodelElement",
        "SubmodelElementCollection",
        "View",
        "GlobalReference",
        "FragmentReference"
      ],
      "type": "string"
    },
    "KeyType": {
      "enum": [
        "Custom",
        "IRDI",
        "IRI",
        "IdShort",
        "FragmentId"
      ],
      "type": "string"
    },
    "LangString": {
      "properties": {
        "language": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      },
      "required": [
        "language",
        "text"
      ],
      "type": "object"
    },
    "LevelType": {
      "enum": [
        "Min",
        "Max",
        "Nom",
        "Typ"
      ],
      "type": "string"
    },
    "ModelType": {
      "properties": {
        "name": {
          "$ref": "#/definitions/ModelTypes"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "ModelTypes": {
      "enum": [
        "Asset",
        "AssetAdministrationShell",
        "ConceptDescription",
        "Submodel",
        "AccessPermissionRule",
        "AnnotatedRelationshipElement",
        "BasicEvent",
        "Blob",
        "Capability",
        "ConceptDictionary",
        "DataElement",
        "File",
        "Entity",
        "Event",
        "MultiLanguageProperty",
        "Operation",
        "Property",
        "Range",
        "ReferenceElement",
        "RelationshipElement",
        "SubmodelElement",
        "SubmodelElementCollection",
        "View",
        "GlobalReference",
        "FragmentReference",
        "Constraint",
        "Formula",
        "Qualifier"
      ],
      "type": "string"
    },
    "ModelingKind": {
      "enum": [
        "Template",
        "Instance"
      ],
      "type": "string"
    },
    "MultiLanguageProperty": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "value": {
              "items": {
                "$ref": "#/definitions/LangString"
              },
              "type": "array"
            },
            "valueId": {
              "$ref": "#/definitions/Reference"
            }
          }
        }
      ]
    },
    "ObjectAttributes": {
      "properties": {
        "objectAttribute": {
          "items": {
            "$ref": "#/definitions/Property"
          },
          "minItems": 1,
          "type": "array"
        }
      },
      "type": "object"
    },
    "Operation": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "inoutputVariable": {
              "items": {
                "$ref": "#/definitions/OperationVariable"
              },
              "type": "array"
            },
            "inputVariable": {
              "items": {
                "$ref": "#/definitions/OperationVariable"
              },
              "type": "array"
            },
            "outputVariable": {
              "items": {
                "$ref": "#/definitions/OperationVariable"
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "OperationVariable": {
      "properties": {
        "value": {
          "oneOf": [
            {
              "$ref": "#/definitions/Blob"
            },
            {
              "$ref": "#/definitions/File"
            },
            {
              "$ref": "#/definitions/Capability"
            },
            {
              "$ref": "#/definitions/Entity"
            },
            {
              "$ref": "#/definitions/Event"
            },
            {
              "$ref": "#/definitions/BasicEvent"
            },
            {
              "$ref": "#/definitions/MultiLanguageProperty"
            },
            {
              "$ref": "#/definitions/Operation"
            },
            {
              "$ref": "#/definitions/Property"
            },
            {
              "$ref": "#/definitions/Range"
            },
            {
              "$ref": "#/definitions/ReferenceElement"
            },
            {
              "$ref": "#/definitions/RelationshipElement"
            },
            {
              "$ref": "#/definitions/SubmodelElementCollection"
            }
          ]
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "Permission": {
      "properties": {
        "kindOfPermission": {
          "enum": [
            "Allow",
            "Deny",
            "NotApplicable",
            "Undefined"
          ],
          "type": "string"
        },
        "permission": {
          "$ref": "#/definitions/Reference"
        }
      },
      "required": [
        "permission",
        "kindOfPermission"
      ],
      "type": "object"
    },
    "PermissionsPerObject": {
      "properties": {
        "object": {
          "$ref": "#/definitions/Reference"
        },
        "permission": {
          "items": {
            "$ref": "#/definitions/Permission"
          },
          "type": "array"
        },
        "targetObjectAttributes": {
          "$ref": "#/definitions/ObjectAttributes"
        }
      },
      "type": "object"
    },
    "PolicyAdministrationPoint": {
      "properties": {
        "externalAccessControl": {
          "type": "boolean"
        },
        "localAccessControl": {
          "$ref": "#/definitions/AccessControl"
        }
      },
      "required": [
        "externalAccessControl"
      ],
      "type": "object"
    },
    "PolicyDecisionPoint": {
      "properties": {
        "externalPolicyDecisionPoints": {
          "type": "boolean"
        }
      },
      "required": [
        "externalPolicyDecisionPoints"
      ],
      "type": "object"
    },
    "PolicyEnforcementPoint": {
      "properties": {
        "externalPolicyEnforcementPoint": {
          "type": "boolean"
        }
      },
      "required": [
        "externalPolicyEnforcementPoint"
      ],
      "type": "object"
    },
    "PolicyInformationPoints": {
      "properties": {
        "externalInformationPoint": {
          "type": "boolean"
        },
        "internalInformationPoint": {
          "items": {
            "$ref": "#/definitions/Reference"
          },
          "type": "array"
        }
      },
      "required": [
        "externalInformationPoint"
      ],
      "type": "object"
    },
    "Property": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "$ref": "#/definitions/ValueObject"
        }
      ]
    },
    "Qualifiable": {
      "properties": {
        "qualifiers": {
          "items": {
            "$ref": "#/definitions/Constraint"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Qualifier": {
      "allOf": [
        {
          "$ref": "#/definitions/Constraint"
        },
        {
          "$ref": "#/definitions/HasSemantics"
        },
        {
          "$ref": "#/definitions/ValueObject"
        },
        {
          "properties": {
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ]
        }
      ]
    },
    "Range": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "max": {
              "type": "string"
            },
            "min": {
              "type": "string"
            },
            "valueType": {
              "enum": [
                "anyUri",
                "base64Binary",
                "boolean",
                "date",
                "dateTime",
                "dateTimeStamp",
                "decimal",
                "integer",
                "long",
                "int",
                "short",
                "byte",
                "nonNegativeInteger",
                "positiveInteger",
                "unsignedLong",
                "unsignedInt",
                "unsignedShort",
                "unsignedByte",
                "nonPositiveInteger",
                "negativeInteger",
                "double",
                "duration",
                "dayTimeDuration",
                "yearMonthDuration",
                "float",
                "gDay",
                "gMonth",
                "gMonthDay",
                "gYear",
                "gYearMonth",
                "hexBinary",
                "NOTATION",
                "QName",
                "string",
                "normalizedString",
                "token",
                "language",
                "Name",
                "NCName",
                "ENTITY",
                "ID",
                "IDREF",
                "NMTOKEN",
                "time"
              ],
              "type": "string"
            }
          },
          "required": [
            "valueType"
          ]
        }
      ]
    },
    "Referable": {
      "properties": {
        "category": {
          "type": "string"
        },
        "description": {
          "items": {
            "$ref": "#/definitions/LangString"
          },
          "type": "array"
        },
        "idShort": {
          "type": "string"
        },
        "modelType": {
          "$ref": "#/definitions/ModelType"
        },
        "parent": {
          "$ref": "#/definitions/Reference"
        }
      },
      "required": [
        "idShort",
        "modelType"
      ],
      "type": "object"
    },
    "Reference": {
      "properties": {
        "keys": {
          "items": {
            "$ref": "#/definitions/Key"
          },
          "type": "array"
        }
      },
      "required": [
        "keys"
      ],
      "type": "object"
    },
    "ReferenceElement": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "value": {
              "$ref": "#/definitions/Reference"
            }
          }
        }
      ]
    },
    "RelationshipElement": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "first": {
              "$ref": "#/definitions/Reference"
            },
            "second": {
              "$ref": "#/definitions/Reference"
            }
          },
          "required": [
            "first",
            "second"
          ]
        }
      ]
    },
    "Security": {
      "properties": {
        "accessControlPolicyPoints": {
          "$ref": "#/definitions/AccessControlPolicyPoints"
        },
        "certificate": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/BlobCertificate"
              }
            ]
          },
          "type": "array"
        },
        "requiredCertificateExtension": {
          "items": {
            "$ref": "#/definitions/Reference"
          },
          "type": "array"
        }
      },
      "required": [
        "accessControlPolicyPoints"
      ],
      "type": "object"
    },
    "SubjectAttributes": {
      "properties": {
        "subjectAttributes": {
          "items": {
            "$ref": "#/definitions/Reference"
          },
          "minItems": 1,
          "type": "array"
        }
      },
      "type": "object"
    },
    "Submodel": {
      "allOf": [
        {
          "$ref": "#/definitions/Identifiable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "$ref": "#/definitions/Qualifiable"
        },
        {
          "$ref": "#/definitions/HasSemantics"
        },
        {
          "properties": {
            "kind": {
              "$ref": "#/definitions/ModelingKind"
            },
            "submodelElements": {
              "items": {
                "$ref": "#/definitions/SubmodelElement"
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "SubmodelElement": {
      "allOf": [
        {
          "$ref": "#/definitions/Referable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "$ref": "#/definitions/HasSemantics"
        },
        {
          "$ref": "#/definitions/Qualifiable"
        },
        {
          "properties": {
            "kind": {
              "$ref": "#/definitions/ModelingKind"
            }
          }
        }
      ]
    },
    "SubmodelElementCollection": {
      "allOf": [
        {
          "$ref": "#/definitions/SubmodelElement"
        },
        {
          "properties": {
            "allowDuplicates": {
              "type": "boolean"
            },
            "ordered": {
              "type": "boolean"
            },
            "value": {
              "items": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/Blob"
                  },
                  {
                    "$ref": "#/definitions/File"
                  },
                  {
                    "$ref": "#/definitions/Capability"
                  },
                  {
                    "$ref": "#/definitions/Entity"
                  },
                  {
                    "$ref": "#/definitions/Event"
                  },
                  {
                    "$ref": "#/definitions/BasicEvent"
                  },
                  {
                    "$ref": "#/definitions/MultiLanguageProperty"
                  },
                  {
                    "$ref": "#/definitions/Operation"
                  },
                  {
                    "$ref": "#/definitions/Property"
                  },
                  {
                    "$ref": "#/definitions/Range"
                  },
                  {
                    "$ref": "#/definitions/ReferenceElement"
                  },
                  {
                    "$ref": "#/definitions/RelationshipElement"
                  },
                  {
                    "$ref": "#/definitions/SubmodelElementCollection"
                  }
                ]
              },
              "type": "array"
            }
          }
        }
      ]
    },
    "ValueList": {
      "properties": {
        "valueReferencePairTypes": {
          "items": {
            "$ref": "#/definitions/ValueReferencePairType"
          },
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "valueReferencePairTypes"
      ],
      "type": "object"
    },
    "ValueObject": {
      "properties": {
        "value": {
          "type": "string"
        },
        "valueId": {
          "$ref": "#/definitions/Reference"
        },
        "valueType": {
          "enum": [
            "anyUri",
            "base64Binary",
            "boolean",
            "date",
            "dateTime",
            "dateTimeStamp",
            "decimal",
            "integer",
            "long",
            "int",
            "short",
            "byte",
            "nonNegativeInteger",
            "positiveInteger",
            "unsignedLong",
            "unsignedInt",
            "unsignedShort",
            "unsignedByte",
            "nonPositiveInteger",
            "negativeInteger",
            "double",
            "duration",
            "dayTimeDuration",
            "yearMonthDuration",
            "float",
            "gDay",
            "gMonth",
            "gMonthDay",
            "gYear",
            "gYearMonth",
            "hexBinary",
            "NOTATION",
            "QName",
            "string",
            "normalizedString",
            "token",
            "language",
            "Name",
            "NCName",
            "ENTITY",
            "ID",
            "IDREF",
            "NMTOKEN",
            "time"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ValueReferencePairType": {
      "allOf": [
        {
          "$ref": "#/definitions/ValueObject"
        }
      ]
    },
    "View": {
      "allOf": [
        {
          "$ref": "#/definitions/Referable"
        },
        {
          "$ref": "#/definitions/HasDataSpecification"
        },
        {
          "$ref": "#/definitions/HasSemantics"
        },
        {
          "properties": {
            "containedElements": {
              "items": {
                "$ref": "#/definitions/Reference"
              },
              "type": "array"
            }
          }
        }
      ]
    }
  },
  "properties": {
    "assetAdministrationShells": {
      "items": {
        "$ref": "#/definitions/AssetAdministrationShell"
      },
      "type": "array"
    },
    "assets": {
      "items": {
        "$ref": "#/definitions/Asset"
      },
      "type": "array"
    },
    "conceptDescriptions": {
      "items": {
        "$ref": "#/definitions/ConceptDescription"
      },
      "type": "array"
    },
    "submodels": {
      "items": {
        "$ref": "#/definitions/Submodel"
      },
      "type": "array"
    }
  },
  "required": [
    "assetAdministrationShells",
    "submodels",
    "assets",
    "conceptDescriptions"
  ],
  "title": "AssetAdministrationShellEnvironment",
  "type": "object"
}