class Google::Cloud::Asset::V1::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::V1::AssetService::Operations]

Public Class Methods

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

Configure the AssetService Client class.

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

@example

# Modify the configuration for all AssetService clients
::Google::Cloud::Asset::V1::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/v1/asset_service/client.rb, line 56
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "Asset", "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.rpcs.export_assets.timeout = 60.0

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

    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.rpcs.create_feed.timeout = 60.0

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

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

    default_config.rpcs.update_feed.timeout = 60.0

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

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

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

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

    default_config.rpcs.analyze_iam_policy_longrunning.timeout = 60.0

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

Create a new AssetService client object.

@example

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

# Create a client using a custom configuration
client = ::Google::Cloud::Asset::V1::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/v1/asset_service/client.rb, line 157
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/v1/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
  # 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.endpoint = @config.endpoint
  end

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

Public Instance Methods

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

Analyzes IAM policies to answer which identities have what accesses on which resources.

@overload analyze_iam_policy(request, options = nil)

Pass arguments to `analyze_iam_policy` via a request object, either of type
{::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest, ::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 analyze_iam_policy(analysis_query: nil, execution_timeout: nil)

Pass arguments to `analyze_iam_policy` 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 analysis_query [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery, ::Hash]
  Required. The request query.
@param execution_timeout [::Google::Protobuf::Duration, ::Hash]
  Optional. Amount of time executable has to complete.  See JSON representation of
  [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json).

  If this field is set with a value less than the RPC deadline, and the
  execution of your query hasn't finished in the specified
  execution timeout,  you will get a response with partial result.
  Otherwise, your query's execution will continue until the RPC deadline.
  If it's not finished until then, you will get a  DEADLINE_EXCEEDED error.

  Default is empty.

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

@return [::Google::Cloud::Asset::V1::AnalyzeIamPolicyResponse]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest

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

  header_params = {
    "analysis_query.scope" => request.analysis_query.scope
  }
  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.analyze_iam_policy.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.analyze_iam_policy.retry_policy

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

  @asset_service_stub.call_rpc :analyze_iam_policy, 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
analyze_iam_policy_longrunning(request, options = nil) { |response, operation| ... } click to toggle source

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a {::Google::Cloud::Asset::V1::AnalyzeIamPolicyResponse AnalyzeIamPolicyResponse}. This method implements the {::Google::Longrunning::Operation google.longrunning.Operation}, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.

@overload analyze_iam_policy_longrunning(request, options = nil)

Pass arguments to `analyze_iam_policy_longrunning` via a request object, either of type
{::Google::Cloud::Asset::V1::AnalyzeIamPolicyLongrunningRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::AnalyzeIamPolicyLongrunningRequest, ::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 analyze_iam_policy_longrunning(analysis_query: nil, output_config: nil)

Pass arguments to `analyze_iam_policy_longrunning` 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 analysis_query [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery, ::Hash]
  Required. The request query.
@param output_config [::Google::Cloud::Asset::V1::IamPolicyAnalysisOutputConfig, ::Hash]
  Required. Output configuration indicating where the results will be output to.

@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/v1/asset_service/client.rb, line 1422
def analyze_iam_policy_longrunning request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::AnalyzeIamPolicyLongrunningRequest

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

  header_params = {
    "analysis_query.scope" => request.analysis_query.scope
  }
  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.analyze_iam_policy_longrunning.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.analyze_iam_policy_longrunning.retry_policy

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

  @asset_service_stub.call_rpc :analyze_iam_policy_longrunning, 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
analyze_move(request, options = nil) { |response, operation| ... } click to toggle source

Analyze moving a resource to a specified destination without kicking off the actual move. The analysis is best effort depending on the user's permissions of viewing different hierarchical policies and configurations. The policies and configuration are subject to change before the actual resource migration takes place.

@overload analyze_move(request, options = nil)

Pass arguments to `analyze_move` via a request object, either of type
{::Google::Cloud::Asset::V1::AnalyzeMoveRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::AnalyzeMoveRequest, ::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 analyze_move(resource: nil, destination_parent: nil, view: nil)

Pass arguments to `analyze_move` 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 resource [::String]
  Required. Name of the resource to perform the analysis against.
  Only GCP Project are supported as of today. Hence, this can only be Project
  ID (such as "projects/my-project-id") or a Project Number (such as
  "projects/12345").
@param destination_parent [::String]
  Required. Name of the GCP Folder or Organization to reparent the target
  resource. The analysis will be performed against hypothetically moving the
  resource to this specified desitination parent. This can only be a Folder
  number (such as "folders/123") or an Organization number (such as
  "organizations/123").
@param view [::Google::Cloud::Asset::V1::AnalyzeMoveRequest::AnalysisView]
  Analysis view indicating what information should be included in the
  analysis response. If unspecified, the default view is FULL.

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

@return [::Google::Cloud::Asset::V1::AnalyzeMoveResponse]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::AnalyzeMoveRequest

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

  header_params = {
    "resource" => request.resource
  }
  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.analyze_move.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.analyze_move.retry_policy

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

  @asset_service_stub.call_rpc :analyze_move, 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
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 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. Otherwise, this API outputs history with asset in both non-delete or deleted status. 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::V1::BatchGetAssetsHistoryRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::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, relationship_types: 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.
  See: https://cloud.google.com/asset-inventory/docs/resource-name-format
  Example:

  `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.

  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::V1::ContentType]
  Optional. The content type.
@param read_time_window [::Google::Cloud::Asset::V1::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 the current time minus
  35 days. 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.
@param relationship_types [::Array<::String>]
  Optional. A list of relationship types to output, for example:
  `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if
  content_type=RELATIONSHIP.
  * If specified:
  it outputs specified relationships' history on the [asset_names]. It
  returns an error if any of the [relationship_types] doesn't belong to the
  supported relationship types of the [asset_names] or if any of the
  [asset_names]'s types doesn't belong to the source types of the
  [relationship_types].
  * Otherwise:
  it outputs the supported relationships' history on the [asset_names] or
  returns an error if any of the [asset_names]'s types has no relationship
  support.
  See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all
  supported asset types and relationship types.

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

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

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

# File lib/google/cloud/asset/v1/asset_service/client.rb, line 530
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::V1::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::V1::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 timeout:      @config.timeout,
                         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::V1::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/v1/asset_service/client.rb, line 136
def configure
  yield @config if block_given?
  @config
end
create_feed(request, options = nil) { |response, operation| ... } click to toggle source

Creates a feed in a parent project/folder/organization to listen to its asset updates.

@overload create_feed(request, options = nil)

Pass arguments to `create_feed` via a request object, either of type
{::Google::Cloud::Asset::V1::CreateFeedRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::CreateFeedRequest, ::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_feed(parent: nil, feed_id: nil, feed: nil)

Pass arguments to `create_feed` 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 name of the project/folder/organization where this feed
  should be created in. It can only be an organization number (such as
  "organizations/123"), a folder number (such as "folders/123"), a project ID
  (such as "projects/my-project-id")", or a project number (such as
  "projects/12345").
@param feed_id [::String]
  Required. This is the client-assigned asset feed identifier and it needs to
  be unique under a specific parent project/folder/organization.
@param feed [::Google::Cloud::Asset::V1::Feed, ::Hash]
  Required. The feed details. The field `name` must be empty and it will be generated
  in the format of:
  projects/project_number/feeds/feed_id
  folders/folder_number/feeds/feed_id
  organizations/organization_number/feeds/feed_id

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

@return [::Google::Cloud::Asset::V1::Feed]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::CreateFeedRequest

  # 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_feed.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::V1::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.create_feed.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.create_feed.retry_policy

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

  @asset_service_stub.call_rpc :create_feed, 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
delete_feed(request, options = nil) { |response, operation| ... } click to toggle source

Deletes an asset feed.

@overload delete_feed(request, options = nil)

Pass arguments to `delete_feed` via a request object, either of type
{::Google::Cloud::Asset::V1::DeleteFeedRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::DeleteFeedRequest, ::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_feed(name: nil)

Pass arguments to `delete_feed` 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 of the feed and it must be in the format of:
  projects/project_number/feeds/feed_id
  folders/folder_number/feeds/feed_id
  organizations/organization_number/feeds/feed_id

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::DeleteFeedRequest

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

  header_params = {
    "name" => request.name
  }
  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_feed.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.delete_feed.retry_policy

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

  @asset_service_stub.call_rpc :delete_feed, 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
export_assets(request, options = nil) { |response, operation| ... } click to toggle source

Exports assets with time and resource types to a given Cloud Storage location/BigQuery table. For Cloud Storage location destinations, the output format is newline-delimited JSON. Each line represents a {::Google::Cloud::Asset::V1::Asset google.cloud.asset.v1.Asset} in the JSON format; for BigQuery table destinations, the output table stores the fields in asset proto as columns. This API implements the {::Google::Longrunning::Operation google.longrunning.Operation} API , which allows you to keep track of the export. We recommend intervals of at least 2 seconds with exponential retry to poll the export operation result. For regular-size resource parent, the export operation usually finishes within 5 minutes.

@overload export_assets(request, options = nil)

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

@param request [::Google::Cloud::Asset::V1::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, relationship_types: 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"), or 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 the current time and the current time minus 35 days (inclusive).
  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 to take a snapshot for. For example:
  "compute.googleapis.com/Disk".

  Regular expressions are also supported. For example:

  * "compute.googleapis.com.*" snapshots resources whose asset type starts
  with "compute.googleapis.com".
  * ".*Instance" snapshots resources whose asset type ends with "Instance".
  * ".*Instance.*" snapshots resources whose asset type contains "Instance".

  See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
  regular expression syntax. If the regular expression does not match any
  supported asset type, an INVALID_ARGUMENT error will be returned.

  If specified, only matching assets will be returned, otherwise, it will
  snapshot all asset types. See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/asset-inventory/docs/overview)
  for all supported asset types.
@param content_type [::Google::Cloud::Asset::V1::ContentType]
  Asset content type. If not specified, no content but the asset name will be
  returned.
@param output_config [::Google::Cloud::Asset::V1::OutputConfig, ::Hash]
  Required. Output configuration indicating where the results will be output to.
@param relationship_types [::Array<::String>]
  A list of relationship types to export, for example:
  `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if
  content_type=RELATIONSHIP.
  * If specified:
  it snapshots specified relationships. It returns an error if
  any of the [relationship_types] doesn't belong to the supported
  relationship types of the [asset_types] or if any of the [asset_types]
  doesn't belong to the source types of the [relationship_types].
  * Otherwise:
  it snapshots the supported relationships for all [asset_types] or returns
  an error if any of the [asset_types] has no relationship support.
  An unspecified asset types field means all supported asset_types.
  See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all
  supported asset types and relationship types.

@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/v1/asset_service/client.rb, line 294
def export_assets request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::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::V1::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 timeout:      @config.timeout,
                         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
get_feed(request, options = nil) { |response, operation| ... } click to toggle source

Gets details about an asset feed.

@overload get_feed(request, options = nil)

Pass arguments to `get_feed` via a request object, either of type
{::Google::Cloud::Asset::V1::GetFeedRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::GetFeedRequest, ::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_feed(name: nil)

Pass arguments to `get_feed` 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 of the Feed and it must be in the format of:
  projects/project_number/feeds/feed_id
  folders/folder_number/feeds/feed_id
  organizations/organization_number/feeds/feed_id

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

@return [::Google::Cloud::Asset::V1::Feed]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::GetFeedRequest

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

  header_params = {
    "name" => request.name
  }
  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_feed.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_feed.retry_policy

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

  @asset_service_stub.call_rpc :get_feed, 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_assets(request, options = nil) { |response, operation| ... } click to toggle source

Lists assets with time and resource types and returns paged results in response.

@overload list_assets(request, options = nil)

Pass arguments to `list_assets` via a request object, either of type
{::Google::Cloud::Asset::V1::ListAssetsRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::ListAssetsRequest, ::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_assets(parent: nil, read_time: nil, asset_types: nil, content_type: nil, page_size: nil, page_token: nil, relationship_types: nil)

Pass arguments to `list_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. Name of the organization or project the assets belong to. Format:
  "organizations/[organization-number]" (such as "organizations/123"),
  "projects/[project-id]" (such as "projects/my-project-id"), or
  "projects/[project-number]" (such as "projects/12345").
@param read_time [::Google::Protobuf::Timestamp, ::Hash]
  Timestamp to take an asset snapshot. This can only be set to a timestamp
  between the current time and the current time minus 35 days (inclusive).
  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 to take a snapshot for. For example:
  "compute.googleapis.com/Disk".

  Regular expression is also supported. For example:

  * "compute.googleapis.com.*" snapshots resources whose asset type starts
  with "compute.googleapis.com".
  * ".*Instance" snapshots resources whose asset type ends with "Instance".
  * ".*Instance.*" snapshots resources whose asset type contains "Instance".

  See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
  regular expression syntax. If the regular expression does not match any
  supported asset type, an INVALID_ARGUMENT error will be returned.

  If specified, only matching assets will be returned, otherwise, it will
  snapshot all asset types. See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/asset-inventory/docs/overview)
  for all supported asset types.
@param content_type [::Google::Cloud::Asset::V1::ContentType]
  Asset content type. If not specified, no content but the asset name will
  be returned.
@param page_size [::Integer]
  The maximum number of assets to be returned in a single response. Default
  is 100, minimum is 1, and maximum is 1000.
@param page_token [::String]
  The `next_page_token` returned from the previous `ListAssetsResponse`, or
  unspecified for the first `ListAssetsRequest`. It is a continuation of a
  prior `ListAssets` call, and the API should return the next page of assets.
@param relationship_types [::Array<::String>]
  A list of relationship types to output, for example:
  `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if
  content_type=RELATIONSHIP.
  * If specified:
  it snapshots specified relationships. It returns an error if
  any of the [relationship_types] doesn't belong to the supported
  relationship types of the [asset_types] or if any of the [asset_types]
  doesn't belong to the source types of the [relationship_types].
  * Otherwise:
  it snapshots the supported relationships for all [asset_types] or returns
  an error if any of the [asset_types] has no relationship support.
  An unspecified asset types field means all supported asset_types.
  See [Introduction to Cloud Asset
  Inventory](https://cloud.google.com/asset-inventory/docs/overview)
  for all supported asset types and relationship types.

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

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

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::ListAssetsRequest

  # 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_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::V1::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.list_assets.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_assets.retry_policy

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

  @asset_service_stub.call_rpc :list_assets, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @asset_service_stub, :list_assets, 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
list_feeds(request, options = nil) { |response, operation| ... } click to toggle source

Lists all asset feeds in a parent project/folder/organization.

@overload list_feeds(request, options = nil)

Pass arguments to `list_feeds` via a request object, either of type
{::Google::Cloud::Asset::V1::ListFeedsRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::ListFeedsRequest, ::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_feeds(parent: nil)

Pass arguments to `list_feeds` 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 parent project/folder/organization whose feeds are to be
  listed. It can only be using project/folder/organization number (such as
  "folders/12345")", or a project ID (such as "projects/my-project-id").

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

@return [::Google::Cloud::Asset::V1::ListFeedsResponse]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::ListFeedsRequest

  # 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_feeds.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::V1::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.list_feeds.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_feeds.retry_policy

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

  @asset_service_stub.call_rpc :list_feeds, 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
search_all_iam_policies(request, options = nil) { |response, operation| ... } click to toggle source

Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the `cloudasset.assets.searchAllIamPolicies` permission on the desired scope, otherwise the request will be rejected.

@overload search_all_iam_policies(request, options = nil)

Pass arguments to `search_all_iam_policies` via a request object, either of type
{::Google::Cloud::Asset::V1::SearchAllIamPoliciesRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::SearchAllIamPoliciesRequest, ::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 search_all_iam_policies(scope: nil, query: nil, page_size: nil, page_token: nil, asset_types: nil, order_by: nil)

Pass arguments to `search_all_iam_policies` 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 scope [::String]
  Required. A scope can be a project, a folder, or an organization. The search is
  limited to the IAM policies within the `scope`. The caller must be granted
  the
  [`cloudasset.assets.searchAllIamPolicies`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
  permission on the desired scope.

  The allowed values are:

  * projects/\\{PROJECT_ID} (e.g., "projects/foo-bar")
  * projects/\\{PROJECT_NUMBER} (e.g., "projects/12345678")
  * folders/\\{FOLDER_NUMBER} (e.g., "folders/1234567")
  * organizations/\\{ORGANIZATION_NUMBER} (e.g., "organizations/123456")
@param query [::String]
  Optional. The query statement. See [how to construct a
  query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query)
  for more information. If not specified or empty, it will search all the
  IAM policies within the specified `scope`. Note that the query string is
  compared against each Cloud IAM policy binding, including its members,
  roles, and Cloud IAM conditions. The returned Cloud IAM policies will only
  contain the bindings that match your query. To learn more about the IAM
  policy structure, see [IAM policy
  doc](https://cloud.google.com/iam/docs/policies#structure).

  Examples:

  * `policy:amy@gmail.com` to find IAM policy bindings that specify user
    "amy@gmail.com".
  * `policy:roles/compute.admin` to find IAM policy bindings that specify
    the Compute Admin role.
  * `policy:comp*` to find IAM policy bindings that contain "comp" as a
    prefix of any word in the binding.
  * `policy.role.permissions:storage.buckets.update` to find IAM policy
    bindings that specify a role containing "storage.buckets.update"
    permission. Note that if callers don't have `iam.roles.get` access to a
    role's included permissions, policy bindings that specify this role will
    be dropped from the search results.
  * `policy.role.permissions:upd*` to find IAM policy bindings that specify a
    role containing "upd" as a prefix of any word in the role permission.
    Note that if callers don't have `iam.roles.get` access to a role's
    included permissions, policy bindings that specify this role will be
    dropped from the search results.
  * `resource:organizations/123456` to find IAM policy bindings
    that are set on "organizations/123456".
  * `resource=//cloudresourcemanager.googleapis.com/projects/myproject` to
    find IAM policy bindings that are set on the project named "myproject".
  * `Important` to find IAM policy bindings that contain "Important" as a
    word in any of the searchable fields (except for the included
    permissions).
  * `resource:(instance1 OR instance2) policy:amy` to find
    IAM policy bindings that are set on resources "instance1" or
    "instance2" and also specify user "amy".
  * `roles:roles/compute.admin` to find IAM policy bindings that specify the
    Compute Admin role.
  * `memberTypes:user` to find IAM policy bindings that contain the "user"
    member type.
@param page_size [::Integer]
  Optional. The page size for search result pagination. Page size is capped at 500 even
  if a larger value is given. If set to zero, server will pick an appropriate
  default. Returned results may be fewer than requested. When this happens,
  there could be more results as long as `next_page_token` is returned.
@param page_token [::String]
  Optional. If present, retrieve the next batch of results from the preceding call to
  this method. `page_token` must be the value of `next_page_token` from the
  previous response. The values of all other method parameters must be
  identical to those in the previous call.
@param asset_types [::Array<::String>]
  Optional. A list of asset types that the IAM policies are attached to. If empty, it
  will search the IAM policies that are attached to all the [searchable asset
  types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types).

  Regular expressions are also supported. For example:

  * "compute.googleapis.com.*" snapshots IAM policies attached to asset type
  starts with "compute.googleapis.com".
  * ".*Instance" snapshots IAM policies attached to asset type ends with
  "Instance".
  * ".*Instance.*" snapshots IAM policies attached to asset type contains
  "Instance".

  See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
  regular expression syntax. If the regular expression does not match any
  supported asset type, an INVALID_ARGUMENT error will be returned.
@param order_by [::String]
  Optional. A comma-separated list of fields specifying the sorting order of the
  results. The default order is ascending. Add " DESC" after the field name
  to indicate descending order. Redundant space characters are ignored.
  Example: "assetType DESC, resource".
  Only singular primitive fields in the response are sortable:
    * resource
    * assetType
    * project
  All the other fields such as repeated fields (e.g., `folders`) and
  non-primitive fields (e.g., `policy`) are not supported.

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

@return [::Gapic::PagedEnumerable<::Google::Cloud::Asset::V1::IamPolicySearchResult>]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::SearchAllIamPoliciesRequest

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

  header_params = {
    "scope" => request.scope
  }
  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.search_all_iam_policies.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.search_all_iam_policies.retry_policy

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

  @asset_service_stub.call_rpc :search_all_iam_policies, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @asset_service_stub, :search_all_iam_policies, 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
search_all_resources(request, options = nil) { |response, operation| ... } click to toggle source

Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the `cloudasset.assets.searchAllResources` permission on the desired scope, otherwise the request will be rejected.

@overload search_all_resources(request, options = nil)

Pass arguments to `search_all_resources` via a request object, either of type
{::Google::Cloud::Asset::V1::SearchAllResourcesRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::SearchAllResourcesRequest, ::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 search_all_resources(scope: nil, query: nil, asset_types: nil, page_size: nil, page_token: nil, order_by: nil, read_mask: nil)

Pass arguments to `search_all_resources` 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 scope [::String]
  Required. A scope can be a project, a folder, or an organization. The search is
  limited to the resources within the `scope`. The caller must be granted the
  [`cloudasset.assets.searchAllResources`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
  permission on the desired scope.

  The allowed values are:

  * projects/\\{PROJECT_ID} (e.g., "projects/foo-bar")
  * projects/\\{PROJECT_NUMBER} (e.g., "projects/12345678")
  * folders/\\{FOLDER_NUMBER} (e.g., "folders/1234567")
  * organizations/\\{ORGANIZATION_NUMBER} (e.g., "organizations/123456")
@param query [::String]
  Optional. The query statement. See [how to construct a
  query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
  for more information. If not specified or empty, it will search all the
  resources within the specified `scope`.

  Examples:

  * `name:Important` to find Cloud resources whose name contains
    "Important" as a word.
  * `name=Important` to find the Cloud resource whose name is exactly
    "Important".
  * `displayName:Impor*` to find Cloud resources whose display name
    contains "Impor" as a prefix of any word in the field.
  * `location:us-west*` to find Cloud resources whose location contains both
    "us" and "west" as prefixes.
  * `labels:prod` to find Cloud resources whose labels contain "prod" as
    a key or value.
  * `labels.env:prod` to find Cloud resources that have a label "env"
    and its value is "prod".
  * `labels.env:*` to find Cloud resources that have a label "env".
  * `kmsKey:key` to find Cloud resources encrypted with a customer-managed
    encryption key whose name contains the word "key".
  * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a
    word.
  * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain
    "ACTIVE" as a word.
  * `createTime<1609459200` to find Cloud resources that were created before
    "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
    "2021-01-01 00:00:00 UTC" in seconds.
  * `updateTime>1609459200` to find Cloud resources that were updated after
    "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
    "2021-01-01 00:00:00 UTC" in seconds.
  * `Important` to find Cloud resources that contain "Important" as a word
    in any of the searchable fields.
  * `Impor*` to find Cloud resources that contain "Impor" as a prefix of any
    word in any of the searchable fields.
  * `Important location:(us-west1 OR global)` to find Cloud
    resources that contain "Important" as a word in any of the searchable
    fields and are also located in the "us-west1" region or the "global"
    location.
@param asset_types [::Array<::String>]
  Optional. A list of asset types that this request searches for. If empty, it will
  search all the [searchable asset
  types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types).

  Regular expressions are also supported. For example:

  * "compute.googleapis.com.*" snapshots resources whose asset type starts
  with "compute.googleapis.com".
  * ".*Instance" snapshots resources whose asset type ends with "Instance".
  * ".*Instance.*" snapshots resources whose asset type contains "Instance".

  See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
  regular expression syntax. If the regular expression does not match any
  supported asset type, an INVALID_ARGUMENT error will be returned.
@param page_size [::Integer]
  Optional. The page size for search result pagination. Page size is capped at 500 even
  if a larger value is given. If set to zero, server will pick an appropriate
  default. Returned results may be fewer than requested. When this happens,
  there could be more results as long as `next_page_token` is returned.
@param page_token [::String]
  Optional. If present, then retrieve the next batch of results from the preceding call
  to this method. `page_token` must be the value of `next_page_token` from
  the previous response. The values of all other method parameters, must be
  identical to those in the previous call.
@param order_by [::String]
  Optional. A comma-separated list of fields specifying the sorting order of the
  results. The default order is ascending. Add " DESC" after the field name
  to indicate descending order. Redundant space characters are ignored.
  Example: "location DESC, name".
  Only singular primitive fields in the response are sortable:

    * name
    * assetType
    * project
    * displayName
    * description
    * location
    * kmsKey
    * createTime
    * updateTime
    * state
    * parentFullResourceName
    * parentAssetType

  All the other fields such as repeated fields (e.g., `networkTags`), map
  fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
  are not supported.
@param read_mask [::Google::Protobuf::FieldMask, ::Hash]
  Optional. A comma-separated list of fields specifying which fields to be returned in
  ResourceSearchResult. Only '*' or combination of top level fields can be
  specified. Field names of both snake_case and camelCase are supported.
  Examples: `"*"`, `"name,location"`, `"name,versionedResources"`.

  The read_mask paths must be valid field paths listed but not limited to
  (both snake_case and camelCase are supported):

    * name
    * assetType
    * project
    * displayName
    * description
    * location
    * labels
    * networkTags
    * kmsKey
    * createTime
    * updateTime
    * state
    * additionalAttributes
    * versionedResources

  If read_mask is not specified, all fields except versionedResources will
  be returned.
  If only '*' is specified, all fields including versionedResources will be
  returned.
  Any invalid field path will trigger INVALID_ARGUMENT error.

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

@return [::Gapic::PagedEnumerable<::Google::Cloud::Asset::V1::ResourceSearchResult>]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::SearchAllResourcesRequest

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

  header_params = {
    "scope" => request.scope
  }
  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.search_all_resources.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.search_all_resources.retry_policy

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

  @asset_service_stub.call_rpc :search_all_resources, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @asset_service_stub, :search_all_resources, 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_feed(request, options = nil) { |response, operation| ... } click to toggle source

Updates an asset feed configuration.

@overload update_feed(request, options = nil)

Pass arguments to `update_feed` via a request object, either of type
{::Google::Cloud::Asset::V1::UpdateFeedRequest} or an equivalent Hash.

@param request [::Google::Cloud::Asset::V1::UpdateFeedRequest, ::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_feed(feed: nil, update_mask: nil)

Pass arguments to `update_feed` 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 feed [::Google::Cloud::Asset::V1::Feed, ::Hash]
  Required. The new values of feed details. It must match an existing feed and the
  field `name` must be in the format of:
  projects/project_number/feeds/feed_id or
  folders/folder_number/feeds/feed_id or
  organizations/organization_number/feeds/feed_id.
@param update_mask [::Google::Protobuf::FieldMask, ::Hash]
  Required. Only updates the `feed` fields indicated by this mask.
  The field mask must not be empty, and it must not contain fields that
  are immutable or only set by the server.

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

@return [::Google::Cloud::Asset::V1::Feed]

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

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

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::UpdateFeedRequest

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

  header_params = {
    "feed.name" => request.feed.name
  }
  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_feed.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.update_feed.retry_policy

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

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