

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::IoTTwinMaker::ComponentType
<a name="aws-resource-iottwinmaker-componenttype"></a>

Use the `AWS::IoTTwinMaker::ComponentType` resource to declare a component type.

## Syntax
<a name="aws-resource-iottwinmaker-componenttype-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-iottwinmaker-componenttype-syntax.json"></a>

```
{
  "Type" : "AWS::IoTTwinMaker::ComponentType",
  "Properties" : {
      "[ComponentTypeId](#cfn-iottwinmaker-componenttype-componenttypeid)" : String,
      "[CompositeComponentTypes](#cfn-iottwinmaker-componenttype-compositecomponenttypes)" : {Key: Value, ...},
      "[Description](#cfn-iottwinmaker-componenttype-description)" : String,
      "[ExtendsFrom](#cfn-iottwinmaker-componenttype-extendsfrom)" : [ String, ... ],
      "[Functions](#cfn-iottwinmaker-componenttype-functions)" : {Key: Value, ...},
      "[IsSingleton](#cfn-iottwinmaker-componenttype-issingleton)" : Boolean,
      "[PropertyDefinitions](#cfn-iottwinmaker-componenttype-propertydefinitions)" : {Key: Value, ...},
      "[PropertyGroups](#cfn-iottwinmaker-componenttype-propertygroups)" : {Key: Value, ...},
      "[Tags](#cfn-iottwinmaker-componenttype-tags)" : {Key: Value, ...},
      "[WorkspaceId](#cfn-iottwinmaker-componenttype-workspaceid)" : String
    }
}
```

### YAML
<a name="aws-resource-iottwinmaker-componenttype-syntax.yaml"></a>

```
Type: AWS::IoTTwinMaker::ComponentType
Properties:
  [ComponentTypeId](#cfn-iottwinmaker-componenttype-componenttypeid): String
  [CompositeComponentTypes](#cfn-iottwinmaker-componenttype-compositecomponenttypes): 
    Key: Value
  [Description](#cfn-iottwinmaker-componenttype-description): String
  [ExtendsFrom](#cfn-iottwinmaker-componenttype-extendsfrom): 
    - String
  [Functions](#cfn-iottwinmaker-componenttype-functions): 
    Key: Value
  [IsSingleton](#cfn-iottwinmaker-componenttype-issingleton): Boolean
  [PropertyDefinitions](#cfn-iottwinmaker-componenttype-propertydefinitions): 
    Key: Value
  [PropertyGroups](#cfn-iottwinmaker-componenttype-propertygroups): 
    Key: Value
  [Tags](#cfn-iottwinmaker-componenttype-tags): 
    Key: Value
  [WorkspaceId](#cfn-iottwinmaker-componenttype-workspaceid): String
```

## Properties
<a name="aws-resource-iottwinmaker-componenttype-properties"></a>

`ComponentTypeId`  <a name="cfn-iottwinmaker-componenttype-componenttypeid"></a>
The ID of the component type.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z_\.\-0-9:]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`CompositeComponentTypes`  <a name="cfn-iottwinmaker-componenttype-compositecomponenttypes"></a>
Maps strings to `compositeComponentTypes` of the `componentType`. `CompositeComponentType` is referenced by `componentTypeId`.  
*Required*: No  
*Type*: Object of [CompositeComponentType](aws-properties-iottwinmaker-componenttype-compositecomponenttype.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-iottwinmaker-componenttype-description"></a>
The description of the component type.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `512`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExtendsFrom`  <a name="cfn-iottwinmaker-componenttype-extendsfrom"></a>
The name of the parent component type that this component type extends.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Functions`  <a name="cfn-iottwinmaker-componenttype-functions"></a>
An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object.  
For information on the FunctionResponse object see the [FunctionResponse](https://docs.aws.amazon.com//iot-twinmaker/latest/apireference/API_FunctionResponse.html) API reference.  
*Required*: No  
*Type*: Object of [Function](aws-properties-iottwinmaker-componenttype-function.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IsSingleton`  <a name="cfn-iottwinmaker-componenttype-issingleton"></a>
A boolean value that specifies whether an entity can have more than one component of this type.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PropertyDefinitions`  <a name="cfn-iottwinmaker-componenttype-propertydefinitions"></a>
An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.  
For information about the PropertyDefinitionResponse object, see the [PropertyDefinitionResponse](https://docs.aws.amazon.com//iot-twinmaker/latest/apireference/API_PropertyDefinitionResponse.html) API reference.  
*Required*: No  
*Type*: Object of [PropertyDefinition](aws-properties-iottwinmaker-componenttype-propertydefinition.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PropertyGroups`  <a name="cfn-iottwinmaker-componenttype-propertygroups"></a>
An object that maps strings to the property groups in the component type. Each string in the mapping must be unique to this object.  
*Required*: No  
*Type*: Object of [PropertyGroup](aws-properties-iottwinmaker-componenttype-propertygroup.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-iottwinmaker-componenttype-tags"></a>
The ComponentType tags.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`WorkspaceId`  <a name="cfn-iottwinmaker-componenttype-workspaceid"></a>
The ID of the workspace that contains the component type.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z_0-9][a-zA-Z_\-0-9]*[a-zA-Z0-9]+`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-iottwinmaker-componenttype-return-values"></a>

### Ref
<a name="aws-resource-iottwinmaker-componenttype-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the workspace Id and the ComponentType Id.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-iottwinmaker-componenttype-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-iottwinmaker-componenttype-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The ARN of the component type.

`CreationDateTime`  <a name="CreationDateTime-fn::getatt"></a>
The date and time when the component type was created.

`IsAbstract`  <a name="IsAbstract-fn::getatt"></a>
A boolean value that specifies whether the component type is abstract.

`IsSchemaInitialized`  <a name="IsSchemaInitialized-fn::getatt"></a>
A boolean value that specifies whether the component type has a schema initializer and that the schema initializer has run.

`UpdateDateTime`  <a name="UpdateDateTime-fn::getatt"></a>
The component type the update time.

# AWS::IoTTwinMaker::ComponentType CompositeComponentType
<a name="aws-properties-iottwinmaker-componenttype-compositecomponenttype"></a>

Specifies the ID of the composite component type.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-compositecomponenttype-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-compositecomponenttype-syntax.json"></a>

```
{
  "[ComponentTypeId](#cfn-iottwinmaker-componenttype-compositecomponenttype-componenttypeid)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-compositecomponenttype-syntax.yaml"></a>

```
  [ComponentTypeId](#cfn-iottwinmaker-componenttype-compositecomponenttype-componenttypeid): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-compositecomponenttype-properties"></a>

`ComponentTypeId`  <a name="cfn-iottwinmaker-componenttype-compositecomponenttype-componenttypeid"></a>
The ID of the component type.  
*Required*: No  
*Type*: String  
*Pattern*: `[a-zA-Z_\.\-0-9:]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType DataConnector
<a name="aws-properties-iottwinmaker-componenttype-dataconnector"></a>

The data connector.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-dataconnector-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-dataconnector-syntax.json"></a>

```
{
  "[IsNative](#cfn-iottwinmaker-componenttype-dataconnector-isnative)" : Boolean,
  "[Lambda](#cfn-iottwinmaker-componenttype-dataconnector-lambda)" : LambdaFunction
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-dataconnector-syntax.yaml"></a>

```
  [IsNative](#cfn-iottwinmaker-componenttype-dataconnector-isnative): Boolean
  [Lambda](#cfn-iottwinmaker-componenttype-dataconnector-lambda): 
    LambdaFunction
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-dataconnector-properties"></a>

`IsNative`  <a name="cfn-iottwinmaker-componenttype-dataconnector-isnative"></a>
A boolean value that specifies whether the data connector is native to IoT TwinMaker.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Lambda`  <a name="cfn-iottwinmaker-componenttype-dataconnector-lambda"></a>
The Lambda function associated with the data connector.  
*Required*: No  
*Type*: [LambdaFunction](aws-properties-iottwinmaker-componenttype-lambdafunction.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType DataType
<a name="aws-properties-iottwinmaker-componenttype-datatype"></a>

An object that specifies the data type of a property.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-datatype-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-datatype-syntax.json"></a>

```
{
  "[AllowedValues](#cfn-iottwinmaker-componenttype-datatype-allowedvalues)" : [ DataValue, ... ],
  "[NestedType](#cfn-iottwinmaker-componenttype-datatype-nestedtype)" : DataType,
  "[Relationship](#cfn-iottwinmaker-componenttype-datatype-relationship)" : Relationship,
  "[Type](#cfn-iottwinmaker-componenttype-datatype-type)" : String,
  "[UnitOfMeasure](#cfn-iottwinmaker-componenttype-datatype-unitofmeasure)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-datatype-syntax.yaml"></a>

```
  [AllowedValues](#cfn-iottwinmaker-componenttype-datatype-allowedvalues): 
    - DataValue
  [NestedType](#cfn-iottwinmaker-componenttype-datatype-nestedtype): 
    DataType
  [Relationship](#cfn-iottwinmaker-componenttype-datatype-relationship): 
    Relationship
  [Type](#cfn-iottwinmaker-componenttype-datatype-type): String
  [UnitOfMeasure](#cfn-iottwinmaker-componenttype-datatype-unitofmeasure): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-datatype-properties"></a>

`AllowedValues`  <a name="cfn-iottwinmaker-componenttype-datatype-allowedvalues"></a>
The allowed values for this data type.  
*Required*: No  
*Type*: Array of [DataValue](aws-properties-iottwinmaker-componenttype-datavalue.md)  
*Minimum*: `0`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NestedType`  <a name="cfn-iottwinmaker-componenttype-datatype-nestedtype"></a>
The nested type in the data type.  
*Required*: No  
*Type*: [DataType](#aws-properties-iottwinmaker-componenttype-datatype)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Relationship`  <a name="cfn-iottwinmaker-componenttype-datatype-relationship"></a>
A relationship that associates a component with another component.  
*Required*: No  
*Type*: [Relationship](aws-properties-iottwinmaker-componenttype-relationship.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-iottwinmaker-componenttype-datatype-type"></a>
The underlying type of the data type.  
Valid Values: `RELATIONSHIP | STRING | LONG | BOOLEAN | INTEGER | DOUBLE | LIST | MAP`  
*Required*: Yes  
*Type*: String  
*Allowed values*: `RELATIONSHIP | STRING | LONG | BOOLEAN | INTEGER | DOUBLE | LIST | MAP`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UnitOfMeasure`  <a name="cfn-iottwinmaker-componenttype-datatype-unitofmeasure"></a>
The unit of measure used in this data type.  
*Required*: No  
*Type*: String  
*Pattern*: `.*`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType DataValue
<a name="aws-properties-iottwinmaker-componenttype-datavalue"></a>

An object that specifies a value for a property.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-datavalue-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-datavalue-syntax.json"></a>

```
{
  "[BooleanValue](#cfn-iottwinmaker-componenttype-datavalue-booleanvalue)" : Boolean,
  "[DoubleValue](#cfn-iottwinmaker-componenttype-datavalue-doublevalue)" : Number,
  "[Expression](#cfn-iottwinmaker-componenttype-datavalue-expression)" : String,
  "[IntegerValue](#cfn-iottwinmaker-componenttype-datavalue-integervalue)" : Integer,
  "[ListValue](#cfn-iottwinmaker-componenttype-datavalue-listvalue)" : [ DataValue, ... ],
  "[LongValue](#cfn-iottwinmaker-componenttype-datavalue-longvalue)" : Number,
  "[MapValue](#cfn-iottwinmaker-componenttype-datavalue-mapvalue)" : {Key: Value, ...},
  "[RelationshipValue](#cfn-iottwinmaker-componenttype-datavalue-relationshipvalue)" : RelationshipValue,
  "[StringValue](#cfn-iottwinmaker-componenttype-datavalue-stringvalue)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-datavalue-syntax.yaml"></a>

```
  [BooleanValue](#cfn-iottwinmaker-componenttype-datavalue-booleanvalue): 
    Boolean
  [DoubleValue](#cfn-iottwinmaker-componenttype-datavalue-doublevalue): Number
  [Expression](#cfn-iottwinmaker-componenttype-datavalue-expression): String
  [IntegerValue](#cfn-iottwinmaker-componenttype-datavalue-integervalue): 
    Integer
  [ListValue](#cfn-iottwinmaker-componenttype-datavalue-listvalue): 
    - DataValue
  [LongValue](#cfn-iottwinmaker-componenttype-datavalue-longvalue): Number
  [MapValue](#cfn-iottwinmaker-componenttype-datavalue-mapvalue): 
    Key: Value
  [RelationshipValue](#cfn-iottwinmaker-componenttype-datavalue-relationshipvalue): 
    RelationshipValue
  [StringValue](#cfn-iottwinmaker-componenttype-datavalue-stringvalue): 
    String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-datavalue-properties"></a>

`BooleanValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-booleanvalue"></a>
A boolean value.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DoubleValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-doublevalue"></a>
A double value.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Expression`  <a name="cfn-iottwinmaker-componenttype-datavalue-expression"></a>
An expression that produces the value.  
*Required*: No  
*Type*: String  
*Pattern*: `(^\$\{Parameters\.[a-zA-z]+([a-zA-z_0-9]*)}$)`  
*Minimum*: `1`  
*Maximum*: `316`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegerValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-integervalue"></a>
An integer value.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ListValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-listvalue"></a>
A list of multiple values.  
*Required*: No  
*Type*: Array of [DataValue](#aws-properties-iottwinmaker-componenttype-datavalue)  
*Minimum*: `0`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LongValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-longvalue"></a>
A long value.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MapValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-mapvalue"></a>
An object that maps strings to multiple `DataValue` objects.  
*Required*: No  
*Type*: Object of [DataValue](#aws-properties-iottwinmaker-componenttype-datavalue)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RelationshipValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-relationshipvalue"></a>
A value that relates a component to another component.  
*Required*: No  
*Type*: [RelationshipValue](aws-properties-iottwinmaker-componenttype-relationshipvalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StringValue`  <a name="cfn-iottwinmaker-componenttype-datavalue-stringvalue"></a>
A string value.  
*Required*: No  
*Type*: String  
*Pattern*: `.*`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType Error
<a name="aws-properties-iottwinmaker-componenttype-error"></a>

The component type error.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-error-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-error-syntax.json"></a>

```
{
  "[Code](#cfn-iottwinmaker-componenttype-error-code)" : String,
  "[Message](#cfn-iottwinmaker-componenttype-error-message)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-error-syntax.yaml"></a>

```
  [Code](#cfn-iottwinmaker-componenttype-error-code): String
  [Message](#cfn-iottwinmaker-componenttype-error-message): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-error-properties"></a>

`Code`  <a name="cfn-iottwinmaker-componenttype-error-code"></a>
The component type error code.  
*Required*: No  
*Type*: String  
*Allowed values*: `VALIDATION_ERROR | INTERNAL_FAILURE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Message`  <a name="cfn-iottwinmaker-componenttype-error-message"></a>
The component type error message.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType Function
<a name="aws-properties-iottwinmaker-componenttype-function"></a>

The function body.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-function-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-function-syntax.json"></a>

```
{
  "[ImplementedBy](#cfn-iottwinmaker-componenttype-function-implementedby)" : DataConnector,
  "[RequiredProperties](#cfn-iottwinmaker-componenttype-function-requiredproperties)" : [ String, ... ],
  "[Scope](#cfn-iottwinmaker-componenttype-function-scope)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-function-syntax.yaml"></a>

```
  [ImplementedBy](#cfn-iottwinmaker-componenttype-function-implementedby): 
    DataConnector
  [RequiredProperties](#cfn-iottwinmaker-componenttype-function-requiredproperties): 
    - String
  [Scope](#cfn-iottwinmaker-componenttype-function-scope): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-function-properties"></a>

`ImplementedBy`  <a name="cfn-iottwinmaker-componenttype-function-implementedby"></a>
The data connector.  
*Required*: No  
*Type*: [DataConnector](aws-properties-iottwinmaker-componenttype-dataconnector.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequiredProperties`  <a name="cfn-iottwinmaker-componenttype-function-requiredproperties"></a>
The required properties of the function.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Scope`  <a name="cfn-iottwinmaker-componenttype-function-scope"></a>
The scope of the function.  
*Required*: No  
*Type*: String  
*Allowed values*: `ENTITY | WORKSPACE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType LambdaFunction
<a name="aws-properties-iottwinmaker-componenttype-lambdafunction"></a>

The Lambda function.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-lambdafunction-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-lambdafunction-syntax.json"></a>

```
{
  "[Arn](#cfn-iottwinmaker-componenttype-lambdafunction-arn)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-lambdafunction-syntax.yaml"></a>

```
  [Arn](#cfn-iottwinmaker-componenttype-lambdafunction-arn): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-lambdafunction-properties"></a>

`Arn`  <a name="cfn-iottwinmaker-componenttype-lambdafunction-arn"></a>
The Lambda function ARN.  
*Required*: Yes  
*Type*: String  
*Pattern*: `arn:((aws)|(aws-cn)|(aws-us-gov)):lambda:[a-z0-9-]+:[0-9]{12}:function:[\/a-zA-Z0-9_-]+`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType PropertyDefinition
<a name="aws-properties-iottwinmaker-componenttype-propertydefinition"></a>

PropertyDefinition is an object that maps strings to the property definitions in the component type.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-propertydefinition-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-propertydefinition-syntax.json"></a>

```
{
  "[Configurations](#cfn-iottwinmaker-componenttype-propertydefinition-configurations)" : {Key: Value, ...},
  "[DataType](#cfn-iottwinmaker-componenttype-propertydefinition-datatype)" : DataType,
  "[DefaultValue](#cfn-iottwinmaker-componenttype-propertydefinition-defaultvalue)" : DataValue,
  "[IsExternalId](#cfn-iottwinmaker-componenttype-propertydefinition-isexternalid)" : Boolean,
  "[IsRequiredInEntity](#cfn-iottwinmaker-componenttype-propertydefinition-isrequiredinentity)" : Boolean,
  "[IsStoredExternally](#cfn-iottwinmaker-componenttype-propertydefinition-isstoredexternally)" : Boolean,
  "[IsTimeSeries](#cfn-iottwinmaker-componenttype-propertydefinition-istimeseries)" : Boolean
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-propertydefinition-syntax.yaml"></a>

```
  [Configurations](#cfn-iottwinmaker-componenttype-propertydefinition-configurations): 
    Key: Value
  [DataType](#cfn-iottwinmaker-componenttype-propertydefinition-datatype): 
    DataType
  [DefaultValue](#cfn-iottwinmaker-componenttype-propertydefinition-defaultvalue): 
    DataValue
  [IsExternalId](#cfn-iottwinmaker-componenttype-propertydefinition-isexternalid): Boolean
  [IsRequiredInEntity](#cfn-iottwinmaker-componenttype-propertydefinition-isrequiredinentity): Boolean
  [IsStoredExternally](#cfn-iottwinmaker-componenttype-propertydefinition-isstoredexternally): Boolean
  [IsTimeSeries](#cfn-iottwinmaker-componenttype-propertydefinition-istimeseries): Boolean
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-propertydefinition-properties"></a>

`Configurations`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-configurations"></a>
A mapping that specifies configuration information about the property.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `[a-zA-Z_\-0-9]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DataType`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-datatype"></a>
  
*Required*: No  
*Type*: [DataType](aws-properties-iottwinmaker-componenttype-datatype.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DefaultValue`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-defaultvalue"></a>
A boolean value that specifies whether the property ID comes from an external data store.  
*Required*: No  
*Type*: [DataValue](aws-properties-iottwinmaker-componenttype-datavalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IsExternalId`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-isexternalid"></a>
A Boolean value that specifies whether the property ID comes from an external data source.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IsRequiredInEntity`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-isrequiredinentity"></a>
A boolean value that specifies whether the property is required in an entity.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IsStoredExternally`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-isstoredexternally"></a>
A boolean value that specifies whether the property is stored externally.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IsTimeSeries`  <a name="cfn-iottwinmaker-componenttype-propertydefinition-istimeseries"></a>
A boolean value that specifies whether the property consists of time series data.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType PropertyGroup
<a name="aws-properties-iottwinmaker-componenttype-propertygroup"></a>

The property group.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-propertygroup-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-propertygroup-syntax.json"></a>

```
{
  "[GroupType](#cfn-iottwinmaker-componenttype-propertygroup-grouptype)" : String,
  "[PropertyNames](#cfn-iottwinmaker-componenttype-propertygroup-propertynames)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-propertygroup-syntax.yaml"></a>

```
  [GroupType](#cfn-iottwinmaker-componenttype-propertygroup-grouptype): String
  [PropertyNames](#cfn-iottwinmaker-componenttype-propertygroup-propertynames): 
    - String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-propertygroup-properties"></a>

`GroupType`  <a name="cfn-iottwinmaker-componenttype-propertygroup-grouptype"></a>
The group type.  
*Required*: No  
*Type*: String  
*Allowed values*: `TABULAR`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PropertyNames`  <a name="cfn-iottwinmaker-componenttype-propertygroup-propertynames"></a>
The property names.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType Relationship
<a name="aws-properties-iottwinmaker-componenttype-relationship"></a>

An object that specifies a relationship with another component type.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-relationship-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-relationship-syntax.json"></a>

```
{
  "[RelationshipType](#cfn-iottwinmaker-componenttype-relationship-relationshiptype)" : String,
  "[TargetComponentTypeId](#cfn-iottwinmaker-componenttype-relationship-targetcomponenttypeid)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-relationship-syntax.yaml"></a>

```
  [RelationshipType](#cfn-iottwinmaker-componenttype-relationship-relationshiptype): String
  [TargetComponentTypeId](#cfn-iottwinmaker-componenttype-relationship-targetcomponenttypeid): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-relationship-properties"></a>

`RelationshipType`  <a name="cfn-iottwinmaker-componenttype-relationship-relationshiptype"></a>
The type of the relationship.  
*Required*: No  
*Type*: String  
*Pattern*: `.*`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetComponentTypeId`  <a name="cfn-iottwinmaker-componenttype-relationship-targetcomponenttypeid"></a>
The ID of the target component type associated with this relationship.  
*Required*: No  
*Type*: String  
*Pattern*: `[a-zA-Z_\.\-0-9:]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType RelationshipValue
<a name="aws-properties-iottwinmaker-componenttype-relationshipvalue"></a>

The component type relationship value.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-relationshipvalue-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-relationshipvalue-syntax.json"></a>

```
{
  "[TargetComponentName](#cfn-iottwinmaker-componenttype-relationshipvalue-targetcomponentname)" : String,
  "[TargetEntityId](#cfn-iottwinmaker-componenttype-relationshipvalue-targetentityid)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-relationshipvalue-syntax.yaml"></a>

```
  [TargetComponentName](#cfn-iottwinmaker-componenttype-relationshipvalue-targetcomponentname): String
  [TargetEntityId](#cfn-iottwinmaker-componenttype-relationshipvalue-targetentityid): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-relationshipvalue-properties"></a>

`TargetComponentName`  <a name="cfn-iottwinmaker-componenttype-relationshipvalue-targetcomponentname"></a>
The target component name.  
*Required*: No  
*Type*: String  
*Pattern*: `[a-zA-Z_\-0-9]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetEntityId`  <a name="cfn-iottwinmaker-componenttype-relationshipvalue-targetentityid"></a>
The target entity Id.  
*Required*: No  
*Type*: String  
*Pattern*: `[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|^[a-zA-Z0-9][a-zA-Z_\-0-9.:]*[a-zA-Z0-9]+`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTTwinMaker::ComponentType Status
<a name="aws-properties-iottwinmaker-componenttype-status"></a>

The component type status.

## Syntax
<a name="aws-properties-iottwinmaker-componenttype-status-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-iottwinmaker-componenttype-status-syntax.json"></a>

```
{
  "[Error](#cfn-iottwinmaker-componenttype-status-error)" : Error,
  "[State](#cfn-iottwinmaker-componenttype-status-state)" : String
}
```

### YAML
<a name="aws-properties-iottwinmaker-componenttype-status-syntax.yaml"></a>

```
  [Error](#cfn-iottwinmaker-componenttype-status-error): 
    Error
  [State](#cfn-iottwinmaker-componenttype-status-state): String
```

## Properties
<a name="aws-properties-iottwinmaker-componenttype-status-properties"></a>

`Error`  <a name="cfn-iottwinmaker-componenttype-status-error"></a>
The component type error.  
*Required*: No  
*Type*: [Error](aws-properties-iottwinmaker-componenttype-error.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`State`  <a name="cfn-iottwinmaker-componenttype-status-state"></a>
The component type status state.  
*Required*: No  
*Type*: String  
*Allowed values*: `CREATING | UPDATING | DELETING | ACTIVE | ERROR`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)