:doc:`ConnectParticipant <../../connectparticipant>` / Client / complete_attachment_upload

**************************
complete_attachment_upload
**************************



.. py:method:: ConnectParticipant.Client.complete_attachment_upload(**kwargs)

  

  Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API. A conflict exception is thrown when an attachment with that identifier is already being uploaded.

   

  For security recommendations, see `Amazon Connect Chat security best practices <https://docs.aws.amazon.com/connect/latest/adminguide/security-best-practices.html#bp-security-chat>`__.

   

  .. note::

    

    ``ConnectionToken`` is used for invoking this API instead of ``ParticipantToken``.

    

   

  The Amazon Connect Participant Service APIs do not use `Signature Version 4 authentication <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/CompleteAttachmentUpload>`_  


  **Request Syntax**
  ::

    response = client.complete_attachment_upload(
        AttachmentIds=[
            'string',
        ],
        ClientToken='string',
        ConnectionToken='string'
    )
    
  :type AttachmentIds: list
  :param AttachmentIds: **[REQUIRED]** 

    A list of unique identifiers for the attachments.

    

  
    - *(string) --* 

    

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

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see `Making retries safe with idempotent APIs <https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/>`__.

    This field is autopopulated if not provided.

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

    The authentication token associated with the participant's connection.

    

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`ConnectParticipant.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`ConnectParticipant.Client.exceptions.InternalServerException`

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

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

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

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

  