class Google::Ads::GoogleAds::V8::Services::BatchJobService::Client

Client for the BatchJobService service.

Service to manage batch jobs.

Attributes

batch_job_service_stub[R]

@private

operations_client[R]

Get the associated client for long-running operations.

@return [::Google::Ads::GoogleAds::V8::Services::BatchJobService::Operations]

Public Class Methods

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

Configure the BatchJobService Client class.

See {::Google::Ads::GoogleAds::V8::Services::BatchJobService::Client::Configuration} for a description of the configuration fields.

@example

# Modify the configuration for all BatchJobService clients
::Google::Ads::GoogleAds::V8::Services::BatchJobService::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/ads/google_ads/v8/services/batch_job_service/client.rb, line 57
def self.configure
  @configure ||= begin
    default_config = Client::Configuration.new

    default_config.timeout = 3600.0
    default_config.retry_policy = {
      initial_delay: 5.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 4]
    }

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

Create a new BatchJobService client object.

@example

# Create a client using the default configuration
client = ::Google::Ads::GoogleAds::V8::Services::BatchJobService::Client.new

# Create a client using a custom configuration
client = ::Google::Ads::GoogleAds::V8::Services::BatchJobService::Client.new do |config|
  config.timeout = 10.0
end

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

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 108
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/ads/google_ads/v8/services/batch_job_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

  @batch_job_service_stub = ::Gapic::ServiceStub.new(
    ::Google::Ads::GoogleAds::V8::Services::BatchJobService::Stub,
    credentials:  credentials,
    endpoint:     @config.endpoint,
    channel_args: @config.channel_args,
    interceptors: @config.interceptors
  )
end

Public Instance Methods

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

Add operations to the batch job.

List of thrown errors:

[AuthenticationError]()
[AuthorizationError]()
[BatchJobError]()
[HeaderError]()
[InternalError]()
[QuotaError]()
[RequestError]()
[ResourceCountLimitExceededError]()

@overload add_batch_job_operations(request, options = nil)

Pass arguments to `add_batch_job_operations` via a request object, either of type
{::Google::Ads::GoogleAds::V8::Services::AddBatchJobOperationsRequest} or an equivalent Hash.

@param request [::Google::Ads::GoogleAds::V8::Services::AddBatchJobOperationsRequest, ::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 add_batch_job_operations(resource_name: nil, sequence_token: nil, mutate_operations: nil)

Pass arguments to `add_batch_job_operations` 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_name [::String]
  Required. The resource name of the batch job.
@param sequence_token [::String]
  A token used to enforce sequencing.

  The first AddBatchJobOperations request for a batch job should not set
  sequence_token. Subsequent requests must set sequence_token to the value of
  next_sequence_token received in the previous AddBatchJobOperations
  response.
@param mutate_operations [::Array<::Google::Ads::GoogleAds::V8::Services::MutateOperation, ::Hash>]
  Required. The list of mutates being added.

  Operations can use negative integers as temp ids to signify dependencies
  between entities created in this batch job. For example, a customer with
  id = 1234 can create a campaign and an ad group in that same campaign by
  creating a campaign in the first operation with the resource name
  explicitly set to "customers/1234/campaigns/-1", and creating an ad group
  in the second operation with the campaign field also set to
  "customers/1234/campaigns/-1".

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Ads::GoogleAds::V8::Services::AddBatchJobOperationsResponse] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Ads::GoogleAds::V8::Services::AddBatchJobOperationsResponse]

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

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 548
def add_batch_job_operations request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request,
                                     to: ::Google::Ads::GoogleAds::V8::Services::AddBatchJobOperationsRequest

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

  header_params = {
    "resource_name" => request.resource_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.add_batch_job_operations.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.add_batch_job_operations.retry_policy

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

  @batch_job_service_stub.call_rpc :add_batch_job_operations, request,
                                   options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
  # rescue GRPC::BadStatus => grpc_error
  #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
end
configure() { |config| ... } click to toggle source

Configure the BatchJobService 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::Ads::GoogleAds::V8::Services::BatchJobService::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/ads/google_ads/v8/services/batch_job_service/client.rb, line 87
def configure
  yield @config if block_given?
  @config
end
get_batch_job(request, options = nil) { |response, operation| ... } click to toggle source

Returns the batch job.

List of thrown errors:

[AuthenticationError]()
[AuthorizationError]()
[HeaderError]()
[InternalError]()
[QuotaError]()
[RequestError]()

@overload get_batch_job(request, options = nil)

Pass arguments to `get_batch_job` via a request object, either of type
{::Google::Ads::GoogleAds::V8::Services::GetBatchJobRequest} or an equivalent Hash.

@param request [::Google::Ads::GoogleAds::V8::Services::GetBatchJobRequest, ::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_batch_job(resource_name: nil)

Pass arguments to `get_batch_job` 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_name [::String]
  Required. The resource name of the batch job to get.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Ads::GoogleAds::V8::Resources::BatchJob] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Ads::GoogleAds::V8::Resources::BatchJob]

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

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 275
def get_batch_job request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request,
                                     to: ::Google::Ads::GoogleAds::V8::Services::GetBatchJobRequest

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

  header_params = {
    "resource_name" => request.resource_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_batch_job.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_batch_job.retry_policy

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

  @batch_job_service_stub.call_rpc :get_batch_job, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
  # rescue GRPC::BadStatus => grpc_error
  #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
end
list_batch_job_results(request, options = nil) { |response, operation| ... } click to toggle source

Returns the results of the batch job. The job must be done. Supports standard list paging.

List of thrown errors:

[AuthenticationError]()
[AuthorizationError]()
[BatchJobError]()
[HeaderError]()
[InternalError]()
[QuotaError]()
[RequestError]()

@overload list_batch_job_results(request, options = nil)

Pass arguments to `list_batch_job_results` via a request object, either of type
{::Google::Ads::GoogleAds::V8::Services::ListBatchJobResultsRequest} or an equivalent Hash.

@param request [::Google::Ads::GoogleAds::V8::Services::ListBatchJobResultsRequest, ::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_batch_job_results(resource_name: nil, page_token: nil, page_size: nil, response_content_type: nil)

Pass arguments to `list_batch_job_results` 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_name [::String]
  Required. The resource name of the batch job whose results are being listed.
@param page_token [::String]
  Token of the page to retrieve. If not specified, the first
  page of results will be returned. Use the value obtained from
  `next_page_token` in the previous response in order to request
  the next page of results.
@param page_size [::Integer]
  Number of elements to retrieve in a single page.
  When a page request is too large, the server may decide to
  further limit the number of returned resources.
@param response_content_type [::Google::Ads::GoogleAds::V8::Enums::ResponseContentTypeEnum::ResponseContentType]
  The response content type setting. Determines whether the mutable resource
  or just the resource name should be returned.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::GoogleAds::V8::Services::BatchJobResult>] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::PagedEnumerable<::Google::Ads::GoogleAds::V8::Services::BatchJobResult>]

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

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 366
def list_batch_job_results request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request,
                                     to: ::Google::Ads::GoogleAds::V8::Services::ListBatchJobResultsRequest

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

  header_params = {
    "resource_name" => request.resource_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.list_batch_job_results.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_batch_job_results.retry_policy

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

  @batch_job_service_stub.call_rpc :list_batch_job_results, request,
                                   options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @batch_job_service_stub, :list_batch_job_results, request,
                                            response, operation, options
    yield response, operation if block_given?
    return response
  end
  # rescue GRPC::BadStatus => grpc_error
  #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
end
mutate_batch_job(request, options = nil) { |response, operation| ... } click to toggle source

Mutates a batch job.

List of thrown errors:

[AuthenticationError]()
[AuthorizationError]()
[HeaderError]()
[InternalError]()
[QuotaError]()
[RequestError]()
[ResourceCountLimitExceededError]()

@overload mutate_batch_job(request, options = nil)

Pass arguments to `mutate_batch_job` via a request object, either of type
{::Google::Ads::GoogleAds::V8::Services::MutateBatchJobRequest} or an equivalent Hash.

@param request [::Google::Ads::GoogleAds::V8::Services::MutateBatchJobRequest, ::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 mutate_batch_job(customer_id: nil, operation: nil)

Pass arguments to `mutate_batch_job` 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 customer_id [::String]
  Required. The ID of the customer for which to create a batch job.
@param operation [::Google::Ads::GoogleAds::V8::Services::BatchJobOperation, ::Hash]
  Required. The operation to perform on an individual batch job.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Ads::GoogleAds::V8::Services::MutateBatchJobResponse] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Ads::GoogleAds::V8::Services::MutateBatchJobResponse]

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

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 198
def mutate_batch_job request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request,
                                     to: ::Google::Ads::GoogleAds::V8::Services::MutateBatchJobRequest

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

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

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

  @batch_job_service_stub.call_rpc :mutate_batch_job, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
  # rescue GRPC::BadStatus => grpc_error
  #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
end
run_batch_job(request, options = nil) { |response, operation| ... } click to toggle source

Runs the batch job.

The Operation.metadata field type is BatchJobMetadata. When finished, the long running operation will not contain errors or a response. Instead, use ListBatchJobResults to get the results of the job.

List of thrown errors:

[AuthenticationError]()
[AuthorizationError]()
[BatchJobError]()
[HeaderError]()
[InternalError]()
[QuotaError]()
[RequestError]()

@overload run_batch_job(request, options = nil)

Pass arguments to `run_batch_job` via a request object, either of type
{::Google::Ads::GoogleAds::V8::Services::RunBatchJobRequest} or an equivalent Hash.

@param request [::Google::Ads::GoogleAds::V8::Services::RunBatchJobRequest, ::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 run_batch_job(resource_name: nil)

Pass arguments to `run_batch_job` 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_name [::String]
  Required. The resource name of the BatchJob to run.

@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::Ads::GoogleAds::Error] if the RPC is aborted.

# File lib/google/ads/google_ads/v8/services/batch_job_service/client.rb, line 451
def run_batch_job request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request,
                                     to: ::Google::Ads::GoogleAds::V8::Services::RunBatchJobRequest

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

  header_params = {
    "resource_name" => request.resource_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.run_batch_job.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.run_batch_job.retry_policy

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

  @batch_job_service_stub.call_rpc :run_batch_job, 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 => grpc_error
  #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
end