Reference documentation and code samples for the google-cloud-resource_manager class Google::Cloud::ResourceManager::Manager.
Manager
Provides methods for creating, retrieving, and updating projects.
Inherits
- Object
Example
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new resource_manager.projects.each do |project| puts projects.project_id end
Methods
#create_project
def create_project(project_id, name: nil, labels: nil, parent: nil) -> Google::Cloud::ResourceManager::Project
Creates a project resource.
Initially, the project resource is owned by its creator exclusively. The creator can later grant permission to others to read or update the project.
Several APIs are activated automatically for the project, including Google Cloud Storage.
- project_id (String) — The unique, user-assigned ID of the project. It must be 6 to 30 lowercase letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited.
-
name (String) (defaults to: nil) — The user-assigned name of the project. This field
is optional and can remain unset.
Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point.
-
labels (Hash) (defaults to: nil) — The labels associated with this project.
Label keys must be between 1 and 63 characters long and must conform to the following regular expression:
[a-z]([-a-z0-9]*[a-z0-9])?
.Label values must be between 0 and 63 characters long and must conform to the regular expression
([a-z]([-a-z0-9]*[a-z0-9])?)?
.No more than 256 labels can be associated with a given resource.
-
parent (Resource) (defaults to: nil) — A parent Resource. Optional.
Supported parent types include "organization" and "folder". Once set, the parent can be updated but cannot be cleared.
The end user must have the
resourcemanager.projects.create
permission on the parent.
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new project = resource_manager.create_project "tokyo-rain-123"
A project can also be created with a name
and labels
:
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new project = resource_manager.create_project "tokyo-rain-123", name: "Todos Development", labels: {env: :development}
A project can also be created with a name
and parent
:
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new folder = resource_manager.resource "folder", "1234" project = resource_manager.create_project "tokyo-rain-123", name: "Todos Development", parent: folder
#delete
def delete(project_id)
Marks the project for deletion. This method will only affect the project if the following criteria are met:
- The project does not have a billing account associated with it.
- The project has a lifecycle state of
ACTIVE
. - This method changes the project's lifecycle state from
ACTIVE
toDELETE_REQUESTED
. The deletion starts at an unspecified time, at which point the lifecycle state changes toDELETE_IN_PROGRESS
.
Until the deletion completes, you can check the lifecycle state by retrieving the project with Manager#project. The project remains visible to Manager#project and Manager#projects, but cannot be updated.
After the deletion completes, the project is not retrievable by the Manager#project and Manager#projects methods.
The caller must have modify permissions for this project.
- project_id (String) — The ID of the project.
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new resource_manager.delete "tokyo-rain-123"
#project
def project(project_id) -> Google::Cloud::ResourceManager::Project, nil
Retrieves the project identified by the specified project_id
.
- project_id (String) — The ID of the project.
-
(Google::Cloud::ResourceManager::Project, nil) — Returns
nil
if the project does not exist
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new project = resource_manager.project "tokyo-rain-123" project.project_id #=> "tokyo-rain-123"
#projects
def projects(filter: nil, token: nil, max: nil) -> Array<Google::Cloud::ResourceManager::Project>
Retrieves the projects that are visible to the user and satisfy the specified filter. This method returns projects in an unspecified order. New projects do not necessarily appear at the end of the list.
-
filter (String) (defaults to: nil) —
An expression for filtering the results of the request. Filter rules are case insensitive.
The fields eligible for filtering are:
name
id
labels.key
- wherekey
is the name of a label
Some examples of using labels as filters:
name:*
- The project has a name.name:Howl
- The project's name is Howl or howl.name:HOWL
- Equivalent to above.NAME:howl
- Equivalent to above.labels.color:*
- The project has the label color.labels.color:red
- The project's label color has the value red.labels.color:red labels.size:big
- The project's label color has the value red and its label size has the value big.
- token (String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
- max (Integer) (defaults to: nil) — Maximum number of projects to return.
- (Array<Google::Cloud::ResourceManager::Project>) — (See Project::List)
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new projects = resource_manager.projects projects.each do |project| puts project.project_id end
Projects can be filtered using the filter
option:
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new projects = resource_manager.projects filter: "labels.env:production" projects.each do |project| puts project.project_id end
Retrieve all projects: (See Project::List#all)
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new projects = resource_manager.projects projects.all do |project| puts project.project_id end
#resource
def resource(type, id) -> resource
Create a Resource object. (See Resource.)
- type (String) — The resource type this id is for. At present, the valid types are: "organization" and "folder".
- id (String) — The type-specific id. This should correspond to the id used in the type-specific API's.
- (resource)
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new project = resource_manager.project "tokyo-rain-123" folder = resource_manager.resource "folder", "1234" project.parent = folder
#undelete
def undelete(project_id)
Restores the project. You can only use this method for a project that
has a lifecycle state of DELETE_REQUESTED
. After deletion starts, as
indicated by a lifecycle state of DELETE_IN_PROGRESS
, the project
cannot be restored.
The caller must have modify permissions for this project.
- project_id (String) — The ID of the project.
require "google/cloud/resource_manager" resource_manager = Google::Cloud::ResourceManager.new resource_manager.undelete "tokyo-rain-123"