Change Notes General * Means not backward compatible (*) means not backward compatible but just renaming Note: Changes in Metamodel (IDTA-01001) will not be listed here, although they have an impact on the payload of many operations. Changes w.r.t. V3.0.3 to V3.1 Major Changes: Bulk Operations and Profiles for Bulk Operations (#3) deprecated: operation GetAllAssetAdministrationShellIdsByAssetLink new: operation SearchAllAssetAdministrationShellIdsByAssetLink (as substitute for GetAllAssetAdministrationShellIdsByAssetLink) (#19) new Profile for Discovery Service: Read Only SSP-002 (#201) updated: Terms and Definitions adopted to IEC 63278-1:2023 (before IEC 63278-1 Draft July 2022 was the basis), also abbreviations partly adopted; changed definitions (#365): changed: interface changed: service Individual versioning of datatype IDs, operations, interfaces etc. (#247) Data type Identifier: change length from 2000 to 2048 characters (#306) Transfer of chapters on formats Metadata, Paths and Value-Only from Part 2 API to Part 1 Metamodel (#214) Transfer from .docx to asciidoc (.adoc) and maintenance in GitHub Transfer of all UML figures to PlantUML (.puml) and maintenance in GitHub Minor Changes: Clarification on how to handle duplicate query parameters Interface Changes w.r.t. V3.0.3 to V3.1 BWC Interface Change Kind of Change Comment AAS Basic Discovery Changed deprecate GetAllAssetAdministrationShellIdsByAssetLink add SearchAllAssetAdministrationShellIdsByAssetLink AAS Registry Changed add CreateBulkAssetAdministrationShellDescriptors add PutBulkAssetAdministrationShellDescriptorsById add DeleteBulkAssetAdministrationShellDescriptorsById GetAllAssetAdministrationShellDescriptors Changed Changed the parameters assetKind and assetType from mandatory to optional. OpenAPI remains unchanged. (#298) Submodel Registry Changed add PostBulkSubmodelDescriptors, add PutBulkSubmodelDescriptorsById, add DeleteBulkSubmodelDescriptorsById Operation Changes w.r.t. V3.0.3 to V3.1 Operation Change Old Operation Change New Kind of Change Comment GetAllAssetAdministrationShellIdsByAssetLink deprecated substituted by SearchAllAssetAdministrationShellIdsByAssetLink SearchAllAssetAdministrationShellIdsByAssetLink new substitute for GetAllAssetAdministrationShellIdsByAssetLink PostBulkSubmodelDescriptors new PutBulkSubmodelDescriptorsById new DeleteBulkSubmodelDescriptorsById new Profile Changes w.r.t. V3.0.3 to V3.1 Profile Change Old Profile Change New Kind of Change Comment Asset Administration Shell Registry Profile – Bulk Profile new Submodel Registry Profile – Bulk Profile new Discovery Profile – Full Profile update GetAllAssetAdministrationShellIdsByAssetLink set to deprecated, added new API-operation SearchAllAssetAdministrationShellIdsByAssetLink Discovery Profile – Read Profile new Class Changes w.r.t. V3.0.3 to V3.1 Table 1. Changes in Data Types for Payload Nc V3.1 Change w.r.t. V3.0 Comment AssetAdministrationShellDescriptor/assetType data type: change length from 2000 to 2048 characters AssetAdministrationShellDescriptor/globalAssetId data type: change length from 2000 to 2048 characters AssetAdministrationShellDescriptor/id data type: change length from 2000 to 2048 characters SubmodelDescriptor/id data type: change length from 2000 to 2048 characters PackageDescription/aasIds data type: change length from 2000 to 2048 characters ProtocolInformation/href data type: change length from 2000 to 2048 characters Table 2. New Data Types for Payload New Elements V3.1 vs V3.0 Comment AssetLink new class for discovery operation(s) AssetLink/name AssetLink/value Changes w.r.t. V3.0.2 to V3.0.3 Major: Clause 12.2: Reintroducing the design decision for the ReferenceParent class due to resolvement problems reappearing in SwaggerHub, also adding the class again to the OpenAPI file. Adding the missing GetSubmodelElementsMetadataResult class to the OpenAPI definitions for the AAS API classes. Interface Changes w.r.t. V3.0.2 to V3.0.3 BWC Interface Change Kind of Change Comment GetAllAssetAdministrationShellDescriptors Changed Changed the parameters assetKind and assetType from 'mandatory' to ‘optional'. OpenAPI remains unchanged. (#298) AAS Basic Discovery Interface Changed Changed the parameter assetIds from mandatory to optional. OpenAPI remains unchanged. (#301) Operation Changes w.r.t. V3.0.2 to V3.0.3 None. Changes w.r.t. V3.0.1 to V3.0.2 Major: Remove “format: byte” from OpenAPI files, as this annotation enforces base64 encodings while base64url is actually required. Remove the QueryParameter “level” from all requests ending with /$metadata in the OpenAPI files. Change the values for the ServiceDescription class from enum to a list of strings in the OpenAPI definition for the Part 2 classes. Clause 11.4.2 and 11.4.3: Change the ValueOnly attribute “annotation” to “annotations” and its value from an array to ValueOnly for the AnnotatedRelationshipElementValue class in the examples and schema to match the “AnnotatedRelationshipElement/annotations” attribute. Furthermore, “AnnotatedRelationshipElementValue/annotations” is optional now. Clause 11.4.2: Add serialisation rule for empty "FileValue/value" and "BlobValue/value". Clause 11.4.3: "FileValue/value" and "BlobValue/value" are optional but non-empty attributes. Clause 11.4.3: "EntityValue/statements" made optional. Clause 11.4.3: Fix maxLength for "FileValue/value" from 200 to 2000 characters. Clause 12.2: Remove the design decision for the ReferenceParent class, also removing it from the OpenAPI file. Clause 12.3: Relax the requirements for API paths and version declaration. (Editorial) Clause 12.8: Added constraint on the return object for ValueOnly requests and that the Level modifier is undefined for Metadata requests. Adopt the V3.0.1 bugfix changes of the AAS Metamodel in the OpenAPI files and references. Minor: (Editorial) Fix links to SwaggerHub in Clause 4.6 and Clause 12 (Editorial) Clause 8.2.2: Correct the Note that explains the usage of “globalAssetId” for the “assetIds” parameter. (Editorial) ServiceSpecificationProfileEnum: Corrected explanations for Submodel Repository and Registry profile entries (Editorial) Clause 11.4.2: Add “Submodel” to the list of possible ValueOnly objects and add more details how SubmodelElementLists have to be serialized. (Editorial) Clause 11.4.4: Added sentence explaining where the idShortPath has to start. (Editorial) Clause 12.2: Correct example for GetAllAssetAdministrationShellIdsByAssetLink (Editorial) Correct Note 1 in Clause 12.4: “[…] IdshortPaths are base64url-encoded …” to “[…] IdshortPaths are url-encoded …” (Editorial) Clause 12.13: Corrected the list of constraints. (Editorial) Annex C.2: Adjusted and extended the examples for GETs on Metadata, Path, and Value (Editorial) Annex C.3: Adjusted the examples for PATCH on Value Interface Changes w.r.t. V3.0.2 to V3.1 BWC Interface Change Kind of Change Comment GetOperationAsnycStatus Changed Replace payload type ‘OperationResult’ with ‘BaseOperationResult’ that OpenAPI descriptions already contained ‘BaseOperationResult’ from V3.0 on. ServiceSpecificationProfileEnum Remove Removed profiles https://admin-shell.io/aas/API/3/0/RepositoryServiceSpecification/SSP-001 and https://admin-shell.io/aas/API/3/0/RepositoryServiceSpecification/SSP-002. Both profiles were not included in the V3.0.1 ServiceDescription class in the OpenAPI definition and only left-overs from previous drafts. PutAssetAdministrationShell Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutSubmodel Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PatchSubmodel Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutSubmodelElementByPath Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PatchSubmodelElementByPath Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutAssetAdministrationShellDescriptorById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutSubmodelDescriptorById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutAssetAdministrationShellById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutSubmodelById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PatchSubmodelById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” PutConceptDescriptionById Change Output parameter “payload” changed from “mandatory=yes” to “mandatory=no” Operation Changes w.r.t. V3.0.1 to V3.0.2 Operation Change Old Operation Change New Kind of Change Comment GetSubmodelElementByPath-Metadata had ‘level’ and/or ‘cursor’ parameters in OpenAPI ‘level’ and/or ‘cursor’ parameters have been removed GetSubmodelElementByPath-Metadata Remove Neither ‘level’ nor ‘cursor’ could influence the behavior of the operation, therefore, removing them has no effect on any implementation. CreateSubmodelReference New comment in Table 15 clarifies the content of the Location header of the response. Change GetSelfDescription output type “ServiceDescription” contains enum for "profiles" GetSelfDescription output type “ServiceDescription” contains list of strings for “profiles” Change Custom profiles can be added with the new structure. String attributes of Part 2 classes are restricted to the regex pattern "^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$" String attributes of Part 2 classes are restricted to the regex pattern "^([\\t\\n\\r -\ud7ff\ue000-\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" Change The new pattern has been introduced for the JSON schema and the Part 1 OpenAPI domain already. This change synchronizes the pattern for both Part 1 and Part 2 classes. GetSubmodelElementByPath had single PathItem as the response object in some OpenAPI files GetSubmodelElementByPath returns an array of PathItems Change PathItem regex did not allow SubmodelElementLists PathItem regex does allow SubmodelElementLists Change Changes w.r.t. V3.0 to V3.0.1 Major: Added Location header for POSTs that create a new resource, according to RFC 9110 Section 15.3.2 Correcting definitions of SerialisationModifiers and Pagination parameters in the OpenAPI files. Cleaning of incorrectly located API Operations from the OpenAPI files. Removing several outdated/inconsistently named OpenAPI files from the GitHub Release. Fixing the values of the ServiceDescription/profiles enum in the OpenAPI Domain. Changes w.r.t. V1.0RC03 to V3.0 Major Changes: Introduction of service specifications and profiles Introduction of pagination for "GetAll*" API operations in http/REST Distinction between replace and update for operations SerializationModifier Content as path: $metadata, $value, $reference, $path Introduction of length constraints for string attributes Interface Changes w.r.t. V1.0RC03 to V3.0 BWC Interface Change Kind of Change Comment Submodel New PatchSubmodel and PatchSubmodelElementByPath (PUT to completely replace and PATCH to update content) Asset Administration Shell, Submodel, AASX File Server, AAS Repository, Submodel Repository, CD Repository, AAS Registry, Submodel Registry, AAS Basic Discovery Changed Add Pagination: GetAllAssetAdministrationShells GetAllAssetAdministrationShellsByAssetId GetAllAssetAdministrationShellsByIdShort GetAllSubmodelReferences GetAllSubmodels GetAllSubmodelsBySemanticId GetAllSubmodelsByIdShort GetAllSubmodelElements GetSubmodelElementByPath GetAllConceptDescriptions GetAllConceptDescriptionsByIdShort GetAllConceptDescriptionsByIsCaseOf GetAllConceptDescriptionsByDataSpecificationReference GetAllAssetAdministrationShellDescriptors GetAllSubmodelDescriptors GetAllAssetAdministrationShellIdsByAssetLink GetAllAASXPackageIds Submodel Changed SerializationModifier Content as path: $metadata, $value, $reference, $path Asset Administration Shell New GetThumbnail, PutThumbnail Submodel Repository New PatchSubmodelForId was missing Registry New Add extensions to descriptor AssetAdministrationShellDescriptor New Add the attributes assetKind and assetType SubmodelDescriptor New Add supplementalSemanticId * Changed Rename GetDescriptor to GetDescription * Changed API versioning with major + minor * New Profiles * Changed Clarify service specifications and APIs CD Registry Changed Renaming parameter ‘cdIdentifier’ in GetConceptDescriptionById to ‘id’. Parameter has not been changed in the HTTP API. Operation Changes w.r.t. V1.0RC03 to V3.0 Operation Change Old Operation Change New Kind of Change Comment GetDescriptor GetDescription Changed Rename, get profiles Changes w.r.t. V1.0RC02 to V1.0RC03 Interface Changes w.r.t. V1.0RC02 to V1.0RC03 BWC Interface Change Kind of Change Comment * Discovery Changed IdentifierKeyValuePair to SpecificAssetId * Submodel Changed SubmodelElementStruct remains as SubmodelElementCollection * Submodel Changed ModelReference and GlobalReference are combined back to Reference * Submodel Changed Rename trimmed to metadata Submodel New Add GetFileByPath Submodel New Add PutFileByPath * Submodel Changed InvokeOperationAsync Registry Changed Endpoint * Registry Changed Remove /registry from REST path * All New API Versioning adds a prefix to all interfaces Operation Changes w.r.t. V1.0RC02 to V1.0RC03 Operation Change Old Operation Change New Kind of Change Comment Changed inputArgument and inoutputArgument are OperationVariable GetAllAssetAdministrationShellsByAssetLink Changed IdentifierKeyValuePair to SpecificAssetId GetAllAssetLinksById Changed IdentifierKeyValuePair to SpecificAssetId PostAllAssetLinksById Changed IdentifierKeyValuePair to SpecificAssetId Changes w.r.t. V1.0RC01 to V1.0RC02 Interface Changes w.r.t. V1.0RC01 to V1.0RC02 BWC Interface Change Kind of Change Comment * Asset Administration Shell Changed Renamed: RemoveSubmodelReference to DeleteSubmodelReference Removed: PutSubmodelReference, PatchAssetAdministrationShell New: GetAssetInformation PutAssetInformation GetAllSubmodelReferences PostSubmodelReference * Submodel Changed Removed: GetAllSubmodelElementsByParentPathAndSemanticId, GetAllSubmodelElementsBySemanticId New: PutSubmodel, PostSubmodelElement, PostSubmodelElementByPath * Asset Administration Shell Serialization Changed Renamed: GetSerializationByIds to GenerateSerializationByIds Removed: GetAASX AASX File Server New New interface (*) Asset Administration Shell Registry Changed Renamed: PutAssetAdministrationShellDescriptor to PutAssetAdministrationShellDescriptorById New: PostAssetAdministrationShellDescriptor (*) Submodel Registry Changed Renamed: PutSubmodelDescriptor to PutSubmodelDescriptorById New: PostSubmodelDescriptor (*) Asset Administration Shell Repository Changed Renamed: GetAllAssetAdministrationShellsById to GetAssetAdministrationShellById, PutAssetAdministrationShell to PutAssetAdministrationShellById New: PostAssetAdministrationShell (*) Submodel Repository Changed Renamed: PutSubmodel to PutSubmodelById New: PostSubmodel (*) Asset Administration Shell Basic Discovery Changed Removed: GetAllAssetAdministrationShellIdsByAssetId, PutAssetId New: GetAllAssetAdministrationShellIdsByAssetLink, GetAllAssetLinksById, PutAllAssetLinksById, DeleteAllAssetLinksById (*) Submodel Discovery Basic Removed (*) Concept Description Repository Changed Renamed: GetAllConceptDescriptionsWithDataSpecificationReference to GetAllConceptDescriptionsByDataSpecificationReference, PutConceptDescription to PutConceptDescriptionById New: PostConceptDescription Operation Changes w.r.t. V1.0RC01 to V1.0RC02 Operation Change Old Operation Change New Kind of Change Comment PatchAssetAdministrationShell Removed PutSubmodelReference Removed Substituted by PostSubmodelReference PostSubmodelReference New For PutSubmodelReference RemoveSubmodelReference DeleteSubmodelReference Changed GetAllSubmodelReferences New PostSubmodelReference New GetAssetInformation New PutAssetInformation New PutSubmodel New PostSubmodelElement New PostSubmodelElementByPath New GetAllSubmodelElementsByParentPathAndSemanticId Removed GetAllSubmodelElementsBySemanticId Removed GetAASX Removed GetSerializationByIds GenerateSerializationByIds Renamed GetAllAASXPackageIds New GetAASXByPackageId New PostAASXPackage New PutAASXByPackageId New DeleteAASXByPackageId New PutAssetAdministrationShellDescriptor PutAssetAdministrationShellDescriptorById Changed Naming pattern byId PostAssetAdministrationDescriptor New PutSubmodelDescriptor PutSubmodelDescriptorById Changed Naming pattern byId PostSubmodelDescriptor New GetAllAssetAdministrationShellsById GetAssetAdministrationShellById Changed Naming pattern resource singular PostAssetAdministrationShell New PutAssetAdministrationShell PutAssetAdministrationShellById Changed Naming pattern byId PutSubmodel PutSubmodelById Changed Naming pattern byId PostSubmodel New GetAllAssetAdministrationShellIdsByAssetId Removed substituted by GetAllAssetAdministrationShellIdsByAssetLink and GetAllAssetLinksById PutAssetId Removed Substituted by PutAllAssetLinksById and DeleteAllAssetLinksById GetAllAssetAdministrationShellIdsByAssetLink New Before: GetAllAssetAdministrationShellIdsByAssetId GetAllAssetLinksById New PutAllAssetLinksById New DeleteAllAssetLinksById New GetAllSubmodelIdsBySemanticId Removed GetAllConceptDescriptionsWithDataSpecificationReference GetAllConceptDescriptionsByDataSpecificationReference Renamed Renaming With pattern By PutConceptDescription PutConceptDescriptionById Changed Naming pattern byId PostConceptDescription New