Touching a reserved message extends its timeout to the duration specified when the message was created.

        Arguments:
        message_id -- The ID of the message.
        reservation_id -- Reservation Id of the message.
        timeout -- Optional. The timeout in seconds after which new reservation will expire.

def touch(self, message_id, reservation_id, timeout=None):
        """Touching a reserved message extends its timeout to the duration specified when the message was created.

        Arguments:
        message_id -- The ID of the message.
        reservation_id -- Reservation Id of the message.
        timeout -- Optional. The timeout in seconds after which new reservation will expire.
        """
        url = "queues/%s/messages/%s/touch" % (self.name, message_id)
        qitems = {'reservation_id': reservation_id}
        if timeout is not None:
            qitems['timeout'] = timeout
        body = json.dumps(qitems)

        response = self.client.post(url, body=body,
                                    headers={'Content-Type': 'application/json'})

        return response['body']