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.