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 =
"v1beta1"
Instance Attribute Summary collapse
-
#credentials ⇒ Object
Returns the value of attribute credentials.
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
- #list_project(filter: nil, token: nil, max: nil) ⇒ 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.
32 33 34 35 36 37 38 |
# File 'lib/gcloud/resource_manager/connection.rb', line 32 def initialize credentials @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
Returns the value of attribute credentials.
28 29 30 |
# File 'lib/gcloud/resource_manager/connection.rb', line 28 def credentials @credentials end |
Instance Method Details
#create_project(project_id, name, labels) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/gcloud/resource_manager/connection.rb', line 59 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
83 84 85 86 87 88 |
# File 'lib/gcloud/resource_manager/connection.rb', line 83 def delete_project project_id @client.execute( api_method: @res_man.projects.delete, parameters: { projectId: project_id } ) end |
#get_policy(project_id) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/gcloud/resource_manager/connection.rb', line 97 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
52 53 54 55 56 57 |
# File 'lib/gcloud/resource_manager/connection.rb', line 52 def get_project project_id @client.execute( api_method: @res_man.projects.get, parameters: { projectId: project_id } ) end |
#inspect ⇒ Object
120 121 122 |
# File 'lib/gcloud/resource_manager/connection.rb', line 120 def inspect "#{self.class}(#{@project})" end |
#list_project(filter: nil, token: nil, max: nil) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/gcloud/resource_manager/connection.rb', line 40 def list_project filter: nil, token: nil, max: nil params = { filter: filter, pageToken: token, maxResults: max }.delete_if { |_, v| v.nil? } @client.execute( api_method: @res_man.projects.list, parameters: params ) end |
#set_policy(project_id, new_policy) ⇒ Object
104 105 106 107 108 109 110 |
# File 'lib/gcloud/resource_manager/connection.rb', line 104 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
112 113 114 115 116 117 118 |
# File 'lib/gcloud/resource_manager/connection.rb', line 112 def project_id, @client.execute( api_method: @res_man.projects., parameters: { resource: project_id }, body_object: { permissions: } ) end |
#undelete_project(project_id) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/gcloud/resource_manager/connection.rb', line 90 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.
73 74 75 76 77 78 79 80 81 |
# File 'lib/gcloud/resource_manager/connection.rb', line 73 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 |