Class: Gcloud::ResourceManager::Connection
- Inherits:
-
Object
- Object
- Gcloud::ResourceManager::Connection
- Defined in:
- lib/gcloud/resource_manager/connection.rb
Overview
Represents the connection to Resource Manager, as well as expose the API calls.
Constant Summary collapse
- API_VERSION =
:nodoc:
"v1beta1"
Instance Attribute Summary collapse
-
#credentials ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #create_project(project_id, name, labels) ⇒ Object
- #delete_project(project_id) ⇒ Object
- #get_policy(project_id) ⇒ Object
- #get_project(project_id) ⇒ Object
-
#initialize(credentials) ⇒ Connection
constructor
Creates a new Connection instance.
-
#inspect ⇒ Object
:nodoc:.
- #list_project(options = {}) ⇒ Object
- #set_policy(project_id, new_policy) ⇒ Object
- #test_permissions(project_id, permissions) ⇒ Object
- #undelete_project(project_id) ⇒ Object
-
#update_project(project_gapi) ⇒ Object
Updated the project, given the project Google API Client object/hash.
Constructor Details
#initialize(credentials) ⇒ Connection
Creates a new Connection instance.
31 32 33 34 35 36 37 |
# File 'lib/gcloud/resource_manager/connection.rb', line 31 def initialize credentials #:nodoc: @credentials = credentials @client = Google::APIClient.new application_name: "gcloud-ruby", application_version: Gcloud::VERSION @client. = @credentials.client @res_man = @client.discovered_api "cloudresourcemanager", API_VERSION end |
Instance Attribute Details
#credentials ⇒ Object
:nodoc:
27 28 29 |
# File 'lib/gcloud/resource_manager/connection.rb', line 27 def credentials @credentials end |
Instance Method Details
#create_project(project_id, name, labels) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/gcloud/resource_manager/connection.rb', line 58 def create_project project_id, name, labels project_gapi = { projectId: project_id, name: name, labels: labels }.delete_if { |_, v| v.nil? } @client.execute( api_method: @res_man.projects.create, body_object: project_gapi ) end |
#delete_project(project_id) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/gcloud/resource_manager/connection.rb', line 82 def delete_project project_id @client.execute( api_method: @res_man.projects.delete, parameters: { projectId: project_id } ) end |
#get_policy(project_id) ⇒ Object
96 97 98 99 100 101 |
# File 'lib/gcloud/resource_manager/connection.rb', line 96 def get_policy project_id @client.execute( api_method: @res_man.projects.get_iam_policy, parameters: { resource: project_id } ) end |
#get_project(project_id) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/gcloud/resource_manager/connection.rb', line 51 def get_project project_id @client.execute( api_method: @res_man.projects.get, parameters: { projectId: project_id } ) end |
#inspect ⇒ Object
:nodoc:
119 120 121 |
# File 'lib/gcloud/resource_manager/connection.rb', line 119 def inspect #:nodoc: "#{self.class}(#{@project})" end |
#list_project(options = {}) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/gcloud/resource_manager/connection.rb', line 39 def list_project = {} params = { filter: .delete(:filter), pageToken: .delete(:token), maxResults: .delete(:max) }.delete_if { |_, v| v.nil? } @client.execute( api_method: @res_man.projects.list, parameters: params ) end |
#set_policy(project_id, new_policy) ⇒ Object
103 104 105 106 107 108 109 |
# File 'lib/gcloud/resource_manager/connection.rb', line 103 def set_policy project_id, new_policy @client.execute( api_method: @res_man.projects.set_iam_policy, parameters: { resource: project_id }, body_object: { policy: new_policy } ) end |
#test_permissions(project_id, permissions) ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/gcloud/resource_manager/connection.rb', line 111 def project_id, @client.execute( api_method: @res_man.projects., parameters: { resource: project_id }, body_object: { permissions: } ) end |
#undelete_project(project_id) ⇒ Object
89 90 91 92 93 94 |
# File 'lib/gcloud/resource_manager/connection.rb', line 89 def undelete_project project_id @client.execute( api_method: @res_man.projects.undelete, parameters: { projectId: project_id } ) end |
#update_project(project_gapi) ⇒ Object
Updated the project, given the project Google API Client object/hash. We try not to pass the gapi objects, but there is no PATCH, so we need to pass in a complete Project object.
72 73 74 75 76 77 78 79 80 |
# File 'lib/gcloud/resource_manager/connection.rb', line 72 def update_project project_gapi project_id = project_gapi["projectId"] @client.execute( api_method: @res_man.projects.update, parameters: { projectId: project_id }, body_object: project_gapi ) end |