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.
33 34 35 36 37 38 39 |
# File 'lib/gcloud/resource_manager/connection.rb', line 33 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.
29 30 31 |
# File 'lib/gcloud/resource_manager/connection.rb', line 29 def credentials @credentials end |
Instance Method Details
#create_project(project_id, name, labels) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/gcloud/resource_manager/connection.rb', line 60 def create_project project_id, name, labels project_gapi = { projectId: project_id, name: name, labels: labels }.delete_if { |_, v| v.nil? } execute( api_method: @res_man.projects.create, body_object: project_gapi ) end |
#delete_project(project_id) ⇒ Object
84 85 86 87 88 89 |
# File 'lib/gcloud/resource_manager/connection.rb', line 84 def delete_project project_id execute( api_method: @res_man.projects.delete, parameters: { projectId: project_id } ) end |
#get_policy(project_id) ⇒ Object
98 99 100 101 102 103 |
# File 'lib/gcloud/resource_manager/connection.rb', line 98 def get_policy project_id execute( api_method: @res_man.projects.get_iam_policy, parameters: { resource: project_id } ) end |
#get_project(project_id) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/gcloud/resource_manager/connection.rb', line 53 def get_project project_id execute( api_method: @res_man.projects.get, parameters: { projectId: project_id } ) end |
#inspect ⇒ Object
121 122 123 |
# File 'lib/gcloud/resource_manager/connection.rb', line 121 def inspect "#{self.class}(#{@project})" end |
#list_project(filter: nil, token: nil, max: nil) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/gcloud/resource_manager/connection.rb', line 41 def list_project filter: nil, token: nil, max: nil params = { filter: filter, pageToken: token, maxResults: max }.delete_if { |_, v| v.nil? } execute( api_method: @res_man.projects.list, parameters: params ) end |
#set_policy(project_id, new_policy) ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/gcloud/resource_manager/connection.rb', line 105 def set_policy project_id, new_policy 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
113 114 115 116 117 118 119 |
# File 'lib/gcloud/resource_manager/connection.rb', line 113 def project_id, execute( api_method: @res_man.projects., parameters: { resource: project_id }, body_object: { permissions: } ) end |
#undelete_project(project_id) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/gcloud/resource_manager/connection.rb', line 91 def undelete_project project_id 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.
74 75 76 77 78 79 80 81 82 |
# File 'lib/gcloud/resource_manager/connection.rb', line 74 def update_project project_gapi project_id = project_gapi["projectId"] execute( api_method: @res_man.projects.update, parameters: { projectId: project_id }, body_object: project_gapi ) end |