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

******************
get_component_type
******************



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

  

  Retrieves information about a component type.

  

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


  **Request Syntax**
  ::

    response = client.get_component_type(
        workspaceId='string',
        componentTypeId='string'
    )
    
  :type workspaceId: string
  :param workspaceId: **[REQUIRED]** 

    The ID of the workspace that contains the component type.

    

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

    The ID of the component type.

    

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

    
    ::

      {
          'workspaceId': 'string',
          'isSingleton': True|False,
          'componentTypeId': 'string',
          'description': 'string',
          'propertyDefinitions': {
              'string': {
                  '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'
                      }
                  },
                  'isTimeSeries': True|False,
                  'isRequiredInEntity': True|False,
                  'isExternalId': True|False,
                  'isStoredExternally': True|False,
                  'isImported': True|False,
                  'isFinal': True|False,
                  'isInherited': 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'
              }
          },
          'extendsFrom': [
              'string',
          ],
          'functions': {
              'string': {
                  'requiredProperties': [
                      'string',
                  ],
                  'scope': 'ENTITY'|'WORKSPACE',
                  'implementedBy': {
                      'lambda': {
                          'arn': 'string'
                      },
                      'isNative': True|False
                  },
                  'isInherited': True|False
              }
          },
          'creationDateTime': datetime(2015, 1, 1),
          'updateDateTime': datetime(2015, 1, 1),
          'arn': 'string',
          'isAbstract': True|False,
          'isSchemaInitialized': True|False,
          'status': {
              'state': 'CREATING'|'UPDATING'|'DELETING'|'ACTIVE'|'ERROR',
              'error': {
                  'code': 'VALIDATION_ERROR'|'INTERNAL_FAILURE'|'SYNC_INITIALIZING_ERROR'|'SYNC_CREATING_ERROR'|'SYNC_PROCESSING_ERROR'|'SYNC_DELETING_ERROR'|'PROCESSING_ERROR'|'COMPOSITE_COMPONENT_FAILURE',
                  'message': 'string'
              }
          },
          'propertyGroups': {
              'string': {
                  'groupType': 'TABULAR',
                  'propertyNames': [
                      'string',
                  ],
                  'isInherited': True|False
              }
          },
          'syncSource': 'string',
          'componentTypeName': 'string',
          'compositeComponentTypes': {
              'string': {
                  'componentTypeId': 'string',
                  'isInherited': True|False
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **workspaceId** *(string) --* 

        The ID of the workspace that contains the component type.

        
      

      - **isSingleton** *(boolean) --* 

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

        
      

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

        The ID of the component type.

        
      

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

        The description of the component type.

        
      

      - **propertyDefinitions** *(dict) --* 

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

        
        

        - *(string) --* 
          

          - *(dict) --* 

            An object that contains response data from a property definition request.

            
            

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

              An object that contains information about the data type.

              
              

              - **type** *(string) --* 

                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.

                  
            
          
            

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

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

              
            

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

              A Boolean value that specifies whether the property is required in an entity.

              
            

            - **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.

              
            

            - **isImported** *(boolean) --* 

              A Boolean value that specifies whether the property definition is imported from an external data store.

              
            

            - **isFinal** *(boolean) --* 

              A Boolean value that specifies whether the property definition can be updated.

              
            

            - **isInherited** *(boolean) --* 

              A Boolean value that specifies whether the property definition is inherited from a parent entity.

              
            

            - **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.

              
              

              - *(string) --* 
                

                - *(string) --* 
          
        
            

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

              A friendly name for the property.

              
        
    
  
      

      - **extendsFrom** *(list) --* 

        The name of the parent component type that this component type extends.

        
        

        - *(string) --* 
    
      

      - **functions** *(dict) --* 

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

        
        

        - *(string) --* 
          

          - *(dict) --* 

            The function response.

            
            

            - **requiredProperties** *(list) --* 

              The required properties of the function.

              
              

              - *(string) --* 
          
            

            - **scope** *(string) --* 

              The scope of the function.

              
            

            - **implementedBy** *(dict) --* 

              The data connector.

              
              

              - **lambda** *(dict) --* 

                The Lambda function associated with this data connector.

                
                

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

                  The ARN of the Lambda function.

                  
            
              

              - **isNative** *(boolean) --* 

                A Boolean value that specifies whether the data connector is native to IoT TwinMaker.

                
          
            

            - **isInherited** *(boolean) --* 

              Indicates whether this function is inherited.

              
        
    
  
      

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

        The date and time when the component type was created.

        
      

      - **updateDateTime** *(datetime) --* 

        The date and time when the component was last updated.

        
      

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

        The ARN of the component type.

        
      

      - **isAbstract** *(boolean) --* 

        A Boolean value that specifies whether the component type is abstract.

        
      

      - **isSchemaInitialized** *(boolean) --* 

        A Boolean value that specifies whether the component type has a schema initializer and that the schema initializer has run.

        
      

      - **status** *(dict) --* 

        The current status of the component type.

        
        

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

          The current state of the entity, component, component type, or workspace.

          
        

        - **error** *(dict) --* 

          The error message.

          
          

          - **code** *(string) --* 

            The error code.

            
          

          - **message** *(string) --* 

            The error message.

            
      
    
      

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

        The maximum number of results to return at one time. The default is 25.

         

        Valid Range: Minimum value of 1. Maximum value of 250.

        
        

        - *(string) --* 
          

          - *(dict) --* 

            The property group response

            
            

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

              The group types.

              
            

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

              The names of properties.

              
              

              - *(string) --* 
          
            

            - **isInherited** *(boolean) --* 

              A Boolean value that specifies whether the property group is inherited from a parent entity

              
        
    
  
      

      - **syncSource** *(string) --* 

        The syncSource of the SyncJob, if this entity was created by a SyncJob.

        
      

      - **componentTypeName** *(string) --* 

        The component type name.

        
      

      - **compositeComponentTypes** *(dict) --* 

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

        
        

        - *(string) --* 
          

          - *(dict) --* 

            An object that returns information about the composite component types of a component type.

            
            

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

              This is the ``componentTypeId`` that this ``compositeComponentType`` refers to.

              
            

            - **isInherited** *(boolean) --* 

              This boolean indicates whether this ``compositeComponentType`` is inherited from its parent.

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

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

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

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

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

  