Projects#

Utility for managing projects via the Cloud Resource Manager API.

class google.cloud.resource_manager.project.Project(project_id, client, name=None, labels=None)[source]#

Bases: object

Projects are containers for your work on Google Cloud Platform.

Note

A Project can also be created via Client.new_project()

To manage labels on a Project:

>>> from google.cloud import resource_manager
>>> client = resource_manager.Client()
>>> project = client.new_project('purple-spaceship-123')
>>> project.labels = {'color': 'purple'}
>>> project.labels['environment'] = 'production'
>>> project.update()

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

Parameters:
  • project_id (str) – The globally unique ID of the project.
  • client (google.cloud.resource_manager.client.Client) – The Client used with this project.
  • name (str) – The display name of the project.
  • labels (dict) – A list of labels associated with the project.
create(client=None)[source]#

API call: create the project via a POST request.

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

Parameters:client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.
delete(client=None, reload_data=False)[source]#

API call: delete the project via a DELETE request.

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

This actually changes the status (lifecycleState) from ACTIVE to DELETE_REQUESTED. Later (it’s not specified when), the project will move into the DELETE_IN_PROGRESS state, which means the deleting has actually begun.

Parameters:
  • client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.
  • reload_data (bool) – Whether to reload the project with the latest state. If you want to get the updated status, you’ll want this set to True as the DELETE method doesn’t send back the updated project. Default: False.
exists(client=None)[source]#

API call: test the existence of a project via a GET request.

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

Parameters:client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.
Return type:bool
Returns:Boolean indicating existence of the project.
classmethod from_api_repr(resource, client)[source]#

Factory: construct a project given its API representation.

Parameters:
Return type:

google.cloud.resource_manager.project.Project

Returns:

The project created.

full_name#

Fully-qualified name (ie, 'projects/purple-spaceship-123').

path#

URL for the project (ie, '/projects/purple-spaceship-123').

reload(client=None)[source]#

API call: reload the project via a GET request.

This method will reload the newest metadata for the project. If you’ve created a new Project instance via Client.new_project(), this method will retrieve project metadata.

Warning

This will overwrite any local changes you’ve made and not saved via update().

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

Parameters:client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.
set_properties_from_api_repr(resource)[source]#

Update specific properties from its API representation.

undelete(client=None, reload_data=False)[source]#

API call: undelete the project via a POST request.

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

This actually changes the project status (lifecycleState) from DELETE_REQUESTED to ACTIVE. If the project has already reached a status of DELETE_IN_PROGRESS, this request will fail and the project cannot be restored.

Parameters:
  • client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.
  • reload_data (bool) – Whether to reload the project with the latest state. If you want to get the updated status, you’ll want this set to True as the DELETE method doesn’t send back the updated project. Default: False.
update(client=None)[source]#

API call: update the project via a PUT request.

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

Parameters:client (google.cloud.resource_manager.client.Client or NoneType) – the client to use. If not passed, falls back to the client stored on the current project.