Operation to RIGHT Mapping (normative) This annex defines the normative mapping from each AAS HTTP/REST API operation to the RIGHT value that a security implementation (see IDTA-01004 Access Rule Model, clause "Rights and operation verbs") MUST use when evaluating access rules for the operation. The mapping is deterministic: if an implementation of IDTA-01004 denies a request with a given RIGHT, it MUST deny the operations that are listed for that RIGHT below, regardless of HTTP method. The table uses the following conventions: Operation Name corresponds to the operationId in the combined OpenAPI document. URL Template is the path template per HTTP/REST API. RIGHT is the RIGHT value from IDTA-01004 rightsEnum. When two RIGHTS are listed (for example for PUT on client-addressable resources), the security implementation MUST resolve the right at request time, based on whether the targeted resource already exists (UPDATE) or not (CREATE). originating RIGHT means that an asynchronous status or result request MUST use the RIGHT that was resolved for the initiating request when its handle was created. ROUTE literal example shows a compatible ROUTE: pattern for access rules. In accordance with the IDTA-01004 Access Rule Model [3], wildcards are used only as trailing prefix wildcards. Operation Name HTTP URL Template RIGHT ROUTE literal example GetAssetAdministrationShell GET /aas READ "/aas" PutAssetAdministrationShell PUT /aas UPDATE "/aas" GetAssetAdministrationShell-Reference GET /aas/$reference VIEW "/aas/$reference" GetAssetInformation GET /aas/asset-information READ "/aas/asset-information" PutAssetInformation PUT /aas/asset-information UPDATE "/aas/asset-information" GetThumbnail GET /aas/asset-information/thumbnail READ "/aas/asset-information/thumbnail" PutThumbnail PUT /aas/asset-information/thumbnail UPDATE "/aas/asset-information/thumbnail" DeleteThumbnail DELETE /aas/asset-information/thumbnail DELETE "/aas/asset-information/thumbnail" GetAllSubmodelReferences GET /aas/submodel-refs VIEW "/aas/submodel-refs" PostSubmodelReference POST /aas/submodel-refs CREATE "/aas/submodel-refs" DeleteSubmodelReference DELETE /aas/submodel-refs/{submodelIdentifier} DELETE "/aas/submodel-refs/*" GetSubmodelById_AAS GET /aas/submodels/{submodelIdentifier} READ "/aas/submodels/*" PutSubmodelById_AAS PUT /aas/submodels/{submodelIdentifier} CREATE or UPDATE "/aas/submodels/*" PatchSubmodelById_AAS PATCH /aas/submodels/{submodelIdentifier} UPDATE "/aas/submodels/*" DeleteSubmodelById_AAS DELETE /aas/submodels/{submodelIdentifier} DELETE "/aas/submodels/*" GetSubmodelById-Metadata_AAS GET /aas/submodels/{submodelIdentifier}/$metadata READ "/aas/submodels/*" PatchSubmodeByIdMetadata_AAS PATCH /aas/submodels/{submodelIdentifier}/$metadata UPDATE "/aas/submodels/*" GetSubmodelById-ValueOnly_AAS GET /aas/submodels/{submodelIdentifier}/$value READ "/aas/submodels/*" PatchSubmodelById-ValueOnly_AAS PATCH /aas/submodels/{submodelIdentifier}/$value UPDATE "/aas/submodels/*" GetSubmodelById-Reference_AAS GET /aas/submodels/{submodelIdentifier}/$reference VIEW "/aas/submodels/*" GetSubmodelById-Path_AAS GET /aas/submodels/{submodelIdentifier}/$path VIEW "/aas/submodels/*" GetAllSubmodelElements_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements READ "/aas/submodels/*" PostSubmodelElement_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements CREATE "/aas/submodels/*" GetAllSubmodelElements-Metadata_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/$metadata READ "/aas/submodels/*" GetAllSubmodelElements-ValueOnly_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/$value READ "/aas/submodels/*" GetAllSubmodelElementsReference_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/$reference VIEW "/aas/submodels/*" GetAllSubmodelElementsPath_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/$path VIEW "/aas/submodels/*" GetSubmodelElementByPath_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} READ "/aas/submodels/*" PostSubmodelElementByPath_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE "/aas/submodels/*" PutSubmodelElementByPath_AAS PUT /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE or UPDATE "/aas/submodels/*" PatchSubmodelElementValueByPath_AAS PATCH /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} UPDATE "/aas/submodels/*" DeleteSubmodelElementByPath_AAS DELETE /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} DELETE "/aas/submodels/*" GetSubmodelElementByPath-Metadata_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata READ "/aas/submodels/*" PatchSubmodelElementValueByPath-Metadata_AAS PATCH /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata UPDATE "/aas/submodels/*" GetSubmodelElementByPath-ValueOnly_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value READ "/aas/submodels/*" PatchSubmodelElementValueByPathValueOnly_AAS PATCH /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value UPDATE "/aas/submodels/*" GetSubmodelElementByPath-Reference_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$reference VIEW "/aas/submodels/*" GetSubmodelElementByPath-Path_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$path VIEW "/aas/submodels/*" GetFileByPath_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment READ "/aas/submodels/*" PutFileByPath_AAS PUT /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment UPDATE "/aas/submodels/*" DeleteFileByPath_AAS DELETE /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment DELETE "/aas/submodels/*" InvokeOperationSync_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke EXECUTE "/aas/submodels/*" InvokeOperationSync-ValueOnly_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke/$value EXECUTE "/aas/submodels/*" InvokeOperationAsync_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async EXECUTE "/aas/submodels/*" InvokeOperationAsync-ValueOnly_AAS POST /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async/$value EXECUTE "/aas/submodels/*" GetOperationAsyncStatus_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-status/{handleId} EXECUTE "/aas/submodels/*" GetOperationAsyncResult_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId} EXECUTE "/aas/submodels/*" GetOperationAsyncResult-ValueOnly_AAS GET /aas/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId}/$value EXECUTE "/aas/submodels/*" GetSubmodel GET /submodel READ "/submodel" PutSubmodel PUT /submodel UPDATE "/submodel" PatchSubmodel PATCH /submodel UPDATE "/submodel" GetSubmodel-Metadata GET /submodel/$metadata READ "/submodel/$metadata" PatchSubmodel-Metadata PATCH /submodel/$metadata UPDATE "/submodel/$metadata" GetSubmodel-ValueOnly GET /submodel/$value READ "/submodel/$value" PatchSubmodel-ValueOnly PATCH /submodel/$value UPDATE "/submodel/$value" GetSubmodel-Reference GET /submodel/$reference VIEW "/submodel/$reference" GetSubmodel-Path GET /submodel/$path VIEW "/submodel/$path" GetAllSubmodelElements GET /submodel/submodel-elements READ "/submodel/submodel-elements" PostSubmodelElement POST /submodel/submodel-elements CREATE "/submodel/submodel-elements" GetAllSubmodelElements-Metadata GET /submodel/submodel-elements/$metadata READ "/submodel/submodel-elements/$metadata" GetAllSubmodelElements-ValueOnly GET /submodel/submodel-elements/$value READ "/submodel/submodel-elements/$value" GetAllSubmodelElements-Reference GET /submodel/submodel-elements/$reference VIEW "/submodel/submodel-elements/$reference" GetAllSubmodelElements-Path GET /submodel/submodel-elements/$path VIEW "/submodel/submodel-elements/$path" GetSubmodelElementByPath GET /submodel/submodel-elements/{idShortPath} READ "/submodel/submodel-elements/*" PostSubmodelElementByPath POST /submodel/submodel-elements/{idShortPath} CREATE "/submodel/submodel-elements/*" PutSubmodelElementByPath PUT /submodel/submodel-elements/{idShortPath} CREATE or UPDATE "/submodel/submodel-elements/*" PatchSubmodelElementByPath PATCH /submodel/submodel-elements/{idShortPath} UPDATE "/submodel/submodel-elements/*" DeleteSubmodelElementByPath DELETE /submodel/submodel-elements/{idShortPath} DELETE "/submodel/submodel-elements/*" GetSubmodelElementByPath-Metadata GET /submodel/submodel-elements/{idShortPath}/$metadata READ "/submodel/submodel-elements/*" PatchSubmodelElementByPath-Metadata PATCH /submodel/submodel-elements/{idShortPath}/$metadata UPDATE "/submodel/submodel-elements/*" GetSubmodelElementByPath-ValueOnly GET /submodel/submodel-elements/{idShortPath}/$value READ "/submodel/submodel-elements/*" PatchSubmodelElementByPath-ValueOnly PATCH /submodel/submodel-elements/{idShortPath}/$value UPDATE "/submodel/submodel-elements/*" GetSubmodelElementByPath-Reference GET /submodel/submodel-elements/{idShortPath}/$reference VIEW "/submodel/submodel-elements/*" GetSubmodelElementByPath-Path GET /submodel/submodel-elements/{idShortPath}/$path VIEW "/submodel/submodel-elements/*" GetFileByPath GET /submodel/submodel-elements/{idShortPath}/attachment READ "/submodel/submodel-elements/*" PutFileByPath PUT /submodel/submodel-elements/{idShortPath}/attachment UPDATE "/submodel/submodel-elements/*" DeleteFileByPath DELETE /submodel/submodel-elements/{idShortPath}/attachment DELETE "/submodel/submodel-elements/*" InvokeOperation POST /submodel/submodel-elements/{idShortPath}/invoke EXECUTE "/submodel/submodel-elements/*" InvokeOperationSync-ValueOnly POST /submodel/submodel-elements/{idShortPath}/invoke/$value EXECUTE "/submodel/submodel-elements/*" InvokeOperationAsync POST /submodel/submodel-elements/{idShortPath}/invoke-async EXECUTE "/submodel/submodel-elements/*" InvokeOperationAsync-ValueOnly POST /submodel/submodel-elements/{idShortPath}/invoke-async/$value EXECUTE "/submodel/submodel-elements/*" GetOperationAsyncStatus GET /submodel/submodel-elements/{idShortPath}/operation-status/{handleId} EXECUTE "/submodel/submodel-elements/*" GetOperationAsyncResult GET /submodel/submodel-elements/{idShortPath}/operation-results/{handleId} EXECUTE "/submodel/submodel-elements/*" GetOperationAsyncResult-ValueOnly GET /submodel/submodel-elements/{idShortPath}/operation-results/{handleId}/$value EXECUTE "/submodel/submodel-elements/*" GetAllAssetAdministrationShells GET /shells READ "/shells" PostAssetAdministrationShell POST /shells CREATE "/shells" GetAllAssetAdministrationShellsRecentChanges GET /shells/$recent-changes READ "/shells/$recent-changes" GetAllAssetAdministrationShells-Reference GET /shells/$reference VIEW "/shells/$reference" GetAssetAdministrationShellById GET /shells/{aasIdentifier} READ "/shells/*" PutAssetAdministrationShellById PUT /shells/{aasIdentifier} CREATE or UPDATE "/shells/*" DeleteAssetAdministrationShellById DELETE /shells/{aasIdentifier} DELETE "/shells/*" GetAssetAdministrationShellVersionByIdAndDate GET /shells/{aasIdentifier}/$history READ "/shells/*" GetAssetAdministrationShellById-Reference_AasRepository GET /shells/{aasIdentifier}/$reference VIEW "/shells/*" GetAssetAdministrationShellByIdSigned GET /shells/{aasIdentifier}/$signed READ "/shells/*" GetAssetInformation_AasRepository GET /shells/{aasIdentifier}/asset-information READ "/shells/*" PutAssetInformation_AasRepository PUT /shells/{aasIdentifier}/asset-information UPDATE "/shells/*" GetThumbnail_AasRepository GET /shells/{aasIdentifier}/asset-information/thumbnail READ "/shells/*" PutThumbnail_AasRepository PUT /shells/{aasIdentifier}/asset-information/thumbnail UPDATE "/shells/*" DeleteThumbnail_AasRepository DELETE /shells/{aasIdentifier}/asset-information/thumbnail DELETE "/shells/*" GetAllSubmodelReferences_AasRepository GET /shells/{aasIdentifier}/submodel-refs VIEW "/shells/*" PostSubmodelReference_AasRepository POST /shells/{aasIdentifier}/submodel-refs CREATE "/shells/*" DeleteSubmodelReference_AasRepository DELETE /shells/{aasIdentifier}/submodel-refs/{submodelIdentifier} DELETE "/shells/*" GetSubmodelById_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier} READ "/shells/*" PutSubmodelById_AasRepository PUT /shells/{aasIdentifier}/submodels/{submodelIdentifier} CREATE or UPDATE "/shells/*" PatchSubmodel_AasRepository PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier} UPDATE "/shells/*" DeleteSubmodelById_AasRepository DELETE /shells/{aasIdentifier}/submodels/{submodelIdentifier} DELETE "/shells/*" GetSubmodelById-Metadata_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$metadata READ "/shells/*" PatchSubmodelById-Metadata_AasRepository PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$metadata UPDATE "/shells/*" GetSubmodelById-ValueOnly_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$value READ "/shells/*" PatchSubmodelById-ValueOnly_AasRepository PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$value UPDATE "/shells/*" GetSubmodelById-Reference_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$reference VIEW "/shells/*" GetSubmodelById-Path_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/$path VIEW "/shells/*" GetAllSubmodelElements_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements READ "/shells/*" PostSubmodelElement_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements CREATE "/shells/*" GetAllSubmodelElements-Metadata_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/$metadata READ "/shells/*" GetAllSubmodelElements-ValueOnly_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/$value READ "/shells/*" GetAllSubmodelElements-Reference_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/$reference VIEW "/shells/*" GetAllSubmodelElements-Path_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/$path VIEW "/shells/*" GetSubmodelElementByPath_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} READ "/shells/*" PostSubmodelElementByPath_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE "/shells/*" PutSubmodelElementByPath_AasRepository PUT /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE or UPDATE "/shells/*" PatchSubmodelElementValueByPath_AasRepository PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} UPDATE "/shells/*" DeleteSubmodelElementByPath_AasRepository DELETE /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath} DELETE "/shells/*" GetSubmodelElementByPath-Metadata_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata READ "/shells/*" PatchSubmodelElementValueByPath-Metadata PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata UPDATE "/shells/*" GetSubmodelElementByPath-ValueOnly_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value READ "/shells/*" PatchSubmodelElementValueByPath-ValueOnly PATCH /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value UPDATE "/shells/*" GetSubmodelElementByPath-Reference_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$reference VIEW "/shells/*" GetSubmodelElementByPath-Path_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$path VIEW "/shells/*" GetFileByPath_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment READ "/shells/*" PutFileByPath_AasRepository PUT /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment UPDATE "/shells/*" DeleteFileByPath_AasRepository DELETE /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment DELETE "/shells/*" InvokeOperation_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke EXECUTE "/shells/*" InvokeOperation-ValueOnly_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke/$value EXECUTE "/shells/*" InvokeOperationAsync_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async EXECUTE "/shells/*" InvokeOperationAsync-ValueOnly_AasRepository POST /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async/$value EXECUTE "/shells/*" GetOperationAsyncStatus_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-status/{handleId} EXECUTE "/shells/*" GetOperationAsyncResult_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId} EXECUTE "/shells/*" GetOperationAsyncResult-ValueOnly_AasRepository GET /shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId}/$value EXECUTE "/shells/*" QueryAssetAdministrationShells POST /query/shells READ "/query/shells" GetAllSubmodels GET /submodels READ "/submodels" PostSubmodel POST /submodels CREATE "/submodels" GetAllSubmodelsRecentChanges GET /submodels/$recent-changes READ "/submodels/$recent-changes" GetAllSubmodels-Metadata GET /submodels/$metadata READ "/submodels/$metadata" GetAllSubmodels-ValueOnly GET /submodels/$value READ "/submodels/$value" GetAllSubmodels-Reference GET /submodels/$reference VIEW "/submodels/$reference" GetAllSubmodels-Path GET /submodels/$path VIEW "/submodels/$path" GetSubmodelById GET /submodels/{submodelIdentifier} READ "/submodels/*" PutSubmodelById PUT /submodels/{submodelIdentifier} CREATE or UPDATE "/submodels/*" PatchSubmodelById PATCH /submodels/{submodelIdentifier} UPDATE "/submodels/*" DeleteSubmodelById DELETE /submodels/{submodelIdentifier} DELETE "/submodels/*" GetSubmodelVersionByIdAndDate GET /submodels/{submodelIdentifier}/$history READ "/submodels/*" GetSubmodelById-Metadata GET /submodels/{submodelIdentifier}/$metadata READ "/submodels/*" PatchSubmodelById-Metadata PATCH /submodels/{submodelIdentifier}/$metadata UPDATE "/submodels/*" GetSubmodelById-ValueOnly GET /submodels/{submodelIdentifier}/$value READ "/submodels/*" PatchSubmodelById-ValueOnly PATCH /submodels/{submodelIdentifier}/$value UPDATE "/submodels/*" GetSubmodelById-Reference GET /submodels/{submodelIdentifier}/$reference VIEW "/submodels/*" GetSubmodelByIdSigned GET /submodels/{submodelIdentifier}/$signed READ "/submodels/*" GetSubmodelById-Path GET /submodels/{submodelIdentifier}/$path VIEW "/submodels/*" GetAllSubmodelElements_SubmodelRepository GET /submodels/{submodelIdentifier}/submodel-elements READ "/submodels/*" PostSubmodelElement_SubmodelRepo POST /submodels/{submodelIdentifier}/submodel-elements CREATE "/submodels/*" GetAllSubmodelElements-Metadata_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/$metadata READ "/submodels/*" GetAllSubmodelElements-ValueOnly_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/$value READ "/submodels/*" GetAllSubmodelElements-Reference_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/$reference VIEW "/submodels/*" GetAllSubmodelElements-Path_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/$path VIEW "/submodels/*" GetSubmodelElementByPath_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath} READ "/submodels/*" PostSubmodelElementByPath_SubmodelRepo POST /submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE "/submodels/*" PutSubmodelElementByPath_SubmodelRepo PUT /submodels/{submodelIdentifier}/submodel-elements/{idShortPath} CREATE or UPDATE "/submodels/*" PatchSubmodelElementByPath_SubmodelRepo PATCH /submodels/{submodelIdentifier}/submodel-elements/{idShortPath} UPDATE "/submodels/*" DeleteSubmodelElementByPath_SubmodelRepo DELETE /submodels/{submodelIdentifier}/submodel-elements/{idShortPath} DELETE "/submodels/*" GetSubmodelElementByPath-Metadata_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata READ "/submodels/*" PatchSubmodelElementByPath-Metadata_SubmodelRepo PATCH /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$metadata UPDATE "/submodels/*" GetSubmodelElementByPath-ValueOnly_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value READ "/submodels/*" PatchSubmodelElementByPath-ValueOnly_SubmodelRepo PATCH /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$value UPDATE "/submodels/*" GetSubmodelElementByPath-Reference_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$reference VIEW "/submodels/*" GetSubmodelElementByPath-Path_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/$path VIEW "/submodels/*" GetFileByPath_SubmodelRepo GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment READ "/submodels/*" PutFileByPath_SubmodelRepo PUT /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment UPDATE "/submodels/*" DeleteFileByPath_SubmodelRepo DELETE /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/attachment DELETE "/submodels/*" InvokeOperation_SubmodelRepo POST /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke EXECUTE "/submodels/*" InvokeOperation-ValueOnly_SubmodelRepository POST /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke/$value EXECUTE "/submodels/*" InvokeOperationAsync_SubmodelRepository POST /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async EXECUTE "/submodels/*" InvokeOperationAsync-ValueOnly_SubmodelRepository POST /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/invoke-async/$value EXECUTE "/submodels/*" GetOperationAsyncStatus_SubmodelRepository GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-status/{handleId} EXECUTE "/submodels/*" GetOperationAsyncResult_SubmodelRepository GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId} EXECUTE "/submodels/*" GetOperationAsyncResult-ValueOnly_SubmodelRepository GET /submodels/{submodelIdentifier}/submodel-elements/{idShortPath}/operation-results/{handleId}/$value EXECUTE "/submodels/*" QuerySubmodels POST /query/submodels READ "/query/submodels" GetAllConceptDescriptions GET /concept-descriptions READ "/concept-descriptions" PostConceptDescription POST /concept-descriptions CREATE "/concept-descriptions" GetAllConceptDescriptionsRecentChanges GET /concept-descriptions/$recent-changes READ "/concept-descriptions/$recent-changes" GetConceptDescriptionById GET /concept-descriptions/{cdIdentifier} READ "/concept-descriptions/*" PutConceptDescriptionById PUT /concept-descriptions/{cdIdentifier} CREATE or UPDATE "/concept-descriptions/*" DeleteConceptDescriptionById DELETE /concept-descriptions/{cdIdentifier} DELETE "/concept-descriptions/*" GetConceptDescriptionByIdSigned GET /concept-descriptions/{cdIdentifier}/$signed READ "/concept-descriptions/*" QueryConceptDescriptions POST /query/concept-descriptions READ "/query/concept-descriptions" GetAllAssetAdministrationShellDescriptors GET /shell-descriptors VIEW "/shell-descriptors" PostAssetAdministrationShellDescriptor POST /shell-descriptors CREATE "/shell-descriptors" GetAssetAdministrationShellDescriptorById GET /shell-descriptors/{aasIdentifier} VIEW "/shell-descriptors/*" PutAssetAdministrationShellDescriptorById PUT /shell-descriptors/{aasIdentifier} CREATE or UPDATE "/shell-descriptors/*" DeleteAssetAdministrationShellDescriptorById DELETE /shell-descriptors/{aasIdentifier} DELETE "/shell-descriptors/*" GetAllSubmodelDescriptorsThroughSuperpath GET /shell-descriptors/{aasIdentifier}/submodel-descriptors VIEW "/shell-descriptors/*" PostSubmodelDescriptor-ThroughSuperpath POST /shell-descriptors/{aasIdentifier}/submodel-descriptors CREATE "/shell-descriptors/*" GetSubmodelDescriptorByIdThroughSuperpath GET /shell-descriptors/{aasIdentifier}/submodel-descriptors/{submodelIdentifier} VIEW "/shell-descriptors/*" PutSubmodelDescriptorByIdThroughSuperpath PUT /shell-descriptors/{aasIdentifier}/submodel-descriptors/{submodelIdentifier} CREATE or UPDATE "/shell-descriptors/*" DeleteSubmodelDescriptorByIdThroughSuperpath DELETE /shell-descriptors/{aasIdentifier}/submodel-descriptors/{submodelIdentifier} DELETE "/shell-descriptors/*" QueryAssetAdministrationShellDescriptors POST /query/shell-descriptors VIEW "/query/shell-descriptors" BulkPostAssetAdministrationShellDescriptor POST /bulk/shell-descriptors CREATE "/bulk/shell-descriptors" BulkPutAssetAdministrationShellDescriptorById PUT /bulk/shell-descriptors CREATE or UPDATE "/bulk/shell-descriptors" BulkDeleteAssetAdministrationShellDescriptorById DELETE /bulk/shell-descriptors DELETE "/bulk/shell-descriptors" BulkGetAsyncStatus GET /bulk/status/{handleId} originating RIGHT "/bulk/status/*" BulkGetAsyncResult GET /bulk/result/{handleId} originating RIGHT "/bulk/result/*" GetAllSubmodelDescriptors GET /submodel-descriptors VIEW "/submodel-descriptors" PostSubmodelDescriptor POST /submodel-descriptors CREATE "/submodel-descriptors" GetSubmodelDescriptorById GET /submodel-descriptors/{submodelIdentifier} VIEW "/submodel-descriptors/*" PutSubmodelDescriptorById PUT /submodel-descriptors/{submodelIdentifier} CREATE or UPDATE "/submodel-descriptors/*" DeleteSubmodelDescriptorById DELETE /submodel-descriptors/{submodelIdentifier} DELETE "/submodel-descriptors/*" QuerySubmodelDescriptors POST /query/submodel-descriptors VIEW "/query/submodel-descriptors" BulkPostSubmodel POST /bulk/submodel-descriptors CREATE "/bulk/submodel-descriptors" BulkPutSubmodelDescriptorsById PUT /bulk/submodel-descriptors CREATE or UPDATE "/bulk/submodel-descriptors" BulkDeleteSubmodelDescriptorsById DELETE /bulk/submodel-descriptors DELETE "/bulk/submodel-descriptors" GetAllAssetAdministrationShellIdsByAssetLink GET /lookup/shells VIEW "/lookup/shells" SearchAllAssetAdministrationShellIdsByAssetLink POST /lookup/shellsByAssetLink VIEW "/lookup/shellsByAssetLink" GetAllAssetLinksById GET /lookup/shells/{aasIdentifier} VIEW "/lookup/shells/*" PostAllAssetLinksById POST /lookup/shells/{aasIdentifier} CREATE or UPDATE "/lookup/shells/*" DeleteAllAssetLinksById DELETE /lookup/shells/{aasIdentifier} DELETE "/lookup/shells/*" GetAllAASXPackageIds GET /packages VIEW "/packages" PostAASXPackage POST /packages CREATE "/packages" GetAASXByPackageId GET /packages/{packageId} READ "/packages/*" PutAASXByPackageId PUT /packages/{packageId} CREATE or UPDATE "/packages/*" DeleteAASXByPackageId DELETE /packages/{packageId} DELETE "/packages/*" PostAsyncAASXPackage POST /packages-async CREATE "/packages-async" GetAasxAsyncStatus GET /packages-async/status/{handleId} CREATE "/packages-async/status/*" GetAasxAsyncResult GET /packages-async/result/{handleId} CREATE "/packages-async/result/*" GenerateSerializationByIds GET /serialization READ "/serialization" GetSelfDescription GET /description READ "/description" For profiles that expose only a subset of these operations (see Profiles), only the rows that correspond to supported operations are applicable. Operations that are added in future minor versions MUST be appended to this normative table. The indicative mapping between operation verbs and rights in IDTA-01004 may guide that assignment, but does not replace an explicit mapping here.