:doc:`CloudDirectory <../../clouddirectory>` / Client / add_facet_to_object

*******************
add_facet_to_object
*******************



.. py:method:: CloudDirectory.Client.add_facet_to_object(**kwargs)

  

  Adds a new  Facet to an object. An object can have more than one facet applied on it.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject>`_  


  **Request Syntax**
  ::

    response = client.add_facet_to_object(
        DirectoryArn='string',
        SchemaFacet={
            'SchemaArn': 'string',
            'FacetName': 'string'
        },
        ObjectAttributeList=[
            {
                'Key': {
                    'SchemaArn': 'string',
                    'FacetName': 'string',
                    'Name': 'string'
                },
                'Value': {
                    'StringValue': 'string',
                    'BinaryValue': b'bytes',
                    'BooleanValue': True|False,
                    'NumberValue': 'string',
                    'DatetimeValue': datetime(2015, 1, 1)
                }
            },
        ],
        ObjectReference={
            'Selector': 'string'
        }
    )
    
  :type DirectoryArn: string
  :param DirectoryArn: **[REQUIRED]** 

    The Amazon Resource Name (ARN) that is associated with the  Directory where the object resides. For more information, see  arns.

    

  
  :type SchemaFacet: dict
  :param SchemaFacet: **[REQUIRED]** 

    Identifiers for the facet that you are adding to the object. See  SchemaFacet for details.

    

  
    - **SchemaArn** *(string) --* 

      The ARN of the schema that contains the facet with no minor component. See  arns and `In-Place Schema Upgrade <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html>`__ for a description of when to provide minor versions. If this value is set, FacetName must also be set.

      

    
    - **FacetName** *(string) --* 

      The name of the facet. If this value is set, SchemaArn must also be set.

      

    
  
  :type ObjectAttributeList: list
  :param ObjectAttributeList: 

    Attributes on the facet that you are adding to the object.

    

  
    - *(dict) --* 

      The combination of an attribute key and an attribute value.

      

    
      - **Key** *(dict) --* **[REQUIRED]** 

        The key of the attribute.

        

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

          The Amazon Resource Name (ARN) of the schema that contains the facet and attribute.

          

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

          The name of the facet that the attribute exists within.

          

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

          The name of the attribute.

          

        
      
      - **Value** *(dict) --* **[REQUIRED]** 

        The value of the attribute.

        

      
        - **StringValue** *(string) --* 

          A string data value.

          

        
        - **BinaryValue** *(bytes) --* 

          A binary data value.

          

        
        - **BooleanValue** *(boolean) --* 

          A Boolean data value.

          

        
        - **NumberValue** *(string) --* 

          A number data value.

          

        
        - **DatetimeValue** *(datetime) --* 

          A date and time value.

          

        
      
    

  :type ObjectReference: dict
  :param ObjectReference: **[REQUIRED]** 

    A reference to the object you are adding the specified facet to.

    

  
    - **Selector** *(string) --* 

      A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see `Access Objects <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html>`__. You can identify an object in one of the following ways:

       

      
      * *$ObjectIdentifier* - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier. To identify an object with ObjectIdentifier, the ObjectIdentifier must be wrapped in double quotes.
       
      * */some/path* - Identifies the object based on path
       
      * *#SomeBatchReference* - Identifies the object in a batch call
      

      

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`CloudDirectory.Client.exceptions.InternalServiceException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.InvalidArnException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.RetryableConflictException`

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

  
  *   :py:class:`CloudDirectory.Client.exceptions.LimitExceededException`

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

  
  *   :py:class:`CloudDirectory.Client.exceptions.DirectoryNotEnabledException`

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

  
  *   :py:class:`CloudDirectory.Client.exceptions.FacetValidationException`

  