class Google::Cloud::ResourceManager::Service

@private Represents the service to Resource Manager, as well as expose the API calls.

Constants

API

Alias to the Google Client API module

Attributes

credentials[RW]
mocked_service[RW]

Public Class Methods

new(credentials, retries: nil, timeout: nil, host: nil, quota_project: nil) click to toggle source

Creates a new Service instance.

# File lib/google/cloud/resource_manager/service.rb, line 36
def initialize credentials, retries: nil, timeout: nil, host: nil, quota_project: nil
  @credentials = credentials
  @service = API::CloudResourceManagerService.new
  @service.client_options.application_name = \
    "gcloud-ruby"
  @service.client_options.application_version = \
    Google::Cloud::ResourceManager::VERSION
  @service.client_options.open_timeout_sec = timeout
  @service.client_options.read_timeout_sec = timeout
  @service.client_options.send_timeout_sec = timeout
  @service.request_options.retries = retries || 3
  @service.request_options.header ||= {}
  @service.request_options.header["x-goog-api-client"] = \
    "gl-ruby/#{RUBY_VERSION} " \
    "gccl/#{Google::Cloud::ResourceManager::VERSION}"
  @service.request_options.quota_project = quota_project if quota_project
  @service.authorization = @credentials.client
  @service.root_url = host if host
end

Public Instance Methods

create_project(project_id, name, labels, parent) click to toggle source

Returns API::Project

# File lib/google/cloud/resource_manager/service.rb, line 79
def create_project project_id, name, labels, parent
  parent = parent.to_gapi unless parent.nil?
  project_attrs = {
    project_id: project_id, name: name, labels: labels, parent: parent
  }.delete_if { |_, v| v.nil? }
  execute { service.create_project API::Project.new(**project_attrs) }
end
delete_project(project_id) click to toggle source
# File lib/google/cloud/resource_manager/service.rb, line 96
def delete_project project_id
  execute { service.delete_project project_id }
end
get_policy(project_id) click to toggle source

Returns API::Policy

# File lib/google/cloud/resource_manager/service.rb, line 106
def get_policy project_id
  execute { service.get_project_iam_policy project_id }
end
get_project(project_id) click to toggle source

Returns API::Project

# File lib/google/cloud/resource_manager/service.rb, line 73
def get_project project_id
  execute { service.get_project project_id }
end
inspect() click to toggle source
# File lib/google/cloud/resource_manager/service.rb, line 128
def inspect
  self.class.to_s
end
list_project(filter: nil, token: nil, max: nil) click to toggle source

Returns API::ListProjectsResponse

# File lib/google/cloud/resource_manager/service.rb, line 64
def list_project filter: nil, token: nil, max: nil
  execute do
    service.list_projects page_token: token, page_size: max,
                          filter: filter
  end
end
service() click to toggle source
# File lib/google/cloud/resource_manager/service.rb, line 56
def service
  return mocked_service if mocked_service
  @service
end
set_policy(project_id, new_policy) click to toggle source

Returns API::Policy

# File lib/google/cloud/resource_manager/service.rb, line 112
def set_policy project_id, new_policy
  req = API::SetIamPolicyRequest.new policy: new_policy
  execute do
    service.set_project_iam_policy project_id, req
  end
end
test_permissions(project_id, permissions) click to toggle source

Returns API::TestIamPermissionsResponse

# File lib/google/cloud/resource_manager/service.rb, line 121
def test_permissions project_id, permissions
  req = API::TestIamPermissionsRequest.new permissions: permissions
  execute do
    service.test_project_iam_permissions project_id, req
  end
end
undelete_project(project_id) click to toggle source
# File lib/google/cloud/resource_manager/service.rb, line 100
def undelete_project project_id
  execute { service.undelete_project project_id }
end
update_project(project_gapi) click to toggle source

Updated the project, given a API::Project. Returns API::Project

# File lib/google/cloud/resource_manager/service.rb, line 90
def update_project project_gapi
  execute do
    service.update_project project_gapi.project_id, project_gapi
  end
end

Protected Instance Methods

execute() { || ... } click to toggle source
# File lib/google/cloud/resource_manager/service.rb, line 134
def execute
  yield
rescue Google::Apis::Error => e
  raise Google::Cloud::Error.from_error(e)
end