:doc:`EndUserMessagingSocial <../../socialmessaging>` / Client / post_whatsapp_message_media

***************************
post_whatsapp_message_media
***************************



.. py:method:: EndUserMessagingSocial.Client.post_whatsapp_message_media(**kwargs)

  

  Upload a media file to the WhatsApp service. Only the specified ``originationPhoneNumberId`` has the permissions to send the media file when using `SendWhatsAppMessage <https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_SendWhatsAppMessage.html>`__. You must use either ``sourceS3File`` or ``sourceS3PresignedUrl`` for the source. If both or neither are specified then an ``InvalidParameterException`` is returned.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/socialmessaging-2024-01-01/PostWhatsAppMessageMedia>`_  


  **Request Syntax**
  ::

    response = client.post_whatsapp_message_media(
        originationPhoneNumberId='string',
        sourceS3PresignedUrl={
            'url': 'string',
            'headers': {
                'string': 'string'
            }
        },
        sourceS3File={
            'bucketName': 'string',
            'key': 'string'
        }
    )
    
  :type originationPhoneNumberId: string
  :param originationPhoneNumberId: **[REQUIRED]** 

    The ID of the phone number to associate with the WhatsApp media file. The phone number identifiers are formatted as ``phone-number-id-01234567890123456789012345678901``. Use `GetLinkedWhatsAppBusinessAccount <https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetLinkedWhatsAppBusinessAccount.html>`__ to find a phone number's id.

    

  
  :type sourceS3PresignedUrl: dict
  :param sourceS3PresignedUrl: 

    The source presign url of the media file.

    

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

      The presign url to the object.

      

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

      A map of headers and their values. You must specify the ``Content-Type`` header when using ``PostWhatsAppMessageMedia``. For a list of common headers, see `Common Request Headers <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html>`__ in the *Amazon S3 API Reference*

      

    
      - *(string) --* 

      
        - *(string) --* 

        
  

  
  :type sourceS3File: dict
  :param sourceS3File: 

    The source S3 url for the media file.

    

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

      The bucket name.

      

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

      The S3 key prefix that defines the storage location of your media files. The prefix works like a folder path in S3, and is combined with the WhatsApp mediaId to create the final file path.

       

      For example, if a media file's WhatsApp mediaId is ``123.ogg``, and the key is ``audio/example.ogg``, the final file path is ``audio/example.ogg123.ogg``.

       

      For the same mediaId, a key of ``audio/`` results in the file path ``audio/123.ogg``.

      

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

    
    ::

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

    

    - *(dict) --* 
      

      - **mediaId** *(string) --* 

        The unique identifier of the posted WhatsApp message.

        
  
  **Exceptions**
  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.ValidationException`

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

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

  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.InvalidParametersException`

  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.AccessDeniedByMetaException`

  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.ThrottledRequestException`

  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.InternalServiceException`

  
  *   :py:class:`EndUserMessagingSocial.Client.exceptions.DependencyException`

  