Model Catalog API (v1)

Download OpenAPI specification:Download

API to manage semantic models and namespaces for a Model Catalog

Conditional Headers

Certain resources are supporting conditional headers like If-Match or If-Modified-Since which makes a request conditional. This allows to further optimize requests e.g. to avoid the download of model elements if it has not been modified since the date defined by If-Modified-Since.

Further it is possible to combine headers by defining it separately. Using 'curl' this looks like:

curl ... -H 'If-Match: {hash}' -H 'If-Modified-Since: {date-time}'

Authentication

The API offers currently one form of authentication:

  • OAuth2 - An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.

HAL Format

The API uses the HAL Format for HATEOAS see https://de.wikipedia.org/wiki/Hypertext_Application_Language

Package

Upload one or more namespaces (RDF/Turtle files) as a package (zip archive) There are the following restrictions. For content-type multipart/form-data you can upload 1MB. If you use directly the content-type application/zip there zip cannot be larger than 128 KB.

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Namespace

Get all namespaces

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

query Parameters
page
integer >= 0
Default: 0

Index of the current page

pageSize
integer [ 1 .. 500 ]
Default: 500

Responses

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Get the Namespace and included SAMM concepts (Aspect, Entities, Properties, etc.)

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

query Parameters
fully-resolved
boolean
Default: false

Enforce to fully resolve external references and return it as one TTL

Responses

Response samples

Content type
<<binary content>>

Deletes the namespace

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

Responses

Gets the namespace on which given namespace depends on

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

Responses

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Get the state of the namespace

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

Responses

Response samples

Content type
application/json
"RELEASED"

Change the namespace state

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

Request Body schema: application/json
required
state
required
string (StateDto)
Enum: "DRAFT" "RELEASED" "DEPRECATED"

The possible workflow states a namespace can have

Responses

Request samples

Content type
application/json
{
  • "state": "RELEASED"
}

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Get the next states for the namespace

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (NamespaceUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0

Qualified identifier for a versioned Namespace

Responses

Response samples

Content type
application/json
"RELEASED"

Model

Get the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
{
  • "@id": "urn:samm:com.bosch.dts.catalog.test.2:1.2.0#TestAspect2",
  • "samm:events": {
    },
  • "samm:operations": {
    },
  • "@type": "samm:Aspect",
  • "samm:properties": {
    },
  • "samm:description": {
    },
  • "@context": {}
}

Get the raw Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<urn:samm:com.mycompany.test:1.2.0#BooleanEntity> a <urn:samm:org.eclipse.esmf.samm:meta-model:2.1.0#Entity> ;
<urn:samm:org.eclipse.esmf.samm:meta-model:2.1.0#properties> ( <urn:samm:com.bosch.dts.catalog.test:1.2.0#testBoolean> ) .

<urn:samm:com.mycompany.test:1.2.0#BooleanTestCharacteristic> a <urn:samm:org.eclipse.esmf.samm:meta-model:2.1.0#Characteristic> ;
<urn:samm:org.eclipse.esmf.samm:meta-model:2.1.0#dataType> xsd:boolean ;
<urn:samm:org.eclipse.esmf.samm:meta-model:2.1.0#preferredName> "BooleanTestCharacteristic"@en .

Get the diagram for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

query Parameters
locale
string
Default: "en"

Locale to resolve e.g. preferred name and description

Responses

Response samples

Content type
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="867.25pt" width="1079.0pt" viewBox="0.00 0.00 1079.0 867.25">
  <g id="graph_root" class="graph" transform="scale(1.0 1.0) rotate(0)">
  </g>
</svg>

Get the documentation for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

query Parameters
locale
string
Default: "en"

Locale to resolve e.g. preferred name and description

Responses

Response samples

Content type
<!doctype html>
<html lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; chartset=utf-8">
    <title>Documentation TestAspect</title>
  </head>
  <body class="flex">
    <header class="fixed w-full flex flex-col z-10 top-0 bg-white">
      <h1 id="TestAspect">Aspect Model TestAspect</h1>
      <div class='pb-4'>urn:samm:com.mycompany.test:1.2.0#TestAspect</div>
    </header>
    <div class="pb-5">
        A test Aspect
    </div>
  </body>
</html>

Get the JSON Schema for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
{
  • "description": "A test Aspect",
  • "type": "object",
  • "components": {
    },
  • "properties": {
    },
  • "required": [
    ]
}

Get the example payload for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
{
  • "testBoolean": true,
  • "secondTestBoolean": false
}

Generate Open API specification for Aspect Model in JSON format

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Request Body schema: application/json
optional
language
string
Default: "en"

The language of the Aspect Model that will be used for generation in ISO 639 format

baseUrl
string
Default: ""

The base URL that will be used in the OpenAPI specification

includeQueryApi
boolean
Default: false

Add query API to the generated specification

useSemanticVersion
boolean
Default: false

Determines whether semantic versioning should be used for the API. i.e., true = v1.2.3, false = v1

paging
string
Enum: "NO_PAGING" "CURSOR_BASED_PAGING" "OFFSET_BASED_PAGING" "TIME_BASED_PAGING"

Pagination type

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
{
  • "value": "{\n \"openapi\":\"3.0.3\",\n \"info\":{\n \"title\":\"ValidTestAspect\",\n \"version\":\"v1\"\n },\n \"servers\":[\n {\n \"url\":\"/api/v1\",\n \"variables\":{\n \"api-version\":{\n \"default\":\"v1\"\n }\n }\n }\n ],\n \"paths\":{\n \"/{tenant-id}/valid-test-aspect\":{\n \"get\":{\n \"tags\":[\n \"ValidTestAspect\"\n ],\n \"operationId\":\"getValidTestAspect\",\n \"parameters\":[\n {\n \"name\":\"tenant-id\",\n \"in\":\"path\",\n \"description\":\"The ID of the tenant owning the requested Twin.\",\n \"required\":true,\n \"schema\":{\n \"type\":\"string\",\n \"format\":\"uuid\"\n }\n }\n ],\n \"responses\":{\n \"200\":{\n \"$ref\":\"#/components/responses/ValidTestAspect\"\n },\n \"401\":{\n \"$ref\":\"#/components/responses/ClientError\"\n },\n \"402\":{\n \"$ref\":\"#/components/responses/Unauthorized\"\n },\n \"403\":{\n \"$ref\":\"#/components/responses/Forbidden\"\n },\n \"404\":{\n \"$ref\":\"#/components/responses/NotFoundError\"\n }\n }\n },\n \"post\":{\n \"servers\":[\n {\n \"url\":\"/query-api/v1\",\n \"variables\":{\n \"api-version\":{\n \"default\":\"v1\"\n }\n }\n }\n ],\n \"tags\":[\n \"ValidTestAspect\"\n ],\n \"operationId\":\"postValidTestAspect\",\n \"parameters\":[\n {\n \"name\":\"tenant-id\",\n \"in\":\"path\",\n \"description\":\"The ID of the tenant owning the requested Twin.\",\n \"required\":true,\n \"schema\":{\n \"type\":\"string\",\n \"format\":\"uuid\"\n }\n }\n ],\n \"requestBody\":{\n \"$ref\":\"#/components/requestBodies/Filter\"\n },\n \"responses\":{\n \"200\":{\n \"$ref\":\"#/components/responses/ValidTestAspect\"\n },\n \"401\":{\n \"$ref\":\"#/components/responses/ClientError\"\n },\n \"402\":{\n \"$ref\":\"#/components/responses/Unauthorized\"\n },\n \"403\":{\n \"$ref\":\"#/components/responses/Forbidden\"\n },\n \"404\":{\n \"$ref\":\"#/components/responses/NotFoundError\"\n }\n }\n }\n }\n },\n \"components\":{\n \"schemas\":{\n \"ErrorResponse\":{\n \"type\":\"object\",\n \"required\":[\n \"error\"\n ],\n \"properties\":{\n \"error\":{\n \"$ref\":\"#/components/schemas/Error\"\n }\n }\n },\n \"Error\":{\n \"type\":\"object\",\n \"required\":[\n \"details\"\n ],\n \"properties\":{\n \"message\":{\n \"type\":\"string\",\n \"minLength\":1\n },\n \"path\":{\n \"type\":\"string\",\n \"minLength\":1\n },\n \"details\":{\n \"type\":\"object\",\n \"minLength\":1,\n \"additionalProperties\":{\n \"type\":\"object\"\n }\n },\n \"code\":{\n \"type\":\"string\",\n \"nullable\":true\n }\n }\n },\n \"Filter\":{\n \"type\":\"object\",\n \"required\":[\n \"filter\"\n ],\n \"properties\":{\n \"filter\":{\n \"type\":\"string\",\n \"description\":\"The filter to use.\",\n \"example\":\"filter={filter expression}\"\n },\n \"option\":{\n \"type\":\"string\",\n \"description\":\"The option for the filter.\",\n \"example\":\"option=limit({start},{count})\"\n }\n }\n },\n \"urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text\":{\n \"type\":\"string\",\n \"description\":\"Describes a Property which contains plain text. This is intended exclusively for human readable strings, not for identifiers, measurement values, etc.\"\n },\n \"urn_samm_com.bosch.dts.catalog.test_1.2.0_Int\":{\n \"type\":\"number\",\n \"minimum\":-2147483648,\n \"maximum\":2147483647\n },\n \"urn_samm_com.bosch.dts.catalog.test_1.2.0_Float\":{\n \"type\":\"number\"\n },\n \"urn_samm_com.bosch.dts.catalog.test_1.2.0_LocalDateTime\":{\n \"type\":\"string\",\n \"pattern\":\"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\\\.[0-9]+)?|(24:00:00(\\\\.0+)?))(Z|(\\\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?\"\n },\n \"ValidTestAspect\":{\n \"type\":\"object\",\n \"properties\":{\n \"testString\":{\n \"description\":\"A big description for testString which it will be splitted by generation into multiple lines\",\n \"$ref\":\"#/components/schemas/urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text\"\n },\n \"testInt\":{\n \"$ref\":\"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_Int\"\n },\n \"testFloat\":{\n \"$ref\":\"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_Float\"\n },\n \"testLocalDateTime\":{\n \"$ref\":\"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_LocalDateTime\"\n },\n \"randomValue\":{\n \"$ref\":\"#/components/schemas/urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text\"\n }\n },\n \"required\":[\n \"testString\",\n \"testInt\",\n \"testFloat\",\n \"testLocalDateTime\",\n \"randomValue\"\n ]\n }\n },\n \"responses\":{\n \"Unauthorized\":{\n \"description\":\"The requesting user or client is not authenticated.\"\n },\n \"Forbidden\":{\n \"description\":\"The requesting user or client is not authorized to access resources for the given tenant.\"\n },\n \"NotFoundError\":{\n \"description\":\"The requested Twin has not been found.\"\n },\n \"ClientError\":{\n \"description\":\"Payload or user input is invalid. See error details in the payload for more.\",\n \"content\":{\n \"application/json\":{\n \"schema\":{\n \"$ref\":\"#/components/schemas/ErrorResponse\"\n }\n }\n }\n },\n \"ValidTestAspect\":{\n \"content\":{\n \"application/json\":{\n \"schema\":{\n \"$ref\":\"#/components/schemas/ValidTestAspect\"\n }\n }\n },\n \"description\":\"The request was successful.\"\n }\n },\n \"requestBodies\":{\n \"ValidTestAspect\":{\n \"content\":{\n \"application/json\":{\n \"schema\":{\n \"$ref\":\"#/components/schemas/ValidTestAspect\"\n }\n }\n }\n },\n \"Filter\":{\n \"content\":{\n \"application/json\":{\n \"schema\":{\n \"$ref\":\"#/components/schemas/Filter\"\n }\n }\n }\n }\n }\n }\n}\n"
}

Generate Open API specification for Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Request Body schema: application/json
optional
language
string
Default: "en"

The language of the Aspect Model that will be used for generation in ISO 639 format

baseUrl
string
Default: ""

The base URL that will be used in the OpenAPI specification

includeQueryApi
boolean
Default: false

Add query API to the generated specification

useSemanticVersion
boolean
Default: false

Determines whether semantic versioning should be used for the API. i.e., true = v1.2.3, false = v1

paging
string
Enum: "NO_PAGING" "CURSOR_BASED_PAGING" "OFFSET_BASED_PAGING" "TIME_BASED_PAGING"

Pagination type

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
{
  "value": "---\nopenapi: 3.0.3\ninfo:\n  title: ValidTestAspect\n  version: v1\nservers:\n- url: \"/api/v1\"\n  variables:\n    api-version:\n      default: v1\npaths:\n  \"/{tenant-id}/valid-test-aspect\":\n    get:\n      tags:\n      - ValidTestAspect\n      operationId: getValidTestAspect\n      parameters:\n      - name: tenant-id\n        in: path\n        description: The ID of the tenant owning the requested Twin.\n        required: true\n        schema:\n          type: string\n          format: uuid\n      responses:\n        '200':\n          \"$ref\": \"#/components/responses/ValidTestAspect\"\n        '401':\n          \"$ref\": \"#/components/responses/ClientError\"\n        '402':\n          \"$ref\": \"#/components/responses/Unauthorized\"\n        '403':\n          \"$ref\": \"#/components/responses/Forbidden\"\n        '404':\n          \"$ref\": \"#/components/responses/NotFoundError\"\n    post:\n      servers:\n      - url: \"/query-api/v1\"\n        variables:\n          api-version:\n            default: v1\n      tags:\n      - ValidTestAspect\n      operationId: postValidTestAspect\n      parameters:\n      - name: tenant-id\n        in: path\n        description: The ID of the tenant owning the requested Twin.\n        required: true\n        schema:\n          type: string\n          format: uuid\n      requestBody:\n        \"$ref\": \"#/components/requestBodies/Filter\"\n      responses:\n        '200':\n          \"$ref\": \"#/components/responses/ValidTestAspect\"\n        '401':\n          \"$ref\": \"#/components/responses/ClientError\"\n        '402':\n          \"$ref\": \"#/components/responses/Unauthorized\"\n        '403':\n          \"$ref\": \"#/components/responses/Forbidden\"\n        '404':\n          \"$ref\": \"#/components/responses/NotFoundError\"\ncomponents:\n  schemas:\n    ErrorResponse:\n      type: object\n      required:\n      - error\n      properties:\n        error:\n          \"$ref\": \"#/components/schemas/Error\"\n    Error:\n      type: object\n      required:\n      - details\n      properties:\n        message:\n          type: string\n          minLength: 1\n        path:\n          type: string\n          minLength: 1\n        details:\n          type: object\n          minLength: 1\n          additionalProperties:\n            type: object\n        code:\n          type: string\n          nullable: true\n    Filter:\n      type: object\n      required:\n      - filter\n      properties:\n        filter:\n          type: string\n          description: The filter to use.\n          example: filter={filter expression}\n        option:\n          type: string\n          description: The option for the filter.\n          example: option=limit({start},{count})\n    urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text:\n      type: string\n      description: Describes a Property which contains plain text. This is intended\n        exclusively for human readable strings, not for identifiers, measurement values,\n        etc.\n    urn_samm_com.bosch.dts.catalog.test_1.2.0_Int:\n      type: number\n      minimum: -2147483648\n      maximum: 2147483647\n    urn_samm_com.bosch.dts.catalog.test_1.2.0_Float:\n      type: number\n    urn_samm_com.bosch.dts.catalog.test_1.2.0_LocalDateTime:\n      type: string\n      pattern: \"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\\\.[0-9]+)?|(24:00:00(\\\\.0+)?))(Z|(\\\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?\"\n    ValidTestAspect:\n      type: object\n      properties:\n        testString:\n          description: A big description for testString which it will be splitted\n            by generation into multiple lines\n          \"$ref\": \"#/components/schemas/urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text\"\n        testInt:\n          \"$ref\": \"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_Int\"\n        testFloat:\n          \"$ref\": \"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_Float\"\n        testLocalDateTime:\n          \"$ref\": \"#/components/schemas/urn_samm_com.bosch.dts.catalog.test_1.2.0_LocalDateTime\"\n        randomValue:\n          \"$ref\": \"#/components/schemas/urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Text\"\n      required:\n      - testString\n      - testInt\n      - testFloat\n      - testLocalDateTime\n      - randomValue\n  responses:\n    Unauthorized:\n      description: The requesting user or client is not authenticated.\n    Forbidden:\n      description: The requesting user or client is not authorized to access resources\n        for the given tenant.\n    NotFoundError:\n      description: The requested Twin has not been found.\n    ClientError:\n      description: Payload or user input is invalid. See error details in the payload\n        for more.\n      content:\n        application/json:\n          schema:\n            \"$ref\": \"#/components/schemas/ErrorResponse\"\n    ValidTestAspect:\n      content:\n        application/json:\n          schema:\n            \"$ref\": \"#/components/schemas/ValidTestAspect\"\n      description: The request was successful.\n  requestBodies:\n    ValidTestAspect:\n      content:\n        application/json:\n          schema:\n            \"$ref\": \"#/components/schemas/ValidTestAspect\"\n    Filter:\n      content:\n        application/json:\n          schema:\n            \"$ref\": \"#/components/schemas/Filter\"\n"
}

Get the AASX format for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
<<binary content>>

Get the AAS JSON format for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
{
  • "assetAdministrationShells": [
    ],
  • "conceptDescriptions": [ ]
}

Get the AAS XML format for the Aspect Model

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

urn
required
string (AspectModelUrn)
Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement

Encoded qualified identifier of the Aspect Model

Responses

Response samples

Content type
<?xml version='1.0' encoding='UTF-8'?>
<aas:environment xmlns:aas="https://admin-shell.io/aas/3/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://admin-shell.io/aas/3/0 AAS.xsd">
  <aas:assetAdministrationShells>
      <aas:assetAdministrationShell>
        <aas:idShort>defaultAdminShell</aas:idShort>
        <aas:description>
          <aas:langStringTextType>
            <aas:language>en</aas:language>
            <aas:text>defaultAdminShell</aas:text>
          </aas:langStringTextType>
        </aas:description>
        <aas:administration/>
        <aas:id>urn:samm:com.mycompany.test:1.2.0#TestAspect</aas:id>
        <aas:assetInformation>
          <aas:assetKind>Type</aas:assetKind>
        </aas:assetInformation>
        <aas:submodels/>
      </aas:assetAdministrationShell>
    </aas:assetAdministrationShells>
    <aas:conceptDescriptions/>
</aas:environment>

Search

Search namespaces

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

Request Body schema: application/json
page
required
integer >= 0
Default: 0

Index of the current page

pageSize
required
integer [ 1 .. 500 ]
Default: 500

Number of items per page

namespacePattern
string or null [ 1 .. 100 ] characters

Search for a namespace. Wildcard is supported at the end only.

state
string or null
Enum: "DRAFT" "RELEASED" "DEPRECATED"

The possible workflow states a namespace can have

object or null

Search within the range of versions

Responses

Request samples

Content type
application/json
{
  • "page": 0,
  • "pageSize": 500,
  • "namespacePattern": "move*",
  • "state": "RELEASED",
  • "versionRangePattern": {
    }
}

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Search SAMM elements like Entities, Aspects, etc.

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

Request Body schema: application/json
page
required
integer >= 0
Default: 0

Index of the current page

pageSize
required
integer [ 1 .. 500 ]
Default: 500

Number of items per page

modelElementNamePattern
string or null [ 3 .. 100 ] characters

Search for a name. Wildcard is supported at the end only.

object (ModelElementPreferredNamePatternDto)

Search for preferred name. Wildcard is supported at the end only.

state
string (StateDto)
Enum: "DRAFT" "RELEASED" "DEPRECATED"

The possible workflow states a namespace can have

object (VersionRangeSearchPatternDto)

Search within the range of versions

modelElementTypes
Array of strings or null (ModelElementTypeDto) unique
Items Enum: "ASPECT" "OPERATION" "EVENT" "PROPERTY" "ENTITY" "CHARACTERISTIC" "CONSTRAINT"

Search for element types.

namespacePattern
string or null [ 1 .. 100 ] characters

Search for one or more namespaces. Wildcard is supported at the end only.

Responses

Request samples

Content type
application/json
{
  • "page": 0,
  • "pageSize": 500,
  • "modelElementNamePattern": "move*",
  • "modelElementPreferredNamePattern": {
    },
  • "state": "RELEASED",
  • "versionRangePattern": {
    },
  • "modelElementTypes": [
    ],
  • "namespacePattern": "com.bosch.*"
}

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}

Setting

Get all whitelisted namespaces for the tenant

Authorizations:
catalog
path Parameters
tenantId
required
string <uuid>

Unique identifier of the owning tenant

Responses

Response samples

Content type
application/json
{
  • "totalItems": 0,
  • "currentPage": 0,
  • "totalPages": 0,
  • "itemCount": 0,
  • "items": [
    ]
}