Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Reduced objects can be requested by the path suffix "/$<content>".
See xref:bibliography.adoc#bib1[[1]] for further details.

Exceptions to this rule are API Operations requiring pagination and error cases.

* By default, blobs are not part of the payload.
Using ?extent=WithBLOBValue includes blobs for submodel elements of kind BLOB.
* Submodels define a hierarchical structure.
Expand Down Expand Up @@ -333,7 +334,7 @@ The payload is generated from the technology-neutral specification as described
// Previously pointing to Clause 11.4.2
The link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/mappings/mappings.html#value-only-serialization-in-json[serialization of JSON values] is described in xref:bibliography.adoc#bib1[[1]].

Additional classes needed for payload of the HTTP/REST API specification can be found in xref:specification/interfaces-payload.adoc#metamodel-specification-details[Metamodel Specification Details].
Additional classes needed for payload of the HTTP/REST API specification can be found in the xref:specification/interfaces-payload.adoc#descriptor[Descriptor Definition].

[#modifier-constraints]
== Modifier Constraints
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,9 +324,9 @@ h| Casting Operator h| Description h| Definition
| `$time(<value>)` | Casts the `value` to `xs:time`. | Defined by https://www.w3.org/TR/xpath-functions/#casting-to-datetimes
|===

Implicite casting is used together with FieldIdentifiers. FieldIdentifiers are generally treated as `xs:string` in the query language. +
If a FieldIdentifier is used in a logicalExpression, it will be implicitely casted to `xs:boolean`, which can only create a valid result for the values true and false. +
If a FieldIdentifier is used in a comparison, the second parameter decides implicite casting. If the second parameter is a constant (string, number, hex, boolean, dateTime, time) or a corresponding explicite casting operator, the value of the FieldIdentifier will be implicitely casted to the corresponding data type.
Implicit casting is used together with FieldIdentifiers. FieldIdentifiers are generally treated as `xs:string` in the query language. +
If a FieldIdentifier is used in a logicalExpression, it will be implicitly casted to `xs:boolean`, which can only create a valid result for the values true and false. +
If a FieldIdentifier is used in a comparison, the second parameter decides implicit casting. If the second parameter is a constant (string, number, hex, boolean, dateTime, time) or a corresponding explicite casting operator, the value of the FieldIdentifier will be implicitely casted to the corresponding data type.


== Referring to Elements in Lists and Arrays
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,9 @@ For metamodel elements like AssetAdministrationShell, Submodel, Identifier, etc.
The AAS package format and the AAS Package type are defined in Part 5 xref:bibliography.adoc#bib4[[4\]].
This clause only defines additional classes that are needed for communication with the API.

[#metamodel-specification-details]
== Metamodel Specification Details

The following type definitions are used to describe specific metamodel elements like Asset Administration Shells and submodels regarding their network and deployment configuration.
They use certain attributes copied from the model element itself to describe it – hence the name _Descriptor_.

[#descriptor]
=== Descriptor
== Descriptor

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -51,7 +46,7 @@ e|displayName a|Display name; can be provided in several languages | link:https:
e|extension a|An extension of the element |link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/spec-metamodel/common.html#Extension[Extension] |0..*
|===

=== AssetAdministrationShellDescriptor
== AssetAdministrationShellDescriptor

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand Down Expand Up @@ -79,7 +74,7 @@ A client, therefore, might decide to skip the lookup on the AssetAdministrationS
Nevertheless, in case the information contained in the AssetAdministrationShellDescriptor deviates from the related AssetAdministrationShell, or attributes are missing, the AssetAdministrationShell is always the source of truth.
====

=== SubmodelDescriptor
== SubmodelDescriptor

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -98,7 +93,7 @@ e|semanticId a|Identifier of the semantic definition of the Submodel |link:https
e|supplementalSemanticId a|Identifier of a supplemental semantic definition of the element called supplemental semantic ID of the element |link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/spec-metamodel/referencing.html#Reference[Reference] |0..*
|===

=== Endpoint
== Endpoint

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand Down Expand Up @@ -178,7 +173,7 @@ See the following example for descriptor endpoints, that expose two submodel end
]
----

=== ProtocolInformation
== ProtocolInformation

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand Down Expand Up @@ -280,7 +275,7 @@ a|TLSA according to RFC 6698
a|Decentralized Identifiers according to the W3C Recommendation xref:bibliography.adoc#bib7[[7\]]
|===

=== AssetLink
== AssetLink

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand Down Expand Up @@ -379,7 +374,7 @@ An example ServiceDescription object might look like the following, indicating t
----

[[QueryResult]]
=== Query Results
== Query Results

Result elements of AAS queries depend on the declared output selector and the target of the query. Possible targets are Asset Administration Shells, Submodels, Concept Descriptions, Asset Administration Shell Descriptors, and Submodel Descriptors. In accordance, also these objects are returned in the Query Result. In addition, their representation can be controlled via the select statements of the input query, e.g., by only selecting the identifiers of the respective objects rather than the whole content.

Expand Down Expand Up @@ -523,7 +518,7 @@ e|QueryResult<AssetAdministrationShell> |List of Asset Administration Shells _or
----
|===

=== Simple Data Types
== Simple Data Types

All simple data types from link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/spec-metamodel/datatypes.html#predefined_simple_data_types[Part 1] xref:bibliography.adoc#bib1[[1\]] apply also to the specifications described in this document.
Additional data types are defined in <<table-simple-data-types-used-for-api-specific-classes>>.
Expand All @@ -540,7 +535,7 @@ Additional data types are defined in <<table-simple-data-types-used-for-api-spec

|===

=== Primitive Data Types
== Primitive Data Types

All primitive data types from link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/spec-metamodel/datatypes.html#primitive-data-types[Part 1] apply also to the specifications described in this document.
All constraints and spelling patterns apply as well.
Expand Down Expand Up @@ -591,15 +586,15 @@ a|

|===

=== Status Code, Error Handling & Result Messages
== Status Code, Error Handling & Result Messages

This clause deals with the error and result handling of an operation’s execution in a technology-independent manner.

The first clause covers generic status codes that are returned on each request, independent of the operation’s success or failure.
The subsequent clause describes the result object that is returned in case of failure.

[[StatusCode]]
==== Generic Status Codes
=== Generic Status Codes

Successful operations return one of the success status codes and their respective payload.

Expand Down Expand Up @@ -629,7 +624,7 @@ Additionally, the table indicates whether a specific status code comes with a re
|===

[[general-result-object]]
==== General Result Object
=== General Result Object

In case of a failed operation execution, a result object [.underline]#shall be returned# containing more information about the reasons why the operation failed to execute.

Expand Down Expand Up @@ -676,11 +671,11 @@ e|Error a|Used for handling errors
e|Exception a|Used in case of an internal and/or unhandled exception
|===

==== Operation Objects
=== Operation Objects

The following type definitions are used to call and handle the requests and responses while performing synchronous or asynchronous operation invocation.

===== OperationRequest
==== OperationRequest

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -698,7 +693,7 @@ h|Attribute h|Explanation h|Type h|Card.
|===

[#operation-request-value-only]
===== OperationRequestValueOnly
==== OperationRequestValueOnly

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -715,7 +710,7 @@ h|Attribute h|Explanation h|Type h|Card.
|clientTimeoutDuration a|Duration indicating when the client suggests the server to have finished execution of the invoked operation. The server may take this value into account to decide on its effective timeout, however, the server may or may not use by its own discretion. |duration |0..1
|===

===== BaseOperationResult
==== BaseOperationResult

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -730,7 +725,7 @@ e|executionState |Execution state |xref:ExecutionState[ExecutionState] |1
e|success |Flag indicating whether the business operation behind the operation was successful (true) or not (false) |boolean |0..1
|===

===== OperationResult
==== OperationResult

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -747,7 +742,7 @@ e|inoutputArguments |InOutput argument |link:https://industrialdigitaltwin.io/aa


[#operation-result-value-only]
===== OperationResultValueOnly
==== OperationResultValueOnly

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -762,7 +757,7 @@ e|outputArguments |Output argument |link:https://industrialdigitaltwin.io/aas-sp
e|inoutputArguments |InOutput argument |link:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1/mappings/mappings.html#json-schema-value-only[SubmodelElementValue] |0..*
|===

===== Enumeration ExecutionState
==== Enumeration ExecutionState

[.table-with-appendix-table]
[cols="30%,70%"]
Expand All @@ -781,7 +776,7 @@ e|Timeout a|The operation has timed out due to given client or server timeout
|===


===== OperationHandle
==== OperationHandle

[.table-with-appendix-table]
[cols="25%,40%,25%,10%"]
Expand All @@ -796,7 +791,7 @@ e|handleId |Handle ID |xref:ShortIdType[ShortIdType] |1
|===

[#file-content]
=== File Content
== File Content

The “File Content” type of the operations mentioned above is seen as “arbitrary binary data” according to RFC 2046 and is as such defined as byte-array in UTF8-encoding.
If a content type is required, “application/octet-stream” must be used as defined in RFC 2046.
Expand Down
Loading