class Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client

Client for the AssuredWorkloadsService service.

Service to manage AssuredWorkloads.

Attributes

assured_workloads_service_stub[R]

@private

operations_client[R]

Get the associated client for long-running operations.

@return [::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Operations]

Public Class Methods

configure() { |configure| ... } click to toggle source

Configure the AssuredWorkloadsService Client class.

See {::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client::Configuration} for a description of the configuration fields.

@example

# Modify the configuration for all AssuredWorkloadsService clients
::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.configure do |config|
  config.timeout = 10.0
end

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 56
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "AssuredWorkloads", "V1"]
    parent_config = while namespace.any?
                      parent_name = namespace.join "::"
                      parent_const = const_get parent_name
                      break parent_const.configure if parent_const.respond_to? :configure
                      namespace.pop
                    end
    default_config = Client::Configuration.new parent_config

    default_config.timeout = 60.0

    default_config
  end
  yield @configure if block_given?
  @configure
end
new() { |config| ... } click to toggle source

Create a new AssuredWorkloadsService client object.

@example

# Create a client using the default configuration
client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a client using a custom configuration
client = ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new do |config|
  config.timeout = 10.0
end

@yield [config] Configure the AssuredWorkloadsService client. @yieldparam config [Client::Configuration]

# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 111
def initialize
  # These require statements are intentionally placed here to initialize
  # the gRPC module only when it's required.
  # See https://github.com/googleapis/toolkit/issues/446
  require "gapic/grpc"
  require "google/cloud/assuredworkloads/v1/assuredworkloads_services_pb"

  # Create the configuration object
  @config = Configuration.new Client.configure

  # Yield the configuration if needed
  yield @config if block_given?

  # Create credentials
  credentials = @config.credentials
  # Use self-signed JWT if the endpoint is unchanged from default,
  # but only if the default endpoint does not have a region prefix.
  enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
                           !@config.endpoint.split(".").first.include?("-")
  credentials ||= Credentials.default scope: @config.scope,
                                      enable_self_signed_jwt: enable_self_signed_jwt
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
    credentials = Credentials.new credentials, scope: @config.scope
  end
  @quota_project_id = @config.quota_project
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id

  @operations_client = Operations.new do |config|
    config.credentials = credentials
    config.quota_project = @quota_project_id
    config.endpoint = @config.endpoint
  end

  @assured_workloads_service_stub = ::Gapic::ServiceStub.new(
    ::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Stub,
    credentials:  credentials,
    endpoint:     @config.endpoint,
    channel_args: @config.channel_args,
    interceptors: @config.interceptors
  )
end

Public Instance Methods

configure() { |config| ... } click to toggle source

Configure the AssuredWorkloadsService Client instance.

The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on {Client.configure}.

See {::Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client::Configuration} for a description of the configuration fields.

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 90
def configure
  yield @config if block_given?
  @config
end
create_workload(request, options = nil) { |response, operation| ... } click to toggle source

Creates Assured Workload.

@overload create_workload(request, options = nil)

Pass arguments to `create_workload` via a request object, either of type
{::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest} or an equivalent Hash.

@param request [::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload create_workload(parent: nil, workload: nil, external_id: nil)

Pass arguments to `create_workload` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param parent [::String]
  Required. The resource name of the new Workload's parent.
  Must be of the form `organizations/{org_id}/locations/{location_id}`.
@param workload [::Google::Cloud::AssuredWorkloads::V1::Workload, ::Hash]
  Required. Assured Workload to create
@param external_id [::String]
  Optional. A identifier associated with the workload and underlying projects
  which allows for the break down of billing costs for a workload. The value
  provided for the identifier will add a label to the workload and contained
  projects with the identifier as the value.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::Operation]

@raise [::Google::Cloud::Error] if the RPC is aborted.

@example Basic example

require "google/cloud/assured_workloads/v1"

# Create a client object. The client can be reused for multiple calls.
client = Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a request. To set request fields, pass in keyword arguments.
request = Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest.new

# Call the create_workload method.
result = client.create_workload request

# The returned object is of type Gapic::Operation. You can use this
# object to check the status of an operation, cancel it, or wait
# for results. Here is how to block until completion:
result.wait_until_done! timeout: 60
if result.response?
  p result.response
else
  puts "Error!"
end
# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 221
def create_workload request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.create_workload.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {}
  if request.parent
    header_params["parent"] = request.parent
  end

  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.create_workload.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.create_workload.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @assured_workloads_service_stub.call_rpc :create_workload, request, options: options do |response, operation|
    response = ::Gapic::Operation.new response, @operations_client, options: options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
delete_workload(request, options = nil) { |response, operation| ... } click to toggle source

Deletes the workload. Make sure that workload’s direct children are already in a deleted state, otherwise the request will fail with a FAILED_PRECONDITION error.

@overload delete_workload(request, options = nil)

Pass arguments to `delete_workload` via a request object, either of type
{::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest} or an equivalent Hash.

@param request [::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload delete_workload(name: nil, etag: nil)

Pass arguments to `delete_workload` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Required. The `name` field is used to identify the workload.
  Format:
  organizations/\\{org_id}/locations/\\{location_id}/workloads/\\{workload_id}
@param etag [::String]
  Optional. The etag of the workload.
  If this is provided, it must match the server's etag.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Protobuf::Empty] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Protobuf::Empty]

@raise [::Google::Cloud::Error] if the RPC is aborted.

@example Basic example

require "google/cloud/assured_workloads/v1"

# Create a client object. The client can be reused for multiple calls.
client = Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a request. To set request fields, pass in keyword arguments.
request = Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest.new

# Call the delete_workload method.
result = client.delete_workload request

# The returned object is of type Google::Protobuf::Empty.
p result
# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 407
def delete_workload request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::DeleteWorkloadRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.delete_workload.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {}
  if request.name
    header_params["name"] = request.name
  end

  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.delete_workload.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.delete_workload.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @assured_workloads_service_stub.call_rpc :delete_workload, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
get_workload(request, options = nil) { |response, operation| ... } click to toggle source

Gets Assured Workload associated with a CRM Node

@overload get_workload(request, options = nil)

Pass arguments to `get_workload` via a request object, either of type
{::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest} or an equivalent Hash.

@param request [::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload get_workload(name: nil)

Pass arguments to `get_workload` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Required. The resource name of the Workload to fetch. This is the
  workloads's relative path in the API, formatted as
  "organizations/\\{organization_id}/locations/\\{location_id}/workloads/\\{workload_id}".
  For example,
  "organizations/123/locations/us-east1/workloads/assured-workload-1".

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AssuredWorkloads::V1::Workload] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AssuredWorkloads::V1::Workload]

@raise [::Google::Cloud::Error] if the RPC is aborted.

@example Basic example

require "google/cloud/assured_workloads/v1"

# Create a client object. The client can be reused for multiple calls.
client = Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a request. To set request fields, pass in keyword arguments.
request = Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest.new

# Call the get_workload method.
result = client.get_workload request

# The returned object is of type Google::Cloud::AssuredWorkloads::V1::Workload.
p result
# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 496
def get_workload request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::GetWorkloadRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.get_workload.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {}
  if request.name
    header_params["name"] = request.name
  end

  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.get_workload.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_workload.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @assured_workloads_service_stub.call_rpc :get_workload, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
list_workloads(request, options = nil) { |response, operation| ... } click to toggle source

Lists Assured Workloads under a CRM Node.

@overload list_workloads(request, options = nil)

Pass arguments to `list_workloads` via a request object, either of type
{::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest} or an equivalent Hash.

@param request [::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload list_workloads(parent: nil, page_size: nil, page_token: nil, filter: nil)

Pass arguments to `list_workloads` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param parent [::String]
  Required. Parent Resource to list workloads from.
  Must be of the form `organizations/{org_id}/locations/{location}`.
@param page_size [::Integer]
  Page size.
@param page_token [::String]
  Page token returned from previous request. Page token contains context from
  previous request. Page token needs to be passed in the second and following
  requests.
@param filter [::String]
  A custom filter for filtering by properties of a workload. At this time,
  only filtering by labels is supported.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::AssuredWorkloads::V1::Workload>] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::PagedEnumerable<::Google::Cloud::AssuredWorkloads::V1::Workload>]

@raise [::Google::Cloud::Error] if the RPC is aborted.

@example Basic example

require "google/cloud/assured_workloads/v1"

# Create a client object. The client can be reused for multiple calls.
client = Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a request. To set request fields, pass in keyword arguments.
request = Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest.new

# Call the list_workloads method.
result = client.list_workloads request

# The returned object is of type Gapic::PagedEnumerable. You can
# iterate over all elements by calling #each, and the enumerable
# will lazily make API calls to fetch subsequent pages. Other
# methods are also available for managing paging directly.
result.each do |response|
  # Each element is of type ::Google::Cloud::AssuredWorkloads::V1::Workload.
  p response
end
# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 597
def list_workloads request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::ListWorkloadsRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.list_workloads.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {}
  if request.parent
    header_params["parent"] = request.parent
  end

  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.list_workloads.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_workloads.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @assured_workloads_service_stub.call_rpc :list_workloads, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @assured_workloads_service_stub, :list_workloads, request, response, operation, options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
update_workload(request, options = nil) { |response, operation| ... } click to toggle source

Updates an existing workload. Currently allows updating of workload display_name and labels. For force updates don’t set etag field in the Workload. Only one update operation per workload can be in progress.

@overload update_workload(request, options = nil)

Pass arguments to `update_workload` via a request object, either of type
{::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest} or an equivalent Hash.

@param request [::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload update_workload(workload: nil, update_mask: nil)

Pass arguments to `update_workload` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param workload [::Google::Cloud::AssuredWorkloads::V1::Workload, ::Hash]
  Required. The workload to update.
  The workload’s `name` field is used to identify the workload to be updated.
  Format:
  organizations/\\{org_id}/locations/\\{location_id}/workloads/\\{workload_id}
@param update_mask [::Google::Protobuf::FieldMask, ::Hash]
  Required. The list of fields to be updated.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AssuredWorkloads::V1::Workload] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AssuredWorkloads::V1::Workload]

@raise [::Google::Cloud::Error] if the RPC is aborted.

@example Basic example

require "google/cloud/assured_workloads/v1"

# Create a client object. The client can be reused for multiple calls.
client = Google::Cloud::AssuredWorkloads::V1::AssuredWorkloadsService::Client.new

# Create a request. To set request fields, pass in keyword arguments.
request = Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest.new

# Call the update_workload method.
result = client.update_workload request

# The returned object is of type Google::Cloud::AssuredWorkloads::V1::Workload.
p result
# File lib/google/cloud/assured_workloads/v1/assured_workloads_service/client.rb, line 315
def update_workload request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AssuredWorkloads::V1::UpdateWorkloadRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.update_workload.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AssuredWorkloads::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {}
  if request.workload&.name
    header_params["workload.name"] = request.workload.name
  end

  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.update_workload.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.update_workload.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @assured_workloads_service_stub.call_rpc :update_workload, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end