Class: Gcloud::ResourceManager::Project::Updater

Inherits:
Gcloud::ResourceManager::Project show all
Defined in:
lib/gcloud/resource_manager/project/updater.rb

Overview

# Project Updater

This object is used by Project#update when passed a block. These methods are used to update the project data in a single API call.

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
project = resource_manager.project "tokyo-rain-123"
project.update do |p|
  p.name = "My Project"
  p.labels["env"] = "production"
end

Instance Attribute Summary

Attributes inherited from Gcloud::ResourceManager::Project

#gapi, #service

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Gcloud::ResourceManager::Project

#active?, #created_at, #delete, #delete_in_progress?, #delete_requested?, from_gapi, #name, #policy, #policy=, #project_id, #project_number, #reload!, #state, #test_permissions, #undelete, #unspecified?, #update

Constructor Details

#initialize(project) ⇒ Updater

Returns a new instance of Updater.



41
42
43
# File 'lib/gcloud/resource_manager/project/updater.rb', line 41

def initialize project
  super project
end

Class Method Details

.from_project(project) ⇒ Object



122
123
124
125
126
# File 'lib/gcloud/resource_manager/project/updater.rb', line 122

def self.from_project project
  dupe_gapi = project.gapi.class.new project.gapi.to_h
  dupe_project = Project.from_gapi dupe_gapi, nil # no way to update
  Updater.new dupe_project
end

Instance Method Details

#labelsObject

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. (‘Hash`)

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
project = resource_manager.project "tokyo-rain-123"
project.update do |p|
  p.labels["env"] = "production"
end


89
90
91
# File 'lib/gcloud/resource_manager/project/updater.rb', line 89

def labels
  gapi.labels
end

#labels=(new_labels) ⇒ Object

Updates 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. (‘Hash`)

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
project = resource_manager.project "tokyo-rain-123"
project.update do |p|
  p.labels = { "env" => "production" }
end


116
117
118
# File 'lib/gcloud/resource_manager/project/updater.rb', line 116

def labels= new_labels
  gapi.labels = new_labels
end

#name=(new_name) ⇒ Object

Updates 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.

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
project = resource_manager.project "tokyo-rain-123"
project.update do |p|
  p.name = "My Project"
end


62
63
64
# File 'lib/gcloud/resource_manager/project/updater.rb', line 62

def name= new_name
  gapi.name = new_name
end