docs: def reserve(self, max=None, timeout=None, wait=None, delete=None):
          """Retrieves Messages from the queue and reserves it.
  
          Arguments:
          max -- The maximum number of messages to reserve. Defaults to 1.
          timeout -- Timeout in seconds.
          wait -- Time to long poll for messages, in seconds. Max is 30 seconds. Default 0.
          delete -- If true, do not put each message back on to the queue after reserving. Default false.
          """
          url = "queues/%s/reservations" % self.name
          qitems = {}
          if max is not None:
              qitems['n'] = max
          if timeout is not None:
              qitems['timeout'] = timeout
          if wait is not None:
              qitems['wait'] = wait
          if delete is not None:
              qitems['delete'] = delete
          body = json.dumps(qitems)
  
          response = self.client.post(url, body=body,
                                      headers={'Content-Type': 'application/json'})
  
          return response['body']