Client

A Client for interacting with the Resource Manager API.

class google.cloud.resource_manager.client.Client(credentials=None, _http=None, client_info=None)

Bases: google.cloud.client.Client

Client to bundle configuration needed for API requests.

See https://cloud.google.com/resource-manager/reference/rest/ for more information on this API.

Automatically get credentials:

>>> from google.cloud import resource_manager
>>> client = resource_manager.Client()
  • Parameters

    • credentials (Credentials) – (Optional) The OAuth2 Credentials to use for this client. If not passed (and if no _http object is passed), falls back to the default inferred from the environment.

    • _http (Session) – (Optional) HTTP object to make requests. Can be any object that defines request() with the same interface as requests.Session.request(). If not passed, an _http object is created that is bound to the credentials for the current object. This parameter should be considered private, and could change in the future.

    • client_info (ClientInfo) – The client info used to send a user-agent string along with API requests. If None, then default info will be used. Generally, you only need to set this if you’re developing your own library or partner tool.

SCOPE(: Optional[Tuple[str, ...] = ('https://www.googleapis.com/auth/cloud-platform', )

The scopes required for authenticating as a Resouce Manager consumer.

fetch_project(project_id)

Fetch an existing project and it’s relevant metadata by ID.

NOTE: If the project does not exist, this will raise a NotFound error.

  • Parameters

    project_id (str) – The ID for this project.

  • Return type

    Project

  • Returns

    A Project with metadata fetched from the API.

list_projects(filter_params=None, page_size=None)

List the projects visible to this client.

Example:

>>> from google.cloud import resource_manager
>>> client = resource_manager.Client()
>>> for project in client.list_projects():
...     print(project.project_id)

List all projects with label 'environment' set to 'prod' (filtering by labels):

>>> from google.cloud import resource_manager
>>> client = resource_manager.Client()
>>> env_filter = {'labels.environment': 'prod'}
>>> for project in client.list_projects(env_filter):
...     print(project.project_id)

See https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/list

Complete filtering example:

>>> project_filter = {  # Return projects with...
...     'name': 'My Project',  # name set to 'My Project'.
...     'id': 'my-project-id',  # id set to 'my-project-id'.
...     'labels.stage': 'prod',  # the label 'stage' set to 'prod'
...     'labels.color': '*'  # a label 'color' set to anything.
... }
>>> client.list_projects(project_filter)
  • Parameters

    • filter_params (dict) – (Optional) A dictionary of filter options where each key is a property to filter on, and each value is the (case-insensitive) value to check (or the glob \* to check for existence of the property). See the example above for more details.

    • page_size (int) – (Optional) The maximum number of projects in each page of results from this request. Non-positive values are ignored. Defaults to a sensible value set by the API.

  • Return type

    Iterator

  • Returns

    Iterator of all Project. that the current user has access to.

new_project(project_id, name=None, labels=None)

Create a project bound to the current client.

Use Project.reload() to retrieve project metadata after creating a Project instance.

  • Parameters

    • project_id (str) – The ID for this project.

    • name (str) – The display name of the project.

    • labels (dict) – A list of labels associated with the project.

  • Return type

    Project

  • Returns

    A new instance of a Project without any metadata loaded.