:doc:`SQS <../../sqs>` / Client / change_message_visibility_batch

*******************************
change_message_visibility_batch
*******************************



.. py:method:: SQS.Client.change_message_visibility_batch(**kwargs)

  

  Changes the visibility timeout of multiple messages. This is a batch version of ``ChangeMessageVisibility.`` The result of the action on each message is reported individually in the response. You can send up to 10 ``ChangeMessageVisibility`` requests with each ``ChangeMessageVisibilityBatch`` action.

   

  .. warning::

     

    Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of ``200``.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatch>`_  


  **Request Syntax**
  ::

    response = client.change_message_visibility_batch(
        QueueUrl='string',
        Entries=[
            {
                'Id': 'string',
                'ReceiptHandle': 'string',
                'VisibilityTimeout': 123
            },
        ]
    )
    
  :type QueueUrl: string
  :param QueueUrl: **[REQUIRED]** 

    The URL of the Amazon SQS queue whose messages' visibility is changed.

     

    Queue URLs and names are case-sensitive.

    

  
  :type Entries: list
  :param Entries: **[REQUIRED]** 

    Lists the receipt handles of the messages for which the visibility timeout must be changed.

    

  
    - *(dict) --* 

      Encloses a receipt handle and an entry ID for each message in ``ChangeMessageVisibilityBatch.``

      

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

        An identifier for this particular receipt handle used to communicate the result.

         

        .. note::

          

          The ``Id``s of a batch request need to be unique within a request.

           

          This identifier can have up to 80 characters. The following characters are accepted: alphanumeric characters, hyphens(-), and underscores (_).

          

        

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

        A receipt handle.

        

      
      - **VisibilityTimeout** *(integer) --* 

        The new value (in seconds) for the message's visibility timeout.

        

      
    

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

    
    ::

      {
          'Successful': [
              {
                  'Id': 'string'
              },
          ],
          'Failed': [
              {
                  'Id': 'string',
                  'SenderFault': True|False,
                  'Code': 'string',
                  'Message': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 

      For each message in the batch, the response contains a ``ChangeMessageVisibilityBatchResultEntry`` tag if the message succeeds or a ``BatchResultErrorEntry`` tag if the message fails.

      
      

      - **Successful** *(list) --* 

        A list of ``ChangeMessageVisibilityBatchResultEntry`` items.

        
        

        - *(dict) --* 

          Encloses the ``Id`` of an entry in ``ChangeMessageVisibilityBatch.``

          
          

          - **Id** *(string) --* 

            Represents a message whose visibility timeout has been changed successfully.

            
      
    
      

      - **Failed** *(list) --* 

        A list of ``BatchResultErrorEntry`` items.

        
        

        - *(dict) --* 

          Gives a detailed description of the result of an action on each entry in the request.

          
          

          - **Id** *(string) --* 

            The ``Id`` of an entry in a batch request.

            
          

          - **SenderFault** *(boolean) --* 

            Specifies whether the error happened due to the caller of the batch API action.

            
          

          - **Code** *(string) --* 

            An error code representing why the action failed on this entry.

            
          

          - **Message** *(string) --* 

            A message explaining why the action failed on this entry.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`SQS.Client.exceptions.TooManyEntriesInBatchRequest`

  
  *   :py:class:`SQS.Client.exceptions.EmptyBatchRequest`

  
  *   :py:class:`SQS.Client.exceptions.BatchEntryIdsNotDistinct`

  
  *   :py:class:`SQS.Client.exceptions.InvalidBatchEntryId`

  
  *   :py:class:`SQS.Client.exceptions.RequestThrottled`

  
  *   :py:class:`SQS.Client.exceptions.QueueDoesNotExist`

  
  *   :py:class:`SQS.Client.exceptions.UnsupportedOperation`

  
  *   :py:class:`SQS.Client.exceptions.InvalidAddress`

  
  *   :py:class:`SQS.Client.exceptions.InvalidSecurity`

  