:doc:`IoTTwinMaker <../../iottwinmaker>` / Client / create_entity

*************
create_entity
*************



.. py:method:: IoTTwinMaker.Client.create_entity(**kwargs)

  

  Creates an entity.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iottwinmaker-2021-11-29/CreateEntity>`_  


  **Request Syntax**
  ::

    response = client.create_entity(
        workspaceId='string',
        entityId='string',
        entityName='string',
        description='string',
        components={
            'string': {
                'description': 'string',
                'componentTypeId': 'string',
                'properties': {
                    'string': {
                        'definition': {
                            'dataType': {
                                'type': 'RELATIONSHIP'|'STRING'|'LONG'|'BOOLEAN'|'INTEGER'|'DOUBLE'|'LIST'|'MAP',
                                'nestedType': {'... recursive ...'},
                                'allowedValues': [
                                    {
                                        'booleanValue': True|False,
                                        'doubleValue': 123.0,
                                        'integerValue': 123,
                                        'longValue': 123,
                                        'stringValue': 'string',
                                        'listValue': {'... recursive ...'},
                                        'mapValue': {
                                            'string': {'... recursive ...'}
                                        },
                                        'relationshipValue': {
                                            'targetEntityId': 'string',
                                            'targetComponentName': 'string'
                                        },
                                        'expression': 'string'
                                    },
                                ],
                                'unitOfMeasure': 'string',
                                'relationship': {
                                    'targetComponentTypeId': 'string',
                                    'relationshipType': 'string'
                                }
                            },
                            'isRequiredInEntity': True|False,
                            'isExternalId': True|False,
                            'isStoredExternally': True|False,
                            'isTimeSeries': True|False,
                            'defaultValue': {
                                'booleanValue': True|False,
                                'doubleValue': 123.0,
                                'integerValue': 123,
                                'longValue': 123,
                                'stringValue': 'string',
                                'listValue': [
                                    {'... recursive ...'},
                                ],
                                'mapValue': {
                                    'string': {'... recursive ...'}
                                },
                                'relationshipValue': {
                                    'targetEntityId': 'string',
                                    'targetComponentName': 'string'
                                },
                                'expression': 'string'
                            },
                            'configuration': {
                                'string': 'string'
                            },
                            'displayName': 'string'
                        },
                        'value': {
                            'booleanValue': True|False,
                            'doubleValue': 123.0,
                            'integerValue': 123,
                            'longValue': 123,
                            'stringValue': 'string',
                            'listValue': [
                                {'... recursive ...'},
                            ],
                            'mapValue': {
                                'string': {'... recursive ...'}
                            },
                            'relationshipValue': {
                                'targetEntityId': 'string',
                                'targetComponentName': 'string'
                            },
                            'expression': 'string'
                        },
                        'updateType': 'UPDATE'|'DELETE'|'CREATE'|'RESET_VALUE'
                    }
                },
                'propertyGroups': {
                    'string': {
                        'groupType': 'TABULAR',
                        'propertyNames': [
                            'string',
                        ],
                        'updateType': 'UPDATE'|'DELETE'|'CREATE'
                    }
                }
            }
        },
        compositeComponents={
            'string': {
                'description': 'string',
                'properties': {
                    'string': {
                        'definition': {
                            'dataType': {
                                'type': 'RELATIONSHIP'|'STRING'|'LONG'|'BOOLEAN'|'INTEGER'|'DOUBLE'|'LIST'|'MAP',
                                'nestedType': {'... recursive ...'},
                                'allowedValues': [
                                    {
                                        'booleanValue': True|False,
                                        'doubleValue': 123.0,
                                        'integerValue': 123,
                                        'longValue': 123,
                                        'stringValue': 'string',
                                        'listValue': {'... recursive ...'},
                                        'mapValue': {
                                            'string': {'... recursive ...'}
                                        },
                                        'relationshipValue': {
                                            'targetEntityId': 'string',
                                            'targetComponentName': 'string'
                                        },
                                        'expression': 'string'
                                    },
                                ],
                                'unitOfMeasure': 'string',
                                'relationship': {
                                    'targetComponentTypeId': 'string',
                                    'relationshipType': 'string'
                                }
                            },
                            'isRequiredInEntity': True|False,
                            'isExternalId': True|False,
                            'isStoredExternally': True|False,
                            'isTimeSeries': True|False,
                            'defaultValue': {
                                'booleanValue': True|False,
                                'doubleValue': 123.0,
                                'integerValue': 123,
                                'longValue': 123,
                                'stringValue': 'string',
                                'listValue': [
                                    {'... recursive ...'},
                                ],
                                'mapValue': {
                                    'string': {'... recursive ...'}
                                },
                                'relationshipValue': {
                                    'targetEntityId': 'string',
                                    'targetComponentName': 'string'
                                },
                                'expression': 'string'
                            },
                            'configuration': {
                                'string': 'string'
                            },
                            'displayName': 'string'
                        },
                        'value': {
                            'booleanValue': True|False,
                            'doubleValue': 123.0,
                            'integerValue': 123,
                            'longValue': 123,
                            'stringValue': 'string',
                            'listValue': [
                                {'... recursive ...'},
                            ],
                            'mapValue': {
                                'string': {'... recursive ...'}
                            },
                            'relationshipValue': {
                                'targetEntityId': 'string',
                                'targetComponentName': 'string'
                            },
                            'expression': 'string'
                        },
                        'updateType': 'UPDATE'|'DELETE'|'CREATE'|'RESET_VALUE'
                    }
                },
                'propertyGroups': {
                    'string': {
                        'groupType': 'TABULAR',
                        'propertyNames': [
                            'string',
                        ],
                        'updateType': 'UPDATE'|'DELETE'|'CREATE'
                    }
                }
            }
        },
        parentEntityId='string',
        tags={
            'string': 'string'
        }
    )
    
  :type workspaceId: string
  :param workspaceId: **[REQUIRED]** 

    The ID of the workspace that contains the entity.

    

  
  :type entityId: string
  :param entityId: 

    The ID of the entity.

    

  
  :type entityName: string
  :param entityName: **[REQUIRED]** 

    The name of the entity.

    

  
  :type description: string
  :param description: 

    The description of the entity.

    

  
  :type components: dict
  :param components: 

    An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object.

    

  
    - *(string) --* 

    
      - *(dict) --* 

        An object that sets information about a component type create or update request.

        

      
        - **description** *(string) --* 

          The description of the component request.

          

        
        - **componentTypeId** *(string) --* 

          The ID of the component type.

          

        
        - **properties** *(dict) --* 

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

          

        
          - *(string) --* 

          
            - *(dict) --* 

              An object that sets information about a property.

              

            
              - **definition** *(dict) --* 

                An object that specifies information about a property.

                

              
                - **dataType** *(dict) --* 

                  An object that contains information about the data type.

                  

                
                  - **type** *(string) --* **[REQUIRED]** 

                    The underlying type of the data type.

                    

                  
                  - **nestedType** *(dict) --* 

                    The nested type in the data type.

                    

                  
                  - **allowedValues** *(list) --* 

                    The allowed values for this data type.

                    

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
                      - **booleanValue** *(boolean) --* 

                        A Boolean value.

                        

                      
                      - **doubleValue** *(float) --* 

                        A double value.

                        

                      
                      - **integerValue** *(integer) --* 

                        An integer value.

                        

                      
                      - **longValue** *(integer) --* 

                        A long value.

                        

                      
                      - **stringValue** *(string) --* 

                        A string value.

                        

                      
                      - **listValue** *(list) --* 

                        A list of multiple values.

                        

                      
                      - **mapValue** *(dict) --* 

                        An object that maps strings to multiple ``DataValue`` objects.

                        

                      
                        - *(string) --* 

                        
                          - *(dict) --* 

                            An object that specifies a value for a property.

                            

                          
                    
                  
                      - **relationshipValue** *(dict) --* 

                        A value that relates a component to another component.

                        

                      
                        - **targetEntityId** *(string) --* 

                          The ID of the target entity associated with this relationship value.

                          

                        
                        - **targetComponentName** *(string) --* 

                          The name of the target component associated with the relationship value.

                          

                        
                      
                      - **expression** *(string) --* 

                        An expression that produces the value.

                        

                      
                    
                
                  - **unitOfMeasure** *(string) --* 

                    The unit of measure used in this data type.

                    

                  
                  - **relationship** *(dict) --* 

                    A relationship that associates a component with another component.

                    

                  
                    - **targetComponentTypeId** *(string) --* 

                      The ID of the target component type associated with this relationship.

                      

                    
                    - **relationshipType** *(string) --* 

                      The type of the relationship.

                      

                    
                  
                
                - **isRequiredInEntity** *(boolean) --* 

                  A Boolean value that specifies whether the property is required.

                  

                
                - **isExternalId** *(boolean) --* 

                  A Boolean value that specifies whether the property ID comes from an external data store.

                  

                
                - **isStoredExternally** *(boolean) --* 

                  A Boolean value that specifies whether the property is stored externally.

                  

                
                - **isTimeSeries** *(boolean) --* 

                  A Boolean value that specifies whether the property consists of time series data.

                  

                
                - **defaultValue** *(dict) --* 

                  An object that contains the default value.

                  

                
                  - **booleanValue** *(boolean) --* 

                    A Boolean value.

                    

                  
                  - **doubleValue** *(float) --* 

                    A double value.

                    

                  
                  - **integerValue** *(integer) --* 

                    An integer value.

                    

                  
                  - **longValue** *(integer) --* 

                    A long value.

                    

                  
                  - **stringValue** *(string) --* 

                    A string value.

                    

                  
                  - **listValue** *(list) --* 

                    A list of multiple values.

                    

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
                
                  - **mapValue** *(dict) --* 

                    An object that maps strings to multiple ``DataValue`` objects.

                    

                  
                    - *(string) --* 

                    
                      - *(dict) --* 

                        An object that specifies a value for a property.

                        

                      
                
              
                  - **relationshipValue** *(dict) --* 

                    A value that relates a component to another component.

                    

                  
                    - **targetEntityId** *(string) --* 

                      The ID of the target entity associated with this relationship value.

                      

                    
                    - **targetComponentName** *(string) --* 

                      The name of the target component associated with the relationship value.

                      

                    
                  
                  - **expression** *(string) --* 

                    An expression that produces the value.

                    

                  
                
                - **configuration** *(dict) --* 

                  A mapping that specifies configuration information about the property. Use this field to specify information that you read from and write to an external source.

                  

                
                  - *(string) --* 

                  
                    - *(string) --* 

                    
              
            
                - **displayName** *(string) --* 

                  A friendly name for the property.

                  

                
              
              - **value** *(dict) --* 

                The value of the property.

                

              
                - **booleanValue** *(boolean) --* 

                  A Boolean value.

                  

                
                - **doubleValue** *(float) --* 

                  A double value.

                  

                
                - **integerValue** *(integer) --* 

                  An integer value.

                  

                
                - **longValue** *(integer) --* 

                  A long value.

                  

                
                - **stringValue** *(string) --* 

                  A string value.

                  

                
                - **listValue** *(list) --* 

                  A list of multiple values.

                  

                
                  - *(dict) --* 

                    An object that specifies a value for a property.

                    

                  
              
                - **mapValue** *(dict) --* 

                  An object that maps strings to multiple ``DataValue`` objects.

                  

                
                  - *(string) --* 

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
              
            
                - **relationshipValue** *(dict) --* 

                  A value that relates a component to another component.

                  

                
                  - **targetEntityId** *(string) --* 

                    The ID of the target entity associated with this relationship value.

                    

                  
                  - **targetComponentName** *(string) --* 

                    The name of the target component associated with the relationship value.

                    

                  
                
                - **expression** *(string) --* 

                  An expression that produces the value.

                  

                
              
              - **updateType** *(string) --* 

                The update type of the update property request.

                

              
            
      
    
        - **propertyGroups** *(dict) --* 

          The property groups.

          

        
          - *(string) --* 

          
            - *(dict) --* 

              The component property group request.

              

            
              - **groupType** *(string) --* 

                The group type.

                

              
              - **propertyNames** *(list) --* 

                The property names.

                

              
                - *(string) --* 

                
            
              - **updateType** *(string) --* 

                The update type.

                

              
            
      
    
      


  :type compositeComponents: dict
  :param compositeComponents: 

    This is an object that maps strings to ``compositeComponent`` updates in the request. Each key of the map represents the ``componentPath`` of the ``compositeComponent``.

    

  
    - *(string) --* 

    
      - *(dict) --* 

        An object that sets information about the composite component update request.

        

      
        - **description** *(string) --* 

          The description of the component type.

          

        
        - **properties** *(dict) --* 

          This is an object that maps strings to the properties to set in the component type. Each string in the mapping must be unique to this object.

          

        
          - *(string) --* 

          
            - *(dict) --* 

              An object that sets information about a property.

              

            
              - **definition** *(dict) --* 

                An object that specifies information about a property.

                

              
                - **dataType** *(dict) --* 

                  An object that contains information about the data type.

                  

                
                  - **type** *(string) --* **[REQUIRED]** 

                    The underlying type of the data type.

                    

                  
                  - **nestedType** *(dict) --* 

                    The nested type in the data type.

                    

                  
                  - **allowedValues** *(list) --* 

                    The allowed values for this data type.

                    

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
                      - **booleanValue** *(boolean) --* 

                        A Boolean value.

                        

                      
                      - **doubleValue** *(float) --* 

                        A double value.

                        

                      
                      - **integerValue** *(integer) --* 

                        An integer value.

                        

                      
                      - **longValue** *(integer) --* 

                        A long value.

                        

                      
                      - **stringValue** *(string) --* 

                        A string value.

                        

                      
                      - **listValue** *(list) --* 

                        A list of multiple values.

                        

                      
                      - **mapValue** *(dict) --* 

                        An object that maps strings to multiple ``DataValue`` objects.

                        

                      
                        - *(string) --* 

                        
                          - *(dict) --* 

                            An object that specifies a value for a property.

                            

                          
                    
                  
                      - **relationshipValue** *(dict) --* 

                        A value that relates a component to another component.

                        

                      
                        - **targetEntityId** *(string) --* 

                          The ID of the target entity associated with this relationship value.

                          

                        
                        - **targetComponentName** *(string) --* 

                          The name of the target component associated with the relationship value.

                          

                        
                      
                      - **expression** *(string) --* 

                        An expression that produces the value.

                        

                      
                    
                
                  - **unitOfMeasure** *(string) --* 

                    The unit of measure used in this data type.

                    

                  
                  - **relationship** *(dict) --* 

                    A relationship that associates a component with another component.

                    

                  
                    - **targetComponentTypeId** *(string) --* 

                      The ID of the target component type associated with this relationship.

                      

                    
                    - **relationshipType** *(string) --* 

                      The type of the relationship.

                      

                    
                  
                
                - **isRequiredInEntity** *(boolean) --* 

                  A Boolean value that specifies whether the property is required.

                  

                
                - **isExternalId** *(boolean) --* 

                  A Boolean value that specifies whether the property ID comes from an external data store.

                  

                
                - **isStoredExternally** *(boolean) --* 

                  A Boolean value that specifies whether the property is stored externally.

                  

                
                - **isTimeSeries** *(boolean) --* 

                  A Boolean value that specifies whether the property consists of time series data.

                  

                
                - **defaultValue** *(dict) --* 

                  An object that contains the default value.

                  

                
                  - **booleanValue** *(boolean) --* 

                    A Boolean value.

                    

                  
                  - **doubleValue** *(float) --* 

                    A double value.

                    

                  
                  - **integerValue** *(integer) --* 

                    An integer value.

                    

                  
                  - **longValue** *(integer) --* 

                    A long value.

                    

                  
                  - **stringValue** *(string) --* 

                    A string value.

                    

                  
                  - **listValue** *(list) --* 

                    A list of multiple values.

                    

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
                
                  - **mapValue** *(dict) --* 

                    An object that maps strings to multiple ``DataValue`` objects.

                    

                  
                    - *(string) --* 

                    
                      - *(dict) --* 

                        An object that specifies a value for a property.

                        

                      
                
              
                  - **relationshipValue** *(dict) --* 

                    A value that relates a component to another component.

                    

                  
                    - **targetEntityId** *(string) --* 

                      The ID of the target entity associated with this relationship value.

                      

                    
                    - **targetComponentName** *(string) --* 

                      The name of the target component associated with the relationship value.

                      

                    
                  
                  - **expression** *(string) --* 

                    An expression that produces the value.

                    

                  
                
                - **configuration** *(dict) --* 

                  A mapping that specifies configuration information about the property. Use this field to specify information that you read from and write to an external source.

                  

                
                  - *(string) --* 

                  
                    - *(string) --* 

                    
              
            
                - **displayName** *(string) --* 

                  A friendly name for the property.

                  

                
              
              - **value** *(dict) --* 

                The value of the property.

                

              
                - **booleanValue** *(boolean) --* 

                  A Boolean value.

                  

                
                - **doubleValue** *(float) --* 

                  A double value.

                  

                
                - **integerValue** *(integer) --* 

                  An integer value.

                  

                
                - **longValue** *(integer) --* 

                  A long value.

                  

                
                - **stringValue** *(string) --* 

                  A string value.

                  

                
                - **listValue** *(list) --* 

                  A list of multiple values.

                  

                
                  - *(dict) --* 

                    An object that specifies a value for a property.

                    

                  
              
                - **mapValue** *(dict) --* 

                  An object that maps strings to multiple ``DataValue`` objects.

                  

                
                  - *(string) --* 

                  
                    - *(dict) --* 

                      An object that specifies a value for a property.

                      

                    
              
            
                - **relationshipValue** *(dict) --* 

                  A value that relates a component to another component.

                  

                
                  - **targetEntityId** *(string) --* 

                    The ID of the target entity associated with this relationship value.

                    

                  
                  - **targetComponentName** *(string) --* 

                    The name of the target component associated with the relationship value.

                    

                  
                
                - **expression** *(string) --* 

                  An expression that produces the value.

                  

                
              
              - **updateType** *(string) --* 

                The update type of the update property request.

                

              
            
      
    
        - **propertyGroups** *(dict) --* 

          The property groups.

          

        
          - *(string) --* 

          
            - *(dict) --* 

              The component property group request.

              

            
              - **groupType** *(string) --* 

                The group type.

                

              
              - **propertyNames** *(list) --* 

                The property names.

                

              
                - *(string) --* 

                
            
              - **updateType** *(string) --* 

                The update type.

                

              
            
      
    
      


  :type parentEntityId: string
  :param parentEntityId: 

    The ID of the entity's parent entity.

    

  
  :type tags: dict
  :param tags: 

    Metadata that you can use to manage the entity.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'entityId': 'string',
          'arn': 'string',
          'creationDateTime': datetime(2015, 1, 1),
          'state': 'CREATING'|'UPDATING'|'DELETING'|'ACTIVE'|'ERROR'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **entityId** *(string) --* 

        The ID of the entity.

        
      

      - **arn** *(string) --* 

        The ARN of the entity.

        
      

      - **creationDateTime** *(datetime) --* 

        The date and time when the entity was created.

        
      

      - **state** *(string) --* 

        The current state of the entity.

        
  
  **Exceptions**
  
  *   :py:class:`IoTTwinMaker.Client.exceptions.InternalServerException`

  
  *   :py:class:`IoTTwinMaker.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`IoTTwinMaker.Client.exceptions.ThrottlingException`

  
  *   :py:class:`IoTTwinMaker.Client.exceptions.ValidationException`

  
  *   :py:class:`IoTTwinMaker.Client.exceptions.ConflictException`

  
  *   :py:class:`IoTTwinMaker.Client.exceptions.ServiceQuotaExceededException`

  