code: def list_datasets(self, project_id):
          
  
          request = self.client.datasets().list(projectId=project_id,
                                                maxResults=1000)
          response = request.execute()
  
          while response is not None:
              for ds in response.get('datasets', []):
                  yield ds['datasetReference']['datasetId']
  
              request = self.client.datasets().list_next(request, response)
              if request is None:
                  break
  
              response = request.execute()
docs: Returns the list of datasets in a given project.
  
             :param project_id:
             :type project_id: str