class Google::Cloud::Asset::V1beta1::AssetService::Client
Client
for the AssetService
service.
Asset
service definition.
Attributes
@private
Get the associated client for long-running operations.
@return [::Google::Cloud::Asset::V1beta1::AssetService::Operations]
Public Class Methods
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
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 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 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
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