├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── issue-template-for-bugs.md │ ├── issue-template-for-feature-requests.md │ └── issue-template-for-review-findings.md └── workflows │ └── check-changed-files.yml ├── .qodana ├── asciidoc-inspection.xml └── qodana.yaml ├── AasxFileServerServiceSpecification └── V3.1_SSP-001.yaml ├── AssetAdministrationShellRegistryServiceSpecification ├── V3.1_SSP-001.yaml ├── V3.1_SSP-002.yaml ├── V3.1_SSP-003.yaml ├── V3.1_SSP-004.yaml └── V3.1_SSP-005.yaml ├── AssetAdministrationShellRepositoryServiceSpecification ├── V3.1_SSP-001.yaml ├── V3.1_SSP-002.yaml └── V3.1_SSP-003.yaml ├── AssetAdministrationShellServiceSpecification ├── V3.1_SSP-001.yaml └── V3.1_SSP-002.yaml ├── CONTRIBUTING.md ├── ConceptDescriptionRepositoryServiceSpecification ├── V3.1_SSP-001.yaml └── V3.1_SSP-002.yaml ├── DINSPEC16593-Schemas └── openapi.yaml ├── DiscoveryServiceSpecification ├── V3.1_SSP-001.yaml └── V3.1_SSP-002.yaml ├── Entire-API-Collection └── V3.1.yaml ├── LICENSE.txt ├── Part1-MetaModel-Schemas └── openapi.yaml ├── Part2-API-Schemas └── openapi.yaml ├── README.md ├── SubmodelRegistryServiceSpecification ├── V3.1_SSP-001.yaml ├── V3.1_SSP-002.yaml ├── V3.1_SSP-003.yaml └── V3.1_SSP-004.yaml ├── SubmodelRepositoryServiceSpecification ├── V3.1_SSP-001.yaml ├── V3.1_SSP-002.yaml ├── V3.1_SSP-003.yaml ├── V3.1_SSP-004.yaml └── V3.1_SSP-005.yaml ├── SubmodelServiceSpecification ├── V3.1_SSP-001.yaml ├── V3.1_SSP-002.yaml └── V3.1_SSP-003.yaml └── documentation ├── IDTA-01002-3 ├── antora.yml └── modules │ └── ROOT │ ├── images │ ├── aas-api-versioning-url-scheme.svg │ ├── aas-api-versioning-url-scheme2.png │ ├── aas-info-exchange-types.jpg │ ├── coverpage.png │ ├── idta-logo.png │ ├── plantuml │ │ ├── query-language-overview.png │ │ └── query-language-overview.puml │ ├── private_key_certchain_jwt-method.png │ ├── se-hierarchy.drawio │ ├── se-hierarchy.png │ └── swaggerhub-gen-code.png │ ├── nav.adoc │ ├── pages │ ├── annex │ │ ├── api-tables-templates.adoc │ │ ├── backus-naur-form.adoc │ │ ├── handling-constraints.adoc │ │ ├── overview-constraints.adoc │ │ ├── serialization-modifier-examples.adoc │ │ ├── uml-templates.adoc │ │ └── uml.adoc │ ├── bibliography.adoc │ ├── changelog.adoc │ ├── general.adoc │ ├── http-rest-api │ │ ├── api-code-generation.adoc │ │ ├── http-rest-api.adoc │ │ ├── interactions.adoc │ │ ├── service-specifications-and-profiles.adoc │ │ └── test │ │ │ └── query │ │ │ └── test1.json │ ├── includes │ │ ├── constraints.adoc │ │ └── special-parameters.adoc │ ├── index.adoc │ ├── introduction.adoc │ ├── json-grammar.txt │ ├── preamble.adoc │ ├── query-language.adoc │ ├── schema.adoc │ ├── shared │ │ ├── conformance.adoc │ │ └── versioning.adoc │ ├── specification │ │ ├── interfaces-operation-parameters.adoc │ │ ├── interfaces-payload.adoc │ │ └── interfaces.adoc │ ├── summary-and-outlook.adoc │ └── terms-definitions-and-abbreviations.adoc │ └── partials │ ├── bnf │ └── grammar.bnf │ ├── diagrams │ ├── asset-related-info-retrieval.puml │ ├── i40-service-model.puml │ ├── query-language-overview.puml │ ├── se-operation-invocation.puml │ ├── seq-aas-endpoints.puml │ ├── seq-sm-endpoints-http.puml │ ├── seq-sm-endpoints.puml │ ├── sequence-of-bulk.puml │ └── uml-basics │ │ ├── 64-class.puml │ │ ├── 65-inheritance.puml │ │ ├── 66-multiplicity.puml │ │ ├── 67-2-association.puml │ │ ├── 67-3-labeled-association.puml │ │ ├── 67-ordered-multiplicity.puml │ │ ├── 68-composition.puml │ │ ├── 69-aggregation.puml │ │ ├── 70-navigable-attribute-notation-for-associations.puml │ │ ├── 71-default-value.puml │ │ ├── 72-dependency.puml │ │ ├── 73-abstract-class.puml │ │ ├── 74-package.puml │ │ ├── 75-imported-package.puml │ │ ├── 76-enumeration.puml │ │ ├── 79-note.puml │ │ ├── 80-constraint.puml │ │ ├── 81-composite-aggregation-composition.puml │ │ ├── 82-shared-aggregation.puml │ │ ├── 83-generalization-inheritance.puml │ │ ├── 84-enumeration-with-inheritance.puml │ │ ├── 85-experimental-classes.puml │ │ ├── 86-deprecated-elements.puml │ │ └── 87-template-class.puml │ └── query-json-schema.json ├── decisions └── README.md ├── favicon.png ├── idta-logo.png └── style.css /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # This is the CODEOWNERS file. 2 | # For understanding CODEOWNERS, see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners 3 | 4 | # Default owners 5 | * @sebbader-sap @BirgitBoss @aorzelskiGH @alexgordtop @mjacoby @danielporta @g1zzm0 @getag @waltersve @zrgt 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue-template-for-bugs.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue Template for Bug Reports 3 | about: Describe this issue's purpose here. 4 | title: 'Replace Title' 5 | labels: 'bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # What happens? 11 | 12 | *Describe the problem in short sentences, add a minimal example if possible* 13 | ... 14 | 15 | # Why is this wrong? 16 | 17 | *Describe why this is a problem.* 18 | 19 | # How should it be fixed? 20 | 21 | *Describe which change will fix the problem.* 22 | ... 23 | 24 | - [ ] I have signed the required Developer Certificate of Origin ([DCO](https://developercertificate.org)) already. 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue-template-for-feature-requests.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue Template for Requesting new AAS API Features 3 | about: Describe this issue's purpose here. 4 | title: 'Replace Title' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # What is missing? 11 | 12 | *Describe the problem in short sentences, add a minimal example if possible* 13 | ... 14 | 15 | 16 | # How should it be fixed? 17 | 18 | *Describe which change will fix the problem.* 19 | ... 20 | 21 | 22 | - [ ] I have signed the required Developer Certificate of Origin ([DCO](https://developercertificate.org)) already. 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue-template-for-review-findings.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue Template for Review Findings 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # What? 11 | 12 | ... 13 | 14 | # How? 15 | 16 | ... 17 | 18 | This issue relates to finding `XX#??`. 19 | 20 | 21 | - [ ] I have signed the required Developer Certificate of Origin ([DCO](https://developercertificate.org)) already. -------------------------------------------------------------------------------- /.github/workflows/check-changed-files.yml: -------------------------------------------------------------------------------- 1 | name: Check-changed-files 2 | 3 | on: 4 | pull_request: 5 | types: [opened, synchronize, reopened] 6 | 7 | permissions: 8 | actions: read 9 | 10 | jobs: 11 | qodana: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Fetch Sources 15 | uses: actions/checkout@v4 16 | with: 17 | fetch-depth: ${{ github.event.pull_request.commits }} 18 | 19 | - name: Get two more commits so Qodana we can identify the changes 20 | if: github.event_name == 'pull_request' 21 | run: git fetch --deepen=2 22 | 23 | - name: Run Qodana inspection 24 | uses: JetBrains/qodana-action@v2024.3.4 25 | with: 26 | upload-result: true 27 | args: > 28 | --baseline,doc/qodana-baseline.sarif.json, 29 | --config,.qodana/qodana.yaml 30 | 31 | # This step uploads the SARIF file to GitHub so that the code scanning feature can use it. 32 | # https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github#example-workflow-that-runs-the-eslint-analysis-tool 33 | - name: Upload SARIF report to GitHub 34 | uses: github/codeql-action/upload-sarif@v3 35 | with: 36 | sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json 37 | -------------------------------------------------------------------------------- /.qodana/asciidoc-inspection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /.qodana/qodana.yaml: -------------------------------------------------------------------------------- 1 | version: 1.0 2 | profile: 3 | path: .qodana/asciidoc-inspection.xml 4 | linter: jetbrains/qodana-jvm-community:2024.3 5 | plugins: 6 | - id: org.asciidoctor.intellij.asciidoc 7 | 8 | include: 9 | - name: HttpUrlsUsage 10 | - name: GrazieInspection 11 | 12 | exclude: 13 | - name: All 14 | paths: 15 | - .github 16 | - .qodana 17 | - CONTRIBUTING.md 18 | - LICENSE.txt 19 | - README.md 20 | - AasxFileServerServiceSpecification 21 | - AssetAdministrationShellRegistryServiceSpecification 22 | - AssetAdministrationShellRepositoryServiceSpecification 23 | - AssetAdministrationShellServiceSpecification 24 | - ConceptDescriptionServiceSpecification 25 | - DINSPEC16593-Schemas 26 | - DiscoveryServiceSpecification 27 | - Entire-API-Collection 28 | - Part1-MetaModel-Schemas 29 | - Part2-API-Schemas 30 | - SubmodelRegistryServiceSpecification 31 | - SubmodelRepositoryServiceSpecification 32 | - SubmodelServiceSpecification -------------------------------------------------------------------------------- /AssetAdministrationShellRegistryServiceSpecification/V3.1_SSP-002.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Registry Service Specification 4 | description: >- 5 | The Read Profile of the Asset Administration Shell Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-002 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRegistryServiceSpecification/SSP-002 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | paths: 20 | /shell-descriptors: 21 | get: 22 | tags: 23 | - Asset Administration Shell Registry API 24 | summary: Returns all Asset Administration Shell Descriptors 25 | operationId: GetAllAssetAdministrationShellDescriptors 26 | x-semanticIds: 27 | - https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptors/3/0 28 | - https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptorsByAssetType/3/0 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetKind' 33 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetType' 34 | responses: 35 | '200': 36 | description: Requested Asset Administration Shell Descriptors 37 | content: 38 | application/json: 39 | schema: 40 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/GetAssetAdministrationShellDescriptorsResult' 41 | '400': 42 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 43 | '403': 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 45 | '500': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 47 | default: 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 49 | /shell-descriptors/{aasIdentifier}: 50 | get: 51 | tags: 52 | - Asset Administration Shell Registry API 53 | summary: Returns a specific Asset Administration Shell Descriptor 54 | operationId: GetAssetAdministrationShellDescriptorById 55 | x-semanticIds: 56 | - https://admin-shell.io/aas/API/GetAssetAdministrationShellDescriptorById/3/0 57 | parameters: 58 | - name: aasIdentifier 59 | in: path 60 | description: The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded) 61 | required: true 62 | style: simple 63 | explode: false 64 | schema: 65 | type: string 66 | responses: 67 | '200': 68 | description: Requested Asset Administration Shell Descriptor 69 | content: 70 | application/json: 71 | schema: 72 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetAdministrationShellDescriptor' 73 | '400': 74 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 75 | '403': 76 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 77 | '404': 78 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 79 | '500': 80 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 81 | default: 82 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 83 | /shell-descriptors/{aasIdentifier}/submodel-descriptors: 84 | parameters: 85 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetAdministrationShellIdentifier' 86 | get: 87 | tags: 88 | - Asset Administration Shell Registry API 89 | summary: Returns all Submodel Descriptors 90 | operationId: GetAllSubmodelDescriptorsThroughSuperpath 91 | x-semanticIds: 92 | - https://admin-shell.io/aas/API/GetAllSubmodelDescriptors/3/0 93 | parameters: 94 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 95 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 96 | responses: 97 | '200': 98 | description: Requested Submodel Descriptors 99 | content: 100 | application/json: 101 | schema: 102 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/GetSubmodelDescriptorsResult' 103 | '400': 104 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 105 | '403': 106 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 107 | '404': 108 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 109 | '500': 110 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 111 | default: 112 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 113 | /shell-descriptors/{aasIdentifier}/submodel-descriptors/{submodelIdentifier}: 114 | parameters: 115 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetAdministrationShellIdentifier' 116 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/SubmodelIdentifier' 117 | get: 118 | tags: 119 | - Asset Administration Shell Registry API 120 | summary: Returns a specific Submodel Descriptor 121 | operationId: GetSubmodelDescriptorByIdThroughSuperpath 122 | x-semanticIds: 123 | - https://admin-shell.io/aas/API/GetSubmodelDescriptorById/3/0 124 | responses: 125 | '200': 126 | description: Requested Submodel Descriptor 127 | content: 128 | application/json: 129 | schema: 130 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 131 | '400': 132 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 133 | '403': 134 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 135 | '404': 136 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 137 | '500': 138 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 139 | default: 140 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 141 | 142 | /description: 143 | get: 144 | tags: 145 | - Description API 146 | summary: Returns the self-describing information of a network resource (ServiceDescription) 147 | operationId: GetSelfDescription 148 | x-semanticIds: 149 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 150 | responses: 151 | '200': 152 | description: Requested Description 153 | content: 154 | application/json: 155 | schema: 156 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 157 | '403': 158 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 159 | default: 160 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 161 | -------------------------------------------------------------------------------- /AssetAdministrationShellRegistryServiceSpecification/V3.1_SSP-003.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.1.0 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Bulk Asset Administration Shell Registry Service Specification 4 | description: >- 5 | The Bulk Profile of the Asset Administration Shell Registry Service 6 | Specification as part of the [Specification of the Asset Administration 7 | Shell: Part 2](https://industrialdigitaltwin.org/content-hub/aasspecifications). 8 | 9 | The server processes all requests asynchronously, ensuring atomic 10 | operations. This means that requested manipulations will either fully 11 | succeed or be completely rolled back if any error occurs during the 12 | process. 13 | 14 | Copyright: Industrial Digital Twin Association (IDTA) 2025 15 | contact: 16 | name: Industrial Digital Twin Association (IDTA) 17 | email: info@idtwin.org 18 | license: 19 | name: CC BY 4.0 20 | url: https://creativecommons.org/licenses/by/4.0/ 21 | version: V3.1.0_SSP-003 22 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRegistryServiceSpecification/SSP-003 23 | servers: 24 | - url: 'https://admin-shell.io/api/v3/' 25 | - url: 'https://example.com/' 26 | 27 | paths: 28 | /bulk/shell-descriptors: 29 | post: 30 | tags: 31 | - Async Bulk Asset Administration Shell Registry API 32 | summary: >- 33 | Creates multiple new Asset Administration Shell Descriptors, i.e. 34 | registers multiple Asset Administration Shells 35 | operationId: CreateBulkAssetAdministrationShellDescriptors 36 | x-semanticIds: 37 | - https://admin-shell.io/aas/API/CreateBulkAssetAdministrationShellDescriptors/3/1 38 | requestBody: 39 | description: List of Asset Administration Shell Descriptor objects 40 | content: 41 | application/json: 42 | schema: 43 | type: array 44 | minItems: 1 45 | items: 46 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetAdministrationShellDescriptor" 47 | required: true 48 | responses: 49 | '202': 50 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 51 | '400': 52 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 53 | '401': 54 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 55 | '403': 56 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 57 | '500': 58 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 59 | put: 60 | tags: 61 | - Async Bulk Asset Administration Shell Registry API 62 | summary: Creates or updates multiple existing Asset Administration Shell Descriptors 63 | operationId: PutBulkAssetAdministrationShellDescriptorsById 64 | x-semanticIds: 65 | - https://admin-shell.io/aas/API/PutBulkAssetAdministrationShellDescriptorsById/3/1 66 | requestBody: 67 | description: List of Asset Administration Shell Descriptor objects 68 | content: 69 | application/json: 70 | schema: 71 | type: array 72 | minItems: 1 73 | items: 74 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetAdministrationShellDescriptor" 75 | required: true 76 | responses: 77 | '202': 78 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 79 | '400': 80 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 81 | '401': 82 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 83 | '403': 84 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 85 | '500': 86 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 87 | delete: 88 | tags: 89 | - Async Bulk Asset Administration Shell Registry API 90 | summary: >- 91 | Deletes multiple Asset Administration Shell Descriptors, i.e. 92 | de-registers multiple Asset Administration Shells 93 | operationId: DeleteBulkAssetAdministrationShellDescriptorsById 94 | x-semanticIds: 95 | - https://admin-shell.io/aas/API/DeleteBulkAssetAdministrationShellDescriptorsById/3/1 96 | requestBody: 97 | description: List of Asset Administration Shell Identifiers 98 | content: 99 | application/json: 100 | schema: 101 | type: array 102 | minItems: 1 103 | items: 104 | type: string 105 | responses: 106 | '202': 107 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 108 | '400': 109 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 110 | '401': 111 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 112 | '404': 113 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found" 114 | '500': 115 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 116 | /bulk/status/{handleId}: 117 | get: 118 | tags: 119 | - Async Bulk Status API 120 | summary: Returns the status of an asynchronously invoked bulk operation 121 | operationId: GetAsyncBulkStatus 122 | x-semanticIds: 123 | - https://admin-shell.io/aas/API/GetAsyncBulkStatus/3/1 124 | parameters: 125 | - in: path 126 | name: handleId 127 | schema: 128 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/HandleId" 129 | required: true 130 | responses: 131 | '200': 132 | description: Bulk operation result object containing information that the 133 | 'executionState' is still 'Running' 134 | headers: 135 | Retry-After: 136 | schema: 137 | type: integer 138 | required: false 139 | description: The number of seconds to wait before retrying the request. 140 | content: 141 | application/json: 142 | schema: 143 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/BaseOperationResult" 144 | '302': 145 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/found" 146 | '401': 147 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 148 | '403': 149 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 150 | '404': 151 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found" 152 | '500': 153 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 154 | /bulk/result/{handleId}: 155 | get: 156 | tags: 157 | - Async Bulk Result API 158 | summary: Returns the result object of an asynchronously invoked bulk operation 159 | operationId: GetBulkAsyncResult 160 | x-semanticIds: 161 | - https://admin-shell.io/aas/API/GetBulkAsyncResult/3/1 162 | parameters: 163 | - in: path 164 | name: handleId 165 | schema: 166 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/HandleId" 167 | required: true 168 | responses: 169 | '204': 170 | description: The bulk request itself was correct and all elements have been 171 | processed. The server may remove the result resource after it was 172 | requested once (by any client) or after a certain time period. 173 | '400': 174 | description: There was an error in the processing of the request. Either the bulk 175 | request itself was not correct, or at least of it's part requests. 176 | The whole transaction has been rolled back. 177 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 178 | '401': 179 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 180 | '403': 181 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 182 | '404': 183 | description: The handleId is not known to the server. This means either it never 184 | came into existence or it was successfully completed a considerable 185 | time in the past. 186 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found" 187 | '500': 188 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 189 | /description: 190 | get: 191 | tags: 192 | - Description API 193 | summary: >- 194 | Returns the self-describing information of a network resource 195 | (ServiceDescription) 196 | operationId: GetSelfDescription 197 | x-semanticIds: 198 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 199 | responses: 200 | '200': 201 | description: Requested Description 202 | content: 203 | application/json: 204 | schema: 205 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription" 206 | '403': 207 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 208 | default: 209 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default" 210 | -------------------------------------------------------------------------------- /AssetAdministrationShellRegistryServiceSpecification/V3.1_SSP-004.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Asset Administration Shell Registry Service Specification 4 | description: >- 5 | The Query Profile of the Asset Administration Shell Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-004 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRegistryServiceSpecification/SSP-004 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /query/shell-descriptors: 22 | post: 23 | tags: 24 | - Asset Administration Shell Registry API 25 | summary: Returns all Asset Administration Shell Descriptors that confirm to the input query 26 | operationId: QueryAssetAdministrationShellDescriptors 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/QueryAssetAdministrationShellDescriptors/3/1 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | requestBody: 33 | content: 34 | application/json: 35 | schema: 36 | # Note: It is a known problem that SwaggerHub cannot render the oneOf statement in the Query definition. 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Query' 38 | responses: 39 | '200': 40 | description: Requested Asset Administration Shell Descriptors 41 | content: 42 | application/json: 43 | schema: 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/QueryResultAssetAdministrationShellDescriptor' 45 | '400': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 47 | '401': 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 49 | '403': 50 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 51 | '500': 52 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 53 | default: 54 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 55 | 56 | 57 | /description: 58 | get: 59 | tags: 60 | - Description API 61 | summary: Returns the self-describing information of a network resource (ServiceDescription) 62 | operationId: GetSelfDescription 63 | x-semanticIds: 64 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 65 | responses: 66 | '200': 67 | description: Requested Description 68 | content: 69 | application/json: 70 | schema: 71 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 72 | '401': 73 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 74 | '403': 75 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' -------------------------------------------------------------------------------- /AssetAdministrationShellRegistryServiceSpecification/V3.1_SSP-005.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Asset Administration Shell Registry Service Specification 4 | description: >- 5 | The Minimal Read Profile of the Asset Administration Shell Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-005 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRegistryServiceSpecification/SSP-005 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | paths: 20 | /shell-descriptors: 21 | get: 22 | tags: 23 | - Asset Administration Shell Registry API 24 | summary: Returns all Asset Administration Shell Descriptors 25 | operationId: GetAllAssetAdministrationShellDescriptors 26 | x-semanticIds: 27 | - https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptors/3/1 28 | - https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptorsByAssetType/3/0 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetKind' 33 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetType' 34 | responses: 35 | '200': 36 | description: Requested Asset Administration Shell Descriptors 37 | content: 38 | application/json: 39 | schema: 40 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/GetAssetAdministrationShellDescriptorsResult' 41 | '400': 42 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 43 | '403': 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 45 | '500': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 47 | default: 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 49 | /shell-descriptors/{aasIdentifier}: 50 | get: 51 | tags: 52 | - Asset Administration Shell Registry API 53 | summary: Returns a specific Asset Administration Shell Descriptor 54 | operationId: GetAssetAdministrationShellDescriptorById 55 | x-semanticIds: 56 | - https://admin-shell.io/aas/API/GetAssetAdministrationShellDescriptorById/3/1 57 | parameters: 58 | - name: aasIdentifier 59 | in: path 60 | description: The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded) 61 | required: true 62 | style: simple 63 | explode: false 64 | schema: 65 | type: string 66 | responses: 67 | '200': 68 | description: Requested Asset Administration Shell Descriptor 69 | content: 70 | application/json: 71 | schema: 72 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetAdministrationShellDescriptor' 73 | '400': 74 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 75 | '403': 76 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 77 | '404': 78 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 79 | '500': 80 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 81 | default: 82 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 83 | 84 | /description: 85 | get: 86 | tags: 87 | - Description API 88 | summary: Returns the self-describing information of a network resource (ServiceDescription) 89 | operationId: GetSelfDescription 90 | x-semanticIds: 91 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 92 | responses: 93 | '200': 94 | description: Requested Description 95 | content: 96 | application/json: 97 | schema: 98 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 99 | '403': 100 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 101 | default: 102 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 103 | -------------------------------------------------------------------------------- /AssetAdministrationShellRepositoryServiceSpecification/V3.1_SSP-003.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Asset Administration Shell Repository Service Specification 4 | description: >- 5 | The Query Profile of the Asset Administration Shell Repository Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-003 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRepositoryServiceSpecification/SSP-003 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /query/shells: 22 | post: 23 | tags: 24 | - Asset Administration Shell Repository API 25 | summary: Returns all Asset Administration Shells that confirm to the input query 26 | operationId: QueryAssetAdministrationShells 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/QueryAssetAdministrationShells/3/1 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | requestBody: 33 | content: 34 | application/json: 35 | schema: 36 | # Note: It is a known problem that SwaggerHub cannot render the oneOf statement in the Query definition. 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Query' 38 | responses: 39 | '200': 40 | description: Requested Asset Administration Shells 41 | content: 42 | application/json: 43 | schema: 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/QueryResultAssetAdministrationShell' 45 | '400': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 47 | '401': 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 49 | '403': 50 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 51 | '500': 52 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 53 | default: 54 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 55 | 56 | 57 | /description: 58 | get: 59 | tags: 60 | - Description API 61 | summary: Returns the self-describing information of a network resource (ServiceDescription) 62 | operationId: GetSelfDescription 63 | x-semanticIds: 64 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 65 | responses: 66 | '200': 67 | description: Requested Description 68 | content: 69 | application/json: 70 | schema: 71 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 72 | '401': 73 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 74 | '403': 75 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | The [Specification of the Asset Administration Shell - Part 2] is an official publication of the [IDTA] work stream "Specification of the Asset Administration Shell" within the Work Group "Open Technology". 4 | The API definitions in this repository must be particularly compliant with this specification. 5 | To ensure a faster adoption and improvement of AAS API, we invite the community to contribute with reviews, reporting issues, and fixing them. 6 | Do you want to contribute? Great! But before you do it, please follow the defined procedure for the contribution in this repository. 7 | 8 | [Specification of the Asset Administration Shell - Part 2]: https://industrialdigitaltwin.org/en/content-hub/ 9 | 10 | 11 | ## Prerequisites 12 | 13 | **Please note** that by submitting an Issue or a Pull Request (PR), you aggree that the created content falls under a Developer Certificate of Origin ([DCO]), by which you declare that you have the legal right to contribute the content under the stated license and that the [IDTA] and the maintainers of this repository are allowed to use your contribution for publications, e.g., [Specification of the Asset Administration Shell - Part 2]. In certain cases, an additional signing of a Contributor License Agreement (CLA) can be required. It is up to the maintainers of this repository to decide whether an individual contribution needs also a signed CLA. In case the contributor does not sign it in an appropriate time span after being notified, the contribution cannot be used further and in particular can not appear in any release. 14 | 15 | [DCO]: https://developercertificate.org 16 | 17 | 18 | ## Raising Issues 19 | 20 | [Github Issues](https://github.com/admin-shell-io/aas-specs-api/issues) are the preferred way to inform the community about bugs, shortcomings, feature requests and so on. 21 | 22 | 23 | **Use a template**. Several issue templates are available to better structure the process. Depending on your issue, submit a review finding, a bug report, or a request for a new feature. Only if none of these fits, [open a new blank issue](https://github.com/admin-shell-io/aas-specs-api/issues/new). Due to legal reasons, click also the checkmark stating that you have already signed the [DCO] (see [Section Prerequisites](#prerequisites)). 24 | A maintainer will then assign additional labels, milestones, and individual other contributers if possible. 25 | 26 | 27 | ## Before the Pull Requests 28 | 29 | If you are contributing for the first time, please inform yourself about the [LICENSE](./LICENSE.txt) used for this repository. Also, you will be asked to sign a [DCO] if not done already (see [Section Prerequisites](#prerequisites)). Different to issues, Pull Requests are checked automatically through the [CLA Assistant](https://cla-assistant.io). 30 | 31 | 32 | **Create Feature branches**. 33 | We develop using the feature branches, see [this section of the Git book]. 34 | 35 | [this section of the Git book]: https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows. 36 | 37 | If you are a member of the IDTA workstream team, [create a feature branch] directly within the repository. 38 | 39 | [create a feature branch]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository 40 | 41 | Otherwise, if you are a non-member contributor, fork the repository and create the feature branch in your forked repository. See [this Github tutorial] for more guidance. 42 | 43 | [this Github tutorial]: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork 44 | 45 | 46 | 47 | **Branch Prefix**. 48 | Please prefix the branch with your Github user name (*e.g.,* `my-user/Add-some-feature`). 49 | 50 | ## Recommendation for Commit Messages 51 | 52 | The commit messages follow the guidelines from https://chris.beams.io/posts/git-commit: 53 | * Separate subject from body with a blank line 54 | * Limit the subject line to 50 characters 55 | * Capitalize the subject line 56 | * Do not end the subject line with a period 57 | * Use the imperative mood in the subject line 58 | * Wrap the body at 72 characters 59 | * Use the body to explain *what* and *why* (instead of *how*) 60 | 61 | ## Create Pull Request 62 | After all changes have been committed to your feature branch, a [pull request] (PR) has to be created. 63 | Every PR must be linked to an issue for tracking. 64 | See [this Github tutorial] for more guidance. 65 | 66 | [pull request]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request 67 | 68 | [link PR to issue]: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue 69 | 70 | The discussion on the issue's content happends in the issue and not the PR. The discussion in the PR should focus on the reviewer's remarks. 71 | 72 | ## Pre-Merge Checks 73 | **Continuous Integration.** 74 | Github will run the continuous integration (CI) automatically through Github actions to verify that the submitted changes are valid. 75 | Every pull request automatically runs the continuous integration with every update. 76 | 77 | The continuous integration must be **successfully completed** with `All checks have passed` before proceeding with the approval process. 78 | 79 | 80 | ### Check Commit and Pull Request Messages 81 | In accordance with Section "Recommendation for Commit Messages" the continuous integration checks the previously defined conditions. 82 | For the present development, however, this is not enforced. 83 | 84 | ## Approval Process 85 | All changes must be **reviewed** and **approved** by members of the IDTA workstream "Specification of the Asset Administration Shell". 86 | 87 | Minor changes (simple failures, typos, *etc.*) and additional content (more examples, etc.) can be accepted straight away after a brief review by at least one responsible reviewers. 88 | 89 | Major changes must first be presented and approved in the [IDTA] workstream "AAS in Detail". If the creator of a PR is not a member of the workstream, a dedicated assignee will present it. 90 | 91 | [Platform Industrie 4.0]: http://www.plattform-i40.de 92 | [IDTA]: https://industrialdigitaltwin.org/ 93 | 94 | 95 | ## Merge into `main` Branch 96 | 97 | After the approval, the pull request can be merged into the repository. This is done by one of the maintainers. 98 | Bugfixes might be collected together first and then be merged through one indivdual commit. Similarly, new features are first collected in defined minor/major release branches, and merged into the `main` at the time when the corresponding version of the specification is published. 99 | 100 | *Note:* Changes into external resources, e.g. Swaggerhub, are done by the members of the IDTA workstream immediatly after the indivdual PRs have been merged. The leading source is always the content of this repository. 101 | 102 | 103 | ## Post-Merge Cleanup 104 | **Congratulation.** 105 | You successfully contributed to the aas-spec-api repository. 106 | 107 | If you are a member of the workstream team, please delete the feature branch you directly created within the aas-specs-api repository. 108 | 109 | Otherwise, if you are not part of the team and you forked the repository, feel free to delete your fork. 110 | -------------------------------------------------------------------------------- /ConceptDescriptionRepositoryServiceSpecification/V3.1_SSP-002.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Concept Description Repository Service Specification 4 | description: >- 5 | The Query Profile of the Concept Description Repository Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-002 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/ConceptDescriptionRepositoryServiceSpecification/SSP-002 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /query/concept-descriptions: 22 | post: 23 | tags: 24 | - Concept Description Repository API 25 | summary: Returns all Concept Descriptions that confirm to the input query 26 | operationId: QueryConceptDescriptions 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/QueryConceptDescriptions/3/1 29 | - https://admin-shell.io/aas/API/QueryConceptDescriptionIds/3/1 30 | parameters: 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 32 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 33 | requestBody: 34 | content: 35 | application/json: 36 | schema: 37 | # Note: It is a known problem that SwaggerHub cannot render the oneOf statement in the Query definition. 38 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Query' 39 | responses: 40 | '200': 41 | description: Requested Concept Descriptions 42 | content: 43 | application/json: 44 | schema: 45 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/QueryResultConceptDescription' 46 | '400': 47 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 48 | '401': 49 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 50 | '403': 51 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 52 | '500': 53 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 54 | default: 55 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 56 | 57 | 58 | /description: 59 | get: 60 | tags: 61 | - Description API 62 | summary: Returns the self-describing information of a network resource (ServiceDescription) 63 | operationId: GetSelfDescription 64 | x-semanticIds: 65 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 66 | responses: 67 | '200': 68 | description: Requested Description 69 | content: 70 | application/json: 71 | schema: 72 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 73 | '401': 74 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 75 | '403': 76 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' -------------------------------------------------------------------------------- /DINSPEC16593-Schemas/openapi.yaml: -------------------------------------------------------------------------------- 1 | # OpenAPI version identifier - required for OpenAPI 3.0 domains 2 | openapi: 3.0.3 3 | info: 4 | title: DotAAS Part 2 | DIN SPEC 16593 | Schemas 5 | description: The depricated schemas implementing DIN SPEC 16593. This file is out of date. The publication of the DINSPEC16593 schemas never happened officially. The mirror standard in Part II DINSPEC16593 schemas is therefore obsolete. The specification of the ProtocolInformation is defined in Part2 API schemas. 6 | contact: 7 | name: Michael Hoffmeister, Torben Miny, Andreas Orzelski, Manuel Sauer, Constantin Ziesche, Sebastian Bader, Marko Ristin, Nico Braunisch 8 | version: V3.0.1 9 | termsOfService: https://github.com/admin-shell-io/aas-specs-metamodel 10 | components: 11 | schemas: 12 | Endpoint: 13 | properties: 14 | interface: 15 | type: string 16 | protocolInformation: 17 | $ref: "#/components/schemas/ProtocolInformation" 18 | required: 19 | - protocolInformation 20 | - interface 21 | type: object 22 | ProtocolInformation: 23 | properties: 24 | endpointAddress: 25 | type: string 26 | endpointProtocol: 27 | type: string 28 | endpointProtocolVersion: 29 | type: string 30 | subprotocol: 31 | type: string 32 | subprotocolBody: 33 | type: string 34 | subprotocolBodyEncoding: 35 | type: string 36 | securityAttributes: 37 | type: array 38 | items: 39 | $ref: "#/components/schemas/SecurityAttribute" 40 | required: 41 | - endpointAddress 42 | type: object 43 | SecurityAttribute: 44 | type: object 45 | properties: 46 | type: 47 | type: string 48 | key: 49 | type: string 50 | value: 51 | type: string 52 | -------------------------------------------------------------------------------- /DiscoveryServiceSpecification/V3.1_SSP-001.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Discovery Service Specification (V3.1 Draft, not released) 4 | description: >- 5 | The entire Full Profile of the Discovery Service Specification as part of the [Specification of the Asset Administration Shell - Part 2: API](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-001 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/DiscoveryServiceSpecification/SSP-001 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /lookup/shells: 22 | get: 23 | deprecated: true 24 | tags: 25 | - Asset Administration Shell Basic Discovery API 26 | summary: Returns a list of Asset Administration Shell IDs linked to specific asset identifiers or the global asset ID 27 | operationId: GetAllAssetAdministrationShellIdsByAssetLink 28 | x-semanticIds: 29 | - https://admin-shell.io/aas/API/GetAllAssetAdministrationShellIdsByAssetLink/3/0 30 | parameters: 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetIds' 32 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 33 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 34 | responses: 35 | '200': 36 | description: Requested Asset Administration Shell IDs 37 | content: 38 | application/json: 39 | schema: 40 | allOf: 41 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/PagedResult' 42 | - type: object 43 | properties: 44 | result: 45 | type: array 46 | items: 47 | type: string 48 | default: 49 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 50 | /lookup/shellsByAssetLink: 51 | post: 52 | tags: 53 | - Asset Administration Shell Basic Discovery API 54 | summary: Returns a list of Asset Administration Shell IDs linked to specific asset identifiers or the global asset ID 55 | operationId: SearchAllAssetAdministrationShellIdsByAssetLink 56 | x-semanticIds: 57 | - https://admin-shell.io/aas/API/SearchAllAssetAdministrationShellIdsByAssetLink/3/1 58 | parameters: 59 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 60 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 61 | requestBody: 62 | description: A list of specific asset identifiers. Search for the global asset ID is supported by setting "name" to "globalAssetId" (see Constraint AASd-116). 63 | content: 64 | application/json: 65 | schema: 66 | type: array 67 | items: 68 | '$ref': 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetLink' 69 | responses: 70 | '200': 71 | description: Requested Asset Administration Shell IDs 72 | content: 73 | application/json: 74 | schema: 75 | allOf: 76 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/PagedResult' 77 | - type: object 78 | properties: 79 | result: 80 | type: array 81 | items: 82 | type: string 83 | '400': 84 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 85 | default: 86 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 87 | 88 | /lookup/shells/{aasIdentifier}: 89 | parameters: 90 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetAdministrationShellIdentifier' 91 | get: 92 | tags: 93 | - Asset Administration Shell Basic Discovery API 94 | summary: Returns a list of specific asset identifiers based on an Asset Administration Shell ID to edit discoverable content. The global asset ID is returned as specific asset ID with "name" equal to "globalAssetId" (see Constraint AASd-116). 95 | operationId: GetAllAssetLinksById 96 | x-semanticIds: 97 | - https://admin-shell.io/aas/API/GetAllAssetLinksById/3/0 98 | responses: 99 | '200': 100 | description: Requested specific Asset identifiers (including the global asset ID represented by a specific asset ID) 101 | content: 102 | application/json: 103 | schema: 104 | type: array 105 | items: 106 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.1.0#/components/schemas/SpecificAssetId' 107 | '404': 108 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 109 | default: 110 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 111 | post: 112 | tags: 113 | - Asset Administration Shell Basic Discovery API 114 | summary: Creates specific asset identifiers linked to an Asset Administration Shell to edit discoverable content 115 | operationId: PostAllAssetLinksById 116 | x-semanticIds: 117 | - https://admin-shell.io/aas/API/PostAllAssetLinksById/3/0 118 | requestBody: 119 | description: A set of specific asset identifiers 120 | content: 121 | application/json: 122 | schema: 123 | type: array 124 | items: 125 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.1.0#/components/schemas/SpecificAssetId' 126 | required: true 127 | responses: 128 | '201': 129 | description: Specific asset identifiers created successfully 130 | content: 131 | application/json: 132 | schema: 133 | type: array 134 | items: 135 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.1.0#/components/schemas/SpecificAssetId' 136 | '400': 137 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 138 | '404': 139 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 140 | '409': 141 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/conflict' 142 | default: 143 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 144 | delete: 145 | tags: 146 | - Asset Administration Shell Basic Discovery API 147 | summary: "Deletes specified specific asset identifiers linked to an Asset Administration Shell: discovery via these specific asset IDs shall not be supported any longer" 148 | operationId: DeleteAllAssetLinksById 149 | x-semanticIds: 150 | - https://admin-shell.io/aas/API/DeleteAllAssetLinksById/3/0 151 | responses: 152 | '204': 153 | description: Specific asset identifiers deleted successfully 154 | '404': 155 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 156 | default: 157 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 158 | /description: 159 | get: 160 | tags: 161 | - Description API 162 | summary: Returns the self-describing information of a network resource (ServiceDescription) 163 | operationId: GetSelfDescription 164 | x-semanticIds: 165 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 166 | responses: 167 | '200': 168 | description: Requested Description 169 | content: 170 | application/json: 171 | schema: 172 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 173 | default: 174 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' -------------------------------------------------------------------------------- /DiscoveryServiceSpecification/V3.1_SSP-002.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Discovery Service Specification 4 | description: >- 5 | The READ Profile of the Discovery Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-002 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/DiscoveryServiceSpecification/SSP-002 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /lookup/shellsByAssetLink: 22 | post: 23 | tags: 24 | - Asset Administration Shell Basic Discovery API 25 | summary: Returns a list of Asset Administration Shell ids linked to specific Asset identifiers 26 | operationId: SearchAllAssetAdministrationShellIdsByAssetLink 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/SearchAllAssetAdministrationShellIdsByAssetLink/3/1 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | requestBody: 33 | description: A list of specific Asset identifiers 34 | content: 35 | application/json: 36 | schema: 37 | type: array 38 | items: 39 | '$ref': 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/AssetLink' 40 | responses: 41 | '200': 42 | description: Requested Asset Administration Shell ids 43 | content: 44 | application/json: 45 | schema: 46 | allOf: 47 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/PagedResult' 48 | - type: object 49 | properties: 50 | result: 51 | type: array 52 | items: 53 | type: string 54 | '400': 55 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 56 | default: 57 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 58 | 59 | /lookup/shells/{aasIdentifier}: 60 | parameters: 61 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/AssetAdministrationShellIdentifier' 62 | get: 63 | tags: 64 | - Asset Administration Shell Basic Discovery API 65 | summary: Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content 66 | operationId: GetAllAssetLinksById 67 | x-semanticIds: 68 | - https://admin-shell.io/aas/API/GetAllAssetLinksById/3/0 69 | responses: 70 | '200': 71 | description: Requested specific Asset identifiers 72 | content: 73 | application/json: 74 | schema: 75 | type: array 76 | items: 77 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.1.0#/components/schemas/SpecificAssetId' 78 | '404': 79 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 80 | default: 81 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 82 | /description: 83 | get: 84 | tags: 85 | - Description API 86 | summary: Returns the self-describing information of a network resource (ServiceDescription) 87 | operationId: GetSelfDescription 88 | x-semanticIds: 89 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 90 | responses: 91 | '200': 92 | description: Requested Description 93 | content: 94 | application/json: 95 | schema: 96 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 97 | default: 98 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 99 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IDTA-01002 - APIs of the Asset Administration Shell 2 | 3 | [![Creative Commons License]( 4 | https://licensebuttons.net/l/by/4.0/88x31.png 5 | )]( 6 | https://creativecommons.org/licenses/by/4.0/ 7 | ) 8 | 9 | This repository contains specifications of the APIs of the Asset Administration Shell (AAS), including the normative OpenAPI files of the AAS HTTP/REST API. 10 | 11 | ## Industrial Digital Twin Association (IDTA) 12 | 13 | Governance of the specification is done in the working group Open Technology of the [IDTA](https://industrialdigitaltwin.org/en/) 14 | 15 | The specification number is: **IDTA-01002** 16 | 17 | ## Content 18 | This repository provides the OpenAPI files published in the SwaggerHub organization [Plattform_i40](https://app.swaggerhub.com/search?owner=Plattform_i40). 19 | All published SwaggerHub APIs are synchronized all the time with the respective folders in this repository using the [GitHub Integration](https://support.smartbear.com/swaggerhub/docs/integrations/github-sync.html) feature. In particular, the following APIs are contained: 20 | 21 | |API SPEC|GitHub|SwaggerHub| 22 | |-----------------------------------------------------------------------|-----------------------------------------------------------------|----------------------------------------------------| 23 | |Entire-API-Collection |[Link](./Entire-API-Collection/V3.1.yaml)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/Entire-API-Collection)|https://app.swaggerhub.com/apis/Plattform_i40/Entire-API-Collection 24 | |Asset Administration Shell Registry Service Specification|[Link](./AssetAdministrationShellRegistryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/AssetAdministrationShellRegistryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/RegistryServiceSpecification/V3.1.0_SSP-001 25 | |Asset Administration Shell Repository Service Specification|[Link](./AssetAdministrationShellRepositoryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/AssetAdministrationShellRepositoryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/AssetAdministrationShellRepositoryServiceSpecification/V3.1.0_SSP-001 26 | |Asset Administration Shell Service Specification|[Link](./AssetAdministrationShellServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/AssetAdministrationShellServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/AssetAdministrationShellServiceSpecification/V3.1.0_SSP-001 27 | |Submodel Registry Service Specification |[Link](./SubmodelRegistryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/SubmodelRegistryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/SubmodelRegistryServiceSpecification/V3.1.0_SSP-001 28 | |Submodel Repository Service Specification|[Link](./SubmodelRepositoryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/SubmodelRepositoryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/SubmodelRepositoryServiceSpecification/V3.1.0_SSP-001 29 | |Submodel Service Specification|[Link](./SubmodelServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/SubmodelServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/SubmodelServiceSpecification/V3.1.0_SSP-001 30 | |Discovery Service Specification |[Link](./DiscoveryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/DiscoveryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/DiscoveryServiceSpecification/V3.1.0_SSP-001 31 | |Concept Description Repository Service Specification|[Link](./ConceptDescriptionRepositoryServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/ConceptDescriptionRepositoryServiceSpecification)|https://app.swaggerhub.com/apis/Plattform_i40/ConceptDescriptionRepositoryServiceSpecification/V3.1.0_SSP-001 32 | |Aasx-File-Server Service Specification |[Link](./AasxFileServerServiceSpecification)|[Link](https://app.swaggerhub.com/apis/Plattform_i40/AasxFileServerServiceSpecification) 33 | 34 | The following *domains* are synchronized manually as domain synchronization is not yet available in SwaggerHub: 35 | |API SPEC|GitHub|SwaggerHub| 36 | |------------------------------------------------------------------------|-----------------------------------------------------------------|----------------------------------------------------| 37 | | Part1-MetaModel-Schemas Domain |[Link](./Part1-MetaModel-Schemas/openapi.yaml)|[Link](https://app.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas)| 38 | | Part2-API-Schemas Domain |[Link](./Part2-API-Schemas/openapi.yaml)|[Link](https://app.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas)| 39 | | DINSPEC16593-Schemas Domain (Deprecated) |[Link](./DINSPEC16593-Schemas/openapi.yaml)|[Link](https://app.swaggerhub.com/domains/Plattform_i40/DINSPEC16593-Schemas)| 40 | 41 | The sources of the specification, both website and PDF document, are maintained in the [documentation](./documentation/) folder. The different versions are identified through the respective release tags, while the latest state on the `main` branch always represents a `SNAPSHOT` version. 42 | 43 | 44 | ## API Versions in GitHub Branches 45 | 46 | The `main` branch contains the latest released version of all APIs and Domains. Current and previously released states are tagged with the corresponding release version in this repository, and marked with the `Published` tag in SwaggerHub. 47 | Working versions may be marked as `private` in SwaggerHub and therefore may not be visible to the public audience yet. In this repository, working versions appear as branches named after the target release version. 48 | **Note:** In order to synchronize with the same GitHub branch, all versions should follow the exact same pattern. 49 | 50 | ### Releases 51 | 52 | The following versioning scheme is applied for release tags: 'V\.\.\'. 53 | Major versions indicate breaking changes while minor updates are backward compatible. 54 | The patch position is increased whenever bugfixes need to be applied. 55 | The following release contains the latest version of the AAS schemas (see also the [releases](https://github.com/admin-shell-io/aas-specs-api/releases) section of this repository): 56 | 57 | * [3.1.0](https://github.com/admin-shell-io/aas-specs-api/releases/tag/v3.1.0) is the latest release for the `V3.1.0` version of the AAS APIs, containing the normative schemas for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - **Version 3.1.0**". *Use this release if you want to work with the latest specified AAS version.* 58 | 59 | Previous releases: 60 | 61 | * [3.0.4](https://github.com/admin-shell-io/aas-specs-api/releases/tag/v3.0.4) is the latest bugfix release for the `V3.0.4` version of the AAS APIs, containing the normative schemas for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - Version 3.0.4". 62 | 63 | * [3.0.3](https://github.com/admin-shell-io/aas-specs-api/releases/tag/V3.0.3) is the bugfix release for the `V3.0.3` version of the AAS APIs, containing the normative schemas for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - Version 3.0.3". 64 | 65 | * [3.0.2](https://github.com/admin-shell-io/aas-specs-api/releases/tag/V3.0.2) is the bugfix release for the `V3.0.2` version of the AAS APIs, containing the normative schemas for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - Version 3.0.2". 66 | 67 | * [3.0.1](https://github.com/admin-shell-io/aas-specs-api/releases/tag/V3.0.1) is the bugfix release for the `V3.0.1` version of the AAS APIs, containing the normative schemas for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - Version 3.0.1". 68 | 69 | * [3.0](https://github.com/admin-shell-io/aas-specs-api/releases/tag/V3.0) is the first major release for the AAS APIs, containing the normative API descriptions for the published document "Specification of the Asset Administration Shell - Part 2: Application Programming Interfaces - Version 3.0". 70 | 71 | 72 | ## Contributing 73 | 74 | Feature requests, reports about inconsistencies, mistakes *etc.* are highly 75 | welcome! Please [submit a new issue]( 76 | https://github.com/admin-shell-io/aas-specs-api/issues/new/choose 77 | ). 78 | 79 | If you want to contribute, see [CONTRIBUTING.md](CONTRIBUTING.md). 80 | 81 | 82 | 83 | ## SwaggerHub GitHub Synchronization 84 | 85 | SwaggerHub requires a GitHub Access Token with `repo` permissions. It is good practice that the selected token has a defined expiration date. Therefore, at some point in time when the current token expires, the synchronization will fail and a new token needs to be added through the IDTA repository management team. 86 | -------------------------------------------------------------------------------- /SubmodelRegistryServiceSpecification/V3.1_SSP-001.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Submodel Registry Service Specification 4 | description: >- 5 | The Full Profile of the Submodel Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-001 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelRegistryServiceSpecification/SSP-001 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | paths: 20 | /submodel-descriptors: 21 | get: 22 | tags: 23 | - Submodel Registry API 24 | summary: Returns all Submodel Descriptors 25 | operationId: GetAllSubmodelDescriptors 26 | x-semanticIds: 27 | - https://admin-shell.io/aas/API/GetAllSubmodelDescriptors/3/0 28 | parameters: 29 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 31 | responses: 32 | '200': 33 | description: Requested Submodel Descriptors 34 | content: 35 | application/json: 36 | schema: 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/GetSubmodelDescriptorsResult' 38 | '400': 39 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 40 | '403': 41 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 42 | '404': 43 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 44 | '500': 45 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 46 | default: 47 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 48 | post: 49 | tags: 50 | - Submodel Registry API 51 | summary: Creates a new Submodel Descriptor, i.e. registers a submodel 52 | operationId: PostSubmodelDescriptor 53 | x-semanticIds: 54 | - https://admin-shell.io/aas/API/PostSubmodelDescriptor/3/0 55 | requestBody: 56 | description: Submodel Descriptor object 57 | content: 58 | application/json: 59 | schema: 60 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 61 | required: true 62 | responses: 63 | '201': 64 | description: Submodel Descriptor created successfully 65 | headers: 66 | Location: 67 | description: URL of the newly created resource 68 | schema: 69 | type: string 70 | content: 71 | application/json: 72 | schema: 73 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 74 | '400': 75 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 76 | '403': 77 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 78 | '409': 79 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/conflict' 80 | default: 81 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 82 | /submodel-descriptors/{submodelIdentifier}: 83 | parameters: 84 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/SubmodelIdentifier' 85 | get: 86 | tags: 87 | - Submodel Registry API 88 | summary: Returns a specific Submodel Descriptor 89 | operationId: GetSubmodelDescriptorById 90 | x-semanticIds: 91 | - https://admin-shell.io/aas/API/GetSubmodelDescriptorById/3/0 92 | responses: 93 | '200': 94 | description: Requested Submodel Descriptor 95 | content: 96 | application/json: 97 | schema: 98 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 99 | '400': 100 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 101 | '403': 102 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 103 | '404': 104 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 105 | '500': 106 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 107 | default: 108 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 109 | put: 110 | tags: 111 | - Submodel Registry API 112 | summary: Creates or updates an existing Submodel Descriptor 113 | operationId: PutSubmodelDescriptorById 114 | x-semanticIds: 115 | - https://admin-shell.io/aas/API/PutSubmodelDescriptorById/3/0 116 | requestBody: 117 | description: Submodel Descriptor object 118 | content: 119 | application/json: 120 | schema: 121 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 122 | required: true 123 | responses: 124 | '201': 125 | description: Submodel Descriptor created successfully 126 | headers: 127 | Location: 128 | description: URL of the newly created resource 129 | schema: 130 | type: string 131 | content: 132 | application/json: 133 | schema: 134 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 135 | '204': 136 | description: Submodel Descriptor updated successfully 137 | '400': 138 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 139 | '403': 140 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 141 | '500': 142 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 143 | default: 144 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 145 | delete: 146 | tags: 147 | - Submodel Registry API 148 | summary: Deletes a Submodel Descriptor, i.e. de-registers a submodel 149 | operationId: DeleteSubmodelDescriptorById 150 | x-semanticIds: 151 | - https://admin-shell.io/aas/API/DeleteSubmodelDescriptorById/3/0 152 | responses: 153 | '204': 154 | description: Submodel Descriptor deleted successfully 155 | '400': 156 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 157 | '403': 158 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 159 | '404': 160 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 161 | '500': 162 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 163 | /description: 164 | get: 165 | tags: 166 | - Description API 167 | summary: Returns the self-describing information of a network resource (ServiceDescription) 168 | operationId: GetSelfDescription 169 | x-semanticIds: 170 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 171 | responses: 172 | '200': 173 | description: Requested Description 174 | content: 175 | application/json: 176 | schema: 177 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 178 | '403': 179 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 180 | default: 181 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 182 | -------------------------------------------------------------------------------- /SubmodelRegistryServiceSpecification/V3.1_SSP-002.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Submodel Registry Service Specification 4 | description: >- 5 | The Read Profile of the Submodel Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-002 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelRegistryServiceSpecification/SSP-002 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | paths: 20 | /submodel-descriptors: 21 | get: 22 | tags: 23 | - Submodel Registry API 24 | summary: Returns all Submodel Descriptors 25 | operationId: GetAllSubmodelDescriptors 26 | x-semanticIds: 27 | - https://admin-shell.io/aas/API/GetAllSubmodelDescriptors/3/0 28 | parameters: 29 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 31 | responses: 32 | '200': 33 | description: Requested Submodel Descriptors 34 | content: 35 | application/json: 36 | schema: 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/GetSubmodelDescriptorsResult' 38 | '400': 39 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 40 | '403': 41 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 42 | '404': 43 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 44 | '500': 45 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 46 | default: 47 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 48 | /submodel-descriptors/{submodelIdentifier}: 49 | parameters: 50 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/SubmodelIdentifier' 51 | get: 52 | tags: 53 | - Submodel Registry API 54 | summary: Returns a specific Submodel Descriptor 55 | operationId: GetSubmodelDescriptorById 56 | x-semanticIds: 57 | - https://admin-shell.io/aas/API/GetSubmodelDescriptorById/3/0 58 | responses: 59 | '200': 60 | description: Requested Submodel Descriptor 61 | content: 62 | application/json: 63 | schema: 64 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor' 65 | '400': 66 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 67 | '403': 68 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 69 | '404': 70 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 71 | '500': 72 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 73 | default: 74 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 75 | 76 | /description: 77 | get: 78 | tags: 79 | - Description API 80 | summary: Returns the self-describing information of a network resource (ServiceDescription) 81 | operationId: GetSelfDescription 82 | x-semanticIds: 83 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 84 | responses: 85 | '200': 86 | description: Requested Description 87 | content: 88 | application/json: 89 | schema: 90 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 91 | '403': 92 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 93 | default: 94 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 95 | -------------------------------------------------------------------------------- /SubmodelRegistryServiceSpecification/V3.1_SSP-003.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.1.0 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Bulk Submodel Registry Service Specification 4 | description: >- 5 | The Bulk Profile of the Submodel Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/content-hub/aasspecifications). 6 | 7 | The server processes all requests asynchronously, ensuring atomic 8 | operations. This means that requested manipulations will either fully 9 | succeed or be completely rolled back if any error occurs during the process. 10 | 11 | Copyright: Industrial Digital Twin Association (IDTA) 2025 12 | contact: 13 | name: Industrial Digital Twin Association (IDTA) 14 | email: info@idtwin.org 15 | license: 16 | name: CC BY 4.0 17 | url: https://creativecommons.org/licenses/by/4.0/ 18 | version: V3.1.0_SSP-003 19 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelRegistryServiceSpecification/SSP-003 20 | servers: 21 | - url: 'https://admin-shell.io/api/v3/' 22 | - url: 'https://example.com/' 23 | 24 | paths: 25 | /bulk/submodel-descriptors: 26 | post: 27 | tags: 28 | - Async Bulk Submodel Registry API 29 | summary: Creates multiple new Submodel Descriptors 30 | operationId: CreateBulkSubmodelDescriptors 31 | x-semanticIds: 32 | - https://admin-shell.io/aas/API/CreateBulkSubmodelDescriptors/3/1 33 | requestBody: 34 | description: List of Submodel Descriptor objects 35 | content: 36 | application/json: 37 | schema: 38 | type: array 39 | minItems: 1 40 | items: 41 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor" 42 | required: true 43 | responses: 44 | '202': 45 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 46 | '400': 47 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 48 | '401': 49 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 50 | '403': 51 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 52 | '500': 53 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 54 | put: 55 | tags: 56 | - Async Bulk Submodel Registry API 57 | summary: Creates or updates multiple existing Submodel Descriptors 58 | operationId: PutBulkSubmodelDescriptorsById 59 | x-semanticIds: 60 | - https://admin-shell.io/aas/API/PutBulkSubmodelDescriptorsById/3/1 61 | requestBody: 62 | description: List of Submodel Descriptor objects 63 | content: 64 | application/json: 65 | schema: 66 | type: array 67 | minItems: 1 68 | items: 69 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelDescriptor" 70 | required: true 71 | responses: 72 | '202': 73 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 74 | '400': 75 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 76 | '401': 77 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 78 | '403': 79 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 80 | '500': 81 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 82 | delete: 83 | tags: 84 | - Async Bulk Submodel Registry API 85 | summary: Deletes multiple Submodel Descriptors 86 | operationId: DeleteBulkSubmodelDescriptorsById 87 | x-semanticIds: 88 | - https://admin-shell.io/aas/API/DeleteBulkSubmodelDescriptorsById/3/1 89 | requestBody: 90 | description: List of Submodel Identifiers 91 | content: 92 | application/json: 93 | schema: 94 | type: array 95 | minItems: 1 96 | items: 97 | type: string 98 | responses: 99 | '202': 100 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/accepted" 101 | '400': 102 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 103 | '401': 104 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 105 | '403': 106 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 107 | '500': 108 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 109 | /bulk/status/{handleId}: 110 | get: 111 | tags: 112 | - Async Bulk Status API 113 | summary: Returns the status of an asynchronously invoked bulk operation 114 | operationId: GetBulkAsyncStatus 115 | x-semanticIds: 116 | - https://admin-shell.io/aas/API/GetBulkAsyncStatus/3/1 117 | parameters: 118 | - in: path 119 | name: handleId 120 | schema: 121 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/HandleId" 122 | required: true 123 | responses: 124 | '200': 125 | description: Bulk operation result object containing information that the 126 | 'executionState' is still 'Running' 127 | headers: 128 | Retry-After: 129 | schema: 130 | type: integer 131 | required: false 132 | description: The number of seconds to wait before retrying the request. 133 | content: 134 | application/json: 135 | schema: 136 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/BaseOperationResult" 137 | '302': 138 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/found" 139 | '401': 140 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 141 | '403': 142 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 143 | '404': 144 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found" 145 | '500': 146 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 147 | /bulk/result/{handleId}: 148 | get: 149 | tags: 150 | - Async Bulk Result API 151 | summary: Returns the result object of an asynchronously invoked bulk operation 152 | operationId: GetBulkAsyncResult 153 | x-semanticIds: 154 | - https://admin-shell.io/aas/API/GetBulkAsyncResult/3/1 155 | parameters: 156 | - in: path 157 | name: handleId 158 | schema: 159 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/HandleId" 160 | required: true 161 | responses: 162 | '204': 163 | description: The bulk request itself was correct and all elements have been 164 | processed. The server may remove the result resource after it was 165 | requested once (by any client) or after a certain time period. 166 | '400': 167 | description: There was an error in the processing of the request. Either the bulk 168 | request itself was not correct, or at least of it's part requests. 169 | The whole transaction has been rolled back. 170 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request" 171 | '401': 172 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized" 173 | '403': 174 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 175 | '404': 176 | description: The handleId is not known to the server. This means either it never 177 | came into existence or it was successfully completed a considerable 178 | time in the past. 179 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found" 180 | '500': 181 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error" 182 | /description: 183 | get: 184 | tags: 185 | - Description API 186 | summary: Returns the self-describing information of a network resource 187 | (ServiceDescription) 188 | operationId: GetSelfDescription 189 | x-semanticIds: 190 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 191 | responses: 192 | '200': 193 | description: Requested Description 194 | content: 195 | application/json: 196 | schema: 197 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription" 198 | '403': 199 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden" 200 | default: 201 | $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default" -------------------------------------------------------------------------------- /SubmodelRegistryServiceSpecification/V3.1_SSP-004.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Submodel Registry Service Specification 4 | description: >- 5 | The Query Profile of the Submodel Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-004 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelRegistryServiceSpecification/SSP-004 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /query/submodel-descriptors: 22 | post: 23 | tags: 24 | - Submodel Registry API 25 | summary: Returns all Submodel Descriptors that confirm to the input query 26 | operationId: QuerySubmodelDescriptors 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/QuerySubmodelDescriptors/3/1 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | requestBody: 33 | content: 34 | application/json: 35 | schema: 36 | # Note: It is a known problem that SwaggerHub cannot render the oneOf statement in the Query definition. 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Query' 38 | responses: 39 | '200': 40 | description: Requested Submodels 41 | content: 42 | application/json: 43 | schema: 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/QueryResultSubmodelDescriptor' 45 | '400': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 47 | '401': 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 49 | '403': 50 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 51 | '500': 52 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 53 | default: 54 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 55 | 56 | 57 | /description: 58 | get: 59 | tags: 60 | - Description API 61 | summary: Returns the self-describing information of a network resource (ServiceDescription) 62 | operationId: GetSelfDescription 63 | x-semanticIds: 64 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 65 | responses: 66 | '200': 67 | description: Requested Description 68 | content: 69 | application/json: 70 | schema: 71 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 72 | '401': 73 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 74 | '403': 75 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' -------------------------------------------------------------------------------- /SubmodelRepositoryServiceSpecification/V3.1_SSP-005.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Submodel Repository Service Specification 4 | description: >- 5 | The Query Profile of the Submodel Repository Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-005 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelRepositoryServiceSpecification/SSP-005 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | 20 | paths: 21 | /query/submodels: 22 | post: 23 | tags: 24 | - Submodel Repository API 25 | summary: Returns all Submodels that confirm to the input query 26 | operationId: QuerySubmodels 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/QuerySubmodels/3/1 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Limit' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Cursor' 32 | requestBody: 33 | content: 34 | application/json: 35 | schema: 36 | # Note: It is a known problem that SwaggerHub cannot render the oneOf statement in the Query definition. 37 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Query' 38 | responses: 39 | '200': 40 | description: Requested Submodels 41 | content: 42 | application/json: 43 | schema: 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/QueryResultSubmodel' 45 | '400': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 47 | '401': 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 49 | '403': 50 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 51 | '500': 52 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 53 | default: 54 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 55 | 56 | 57 | /description: 58 | get: 59 | tags: 60 | - Description API 61 | summary: Returns the self-describing information of a network resource (ServiceDescription) 62 | operationId: GetSelfDescription 63 | x-semanticIds: 64 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 65 | responses: 66 | '200': 67 | description: Requested Description 68 | content: 69 | application/json: 70 | schema: 71 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 72 | '401': 73 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 74 | '403': 75 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' -------------------------------------------------------------------------------- /SubmodelServiceSpecification/V3.1_SSP-003.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: DotAAS Part 2 | HTTP/REST | Submodel Service Specification 4 | description: >- 5 | The Value Profile of the Submodel Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](https://industrialdigitaltwin.org/en/content-hub/aasspecifications). 6 | 7 | Copyright: Industrial Digital Twin Association (IDTA) 2025 8 | contact: 9 | name: Industrial Digital Twin Association (IDTA) 10 | email: info@idtwin.org 11 | license: 12 | name: CC BY 4.0 13 | url: https://creativecommons.org/licenses/by/4.0/ 14 | version: V3.1.0_SSP-003 15 | x-profile-identifier: https://admin-shell.io/aas/API/3/1/SubmodelServiceSpecification/SSP-003 16 | servers: 17 | - url: 'https://admin-shell.io/api/v3/' 18 | - url: 'https://example.com/' 19 | paths: 20 | 21 | /submodel: 22 | get: 23 | tags: 24 | - Submodel API 25 | summary: Returns the Submodel 26 | operationId: GetSubmodel 27 | x-semanticIds: 28 | - https://admin-shell.io/aas/API/GetSubmodel/3/0 29 | parameters: 30 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Level' 31 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Extent' 32 | responses: 33 | '200': 34 | description: Requested Submodel 35 | content: 36 | application/json: 37 | schema: 38 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.1.0#/components/schemas/Submodel' 39 | '400': 40 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 41 | '401': 42 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 43 | '403': 44 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 45 | '500': 46 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 47 | default: 48 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 49 | /submodel/$value: 50 | get: 51 | tags: 52 | - Submodel API 53 | summary: Returns the Submodel in the ValueOnly representation 54 | operationId: GetSubmodel-ValueOnly 55 | x-semanticIds: 56 | - https://admin-shell.io/aas/API/GetSubmodelById/3/0 57 | parameters: 58 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Level' 59 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/Extent' 60 | responses: 61 | '200': 62 | description: ValueOnly representation of the Submodel 63 | content: 64 | application/json: 65 | schema: 66 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/SubmodelValue' 67 | '400': 68 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 69 | '401': 70 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 71 | '403': 72 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 73 | '500': 74 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 75 | default: 76 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 77 | /submodel/submodel-elements/{idShortPath}/invoke: 78 | parameters: 79 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/IdShortPath' 80 | post: 81 | tags: 82 | - Submodel API 83 | summary: Synchronously invokes an Operation at a specified path 84 | operationId: InvokeOperation 85 | x-semanticIds: 86 | - https://admin-shell.io/aas/API/InvokeOperationSync/3/0 87 | requestBody: 88 | description: Operation request object 89 | content: 90 | application/json: 91 | schema: 92 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/OperationRequest' 93 | required: true 94 | responses: 95 | '200': 96 | description: Operation result object 97 | content: 98 | application/json: 99 | schema: 100 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/OperationResult' 101 | '400': 102 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 103 | '401': 104 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 105 | '403': 106 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 107 | '404': 108 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 109 | '405': 110 | description: Method not allowed - Invoke only valid for Operation submodel element 111 | content: 112 | application/json: 113 | schema: 114 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Result' 115 | '500': 116 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 117 | default: 118 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 119 | /submodel/submodel-elements/{idShortPath}/invoke/$value: 120 | parameters: 121 | - $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/parameters/IdShortPath' 122 | post: 123 | tags: 124 | - Submodel API 125 | summary: Synchronously invokes an Operation at a specified path 126 | operationId: InvokeOperationSync-ValueOnly 127 | x-semanticIds: 128 | - https://admin-shell.io/aas/API/InvokeOperationSync/3/0 129 | requestBody: 130 | description: Operation request object 131 | content: 132 | application/json: 133 | schema: 134 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/OperationRequestValueOnly' 135 | required: true 136 | responses: 137 | '200': 138 | description: Operation result object 139 | content: 140 | application/json: 141 | schema: 142 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/OperationResultValueOnly' 143 | '400': 144 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/bad-request' 145 | '401': 146 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 147 | '403': 148 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 149 | '404': 150 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/not-found' 151 | '405': 152 | description: Method not allowed - Invoke only valid for Operation submodel element 153 | content: 154 | application/json: 155 | schema: 156 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/Result' 157 | '500': 158 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/internal-server-error' 159 | default: 160 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/default' 161 | 162 | /description: 163 | get: 164 | tags: 165 | - Description API 166 | summary: Returns the self-describing information of a network resource (ServiceDescription) 167 | operationId: GetSelfDescription 168 | x-semanticIds: 169 | - https://admin-shell.io/aas/API/GetSelfDescription/3/1 170 | responses: 171 | '200': 172 | description: Requested Description 173 | content: 174 | application/json: 175 | schema: 176 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/schemas/ServiceDescription' 177 | '401': 178 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/unauthorized' 179 | '403': 180 | $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.1.0#/components/responses/forbidden' 181 | -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/antora.yml: -------------------------------------------------------------------------------- 1 | name: IDTA-01002 2 | title: 'Part 2: API' 3 | version: 'v3.1' 4 | start_page: ROOT:index.adoc 5 | nav: 6 | - modules/ROOT/nav.adoc 7 | -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/aas-api-versioning-url-scheme.svg: -------------------------------------------------------------------------------- 1 | 2 | https://example.com/api/v3.1/shells 3 | 4 | 5 | 6 | 7 | Protocol 8 | Host 9 | Version 10 | Prefix 11 | Functional 12 | Endpoint 13 | 14 | -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/aas-api-versioning-url-scheme2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/aas-api-versioning-url-scheme2.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/aas-info-exchange-types.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/aas-info-exchange-types.jpg -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/coverpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/coverpage.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/idta-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/idta-logo.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/plantuml/query-language-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/plantuml/query-language-overview.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/plantuml/query-language-overview.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !pragma useIntermediatePackages false 3 | skinparam classAttributeIconSize 0 4 | 5 | hide methods 6 | 7 | class Query { 8 | +$select: SelectField[0..1] 9 | +$condition: Condition[1] 10 | } 11 | 12 | Query --> SelectField 13 | Query --> Condition 14 | 15 | ' to better arrange the SelectField 16 | SelectField -r[hidden]- Placeholder1 17 | Placeholder1 -r[hidden]- Condition 18 | hide Placeholder1 19 | 20 | ' to better arrange the elements 21 | Placeholder2 -l[hidden]- Condition 22 | hide Placeholder2 23 | 24 | enum SelectField { 25 | id 26 | } 27 | 28 | 29 | abstract class Condition <>{ 30 | } 31 | 32 | enum LogicalOperation { 33 | $and 34 | $or 35 | $not 36 | ' nested 37 | } 38 | 39 | class LogicalExpression { 40 | +operation: LogicalOperation[1] 41 | +operands: Condition[1..*] 42 | } 43 | 44 | class MatchExpression { 45 | +$match: Condition[1..*] 46 | } 47 | 48 | abstract class Operation <> { 49 | 50 | } 51 | 52 | enum ComparisonOperation { 53 | $eq 54 | $ne 55 | $gt 56 | $ge 57 | $lt 58 | $le 59 | } 60 | Operation <|-- ComparisonOperation 61 | 62 | enum StringOperation { 63 | $contains 64 | $starts-with 65 | $ends-with 66 | $regex 67 | } 68 | Operation <|-- StringOperation 69 | 70 | class Comparison { 71 | +operation: Operation[1] 72 | +operands: Operand[2] 73 | } 74 | 75 | enum CastingOperation { 76 | $strCast 77 | $numCast 78 | $hexCast 79 | $boolCast 80 | $dateTimeCast 81 | $timeCast 82 | } 83 | 84 | abstract class Operand <> { 85 | 86 | } 87 | 88 | enum FieldIdentifier { 89 | $strModel 90 | } 91 | 92 | enum Value { 93 | $strVal 94 | $numVal 95 | $hexVal 96 | $dateTimeVal 97 | $timeVal 98 | $dayOfWeek 99 | $dayOfMonth 100 | $month 101 | $year 102 | } 103 | 104 | LogicalExpression -u-|> Condition 105 | LogicalExpression --> Condition 106 | LogicalExpression --> LogicalOperation 107 | Comparison -u-|> Condition 108 | Condition <|-- MatchExpression 109 | Condition <-- MatchExpression 110 | Comparison --> Operation 111 | Comparison --> Operand 112 | Operand <|-- CastingOperation 113 | Operand <|--Value 114 | Operand <|-- FieldIdentifier 115 | 116 | 'for better arrangements of the classes below Condition 117 | LogicalExpression .r[hidden]. Comparison 118 | 'Comparison .r[hidden]. MatchExpression 119 | 120 | 'Operation .r[hidden]. Operand 121 | 122 | 123 | 124 | @enduml -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/private_key_certchain_jwt-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/private_key_certchain_jwt-method.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/se-hierarchy.drawio: -------------------------------------------------------------------------------- 1 | 7Vptb9owEP41fGwV5w34CBTaTZtUCU37nCYusebEmWMK7NfPJjYkdligbYgmUqQqOcdn+57Hd+dLBs4s2T7SIIu/kwjigW1F24HzMLDtsTvm/4VgVwj8oVUIVhRFhQgcBUv0B0qhemyNIphXHmSEYIayqjAkaQpDVpEFlJJN9bFXgqujZsEKGoJlGGBT+hNFLC6kI3t4lD9BtIrVyMCXC04C9bBcSR4HEdmURM584MwoIay4SrYziIXtlF2KfosTrYeJUZiyczo8vv54enmehElosWz9FSyHu+md6CDUvAV4LVcsZ8t2ygSUrNMICi3WwJluYsTgMgtC0brhmHNZzBLM7wC/zBklv+CMYEL3vZ25L36HFmVEvvzpK0mZRHwkbhHGdR3lDCFlcHty7eBgUc5ESBLI6I4/Iju4EgNJQqBIuDlCOvSlLC7B6aiOgaTR6qD6aGl+IY19geFBjd19zIedvvCLFduvuxAIM1UQ8X+viWq4y/cGnPAHRtm26CWblZ7l+iUptqUcgKoWMUPRM2ZMbKdJECUovctjiO8R4cvKgyTDcPld9eSiYjLVCXJxadIn2QOa2RPQUBICeLWUMehl8b/F4nNYMqqyxLZMloA6lrRGkrrN2TJJ5hgm3Fzcwpi7U0TSOtYsY0JZoS9PILgReoCxxg+/a344zc4bptFEhEF+l5IUVu1Z9eyaOzZsuVgIa9bavRgWRkYsbbRtyXZejemUjEIcMPRWVV9nTznCM0H7/bDVYFHQjTRIcrKmIZS9ykG0SZGnKWIBXUFmKNrDe1j2+xF3L0KcZDC9AHHec4HEfB6sHv8TivQYoStqGX/PwD+vOu7c4AN3eOxfOZp0C+XsS4oCjFacPw8h1wu5fCrcJ+K58UQ2JCiKxDC1frtKtebsT9zKWavk6CPeenhio5YIN67L+Nry1X5nsfwbyllzFLdvJIo7VpUYjt11FB/2Ufw8L67vaeN0dq4XNxSB63rxUR/Fu8V/3KCoZfzH14sF85QhtjPd/xdOoG3R1boRz+8CDfVR155fTah3/U1b39Hybtd659bXFTnD6259UFf4633/9QjgWg2K2ibAFYt6z5Tzh9a5/0r2n91KBc+zNezdziNAX8I70wG4Ws7m+u91ALoi/cjftgPoa3jdEsADDYraJoBZxCsudRbcaOXuUIPTT+clnrk1PGutdAfM2l0PWLmk5p7IqTsDzCyp5Sxg+2poD5oW9vQwWAKt9pOI1kAzq2IyS73L9t/STMw09pjyyvfQhwT400HG8JX9ZxA7+lsv3zMgvuo7EGAWvi6E+F6+qehxLm9lvS5qd4yzOmZ9FGdvag28hx5u7RSrl7BGXcNt1rQ+APd91jtyDXFfP/q4rSHOb4+fpBYnnuN3vc78Lw== -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/se-hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/se-hierarchy.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/images/swaggerhub-gen-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin-shell-io/aas-specs-api/e67e5851f3fd2c57795a6bc5db7a13e53cb07c5f/documentation/IDTA-01002-3/modules/ROOT/images/swaggerhub-gen-code.png -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/nav.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | Illustrations: 10 | Plattform Industrie 4.0; Anna Salari, Publik. Agentur für Kommunikation GmbH, designed by Publik. Agentur für Kommunikation GmbH 11 | //// 12 | 13 | :doctype: book 14 | :toc: left 15 | :toc-title: Specification of the Asset Administration Shell. Part 2: Application Programming Interfaces 16 | :toclevels: 4 17 | :sectlinks: 18 | :sectnums: 19 | :imagesdir: ./images/ 20 | :nofooter: 21 | :xrefstyle: short 22 | 23 | 24 | 25 | = image:idta-logo.png[width=100%] 26 | 27 | :author: IDTA 28 | :version-label: Number 29 | :revnumber: 01002-3-1 30 | :revdate: December 2023 (TBD)( 31 | :revremark: Specification of the Asset Administration Shell 32 | :releasetag: 2024-1 (TBD) 33 | 34 | //// 35 | 36 | Shared .adoc file are used from https://github.com/admin-shell-io/aas-specs-metamodel 37 | 38 | //// 39 | //// 40 | * xref:index.adoc[Editorial Notes] 41 | //// 42 | 43 | * xref:terms-definitions-and-abbreviations.adoc[Terms and Definitions] 44 | 45 | * xref:preamble.adoc[Preamble] 46 | 47 | * xref:introduction.adoc[Introduction] 48 | 49 | * xref:general.adoc[General] 50 | 51 | * xref:query-language.adoc[Query Language] 52 | 53 | * API Specification 54 | 55 | ** xref:specification/interfaces.adoc[API Interfaces] 56 | 57 | ** xref:specification/interfaces-payload.adoc[Data Types for Payload] 58 | 59 | ** xref:specification/interfaces-operation-parameters.adoc[Basic Operation Parameters] 60 | 61 | * HTTP/REST API 62 | 63 | ** xref:http-rest-api/http-rest-api.adoc[HTTP/REST API] 64 | 65 | ** xref:http-rest-api/service-specifications-and-profiles.adoc[Service Profiles] 66 | 67 | ** xref:http-rest-api/interactions.adoc[Interactions] 68 | 69 | ** xref:http-rest-api/api-code-generation.adoc[API Code Generation] 70 | 71 | * xref:summary-and-outlook.adoc[Summary and Outlook] 72 | 73 | * Annex 74 | 75 | ** xref:annex/serialization-modifier-examples.adoc[SerializationModifier Examples] 76 | 77 | ** xref:annex/backus-naur-form.adoc[Backus Naur Form] 78 | 79 | ** xref:annex/uml-templates.adoc[Class Table Templates] 80 | 81 | ** xref:annex/api-tables-templates.adoc[API Table Templates] 82 | 83 | ** xref:annex/handling-constraints.adoc[Handling Constraints] 84 | 85 | ** xref:annex/overview-constraints.adoc[Overview Constraints] 86 | 87 | ** xref:annex/uml.adoc[UML] 88 | 89 | * xref:changelog.adoc[Change Log] 90 | 91 | * xref:bibliography.adoc[Bibliography] 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/pages/annex/api-tables-templates.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | //// 10 | 11 | [appendix] 12 | == Templates for Specification of APIs and API Operations 13 | 14 | This Annex explains the table templates used for documentation of interfaces, operations, data types, etc. 15 | 16 | _Card._ is the cardinality (or multiplicity) defining the lower and upper bound of the number of instances of the member element. "*" denotes an arbitrary infinite number of elements of the corresponding Type. "0..1" means optional. "0..*" or "0..3" etc. means that the list may be either not available (null object) or empty or has infinitely many / exactly three elements. 17 | 18 | ==== 19 | Note: attributes having a default value are always considered to be optional; there is always a value for the attribute because the default value is used for initialization in this case. 20 | ==== 21 | 22 | .Interface Description 23 | [%autowidth,width="100%",cols="19%,81%",options="header",] 24 | |=== 25 | 2+h|Interface: 26 | h|Operation Name h|Description 27 | e|Oper1 a| 28 | Human-understandable description of the operation of the interface. 29 | Only major input and output information shall be described, no individual request and result parameters. 30 | 31 | 32 | ==== 33 | Note: all words in the service operation name are written together in italics without a blank in between. 34 | The first letter of the first word is lower case, all other words are upper case. 35 | ==== 36 | 37 | 38 | e|… a| 39 | e|operN (optional) a| 40 | Human-understandable description of the operation n of the interface. 41 | Optional operations are to be marked by suffix (optional) after the operation name. 42 | |=== 43 | 44 | [.table-with-appendix-table] 45 | .Operation Description 46 | :table-caption: Template 47 | [cols="25%,30%,25%,10%,10%"] 48 | |=== 49 | h|Operation Name: 4+e|Name of the operation: all individual words in the operation name are capitalized 50 | h|Explanation: 4+a| 51 | Human-understandable description of the functionality 52 | 53 | The operation provides its functionality through the following input and output parameters: 54 | 55 | • Input parameter 1: human-understandable description of the purpose of the input parameter 1 56 | 57 | • … 58 | 59 | • Input parameter N: human-understandable description of the purpose of input parameter N 60 | 61 | • Output parameter 1: human-understandable description of the purpose of output parameter 1: human-understandable description of the purpose of the input parameter 1 62 | 63 | • … 64 | 65 | • Output Parameter N: human-understandable description of the purpose of output parameter N: 66 | 67 | If *_payload_* is mentioned as output parameter, only the returned payload in case of a successful operation (status code: Success, SuccessCreated) is denoted in column _Type_. 68 | In case of failure see xref:specification/interfaces-payload.adoc#StatusCode[Generic Status Codes]. 69 | // Previously pointing to Clause 12.10 70 | If [.underline]#no# *_payload_* is mentioned as output parameter, the status code shall be SuccessNoContent in case of success, otherwise see xref:bibliography.adoc#bib1[[1]]. 71 | 72 | Convention: all words in the interface name are written together in italics without a blank in between. 73 | The first letter of the first word and all other words are written in upper case letters. 74 | 75 | h|semanticId 4+|`The unique identifier of this operation` 76 | 77 | h|Name h|Description h|Mand. h|Type h|Card. 78 | 79 | 5+h|Input Parameter 80 | 81 | e|inputParameter1 a|Human-understandable description of the input parameter 1 of the operation. |States whether the inputParameter1 is mandatory (“yes”) or optional (“no”) |Type of the input parameter 1 |The cardinality of type of the inputParameter1, e.g. zero-to-one (“0..1”) or at-least-one (“1..*”). 82 | e|… | | | | 83 | e|inputParameterN |Human-understandable description of the input parameter N of the operation. |States whether the inputParameterN is mandatory (“yes”) or optional (“no”) |Type of the input parameter N |The cardinality of type of the inputParameterN, e.g. zero-to-one (“0..1”) or at-least-one (“1..*”). 84 | 85 | 5+h|Output Parameter 86 | 87 | e|outputParameter1 |Human-understandable description of the output parameter 1 of the operation. |States whether the outputParameter1 is mandatory (“yes”) or optional (“no”) a| 88 | Type of the output 89 | 90 | parameter 1 91 | 92 | |The cardinality of type of the outputParameter1, e.g. zero-to-one (“0..1”) or at-least-one (“1..*”). 93 | e|… | | | | 94 | e|outputParameterN a|Human-understandable description of the output parameter N of the operation. |States whether the outputParameterN is mandatory (“yes”) or optional (“no”) |Type of the output eparameter N a|The cardinality of type of the outputParameterN, e.g. zero-to-one (“0..1”) or at-least-one (“1..*”). 95 | |=== -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/pages/annex/backus-naur-form.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | //// 10 | 11 | 12 | [appendix] 13 | = Backus-Naur-Form 14 | 15 | The Backus-Naur form (BNF) – a meta-syntax notation for context-free grammars – is used to define grammars. 16 | For more information see https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form[Wikipedia]. 17 | 18 | A BNF specification is a set of derivation rules, written as 19 | 20 | [listing] 21 | .... 22 | ::= __expression__ 23 | .... 24 | 25 | where: 26 | 27 | * is a https://en.wikipedia.org/wiki/Nonterminal[nonterminal] (variable) and the https://en.wikipedia.org/wiki/Expression_(mathematics)[__expression__] consists of one or more sequences of either terminal or nonterminal symbols, 28 | * ::= means that the symbol on the left must be replaced with the expression on the right, 29 | * more sequences of symbols are separated by the https://en.wikipedia.org/wiki/Vertical_bar[vertical bar] "|", indicating a https://en.wikipedia.org/wiki/Alternation_(formal_language_theory)[choice], the whole being a possible substitution for the symbol on the left, 30 | * symbols that never appear on a left side are https://en.wikipedia.org/wiki/Terminal_symbol[terminals], while symbols that appear on a left side are https://en.wikipedia.org/wiki/Nonterminal_symbol[non-terminals] and are always enclosed between the pair of angle brackets <>, 31 | * terminals are enclosed with quotation marks: "text". "" is an empty string, 32 | * optional items are enclosed in square brackets: [], or suffixed with an additional (questionmark) symbol, ?, such as ?, 33 | * items existing 0 or more times are enclosed in curly brackets are suffixed with an asterisk (\*) such as ::= {}*, 34 | * items existing 1 or more times are suffixed with an addition (plus) symbol, \+, such as ::= {}+, 35 | * round brackets are used to explicitly define the order of expansion to indicate precedence, example: ( | ) , 36 | * text without quotation marks is an informal explanation of what is expected; this text is cursive if grammar is non-recursive and vice versa. 37 | 38 | [.underline]#Example:# 39 | 40 | [example] 41 | .... 42 | 43 | ::= "e-mail addresses:" 44 | 45 | ::= {}* 46 | 47 | ::= "@" 48 | 49 | ::= characters 50 | 51 | ::= characters conformant to local-part in RFC 5322 52 | 53 | ::= characters conformant to domain in RFC 5322 54 | .... 55 | 56 | Valid contact addresses: 57 | 58 | [example] 59 | .... 60 | Hugo Me e-mail addresses: Hugo@example.com 61 | 62 | Hugo e-mail addresses: Hugo.Me@text.de 63 | .... 64 | 65 | Invalid contact addresses: 66 | 67 | [example] 68 | .... 69 | Hugo 70 | 71 | Hugo Hugo@ example.com 72 | 73 | Hugo@example.com 74 | .... -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/pages/annex/handling-constraints.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | Illustrations: 10 | Plattform Industrie 4.0; Anna Salari, Publik. Agentur für Kommunikation GmbH, designed by Publik. Agentur für Kommunikation GmbH 11 | //// 12 | 13 | [[annex-handling-of-constraints]] 14 | = Handling of Constraints 15 | 16 | Constraints are prefixed with *AASa-* followed by a three-digit number. 17 | The "a" in "AASa-" was motivated by "API". 18 | The numbering of constraints is unique within namespace AASa; a number of a constraint that was removed will not be used again. 19 | 20 | -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/pages/annex/overview-constraints.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | //// 10 | 11 | 12 | [appendix] 13 | = Overview Constraints (non-normative) 14 | include::../includes/constraints.adoc[] 15 | 16 | 17 | This annex gives an overview of the constraints contained in this document. No additional comments are added, for details please refer to the normative parts of the specification. 18 | 19 | For handling of constraints see xref:annex/handling-constraints.adoc[]. 20 | 21 | [[constraint-AASa-001]] 22 | {aasa001} 23 | 24 | [[constraint-AASd-002]] 25 | {aasa002} 26 | 27 | [[constraint-AASd-003]] 28 | {aasa003} 29 | 30 | [[constraint-AASd-004]] 31 | {aasa004} 32 | 33 | [[constraint-AASd-005]] 34 | {aasa005} -------------------------------------------------------------------------------- /documentation/IDTA-01002-3/modules/ROOT/pages/annex/uml-templates.adoc: -------------------------------------------------------------------------------- 1 | //// 2 | Copyright (c) 2023 Industrial Digital Twin Association 3 | 4 | This work is licensed under a [Creative Commons Attribution 4.0 International License]( 5 | https://creativecommons.org/licenses/by/4.0/). 6 | 7 | SPDX-License-Identifier: CC-BY-4.0 8 | 9 | Illustrations: 10 | Plattform Industrie 4.0; Anna Salari, Publik. Agentur für Kommunikation GmbH, designed by Publik. Agentur für Kommunikation GmbH 11 | //// 12 | 13 | 14 | [appendix] 15 | = Templates for UML Tables 16 | 17 | == General 18 | 19 | The templates used for element specification are explained in this annex. 20 | For details for the semantics see Legend for UML Modelling. 21 | 22 | For capitalization of titles, rules according to https://capitalizemytitle.com/ are used. 23 | 24 | == Template for Classes 25 | 26 | [.table-with-appendix-table] 27 | .Class 28 | :table-caption: Template 29 | [cols="25%,40%,25%,10%"] 30 | |=== 31 | h|Class: 3+e| ["\<>"] ["\<>"] ["\<>"] ["\<