# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # EDITING INSTRUCTIONS # This file was generated from the file # https://github.com/googleapis/googleapis/blob/master/google/cloud/tasks/v2beta3/cloudtasks.proto, # and updates to that file get reflected here through a refresh process. # For the short term, the refresh process will only be runnable by Google # engineers. require "json" require "pathname" require "google/gax" require "google/cloud/tasks/v2beta3/cloudtasks_pb" require "google/cloud/tasks/v2beta3/credentials" module Google module Cloud module Tasks module V2beta3 # Cloud Tasks allows developers to manage the execution of background # work in their applications. # # @!attribute [r] cloud_tasks_stub # @return [Google::Cloud::Tasks::V2beta3::CloudTasks::Stub] class CloudTasksClient # @private attr_reader :cloud_tasks_stub # The default address of the service. SERVICE_ADDRESS = "cloudtasks.googleapis.com".freeze # The default port of the service. DEFAULT_SERVICE_PORT = 443 # The default set of gRPC interceptors. GRPC_INTERCEPTORS = [] DEFAULT_TIMEOUT = 30 PAGE_DESCRIPTORS = { "list_queues" => Google::Gax::PageDescriptor.new( "page_token", "next_page_token", "queues"), "list_tasks" => Google::Gax::PageDescriptor.new( "page_token", "next_page_token", "tasks") }.freeze private_constant :PAGE_DESCRIPTORS # The scopes needed to make gRPC calls to all of the methods defined in # this service. ALL_SCOPES = [ "https://www.googleapis.com/auth/cloud-platform" ].freeze PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new( "projects/{project}" ) private_constant :PROJECT_PATH_TEMPLATE LOCATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new( "projects/{project}/locations/{location}" ) private_constant :LOCATION_PATH_TEMPLATE QUEUE_PATH_TEMPLATE = Google::Gax::PathTemplate.new( "projects/{project}/locations/{location}/queues/{queue}" ) private_constant :QUEUE_PATH_TEMPLATE TASK_PATH_TEMPLATE = Google::Gax::PathTemplate.new( "projects/{project}/locations/{location}/queues/{queue}/tasks/{task}" ) private_constant :TASK_PATH_TEMPLATE # Returns a fully-qualified project resource name string. # @param project [String] # @return [String] def self.project_path project PROJECT_PATH_TEMPLATE.render( :"project" => project ) end # Returns a fully-qualified location resource name string. # @param project [String] # @param location [String] # @return [String] def self.location_path project, location LOCATION_PATH_TEMPLATE.render( :"project" => project, :"location" => location ) end # Returns a fully-qualified queue resource name string. # @param project [String] # @param location [String] # @param queue [String] # @return [String] def self.queue_path project, location, queue QUEUE_PATH_TEMPLATE.render( :"project" => project, :"location" => location, :"queue" => queue ) end # Returns a fully-qualified task resource name string. # @param project [String] # @param location [String] # @param queue [String] # @param task [String] # @return [String] def self.task_path project, location, queue, task TASK_PATH_TEMPLATE.render( :"project" => project, :"location" => location, :"queue" => queue, :"task" => task ) end # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc] # Provides the means for authenticating requests made by the client. This parameter can # be many types. # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for # authenticating requests made by this client. # A `String` will be treated as the path to the keyfile to be used for the construction of # credentials for this client. # A `Hash` will be treated as the contents of a keyfile to be used for the construction of # credentials for this client. # A `GRPC::Core::Channel` will be used to make calls through. # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials # should already be composed with a `GRPC::Core::CallCredentials` object. # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the # metadata for requests, generally, to give OAuth credentials. # @param scopes [Array] # The OAuth scopes for this service. This parameter is ignored if # an updater_proc is supplied. # @param client_config [Hash] # A Hash for call options for each method. See # Google::Gax#construct_settings for the structure of # this data. Falls back to the default config if not specified # or the specified config is missing data points. # @param timeout [Numeric] # The default timeout, in seconds, for calls made through this client. # @param metadata [Hash] # Default metadata to be sent with each request. This can be overridden on a per call basis. # @param exception_transformer [Proc] # An optional proc that intercepts any exceptions raised during an API call to inject # custom error handling. def initialize \ credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, exception_transformer: nil, lib_name: nil, lib_version: "" # 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 "google/gax/grpc" require "google/cloud/tasks/v2beta3/cloudtasks_services_pb" credentials ||= Google::Cloud::Tasks::V2beta3::Credentials.default if credentials.is_a?(String) || credentials.is_a?(Hash) updater_proc = Google::Cloud::Tasks::V2beta3::Credentials.new(credentials).updater_proc end if credentials.is_a?(GRPC::Core::Channel) channel = credentials end if credentials.is_a?(GRPC::Core::ChannelCredentials) chan_creds = credentials end if credentials.is_a?(Proc) updater_proc = credentials end if credentials.is_a?(Google::Auth::Credentials) updater_proc = credentials.updater_proc end package_version = Gem.loaded_specs['google-cloud-tasks'].version.version google_api_client = "gl-ruby/#{RUBY_VERSION}" google_api_client << " #{lib_name}/#{lib_version}" if lib_name google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}" google_api_client << " grpc/#{GRPC::VERSION}" google_api_client.freeze headers = { :"x-goog-api-client" => google_api_client } headers.merge!(metadata) unless metadata.nil? client_config_file = Pathname.new(__dir__).join( "cloud_tasks_client_config.json" ) defaults = client_config_file.open do |f| Google::Gax.construct_settings( "google.cloud.tasks.v2beta3.CloudTasks", JSON.parse(f.read), client_config, Google::Gax::Grpc::STATUS_CODE_NAMES, timeout, page_descriptors: PAGE_DESCRIPTORS, errors: Google::Gax::Grpc::API_ERRORS, metadata: headers ) end # Allow overriding the service path/port in subclasses. service_path = self.class::SERVICE_ADDRESS port = self.class::DEFAULT_SERVICE_PORT interceptors = self.class::GRPC_INTERCEPTORS @cloud_tasks_stub = Google::Gax::Grpc.create_stub( service_path, port, chan_creds: chan_creds, channel: channel, updater_proc: updater_proc, scopes: scopes, interceptors: interceptors, &Google::Cloud::Tasks::V2beta3::CloudTasks::Stub.method(:new) ) @list_queues = Google::Gax.create_api_call( @cloud_tasks_stub.method(:list_queues), defaults["list_queues"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'parent' => request.parent} end ) @get_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:get_queue), defaults["get_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @create_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:create_queue), defaults["create_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'parent' => request.parent} end ) @update_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:update_queue), defaults["update_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'queue.name' => request.queue.name} end ) @delete_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:delete_queue), defaults["delete_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @purge_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:purge_queue), defaults["purge_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @pause_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:pause_queue), defaults["pause_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @resume_queue = Google::Gax.create_api_call( @cloud_tasks_stub.method(:resume_queue), defaults["resume_queue"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @get_iam_policy = Google::Gax.create_api_call( @cloud_tasks_stub.method(:get_iam_policy), defaults["get_iam_policy"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'resource' => request.resource} end ) @set_iam_policy = Google::Gax.create_api_call( @cloud_tasks_stub.method(:set_iam_policy), defaults["set_iam_policy"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'resource' => request.resource} end ) @test_iam_permissions = Google::Gax.create_api_call( @cloud_tasks_stub.method(:test_iam_permissions), defaults["test_iam_permissions"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'resource' => request.resource} end ) @list_tasks = Google::Gax.create_api_call( @cloud_tasks_stub.method(:list_tasks), defaults["list_tasks"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'parent' => request.parent} end ) @get_task = Google::Gax.create_api_call( @cloud_tasks_stub.method(:get_task), defaults["get_task"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @create_task = Google::Gax.create_api_call( @cloud_tasks_stub.method(:create_task), defaults["create_task"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'parent' => request.parent} end ) @delete_task = Google::Gax.create_api_call( @cloud_tasks_stub.method(:delete_task), defaults["delete_task"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) @run_task = Google::Gax.create_api_call( @cloud_tasks_stub.method(:run_task), defaults["run_task"], exception_transformer: exception_transformer, params_extractor: proc do |request| {'name' => request.name} end ) end # Service calls # Lists queues. # # Queues are returned in lexicographical order. # # @param parent [String] # Required. # # The location name. # For example: `projects/PROJECT_ID/locations/LOCATION_ID` # @param filter [String] # `filter` can be used to specify a subset of queues. Any {Google::Cloud::Tasks::V2beta3::Queue Queue} # field can be used as a filter and several operators as supported. # For example: `<=, <, >=, >, !=, =, :`. The filter syntax is the same as # described in # [Stackdriver's Advanced Logs Filters](https://cloud.google.com/logging/docs/view/advanced_filters). # # Sample filter "state: PAUSED". # # Note that using filters might cause fewer queues than the # requested page_size to be returned. # @param page_size [Integer] # The maximum number of resources contained in the underlying API # response. If page streaming is performed per-resource, this # parameter does not affect the return value. If page streaming is # performed per-page, this determines the maximum number of # resources in a page. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Gax::PagedEnumerable] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Gax::PagedEnumerable] # An enumerable of Google::Cloud::Tasks::V2beta3::Queue instances. # See Google::Gax::PagedEnumerable documentation for other # operations such as per-page iteration or access to the response # object. # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_parent = Google::Cloud::Tasks::V2beta3::CloudTasksClient.location_path("[PROJECT]", "[LOCATION]") # # # Iterate over all results. # cloud_tasks_client.list_queues(formatted_parent).each do |element| # # Process element. # end # # # Or iterate over results one page at a time. # cloud_tasks_client.list_queues(formatted_parent).each_page do |page| # # Process each page at a time. # page.each do |element| # # Process element. # end # end def list_queues \ parent, filter: nil, page_size: nil, options: nil, &block req = { parent: parent, filter: filter, page_size: page_size }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::ListQueuesRequest) @list_queues.call(req, options, &block) end # Gets a queue. # # @param name [String] # Required. # # The resource name of the queue. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # response = cloud_tasks_client.get_queue(formatted_name) def get_queue \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::GetQueueRequest) @get_queue.call(req, options, &block) end # Creates a queue. # # Queues created with this method allow tasks to live for a maximum of 31 # days. After a task is 31 days old, the task will be deleted regardless of whether # it was dispatched or not. # # WARNING: Using this method may have unintended side effects if you are # using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. # Read # [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) # before using this method. # # @param parent [String] # Required. # # The location name in which the queue will be created. # For example: `projects/PROJECT_ID/locations/LOCATION_ID` # # The list of allowed locations can be obtained by calling Cloud # Tasks' implementation of # {Google::Cloud::Location::Locations::ListLocations ListLocations}. # @param queue [Google::Cloud::Tasks::V2beta3::Queue | Hash] # Required. # # The queue to create. # # {Google::Cloud::Tasks::V2beta3::Queue#name Queue's name} cannot be the same as an existing queue. # A hash of the same form as `Google::Cloud::Tasks::V2beta3::Queue` # can also be provided. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_parent = Google::Cloud::Tasks::V2beta3::CloudTasksClient.location_path("[PROJECT]", "[LOCATION]") # # # TODO: Initialize `queue`: # queue = {} # response = cloud_tasks_client.create_queue(formatted_parent, queue) def create_queue \ parent, queue, options: nil, &block req = { parent: parent, queue: queue }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::CreateQueueRequest) @create_queue.call(req, options, &block) end # Updates a queue. # # This method creates the queue if it does not exist and updates # the queue if it does exist. # # Queues created with this method allow tasks to live for a maximum of 31 # days. After a task is 31 days old, the task will be deleted regardless of whether # it was dispatched or not. # # WARNING: Using this method may have unintended side effects if you are # using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. # Read # [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) # before using this method. # # @param queue [Google::Cloud::Tasks::V2beta3::Queue | Hash] # Required. # # The queue to create or update. # # The queue's {Google::Cloud::Tasks::V2beta3::Queue#name name} must be specified. # # Output only fields cannot be modified using UpdateQueue. # Any value specified for an output only field will be ignored. # The queue's {Google::Cloud::Tasks::V2beta3::Queue#name name} cannot be changed. # A hash of the same form as `Google::Cloud::Tasks::V2beta3::Queue` # can also be provided. # @param update_mask [Google::Protobuf::FieldMask | Hash] # A mask used to specify which fields of the queue are being updated. # # If empty, then all fields will be updated. # A hash of the same form as `Google::Protobuf::FieldMask` # can also be provided. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # # # TODO: Initialize `queue`: # queue = {} # response = cloud_tasks_client.update_queue(queue) def update_queue \ queue, update_mask: nil, options: nil, &block req = { queue: queue, update_mask: update_mask }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::UpdateQueueRequest) @update_queue.call(req, options, &block) end # Deletes a queue. # # This command will delete the queue even if it has tasks in it. # # Note: If you delete a queue, a queue with the same name can't be created # for 7 days. # # WARNING: Using this method may have unintended side effects if you are # using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. # Read # [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) # before using this method. # # @param name [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [] # @yieldparam operation [GRPC::ActiveCall::Operation] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # cloud_tasks_client.delete_queue(formatted_name) def delete_queue \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::DeleteQueueRequest) @delete_queue.call(req, options, &block) nil end # Purges a queue by deleting all of its tasks. # # All tasks created before this method is called are permanently deleted. # # Purge operations can take up to one minute to take effect. Tasks # might be dispatched before the purge takes effect. A purge is irreversible. # # @param name [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # response = cloud_tasks_client.purge_queue(formatted_name) def purge_queue \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::PurgeQueueRequest) @purge_queue.call(req, options, &block) end # Pauses the queue. # # If a queue is paused then the system will stop dispatching tasks # until the queue is resumed via # {Google::Cloud::Tasks::V2beta3::CloudTasks::ResumeQueue ResumeQueue}. Tasks can still be added # when the queue is paused. A queue is paused if its # {Google::Cloud::Tasks::V2beta3::Queue#state state} is {Google::Cloud::Tasks::V2beta3::Queue::State::PAUSED PAUSED}. # # @param name [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # response = cloud_tasks_client.pause_queue(formatted_name) def pause_queue \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::PauseQueueRequest) @pause_queue.call(req, options, &block) end # Resume a queue. # # This method resumes a queue after it has been # {Google::Cloud::Tasks::V2beta3::Queue::State::PAUSED PAUSED} or # {Google::Cloud::Tasks::V2beta3::Queue::State::DISABLED DISABLED}. The state of a queue is stored # in the queue's {Google::Cloud::Tasks::V2beta3::Queue#state state}; after calling this method it # will be set to {Google::Cloud::Tasks::V2beta3::Queue::State::RUNNING RUNNING}. # # WARNING: Resuming many high-QPS queues at the same time can # lead to target overloading. If you are resuming high-QPS # queues, follow the 500/50/5 pattern described in # [Managing Cloud Tasks Scaling Risks](https://cloud.google.com/tasks/docs/manage-cloud-task-scaling). # # @param name [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Queue] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Queue] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # response = cloud_tasks_client.resume_queue(formatted_name) def resume_queue \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::ResumeQueueRequest) @resume_queue.call(req, options, &block) end # Gets the access control policy for a {Google::Cloud::Tasks::V2beta3::Queue Queue}. # Returns an empty policy if the resource exists and does not have a policy # set. # # Authorization requires the following # [Google IAM](https://cloud.google.com/iam) permission on the specified # resource parent: # # * `cloudtasks.queues.getIamPolicy` # # @param resource [String] # REQUIRED: The resource for which the policy is being requested. # `resource` is usually specified as a path. For example, a Project # resource is specified as `projects/{project}`. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Iam::V1::Policy] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Iam::V1::Policy] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_resource = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # response = cloud_tasks_client.get_iam_policy(formatted_resource) def get_iam_policy \ resource, options: nil, &block req = { resource: resource }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest) @get_iam_policy.call(req, options, &block) end # Sets the access control policy for a {Google::Cloud::Tasks::V2beta3::Queue Queue}. Replaces any existing # policy. # # Note: The Cloud Console does not check queue-level IAM permissions yet. # Project-level permissions are required to use the Cloud Console. # # Authorization requires the following # [Google IAM](https://cloud.google.com/iam) permission on the specified # resource parent: # # * `cloudtasks.queues.setIamPolicy` # # @param resource [String] # REQUIRED: The resource for which the policy is being specified. # `resource` is usually specified as a path. For example, a Project # resource is specified as `projects/{project}`. # @param policy [Google::Iam::V1::Policy | Hash] # REQUIRED: The complete policy to be applied to the `resource`. The size of # the policy is limited to a few 10s of KB. An empty policy is a # valid policy but certain Cloud Platform services (such as Projects) # might reject them. # A hash of the same form as `Google::Iam::V1::Policy` # can also be provided. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Iam::V1::Policy] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Iam::V1::Policy] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_resource = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # # # TODO: Initialize `policy`: # policy = {} # response = cloud_tasks_client.set_iam_policy(formatted_resource, policy) def set_iam_policy \ resource, policy, options: nil, &block req = { resource: resource, policy: policy }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Iam::V1::SetIamPolicyRequest) @set_iam_policy.call(req, options, &block) end # Returns permissions that a caller has on a {Google::Cloud::Tasks::V2beta3::Queue Queue}. # If the resource does not exist, this will return an empty set of # permissions, not a {Google::Rpc::Code::NOT_FOUND NOT_FOUND} error. # # Note: This operation is designed to be used for building permission-aware # UIs and command-line tools, not for authorization checking. This operation # may "fail open" without warning. # # @param resource [String] # REQUIRED: The resource for which the policy detail is being requested. # `resource` is usually specified as a path. For example, a Project # resource is specified as `projects/{project}`. # @param permissions [Array] # The set of permissions to check for the `resource`. Permissions with # wildcards (such as '*' or 'storage.*') are not allowed. For more # information see # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Iam::V1::TestIamPermissionsResponse] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Iam::V1::TestIamPermissionsResponse] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_resource = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # # # TODO: Initialize `permissions`: # permissions = [] # response = cloud_tasks_client.test_iam_permissions(formatted_resource, permissions) def test_iam_permissions \ resource, permissions, options: nil, &block req = { resource: resource, permissions: permissions }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest) @test_iam_permissions.call(req, options, &block) end # Lists the tasks in a queue. # # By default, only the {Google::Cloud::Tasks::V2beta3::Task::View::BASIC BASIC} view is retrieved # due to performance considerations; # {Google::Cloud::Tasks::V2beta3::ListTasksRequest#response_view response_view} controls the # subset of information which is returned. # # The tasks may be returned in any order. The ordering may change at any # time. # # @param parent [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` # @param response_view [Google::Cloud::Tasks::V2beta3::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta3::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta3::Task::View::BASIC BASIC}; not all # information is retrieved by default because some data, such as # payloads, might be desirable to return only when needed because # of its large size or because of the sensitivity of data that it # contains. # # Authorization for {Google::Cloud::Tasks::V2beta3::Task::View::FULL FULL} requires # `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) # permission on the {Google::Cloud::Tasks::V2beta3::Task Task} resource. # @param page_size [Integer] # The maximum number of resources contained in the underlying API # response. If page streaming is performed per-resource, this # parameter does not affect the return value. If page streaming is # performed per-page, this determines the maximum number of # resources in a page. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Gax::PagedEnumerable] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Gax::PagedEnumerable] # An enumerable of Google::Cloud::Tasks::V2beta3::Task instances. # See Google::Gax::PagedEnumerable documentation for other # operations such as per-page iteration or access to the response # object. # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_parent = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # # # Iterate over all results. # cloud_tasks_client.list_tasks(formatted_parent).each do |element| # # Process element. # end # # # Or iterate over results one page at a time. # cloud_tasks_client.list_tasks(formatted_parent).each_page do |page| # # Process each page at a time. # page.each do |element| # # Process element. # end # end def list_tasks \ parent, response_view: nil, page_size: nil, options: nil, &block req = { parent: parent, response_view: response_view, page_size: page_size }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::ListTasksRequest) @list_tasks.call(req, options, &block) end # Gets a task. # # @param name [String] # Required. # # The task name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID` # @param response_view [Google::Cloud::Tasks::V2beta3::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta3::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta3::Task::View::BASIC BASIC}; not all # information is retrieved by default because some data, such as # payloads, might be desirable to return only when needed because # of its large size or because of the sensitivity of data that it # contains. # # Authorization for {Google::Cloud::Tasks::V2beta3::Task::View::FULL FULL} requires # `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) # permission on the {Google::Cloud::Tasks::V2beta3::Task Task} resource. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Task] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Task] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") # response = cloud_tasks_client.get_task(formatted_name) def get_task \ name, response_view: nil, options: nil, &block req = { name: name, response_view: response_view }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::GetTaskRequest) @get_task.call(req, options, &block) end # Creates a task and adds it to a queue. # # Tasks cannot be updated after creation; there is no UpdateTask command. # # * For {Google::Cloud::Tasks::V2beta3::AppEngineHttpQueue App Engine queues}, the maximum task size is # 100KB. # # @param parent [String] # Required. # # The queue name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` # # The queue must already exist. # @param task [Google::Cloud::Tasks::V2beta3::Task | Hash] # Required. # # The task to add. # # Task names have the following format: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`. # The user can optionally specify a task {Google::Cloud::Tasks::V2beta3::Task#name name}. If a # name is not specified then the system will generate a random # unique task id, which will be set in the task returned in the # {Google::Cloud::Tasks::V2beta3::Task#name response}. # # If {Google::Cloud::Tasks::V2beta3::Task#schedule_time schedule_time} is not set or is in the # past then Cloud Tasks will set it to the current time. # # Task De-duplication: # # Explicitly specifying a task ID enables task de-duplication. If # a task's ID is identical to that of an existing task or a task # that was deleted or executed recently then the call will fail # with {Google::Rpc::Code::ALREADY_EXISTS ALREADY_EXISTS}. # If the task's queue was created using Cloud Tasks, then another task with # the same name can't be created for ~1hour after the original task was # deleted or executed. If the task's queue was created using queue.yaml or # queue.xml, then another task with the same name can't be created # for ~9days after the original task was deleted or executed. # # Because there is an extra lookup cost to identify duplicate task # names, these {Google::Cloud::Tasks::V2beta3::CloudTasks::CreateTask CreateTask} calls have significantly # increased latency. Using hashed strings for the task id or for # the prefix of the task id is recommended. Choosing task ids that # are sequential or have sequential prefixes, for example using a # timestamp, causes an increase in latency and error rates in all # task commands. The infrastructure relies on an approximately # uniform distribution of task ids to store and serve tasks # efficiently. # A hash of the same form as `Google::Cloud::Tasks::V2beta3::Task` # can also be provided. # @param response_view [Google::Cloud::Tasks::V2beta3::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta3::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta3::Task::View::BASIC BASIC}; not all # information is retrieved by default because some data, such as # payloads, might be desirable to return only when needed because # of its large size or because of the sensitivity of data that it # contains. # # Authorization for {Google::Cloud::Tasks::V2beta3::Task::View::FULL FULL} requires # `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) # permission on the {Google::Cloud::Tasks::V2beta3::Task Task} resource. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Task] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Task] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_parent = Google::Cloud::Tasks::V2beta3::CloudTasksClient.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") # # # TODO: Initialize `task`: # task = {} # response = cloud_tasks_client.create_task(formatted_parent, task) def create_task \ parent, task, response_view: nil, options: nil, &block req = { parent: parent, task: task, response_view: response_view }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::CreateTaskRequest) @create_task.call(req, options, &block) end # Deletes a task. # # A task can be deleted if it is scheduled or dispatched. A task # cannot be deleted if it has executed successfully or permanently # failed. # # @param name [String] # Required. # # The task name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID` # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [] # @yieldparam operation [GRPC::ActiveCall::Operation] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") # cloud_tasks_client.delete_task(formatted_name) def delete_task \ name, options: nil, &block req = { name: name }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::DeleteTaskRequest) @delete_task.call(req, options, &block) nil end # Forces a task to run now. # # When this method is called, Cloud Tasks will dispatch the task, even if # the task is already running, the queue has reached its {Google::Cloud::Tasks::V2beta3::RateLimits RateLimits} or # is {Google::Cloud::Tasks::V2beta3::Queue::State::PAUSED PAUSED}. # # This command is meant to be used for manual debugging. For # example, {Google::Cloud::Tasks::V2beta3::CloudTasks::RunTask RunTask} can be used to retry a failed # task after a fix has been made or to manually force a task to be # dispatched now. # # The dispatched task is returned. That is, the task that is returned # contains the {Task#status status} after the task is dispatched but # before the task is received by its target. # # If Cloud Tasks receives a successful response from the task's # target, then the task will be deleted; otherwise the task's # {Google::Cloud::Tasks::V2beta3::Task#schedule_time schedule_time} will be reset to the time that # {Google::Cloud::Tasks::V2beta3::CloudTasks::RunTask RunTask} was called plus the retry delay specified # in the queue's {Google::Cloud::Tasks::V2beta3::RetryConfig RetryConfig}. # # {Google::Cloud::Tasks::V2beta3::CloudTasks::RunTask RunTask} returns # {Google::Rpc::Code::NOT_FOUND NOT_FOUND} when it is called on a # task that has already succeeded or permanently failed. # # @param name [String] # Required. # # The task name. For example: # `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID` # @param response_view [Google::Cloud::Tasks::V2beta3::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta3::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta3::Task::View::BASIC BASIC}; not all # information is retrieved by default because some data, such as # payloads, might be desirable to return only when needed because # of its large size or because of the sensitivity of data that it # contains. # # Authorization for {Google::Cloud::Tasks::V2beta3::Task::View::FULL FULL} requires # `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) # permission on the {Google::Cloud::Tasks::V2beta3::Task Task} resource. # @param options [Google::Gax::CallOptions] # Overrides the default settings for this call, e.g, timeout, # retries, etc. # @yield [result, operation] Access the result along with the RPC operation # @yieldparam result [Google::Cloud::Tasks::V2beta3::Task] # @yieldparam operation [GRPC::ActiveCall::Operation] # @return [Google::Cloud::Tasks::V2beta3::Task] # @raise [Google::Gax::GaxError] if the RPC is aborted. # @example # require "google/cloud/tasks" # # cloud_tasks_client = Google::Cloud::Tasks.new(version: :v2beta3) # formatted_name = Google::Cloud::Tasks::V2beta3::CloudTasksClient.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") # response = cloud_tasks_client.run_task(formatted_name) def run_task \ name, response_view: nil, options: nil, &block req = { name: name, response_view: response_view }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Tasks::V2beta3::RunTaskRequest) @run_task.call(req, options, &block) end end end end end end