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

*************
attach_object
*************



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

  

  Attaches an existing object to another object. An object can be accessed in two ways:

   

   
  * Using the path
   
  * Using ``ObjectIdentifier``
  

  

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


  **Request Syntax**
  ::

    response = client.attach_object(
        DirectoryArn='string',
        ParentReference={
            'Selector': 'string'
        },
        ChildReference={
            'Selector': 'string'
        },
        LinkName='string'
    )
    
  :type DirectoryArn: string
  :param DirectoryArn: **[REQUIRED]** 

    Amazon Resource Name (ARN) that is associated with the  Directory where both objects reside. For more information, see  arns.

    

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

    The parent object reference.

    

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

      

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

    The child object reference to be attached to the object.

    

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

      

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

    The link name with which the child object is attached to the parent.

    

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

    
    ::

      {
          'AttachedObjectIdentifier': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **AttachedObjectIdentifier** *(string) --* 

        The attached ``ObjectIdentifier``, which is the child ``ObjectIdentifier``.

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

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

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

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

  