Download OpenAPI specification:Download
API to manage semantic models and namespaces for a Model Catalog
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}'
The API offers currently one form of authentication:
The API uses the HAL Format for HATEOAS see https://de.wikipedia.org/wiki/Hypertext_Application_Language
tenantId required | string <uuid> Unique identifier of the owning tenant |
file required | string <binary> |
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "state": "RELEASED",
- "owned": true,
- "stateChangedAt": "2023-06-20T05:26:00.123456789Z",
- "numberOfAspects": 0,
- "numberOfProperties": 0,
- "numberOfCharacteristics": 0,
- "numberOfEvents": 0,
- "numberOfOperations": 0,
- "numberOfEntities": 0,
- "numberOfConstraints": 0
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
page | integer >= 0 Default: 0 Index of the current page |
pageSize | integer [ 1 .. 500 ] Default: 500 |
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "state": "RELEASED",
- "owned": true,
- "stateChangedAt": "2023-06-20T05:26:00.123456789Z",
- "numberOfAspects": 0,
- "numberOfProperties": 0,
- "numberOfCharacteristics": 0,
- "numberOfEvents": 0,
- "numberOfOperations": 0,
- "numberOfEntities": 0,
- "numberOfConstraints": 0
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | NamespaceUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0 Qualified identifier for a versioned Namespace |
fully-resolved | boolean Default: false Enforce to fully resolve external references and return it as one TTL |
<<binary content>>
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | NamespaceUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0 Qualified identifier for a versioned Namespace |
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "state": "RELEASED",
- "owned": true,
- "stateChangedAt": "2023-06-20T05:26:00.123456789Z"
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | NamespaceUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0 Qualified identifier for a versioned Namespace |
"RELEASED"
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | NamespaceUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0 Qualified identifier for a versioned Namespace |
state required | string (StateDto) Enum: "DRAFT" "RELEASED" "DEPRECATED" The possible workflow states a namespace can have |
{- "state": "RELEASED"
}
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "state": "RELEASED",
- "owned": true,
- "stateChangedAt": "2023-06-20T05:26:00.123456789Z"
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | NamespaceUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0 Qualified identifier for a versioned Namespace |
"RELEASED"
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
{- "urn": "urn:samm:com.mycompany:1.0.0#Movement",
- "version": "1.0.0",
- "name": "Movement",
- "state": "RELEASED",
- "description": {
- "en": "Position in space, described along three axis, with the third axis optional, if all positions are in a plane.",
- "de": "Position im Raum, entlang dreier Achsen beschrieben, wobei die dritte Achse optional ist, wenn alle Positionen in einer Ebene liegen."
}
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
@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 .
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
locale | string Default: "en" Locale to resolve e.g. preferred name and description |
<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>
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
locale | string Default: "en" Locale to resolve e.g. preferred name and description |
<!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>
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
{- "description": "A test Aspect",
- "type": "object",
- "components": {
- "schemas": {
- "urn_samm_com.mycompany.test_1.2.0_BooleanTestCharacteristic": {
- "type": "boolean"
}
}
}, - "properties": {
- "testBoolean": { },
- "secondTestBoolean": { }
}, - "required": [
- "testBoolean",
- "secondTestBoolean"
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
{- "testBoolean": true,
- "secondTestBoolean": false
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
<<binary content>>
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
{- "assetAdministrationShells": [
- {
- "modelType": "AssetAdministrationShell",
- "assetInformation": {
- "assetKind": "Type"
}, - "submodels": [
- {
- "keys": [
- {
- "type": "Submodel",
- "value": "urn:samm:com.bosch.dts.catalog.test:1.2.0#TestAspect/submodel"
}
], - "type": "ModelReference"
}
], - "administration": { },
- "id": "urn:samm:com.bosch.dts.catalog.test:1.2.0#TestAspect",
- "description": [
- {
- "language": "en",
- "text": "defaultAdminShell"
}
], - "idShort": "defaultAdminShell"
}
], - "conceptDescriptions": [ ]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
urn required | AspectModelUrn Example: urn%3Asamm%3Acom.mycompany%3A1.0.0%23Movement Encoded qualified identifier of the Aspect Model |
<?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>
tenantId required | string <uuid> Unique identifier of the owning tenant |
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 |
{- "page": 0,
- "pageSize": 500,
- "namespacePattern": "move*",
- "state": "RELEASED",
- "versionRangePattern": {
- "minVersion": "1.0.0",
- "maxVersion": "10.0.0",
- "strategy": "VERSION_RANGE"
}
}
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "state": "RELEASED",
- "owned": true,
- "stateChangedAt": "2023-06-20T05:26:00.123456789Z",
- "numberOfAspects": 0,
- "numberOfProperties": 0,
- "numberOfCharacteristics": 0,
- "numberOfEvents": 0,
- "numberOfOperations": 0,
- "numberOfEntities": 0,
- "numberOfConstraints": 0
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
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. |
{- "page": 0,
- "pageSize": 500,
- "modelElementNamePattern": "move*",
- "modelElementPreferredNamePattern": {
- "preferredNamePattern": "Movement",
- "local": "de"
}, - "state": "RELEASED",
- "versionRangePattern": {
- "minVersion": "1.0.0",
- "maxVersion": "10.0.0",
- "strategy": "VERSION_RANGE"
}, - "modelElementTypes": [
- "ASPECT"
], - "namespacePattern": "com.bosch.*"
}
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "urn": "urn:samm:com.mycompany:1.0.0#SpatialPosition",
- "version": "1.0.0",
- "namespace": "com.mycompany",
- "prefixes": [
- {
- "prefix": "samm",
- "urn": "urn:samm:org.eclipse.esmf.samm:2.0.0#"
}
], - "name": "SpatialPosition",
- "type": "Aspect",
- "state": "RELEASED",
- "description": {
- "en": "Position in space, described along three axis, with the third axis optional, if all positions are in a plane.",
- "de": "Position im Raum, entlang dreier Achsen beschrieben, wobei die dritte Achse optional ist, wenn alle Positionen in einer Ebene liegen."
}, - "definition": ":SpatialPosition a samm:Entity ;\n samm:preferredName \"Spatial Position\"@en ;\n samm:description \"Position in space, described along three axis, with the third axis optional, if all positions are in a plane.\"@en ;\n samm:description \"Position im Raum, entlang dreier Achsen beschrieben, wobei die dritte Achse optional ist, wenn alle Positionen in einer Ebene liegen.\"@de ;\n samm:properties ( :x :y :z ) .\n"
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
{- "totalItems": 0,
- "currentPage": 0,
- "totalPages": 0,
- "itemCount": 0,
- "items": [
- {
- "prefix": "com.mycompany"
}
]
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
The information is required to preserve a namespace
prefix required | string [ 1 .. 255 ] characters ^([a-z0-9()+,\-.:=@;$_!*]|%[0-9a-fA-F]{2})+$ |
{- "prefix": "com.mycompany"
}
{- "prefix": "com.mycompany"
}
tenantId required | string <uuid> Unique identifier of the owning tenant |
{- "error": {
- "message": "Validation failed",
- "path": "/{basePath}/{apiVersion}/{tenantId}/{path}",
- "details": {
- "twinType": "size must be between 0 and 128",
- "labels": "size must be between 0 and 10"
}, - "code": 20001
}
}