Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "BaSyx / Documentation / API / Submodel"

Line 14: Line 14:
 
The BaSyx Submodel Service Provider in HTTP/REST technology is defined as follows:
 
The BaSyx Submodel Service Provider in HTTP/REST technology is defined as follows:
  
 +
{| class="wikitable"
 +
|-
 +
| colspan="3" | '''Asset Administration Shell Services'''
  
{| class="wikitable" style="background-color:LightCyan;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:blue" | GET  
+
| style="color:black" | GET  
| /aas
+
| /aasList
 
| '''Description'''
 
| '''Description'''
* Returns the Asset Administration Shell that this sub model belongs to
+
* Retrieves all Asset Administration Shells from the endpoint
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns JSON-serialized list of Returns the request Asset Administration Shell
+
* 200: Returns a list of found Asset Administration Shells
 +
* 404: No Asset Administration Shells found
 
* 400: Bad Request
 
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#LightCyan;"
+
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
| style="color:blue" | GET
+
| style="color:black" | POST
| /aas/submodels
+
| /aasList
 
| '''Description'''
 
| '''Description'''
* Retrieves all SubModels from the Asset Administration Shell that the sub model belongs to
+
* Creates a new Asset Administration Shell at the endpoint
 +
 
 +
 
 +
'''Parameter'''
 +
* ''(body)'': The AAS's description object
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns a list of found SubModels
+
* 201: Asset Administration Shell created successfully
* 404: No sub models found
+
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#d3f8d3;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:SeaGreen" | POST
+
| style="color:black" | GET
| /aas/submodels
+
| /aasList/{aasId}
 
| '''Description'''
 
| '''Description'''
* Adds a new SubModel to an existing Asset Administration Shell
+
* Retrieves a specific Asset Administration Shell
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''(body)'': JSON serialized submodel description for Asset Administration Shell
+
* ''aasId'': The AAS's unique id
  
  
 
'''Response codes'''
 
'''Response codes'''
* 201: SubModel created successfully
+
* 200: Returns the requested Asset Administration Shell
 +
* 404: No Asset Administration Shell found
 
* 400: Bad Request
 
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LightCyan;"
+
|- style="border: 2px solid #fca130; background-color:rgba(252,161,48,.1);"
| style="color:blue" | GET
+
| style="color:black" | PUT
| /aas/submodels/{subModelId}
+
| /aasList/{aasId}
 
| '''Description'''
 
| '''Description'''
* Retrieves a specific SubModel structure from a specific Asset Administration Shell  
+
* Updates a specific Asset Administration Shell
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the requested sub model
+
* ''aasId'': The AAS's unique id
 +
* ''(body)'': The updated AAS
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns the requested SubModel
+
* 200: Asset Administration Shell updated successfully
* 404: No SubModel found
+
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#ffe6ea;"
+
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
| style="color:DarkRed" | DELETE  
+
| style="color:black" | DELETE  
| /aas/submodels/{subModelId}
+
| /aasList/{aasId}
 
| '''Description'''
 
| '''Description'''
* Deletes a specific SubModel from a specific Asset Administration Shell
+
* Deletes a specific Asset Administration Shell
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the sub model to be deleted
+
* ''aasId'': The AAS's unique id
  
  
 
'''Response codes'''
 
'''Response codes'''
* 204: SubModel deleted successfully
+
* 200: Asset Administration Shell deleted successfully
 
* 400: Bad Request
 
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LightCyan;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:blue" | GET
+
| style="color:black" | GET  
| /aas/submodels/{subModelId}/properties
+
| /aas
 
| '''Description'''
 
| '''Description'''
* Retrieves all properties from the addressed sub model
+
* Retrieves the Asset Administration Shell
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Success
 +
* 502: Bad Gateway - Asset Administration Shell not available
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /aas/submodels
 +
| '''Description'''
 +
* Retrieves all Submodels from the Asset Administration Shell
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Returns a list of found Submodels
 +
* 404: No Submodel Service Providers found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
 +
| style="color:black" | POST
 +
| /aas/submodels
 +
| '''Description'''
 +
* Adds a new Submodel to an existing Asset Administration Shell
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''(body)'': The Submodel's description object
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns property list
+
* 201: Submodel created successfully
* 404: No properties found
+
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#d3f8d3;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:SeaGreen" | POST
+
| style="color:black" | GET
| /aas/submodels/{subModelId}/properties
+
| /aas/submodels/{submodelId}
 
| '''Description'''
 
| '''Description'''
* Adds a new property to the sub model
+
* Retrieves the Submodel from the Asset Administration Shell
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''submodelId'': The Submodel's unique id
* ''(body)'': The property description object
+
 
 +
 
 +
'''Response codes'''
 +
* 200: Submodel retrieved successfully
 +
* 404: No Submodel Service Provider found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
 +
| style="color:black" | DELETE
 +
| /aas/submodels/{submodelId}
 +
| '''Description'''
 +
* Deletes a specific Submodel from the Asset Administration Shell
 +
 
 +
 
 +
'''Parameter'''
 +
* ''submodelId'': The Submodel's idShort
 +
 
  
 
'''Response codes'''
 
'''Response codes'''
* 201: Property created successfully
+
* 200: Submodel deleted successfully
 
* 400: Bad Request
 
* 400: Bad Request
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LightCyan;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:blue" | GET
+
| style="color:black" | GET  
| /aas/submodels/{subModelId}/operations
+
| /aas/submodels/bindings
 
| '''Description'''
 
| '''Description'''
* Retrieves all operations from the addressed sub model
+
* Retrieves all registered Submodel Service Providers within an Asset Administation Shell Service Provider
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Returns the all registered Submodel Service Provider
 +
* 404: No Submodel Service Provider found
 +
* 400: Bad Request
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /aas/submodels/{submodelId}/binding
 +
| '''Description'''
 +
* Retrieves a specific Submodel Service Provider from its containing Asset Administration Shell Service Provider
 +
 
 +
 
 +
'''Parameter'''
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Returns the requested Submodel Service Provider
 +
* 404: No Submodel Service Provider found
 +
* 400: Bad Request
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
 +
| style="color:black" | POST
 +
| /aas/submodels/{submodelId}/binding
 +
| '''Description'''
 +
* Registers a new Distributed Submodel Service Provider at the Asset Administration Shell Service Provider
 +
 
 +
 
 +
'''Parameter'''
 +
* ''(body)'': The Submodel Service Provider' service descriptor object
 +
 
 +
 
 +
'''Response codes'''
 +
* 201: Submodel Service Provider registered successfully
 +
* 400: Bad Request
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
 +
| style="color:black" | DELETE
 +
| /aas/submodels/{submodelId}/binding
 +
| '''Description'''
 +
* Unregisters a specific Submodel Service Provider from its containing Asset Administration Shell Service Provider
 +
 
 +
 
 +
'''Parameter'''
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Submodel Service Provider unregistered successfully
 +
* 400: Bad Request
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /submodel
 +
| '''Description'''
 +
* Retrieves the Submodel
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Success
 +
* 404: Submodel not found
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /submodel/dataElements
 +
| '''Description'''
 +
* Retrieves all DataElements from the current Submodel
 +
 
 +
 
 +
'''Parameter'''
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Returns a list of found DataElements
 +
* 404: Submodel not found / No DataElements found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
 +
| style="color:black" | POST
 +
| /submodel/dataElements
 +
| '''Description'''
 +
* Adds a new DataElement to the Asset Administration Shell's Submodel
 +
 
 +
 
 +
'''Parameter'''
 +
* ''(body)'': The DataElement's description object
 +
 
 +
 
 +
'''Response codes'''
 +
* 201: DataElement created successfully
 +
* 400: Bad Request
 +
* 404: Submodel not found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /submodel/operations
 +
| '''Description'''
 +
* Retrieves all Operations from the current Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
 
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns property list
+
* 200: Success
* 404: No operations found
+
* 404: Submodel not found / No Operations found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#d3f8d3;"
+
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
| style="color:SeaGreen" | POST
+
| style="color:black" | POST  
| /aas/submodels/{subModelId}/properties
+
| /submodel/operations
 
| '''Description'''
 
| '''Description'''
* Adds a new operation to the sub model
+
* Adds a new operation to the Asset Administraiton Shell's Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
 
 
* ''(body)'': The operation description object
 
* ''(body)'': The operation description object
  
Line 150: Line 300:
 
* 201: Operation created successfully
 
* 201: Operation created successfully
 
* 400: Bad Request
 
* 400: Bad Request
 +
* 404: Submodel not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LightCyan;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:blue" | GET
+
| style="color:black" | GET  
| /aas/submodels/{subModelId}/properties/{propertyId}
+
| /submodel/events
 
| '''Description'''
 
| '''Description'''
* Retrieves a specific property from a sub model
+
* Retrieves all Events from the current Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
 
* ''propertyId'': (qualified) name of the addressed property
 
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns property list
+
* 200: Success
* 404: No property found
+
* 404: Submodel not found / No Events found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LemonChiffon;"
+
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
| style="color:Sienna" | PUT
+
| style="color:black" | POST
| /aas/submodels/{subModelId}/properties/{propertyId}
+
| /submodel/events
 
| '''Description'''
 
| '''Description'''
* Sets the value of a sub model property
+
* Adds a new event to the Asset Administration Shell's Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''(body)'': The Event description object
* ''propertyId'': (qualified) name of the addressed property
+
  
  
 
'''Response codes'''
 
'''Response codes'''
* 204: Property value changed successfully
+
* 201: Event created successfully
* 404: No Property found
+
* 400: Bad Request
 +
* 404: Submodel not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#ffe6ea;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:DarkRed" | DELETE
+
| style="color:black" | GET
| /aas/submodels/{subModelId}/properties/{propertyId}
+
| /submodel/dataElements/{dataElementId}
 
| '''Description'''
 
| '''Description'''
* Deletes a sub model property
+
* Retrieves a specific DataElement from the Asset Administrations's Submodel
 +
 
 +
 
 +
'''Parameter'''
 +
* ''dataElementId'': The DataElement's short id
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Returns the requested DataElement
 +
* 404: Submodel/DataElement not found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
 +
| style="color:black" | DELETE
 +
| /submodel/dataElements/{dataElementId}
 +
| '''Description'''
 +
* Deletes a specific DataElement from the Asset Administration Shell's Submodel
 +
 
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''dataElementId'': The DataElement's short id
* ''propertyId'': (qualified) name of the addressed property
+
  
  
 
'''Response codes'''
 
'''Response codes'''
* 204: Property deleted successfully
+
* 200: DataElement deleted successfully
 
* 400: Bad Request
 
* 400: Bad Request
 +
* 404: Submodel not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:LightCyan;"
+
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
| style="color:blue" | GET
+
| style="color:black" | GET  
| /aas/submodels/{subModelId}/properties/{operationId}
+
| /submodel/dataElements/{dataElementId}/value
 
| '''Description'''
 
| '''Description'''
* Retrieves a specific operation descriptor from a sub model
+
* Retrieves the value of a specific DataElement from the Asset Administrations Shell's Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''dataElementId'': The DataElement's short id
* ''operationId'': (qualified) name of the addressed operation
+
  
  
 
'''Response codes'''
 
'''Response codes'''
* 200: Returns requested operation descriptor
+
* 200: Returns the requested DataElement's value
* 404: No operationfound
+
* 404: Submodel/DataElement not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#d3f8d3;"
+
|- style="border: 2px solid #fca130; background-color:rgba(252,161,48,.1);"
| style="color:SeaGreen" | POST
+
| style="color:black" | PUT
| /aas/submodels/{subModelId}/properties/{operationId}
+
| /submodel/dataElements/{dataElementId}/value
 
| '''Description'''
 
| '''Description'''
* Invokes a sub model operation with the specified list of parameter
+
* Updates the Asset Administration Shell's Submodel's DataElement
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''dataElementId'': The DataElement's short id
* ''operationId'': (qualified) name of the addressed operation
+
* ''(body)'': The new value
  
  
 
'''Response codes'''
 
'''Response codes'''
* 204: Operation invoked successfully
+
* 200: DataElement's value changed successfully
 +
* 404: Submodel/DataElement not found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /submodel/operations/{operationId}
 +
| '''Description'''
 +
* Retrieves a specific Operation from the Asset Administration Shell's Submodel
 +
 
 +
 
 +
'''Parameter'''
 +
* ''operationId'': The Operation's short id
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Success
 +
* 404: Submodel/Operation not found
 +
* 502: Bad Gateway
 +
 
 +
|- style="border: 2px solid #49cc90; background-color:rgba(73,204,144,.1);"
 +
| style="color:black" | POST
 +
| /submodel/operations/{operationId}
 +
| '''Description'''
 +
* Invokes a specific operation from the Asset Administration Shell' Submodel with a list of input parameters
 +
 
 +
 
 +
'''Parameter'''
 +
* ''operationId'': The operation's short id
 +
* ''(body)'': List of input arguments
 +
 
 +
 
 +
'''Response codes'''
 +
* 200: Operation invoked successfully
 
* 400: Bad Request
 
* 400: Bad Request
 +
* 404: Submodel not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
  
|- style="background-color:#ffe6ea;"
+
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
| style="color:DarkRed" | DELETE
+
| style="color:black" | DELETE  
| /aas/submodels/{subModelId}/properties/{propertyId}
+
| /submodel/operations/{operationId}
 
| '''Description'''
 
| '''Description'''
* Deletes a sub model operation
+
* Deletes a specific Operation from the Asset Administration Shell's Submodel
  
  
 
'''Parameter'''
 
'''Parameter'''
* ''subModelId'': Unique ID of the addressed sub model
+
* ''operationId'': The Operation's short id
* ''operationId'': (qualified) name of the addressed operation
+
  
  
 
'''Response codes'''
 
'''Response codes'''
* 204: Operation deleted successfully
+
* 200: Operation deleted successfully
 
* 400: Bad Request
 
* 400: Bad Request
 +
* 404: Submodel not found
 
* 502: Bad Gateway
 
* 502: Bad Gateway
|}
 
  
 +
|- style="border: 2px solid #61affe; background-color:rgba(97,175,254,.1);"
 +
| style="color:black" | GET
 +
| /submodel/events/{eventId}
 +
| '''Description'''
 +
* Retrieves a specific event from the Asset Administration Shell's Submodel
 +
 +
 +
'''Parameter'''
 +
* ''eventId'': The Event's short id
 +
 +
 +
'''Response codes'''
 +
* 200: Success
 +
* 404: Submodel/Event not found
 +
* 502: Bad Gateway
 +
 +
|- style="border: 2px solid #f93e3e; background-color:rgba(249,62,62,.1);"
 +
| style="color:black" | DELETE
 +
| /submodel/events/{eventId}
 +
| '''Description'''
 +
* Deletes a specific event from the Asset Administration Shell's Submodel
 +
 +
 +
'''Parameter'''
 +
* ''eventId'': The Event's short id
 +
 +
 +
'''Response codes'''
 +
* 200: Event deleted successfully
 +
* 400: Bad Request
 +
* 404: Submodel not found
 +
* 502: Bad Gateway
 +
 +
|}
  
 
{| class="wikitable"
 
{| class="wikitable"
 
| BaSyx project links:  [[BaSyx | Project BaSyx main wiki page]]  <nowiki>|</nowiki>  [[BaSyx.WhatIsBasyx | What is BaSyx?]]  <nowiki>|</nowiki>  [[BaSyx.Documentation | BaSyx Developer Documentation]]
 
| BaSyx project links:  [[BaSyx | Project BaSyx main wiki page]]  <nowiki>|</nowiki>  [[BaSyx.WhatIsBasyx | What is BaSyx?]]  <nowiki>|</nowiki>  [[BaSyx.Documentation | BaSyx Developer Documentation]]
 
|}
 
|}

Revision as of 07:29, 22 June 2019

"A Submodel defines a specific aspect of the asset represented by the Asset Administration Shell. A Submodel is used to structure the virtual representation and technical functionality of an Administration Shell into distinguishable parts. Each Submodel refers to a well-defined domain or subject matter. Submodels can become standardized and thus become submodels types. Submodels can have different life-cycles." (Details of the Asset Administration Shell, 2018, p. 46, [1])

Amongst the official attributes of Submodels, BaSyx defines aggregates called data elements, operations and events. These aggregates are used to structure official SubmodelElements (Property, ReferenceElement, Event, Operation, etc.) into groups of same functionality, i.e.

  • DataElements as collection for value-based properties
  • Operations as collection for callable methods
  • Events as collection for events descriptions.

But the information model of a Submodel is only one side of the coin. BaSyx follows a distributed approach, i.e. Submodels may be deployed in distributed infrastructure. Asset Administration Shells only refer to their Submodels by terms of a reference comprising the Submodel's endpoints. They do not know about their Submodels' content but they know the way to it. On the other side, Submodels may reference their Asset Administration Shells as well via a parent attribute.

In order to access the Submodel's content, BaSyx defines so-called Submodel Service Providers. These Service Providers are used to make data elements, operations and events accessible by defining various access methods, e.g. GET- and SET- resp. MethodCalled-handler. Initially, on an abstract level, there is no technology binding necessary to build or use a service provider. Later of course, when starting the runtime, BaSyx provides highly generic technology bindings which can be used to grant access to the Submodel's content via chosen technology (HTTP/REST, OPC UA, BaSyx native).

In a nutshell, BaSyx Submodel Service Providers enable access to Submodels' content. A Submodel Service Provider needs to implement the generic Submodel Service Provider interface that is exemplary described on this page in HTTP/REST technology. The Submodel Service Provider enables access to data elements, operations and events. The BaSyx Submodel Service Provider may provide a façade hiding numerous (proprietary) data sources, e.g. SQL databases, XML configuration files, AutomationML, Hashmaps, Lambda, XQuery and many more. Furthermore, the BaSyx SDK enables creation of custom Submodel Service Providers. This is done by deriving from abstract BaSyx Service Provider interfaces.

The BaSyx Submodel Service Provider in HTTP/REST technology is defined as follows:

Asset Administration Shell Services
GET /aasList Description
  • Retrieves all Asset Administration Shells from the endpoint


Response codes

  • 200: Returns a list of found Asset Administration Shells
  • 404: No Asset Administration Shells found
  • 400: Bad Request
  • 502: Bad Gateway
POST /aasList Description
  • Creates a new Asset Administration Shell at the endpoint


Parameter

  • (body): The AAS's description object


Response codes

  • 201: Asset Administration Shell created successfully
  • 400: Bad Request
  • 502: Bad Gateway
GET /aasList/{aasId} Description
  • Retrieves a specific Asset Administration Shell


Parameter

  • aasId: The AAS's unique id


Response codes

  • 200: Returns the requested Asset Administration Shell
  • 404: No Asset Administration Shell found
  • 400: Bad Request
  • 502: Bad Gateway
PUT /aasList/{aasId} Description
  • Updates a specific Asset Administration Shell


Parameter

  • aasId: The AAS's unique id
  • (body): The updated AAS


Response codes

  • 200: Asset Administration Shell updated successfully
  • 400: Bad Request
  • 502: Bad Gateway
DELETE /aasList/{aasId} Description
  • Deletes a specific Asset Administration Shell


Parameter

  • aasId: The AAS's unique id


Response codes

  • 200: Asset Administration Shell deleted successfully
  • 400: Bad Request
  • 502: Bad Gateway
GET /aas Description
  • Retrieves the Asset Administration Shell


Response codes

  • 200: Success
  • 502: Bad Gateway - Asset Administration Shell not available
GET /aas/submodels Description
  • Retrieves all Submodels from the Asset Administration Shell


Response codes

  • 200: Returns a list of found Submodels
  • 404: No Submodel Service Providers found
  • 502: Bad Gateway
POST /aas/submodels Description
  • Adds a new Submodel to an existing Asset Administration Shell


Parameter

  • (body): The Submodel's description object


Response codes

  • 201: Submodel created successfully
  • 400: Bad Request
  • 502: Bad Gateway
GET /aas/submodels/{submodelId} Description
  • Retrieves the Submodel from the Asset Administration Shell


Parameter

  • submodelId: The Submodel's unique id


Response codes

  • 200: Submodel retrieved successfully
  • 404: No Submodel Service Provider found
  • 502: Bad Gateway
DELETE /aas/submodels/{submodelId} Description
  • Deletes a specific Submodel from the Asset Administration Shell


Parameter

  • submodelId: The Submodel's idShort


Response codes

  • 200: Submodel deleted successfully
  • 400: Bad Request
  • 502: Bad Gateway
GET /aas/submodels/bindings Description
  • Retrieves all registered Submodel Service Providers within an Asset Administation Shell Service Provider


Response codes

  • 200: Returns the all registered Submodel Service Provider
  • 404: No Submodel Service Provider found
  • 400: Bad Request
  • 502: Bad Gateway
GET /aas/submodels/{submodelId}/binding Description
  • Retrieves a specific Submodel Service Provider from its containing Asset Administration Shell Service Provider


Parameter


Response codes

  • 200: Returns the requested Submodel Service Provider
  • 404: No Submodel Service Provider found
  • 400: Bad Request
  • 502: Bad Gateway
POST /aas/submodels/{submodelId}/binding Description
  • Registers a new Distributed Submodel Service Provider at the Asset Administration Shell Service Provider


Parameter

  • (body): The Submodel Service Provider' service descriptor object


Response codes

  • 201: Submodel Service Provider registered successfully
  • 400: Bad Request
  • 502: Bad Gateway
DELETE /aas/submodels/{submodelId}/binding Description
  • Unregisters a specific Submodel Service Provider from its containing Asset Administration Shell Service Provider


Parameter


Response codes

  • 200: Submodel Service Provider unregistered successfully
  • 400: Bad Request
  • 502: Bad Gateway
GET /submodel Description
  • Retrieves the Submodel


Response codes

  • 200: Success
  • 404: Submodel not found
GET /submodel/dataElements Description
  • Retrieves all DataElements from the current Submodel


Parameter


Response codes

  • 200: Returns a list of found DataElements
  • 404: Submodel not found / No DataElements found
  • 502: Bad Gateway
POST /submodel/dataElements Description
  • Adds a new DataElement to the Asset Administration Shell's Submodel


Parameter

  • (body): The DataElement's description object


Response codes

  • 201: DataElement created successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
GET /submodel/operations Description
  • Retrieves all Operations from the current Submodel


Parameter


Response codes

  • 200: Success
  • 404: Submodel not found / No Operations found
  • 502: Bad Gateway
POST /submodel/operations Description
  • Adds a new operation to the Asset Administraiton Shell's Submodel


Parameter

  • (body): The operation description object


Response codes

  • 201: Operation created successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
GET /submodel/events Description
  • Retrieves all Events from the current Submodel


Parameter


Response codes

  • 200: Success
  • 404: Submodel not found / No Events found
  • 502: Bad Gateway
POST /submodel/events Description
  • Adds a new event to the Asset Administration Shell's Submodel


Parameter

  • (body): The Event description object


Response codes

  • 201: Event created successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
GET /submodel/dataElements/{dataElementId} Description
  • Retrieves a specific DataElement from the Asset Administrations's Submodel


Parameter

  • dataElementId: The DataElement's short id


Response codes

  • 200: Returns the requested DataElement
  • 404: Submodel/DataElement not found
  • 502: Bad Gateway
DELETE /submodel/dataElements/{dataElementId} Description
  • Deletes a specific DataElement from the Asset Administration Shell's Submodel


Parameter

  • dataElementId: The DataElement's short id


Response codes

  • 200: DataElement deleted successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
GET /submodel/dataElements/{dataElementId}/value Description
  • Retrieves the value of a specific DataElement from the Asset Administrations Shell's Submodel


Parameter

  • dataElementId: The DataElement's short id


Response codes

  • 200: Returns the requested DataElement's value
  • 404: Submodel/DataElement not found
  • 502: Bad Gateway
PUT /submodel/dataElements/{dataElementId}/value Description
  • Updates the Asset Administration Shell's Submodel's DataElement


Parameter

  • dataElementId: The DataElement's short id
  • (body): The new value


Response codes

  • 200: DataElement's value changed successfully
  • 404: Submodel/DataElement not found
  • 502: Bad Gateway
GET /submodel/operations/{operationId} Description
  • Retrieves a specific Operation from the Asset Administration Shell's Submodel


Parameter

  • operationId: The Operation's short id


Response codes

  • 200: Success
  • 404: Submodel/Operation not found
  • 502: Bad Gateway
POST /submodel/operations/{operationId} Description
  • Invokes a specific operation from the Asset Administration Shell' Submodel with a list of input parameters


Parameter

  • operationId: The operation's short id
  • (body): List of input arguments


Response codes

  • 200: Operation invoked successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
DELETE /submodel/operations/{operationId} Description
  • Deletes a specific Operation from the Asset Administration Shell's Submodel


Parameter

  • operationId: The Operation's short id


Response codes

  • 200: Operation deleted successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
GET /submodel/events/{eventId} Description
  • Retrieves a specific event from the Asset Administration Shell's Submodel


Parameter

  • eventId: The Event's short id


Response codes

  • 200: Success
  • 404: Submodel/Event not found
  • 502: Bad Gateway
DELETE /submodel/events/{eventId} Description
  • Deletes a specific event from the Asset Administration Shell's Submodel


Parameter

  • eventId: The Event's short id


Response codes

  • 200: Event deleted successfully
  • 400: Bad Request
  • 404: Submodel not found
  • 502: Bad Gateway
BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation

Back to the top