CreateComponentType - AWS IoT TwinMaker

CreateComponentType

Creates a component type.

Request Syntax

POST /workspaces/workspaceId/component-types/componentTypeId HTTP/1.1 Content-type: application/json { "componentTypeName": "string", "compositeComponentTypes": { "string" : { "componentTypeId": "string" } }, "description": "string", "extendsFrom": [ "string" ], "functions": { "string" : { "implementedBy": { "isNative": boolean, "lambda": { "arn": "string" } }, "requiredProperties": [ "string" ], "scope": "string" } }, "isSingleton": boolean, "propertyDefinitions": { "string" : { "configuration": { "string" : "string" }, "dataType": { "allowedValues": [ { "booleanValue": boolean, "doubleValue": number, "expression": "string", "integerValue": number, "listValue": [ "DataValue" ], "longValue": number, "mapValue": { "string" : "DataValue" }, "relationshipValue": { "targetComponentName": "string", "targetEntityId": "string" }, "stringValue": "string" } ], "nestedType": "DataType", "relationship": { "relationshipType": "string", "targetComponentTypeId": "string" }, "type": "string", "unitOfMeasure": "string" }, "defaultValue": { "booleanValue": boolean, "doubleValue": number, "expression": "string", "integerValue": number, "listValue": [ "DataValue" ], "longValue": number, "mapValue": { "string" : "DataValue" }, "relationshipValue": { "targetComponentName": "string", "targetEntityId": "string" }, "stringValue": "string" }, "displayName": "string", "isExternalId": boolean, "isRequiredInEntity": boolean, "isStoredExternally": boolean, "isTimeSeries": boolean } }, "propertyGroups": { "string" : { "groupType": "string", "propertyNames": [ "string" ] } }, "tags": { "string" : "string" } }

URI Request Parameters

The request uses the following URI parameters.

componentTypeId

The ID of the component type.

Length Constraints: Minimum length of 1. Maximum length of 256.

Pattern: [a-zA-Z_\.\-0-9:]+

Required: Yes

workspaceId

The ID of the workspace that contains the component type.

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [a-zA-Z_0-9][a-zA-Z_\-0-9]*[a-zA-Z0-9]+

Required: Yes

Request Body

The request accepts the following data in JSON format.

componentTypeName

A friendly name for the component type.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 256.

Pattern: .*[^\u0000-\u001F\u007F]*.*

Required: No

compositeComponentTypes

This is an object that maps strings to compositeComponentTypes of the componentType. CompositeComponentType is referenced by componentTypeId.

Type: String to CompositeComponentTypeRequest object map

Key Length Constraints: Minimum length of 1. Maximum length of 256.

Key Pattern: [a-zA-Z_\-0-9]+

Required: No

description

The description of the component type.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 2048.

Pattern: .*

Required: No

extendsFrom

Specifies the parent component type to extend.

Type: Array of strings

Length Constraints: Minimum length of 1. Maximum length of 256.

Pattern: [a-zA-Z_\.\-0-9:]+

Required: No

functions

An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object.

Type: String to FunctionRequest object map

Key Length Constraints: Minimum length of 1. Maximum length of 256.

Key Pattern: [a-zA-Z_\-0-9]+

Required: No

isSingleton

A Boolean value that specifies whether an entity can have more than one component of this type.

Type: Boolean

Required: No

propertyDefinitions

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

Type: String to PropertyDefinitionRequest object map

Key Length Constraints: Minimum length of 1. Maximum length of 256.

Key Pattern: [a-zA-Z_\-0-9]+

Required: No

propertyGroups

Type: String to PropertyGroupRequest object map

Key Length Constraints: Minimum length of 1. Maximum length of 256.

Key Pattern: [a-zA-Z_\-0-9]+

Required: No

tags

Metadata that you can use to manage the component type.

Type: String to string map

Map Entries: Minimum number of 0 items. Maximum number of 50 items.

Key Length Constraints: Minimum length of 1. Maximum length of 128.

Key Pattern: ([\p{L}\p{Z}\p{N}_.:/=+\-@]*)

Value Length Constraints: Minimum length of 1. Maximum length of 256.

Value Pattern: .*

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "arn": "string", "creationDateTime": number, "state": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

arn

The ARN of the component type.

Type: String

Length Constraints: Minimum length of 20. Maximum length of 2048.

Pattern: arn:((aws)|(aws-cn)|(aws-us-gov)):iottwinmaker:[a-z0-9-]+:[0-9]{12}:[\/a-zA-Z0-9_\-\.:]+

creationDateTime

The date and time when the entity was created.

Type: Timestamp

state

The current state of the component type.

Type: String

Valid Values: CREATING | UPDATING | DELETING | ACTIVE | ERROR

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

Access is denied.

HTTP Status Code: 403

ConflictException

A conflict occurred.

HTTP Status Code: 409

InternalServerException

An unexpected error has occurred.

HTTP Status Code: 500

ServiceQuotaExceededException

The service quota was exceeded.

HTTP Status Code: 402

ThrottlingException

The rate exceeds the limit.

HTTP Status Code: 429

ValidationException

Failed

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: