Create Asset Administration Shells

Below you will find examples on how to create a new Asset Administration Shell and make it discoverable in the Asset Administration Shell Discovery API.

Create Asset Administration Shells

To register a new Shell in the Digital Twin Registry successfully, it needs to have at least the id parameter in the body.

Read more detailed information about the structure and requirements for the whole request in the Asset Administration Shell Registry API documentationexternallink 20.

The following example demonstrates how to register an Asset Administration Shell with all possible parameters in the Asset Administration Shell Registry API:

{
	"id": "1111-shell",
	"idShort": "1111-short",
	"description": [
		{
			"language": "en",
			"text": "Example text"
		}
	],
	"globalAssetId": "1111-global",
	"displayName": [
		{
			"language": "en",
			"text": "Example text"
		}
	],
    "assetKind":"Instance",
    "assetType": "A12B3-4C/5D/678",
    "labels":[
        "example-label"
    ],
    "submodelDescriptors": [
        {
            "id": "5047a72e-e1bc-447c-9b34-f988e1b0354b",
            "endpoints": [
                {
                    "protocolInformation": {
                        "href": "https://localhost:1234",
                        "endpointProtocolVersion": [
                            "1.1"
                        ],
                        "securityAttributes": [
                            {
                                "type": "NONE",
                                "key": "securityKey",
                                "value": "securityValue"
                            }
                        ]
                    },
                    "interface": "AAS-1.0"
                },
                {
                    "protocolInformation": {
                        "href": "opc.tcp://localhost:4840",
                        "endpointProtocolVersion": [
                            "1.1"
                        ],
                        "securityAttributes": [
                            {
                                "type": "NONE",
                                "key": "securityKey",
                                "value": "securityValue"
                            }
                        ]
                    },
                    "interface": "AAS-1.0"
                }
            ]
        }
    ],
	"specificAssetIds": [
		{
			"name": "vin1",
			"value": "valueforvin1"
		},
		{
			"name": "enginenumber1",
			"value": "enginenumber1",
			"externalSubjectId": {
				"type": "ExternalReference",
				"keys": [
					{
						"type": "GlobalReference",
						"value": "1111111111"
					}
				]
			}
		},
		{
			"name": "carraditor1",
			"value": "carraditor1",
			"externalSubjectId": {
				"type": "ExternalReference",
				"keys": [
					{
						"type": "GlobalReference",
						"value": "1111111111"
					},
					{
						"type": "GlobalReference",
						"value": "BPN_GLOBAL_001"
					}
				]
			}
		},
		{
			"name": "fueltank1",
			"value": "fueltank1",
			"externalSubjectId": {
				"type": "ExternalReference",
				"keys": [
					{
						"type": "GlobalReference",
						"value": "PUBLIC_READABLE"
					}
				]
			}
		}
	]
}

Make Asset Administration Shells discoverable

To make the new Shell discoverable in the Asset Administration Shell Discovery API, you need to add the specificAssetId parameter and its mandatory parameters name and value.

Read more detailed information about the structure and requirements for the whole POST request in the Asset Administration Shell Registry API documentationexternallink 20.

The following example shows the part of the example Asset Administration Shell above, where the specificAssetId parameter is added:

"specificAssetIds": [
		{
			"name": "manufacturerId",
			"value": "1111-manu"
		},
		{
			"name": "manufacturerPartId",
			"value": "1111-part",
		},
		{
			"name": "customerPartId",
			"value": "1111-cust",
		},
		{
			"name": "digitalTwinType",
			"value": "PartInstance",

		}
	]