class Google::Cloud::Asset::V1beta1::AssetService::Client

Client for the AssetService service.

Asset service definition.

Attributes

asset_service_stub[R]

@private

operations_client[R]

Get the associated client for long-running operations.

@return [::Google::Cloud::Asset::V1beta1::AssetService::Operations]

Public Class Methods

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

Configure the AssetService Client class.

See {::Google::Cloud::Asset::V1beta1::AssetService::Client::Configuration} for a description of the configuration fields.

## Example

To modify the configuration for all AssetService clients:

::Google::Cloud::Asset::V1beta1::AssetService::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/asset/v1beta1/asset_service/client.rb, line 55
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "Asset", "V1beta1"]
    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.rpcs.export_assets.timeout = 60.0

    default_config.rpcs.batch_get_assets_history.timeout = 60.0
    default_config.rpcs.batch_get_assets_history.retry_policy = {
      initial_delay: 0.1,
      max_delay:     60.0,
      multiplier:    1.3,
      retry_codes:   [4, 14]
    }

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

Create a new AssetService client object.

## Examples

To create a new AssetService client with the default configuration:

client = ::Google::Cloud::Asset::V1beta1::AssetService::Client.new

To create a new AssetService client with a custom configuration:

client = ::Google::Cloud::Asset::V1beta1::AssetService::Client.new do |config|
  config.timeout = 10.0
end

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

# File lib/google/cloud/asset/v1beta1/asset_service/client.rb, line 122
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/asset/v1beta1/asset_service_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
  credentials ||= Credentials.default scope: @config.scope
  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.endpoint = @config.endpoint
  end

  @asset_service_stub = ::Gapic::ServiceStub.new(
    ::Google::Cloud::Asset::V1beta1::AssetService::Stub,
    credentials:  credentials,
    endpoint:     @config.endpoint,
    channel_args: @config.channel_args,
    interceptors: @config.interceptors
  )
end

Public Instance Methods

batch_get_assets_history(request, options = nil) { |response, operation| ... } click to toggle source

Batch gets the update history of assets that overlap a time window. For RESOURCE content, this API outputs history with asset in both non-delete or deleted status. For IAM_POLICY content, this API outputs history when the asset and its attached IAM POLICY both exist. This can create gaps in the output history. If a specified asset does not exist, this API returns an INVALID_ARGUMENT error.

@overload batch_get_assets_history(request, options = nil)

Pass arguments to `batch_get_assets_history` via a request object, either of type
{::Google::Cloud::Asset::V1beta1::BatchGetAssetsHistoryRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1beta1::BatchGetAssetsHistoryRequest, ::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 batch_get_assets_history(parent: nil, asset_names: nil, content_type: nil, read_time_window: nil)

Pass arguments to `batch_get_assets_history` 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 relative name of the root asset. It can only be an
  organization number (such as "organizations/123"), a project ID (such as
  "projects/my-project-id")", or a project number (such as "projects/12345").
@param asset_names [::Array<::String>]
  A list of the full names of the assets. For example:
  `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
  See [Resource
  Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
  for more info.

  The request becomes a no-op if the asset name list is empty, and the max
  size of the asset name list is 100 in one request.
@param content_type [::Google::Cloud::Asset::V1beta1::ContentType]
  Optional. The content type.
@param read_time_window [::Google::Cloud::Asset::V1beta1::TimeWindow, ::Hash]
  Optional. The time window for the asset history. Both start_time and
  end_time are optional and if set, it must be after 2018-10-02 UTC. If
  end_time is not set, it is default to current timestamp. If start_time is
  not set, the snapshot of the assets at end_time will be returned. The
  returned results contain all temporal assets whose time window overlap with
  read_time_window.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Asset::V1beta1::BatchGetAssetsHistoryResponse] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::Asset::V1beta1::BatchGetAssetsHistoryResponse]

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

# File lib/google/cloud/asset/v1beta1/asset_service/client.rb, line 314
def batch_get_assets_history request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1beta1::BatchGetAssetsHistoryRequest

  # 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.batch_get_assets_history.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::Asset::V1beta1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "parent" => request.parent
  }
  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.batch_get_assets_history.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.batch_get_assets_history.retry_policy
  options.apply_defaults metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @asset_service_stub.call_rpc :batch_get_assets_history, 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
configure() { |config| ... } click to toggle source

Configure the AssetService 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::Asset::V1beta1::AssetService::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/asset/v1beta1/asset_service/client.rb, line 97
def configure
  yield @config if block_given?
  @config
end
export_assets(request, options = nil) { |response, operation| ... } click to toggle source

Exports assets with time and resource types to a given Cloud Storage location. The output format is newline-delimited JSON. This API implements the {::Google::Longrunning::Operation google.longrunning.Operation} API allowing you to keep track of the export.

@overload export_assets(request, options = nil)

Pass arguments to `export_assets` via a request object, either of type
{::Google::Cloud::Asset::V1beta1::ExportAssetsRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1beta1::ExportAssetsRequest, ::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 export_assets(parent: nil, read_time: nil, asset_types: nil, content_type: nil, output_config: nil)

Pass arguments to `export_assets` 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 relative name of the root asset. This can only be an
  organization number (such as "organizations/123"), a project ID (such as
  "projects/my-project-id"), a project number (such as "projects/12345"), or
  a folder number (such as "folders/123").
@param read_time [::Google::Protobuf::Timestamp, ::Hash]
  Timestamp to take an asset snapshot. This can only be set to a timestamp
  between 2018-10-02 UTC (inclusive) and the current time. If not specified,
  the current time will be used. Due to delays in resource data collection
  and indexing, there is a volatile window during which running the same
  query may get different results.
@param asset_types [::Array<::String>]
  A list of asset types of which to take a snapshot for. For example:
  "google.compute.Disk". If specified, only matching assets will be returned.
  See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview)
  for all supported asset types.
@param content_type [::Google::Cloud::Asset::V1beta1::ContentType]
  Asset content type. If not specified, no content but the asset name will be
  returned.
@param output_config [::Google::Cloud::Asset::V1beta1::OutputConfig, ::Hash]
  Required. Output configuration indicating where the results will be output
  to. All results will be in newline delimited JSON format.

@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.

# File lib/google/cloud/asset/v1beta1/asset_service/client.rb, line 221
def export_assets request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1beta1::ExportAssetsRequest

  # 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.export_assets.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::Asset::V1beta1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "parent" => request.parent
  }
  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.export_assets.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.export_assets.retry_policy
  options.apply_defaults metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @asset_service_stub.call_rpc :export_assets, 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