docs: def buckets_list(self, projection='noAcl', max_results=0, page_token=None, project_id=None):
      """Issues a request to retrieve the list of buckets.
  
      Args:
        projection: the projection of the bucket information to retrieve.
        max_results: an optional maximum number of objects to retrieve.
        page_token: an optional token to continue the retrieval.
        project_id: the project whose buckets should be listed.
      Returns:
        A parsed list of bucket information dictionaries.
      Raises:
        Exception if there is an error performing the operation.
      """
      if max_results == 0:
        max_results = Api._MAX_RESULTS
  
      args = {'project': project_id if project_id else self._project_id, 'maxResults': max_results}
      if projection is not None:
        args['projection'] = projection
      if page_token is not None:
        args['pageToken'] = page_token
  
      url = Api._ENDPOINT + (Api._BUCKET_PATH % '')
      return google.datalab.utils.Http.request(url, args=args, credentials=self._credentials)