# 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. module Google module Cloud module Tasks ## # # Cloud Tasks API Contents # # | Class | Description | # | ----- | ----------- | # | [CloudTasksClient][] | Cloud Tasks allows developers to manage the execution of background work in their applications. | # | [Data Types][] | Data types for Google::Cloud::Tasks::V2beta2 | # # [CloudTasksClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-tasks/latest/google/cloud/tasks/v2beta2/cloudtasksclient # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-tasks/latest/google/cloud/tasks/v2beta2/datatypes # module V2beta2 # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::ListQueues ListQueues}. # @!attribute [rw] parent # @return [String] # Required. # # The location name. # For example: +projects/PROJECT_ID/locations/LOCATION_ID+ # @!attribute [rw] filter # @return [String] # +filter+ can be used to specify a subset of queues. Any {Google::Cloud::Tasks::V2beta2::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 "app_engine_http_target: *". # # Note that using filters might cause fewer queues than the # requested_page size to be returned. # @!attribute [rw] page_size # @return [Integer] # Requested page size. # # The maximum page size is 9800. If unspecified, the page size will # be the maximum. Fewer queues than requested might be returned, # even if more queues exist; use the # {Google::Cloud::Tasks::V2beta2::ListQueuesResponse#next_page_token next_page_token} in the # response to determine if more queues exist. # @!attribute [rw] page_token # @return [String] # A token identifying the page of results to return. # # To request the first page results, page_token must be empty. To # request the next page of results, page_token must be the value of # {Google::Cloud::Tasks::V2beta2::ListQueuesResponse#next_page_token next_page_token} returned # from the previous call to {Google::Cloud::Tasks::V2beta2::CloudTasks::ListQueues ListQueues} # method. It is an error to switch the value of the # {Google::Cloud::Tasks::V2beta2::ListQueuesRequest#filter filter} while iterating through pages. class ListQueuesRequest; end # Response message for {Google::Cloud::Tasks::V2beta2::CloudTasks::ListQueues ListQueues}. # @!attribute [rw] queues # @return [Array] # The list of queues. # @!attribute [rw] next_page_token # @return [String] # A token to retrieve next page of results. # # To return the next page of results, call # {Google::Cloud::Tasks::V2beta2::CloudTasks::ListQueues ListQueues} with this value as the # {Google::Cloud::Tasks::V2beta2::ListQueuesRequest#page_token page_token}. # # If the next_page_token is empty, there are no more results. # # The page token is valid for only 2 hours. class ListQueuesResponse; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::GetQueue GetQueue}. # @!attribute [rw] name # @return [String] # Required. # # The resource name of the queue. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID+ class GetQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::CreateQueue CreateQueue}. # @!attribute [rw] parent # @return [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}. # @!attribute [rw] queue # @return [Google::Cloud::Tasks::V2beta2::Queue] # Required. # # The queue to create. # # {Google::Cloud::Tasks::V2beta2::Queue#name Queue's name} cannot be the same as an existing queue. class CreateQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::UpdateQueue UpdateQueue}. # @!attribute [rw] queue # @return [Google::Cloud::Tasks::V2beta2::Queue] # Required. # # The queue to create or update. # # The queue's {Google::Cloud::Tasks::V2beta2::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::V2beta2::Queue#name name} cannot be changed. # @!attribute [rw] update_mask # @return [Google::Protobuf::FieldMask] # A mask used to specify which fields of the queue are being updated. # # If empty, then all fields will be updated. class UpdateQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::DeleteQueue DeleteQueue}. # @!attribute [rw] name # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID+ class DeleteQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::PurgeQueue PurgeQueue}. # @!attribute [rw] name # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID+ class PurgeQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::PauseQueue PauseQueue}. # @!attribute [rw] name # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID+ class PauseQueueRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::ResumeQueue ResumeQueue}. # @!attribute [rw] name # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID+ class ResumeQueueRequest; end # Request message for listing tasks using {Google::Cloud::Tasks::V2beta2::CloudTasks::ListTasks ListTasks}. # @!attribute [rw] parent # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID+ # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. # @!attribute [rw] order_by # @return [String] # Sort order used for the query. The only fields supported for sorting # are +schedule_time+ and +pull_message.tag+. All results will be # returned in approximately ascending order. The default ordering is by # +schedule_time+. # @!attribute [rw] page_size # @return [Integer] # Requested page size. Fewer tasks than requested might be returned. # # The maximum page size is 1000. If unspecified, the page size will # be the maximum. Fewer tasks than requested might be returned, # even if more tasks exist; use # {Google::Cloud::Tasks::V2beta2::ListTasksResponse#next_page_token next_page_token} in the # response to determine if more tasks exist. # @!attribute [rw] page_token # @return [String] # A token identifying the page of results to return. # # To request the first page results, page_token must be empty. To # request the next page of results, page_token must be the value of # {Google::Cloud::Tasks::V2beta2::ListTasksResponse#next_page_token next_page_token} returned # from the previous call to {Google::Cloud::Tasks::V2beta2::CloudTasks::ListTasks ListTasks} # method. # # The page token is valid for only 2 hours. class ListTasksRequest; end # Response message for listing tasks using {Google::Cloud::Tasks::V2beta2::CloudTasks::ListTasks ListTasks}. # @!attribute [rw] tasks # @return [Array] # The list of tasks. # @!attribute [rw] next_page_token # @return [String] # A token to retrieve next page of results. # # To return the next page of results, call # {Google::Cloud::Tasks::V2beta2::CloudTasks::ListTasks ListTasks} with this value as the # {Google::Cloud::Tasks::V2beta2::ListTasksRequest#page_token page_token}. # # If the next_page_token is empty, there are no more results. class ListTasksResponse; end # Request message for getting a task using {Google::Cloud::Tasks::V2beta2::CloudTasks::GetTask GetTask}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. class GetTaskRequest; end # Request message for {Google::Cloud::Tasks::V2beta2::CloudTasks::CreateTask CreateTask}. # @!attribute [rw] parent # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID+ # # The queue must already exist. # @!attribute [rw] task # @return [Google::Cloud::Tasks::V2beta2::Task] # 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::V2beta2::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::V2beta2::Task#name response}. # # If {Google::Cloud::Tasks::V2beta2::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 completed 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 completed. 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 completed. # # Because there is an extra lookup cost to identify duplicate task # names, these {Google::Cloud::Tasks::V2beta2::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. # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. class CreateTaskRequest; end # Request message for deleting a task using # {Google::Cloud::Tasks::V2beta2::CloudTasks::DeleteTask DeleteTask}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ class DeleteTaskRequest; end # Request message for leasing tasks using {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks}. # @!attribute [rw] parent # @return [String] # Required. # # The queue name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID+ # @!attribute [rw] max_tasks # @return [Integer] # The maximum number of tasks to lease. # # The system will make a best effort to return as close to as # +max_tasks+ as possible. # # The largest that +max_tasks+ can be is 1000. # @!attribute [rw] lease_duration # @return [Google::Protobuf::Duration] # After the worker has successfully finished the work associated # with the task, the worker must call via # {Google::Cloud::Tasks::V2beta2::CloudTasks::AcknowledgeTask AcknowledgeTask} before the # {Google::Cloud::Tasks::V2beta2::Task#schedule_time schedule_time}. Otherwise the task will be # returned to a later {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks} call so # that another worker can retry it. # # The maximum lease duration is 1 week. # +lease_duration+ will be truncated to the nearest second. # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. # @!attribute [rw] filter # @return [String] # +filter+ can be used to specify a subset of tasks to lease. # # When +filter+ is set to +tag=+ then the # {Google::Cloud::Tasks::V2beta2::LeaseTasksResponse response} will contain only tasks whose # {Google::Cloud::Tasks::V2beta2::PullMessage#tag tag} is equal to ++. ++ must be # less than 500 characters. # # When +filter+ is set to +tag_function=oldest_tag()+, only tasks which have # the same tag as the task with the oldest # {Google::Cloud::Tasks::V2beta2::Task#schedule_time schedule_time} will be returned. # # Grammar Syntax: # # * +filter = "tag=" tag | "tag_function=" function+ # # * +tag = string+ # # * +function = "oldest_tag()"+ # # The +oldest_tag()+ function returns tasks which have the same tag as the # oldest task (ordered by schedule time). # # SDK compatibility: Although the SDK allows tags to be either # string or # [bytes](https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-), # only UTF-8 encoded tags can be used in Cloud Tasks. Tag which # aren't UTF-8 encoded can't be used in the # {Google::Cloud::Tasks::V2beta2::LeaseTasksRequest#filter filter} and the task's # {Google::Cloud::Tasks::V2beta2::PullMessage#tag tag} will be displayed as empty in Cloud Tasks. class LeaseTasksRequest; end # Response message for leasing tasks using {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks}. # @!attribute [rw] tasks # @return [Array] # The leased tasks. class LeaseTasksResponse; end # Request message for acknowledging a task using # {Google::Cloud::Tasks::V2beta2::CloudTasks::AcknowledgeTask AcknowledgeTask}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ # @!attribute [rw] schedule_time # @return [Google::Protobuf::Timestamp] # Required. # # The task's current schedule time, available in the # {Google::Cloud::Tasks::V2beta2::Task#schedule_time schedule_time} returned by # {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks} response or # {Google::Cloud::Tasks::V2beta2::CloudTasks::RenewLease RenewLease} response. This restriction is # to ensure that your worker currently holds the lease. class AcknowledgeTaskRequest; end # Request message for renewing a lease using # {Google::Cloud::Tasks::V2beta2::CloudTasks::RenewLease RenewLease}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ # @!attribute [rw] schedule_time # @return [Google::Protobuf::Timestamp] # Required. # # The task's current schedule time, available in the # {Google::Cloud::Tasks::V2beta2::Task#schedule_time schedule_time} returned by # {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks} response or # {Google::Cloud::Tasks::V2beta2::CloudTasks::RenewLease RenewLease} response. This restriction is # to ensure that your worker currently holds the lease. # @!attribute [rw] lease_duration # @return [Google::Protobuf::Duration] # Required. # # The desired new lease duration, starting from now. # # # The maximum lease duration is 1 week. # +lease_duration+ will be truncated to the nearest second. # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. class RenewLeaseRequest; end # Request message for canceling a lease using # {Google::Cloud::Tasks::V2beta2::CloudTasks::CancelLease CancelLease}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ # @!attribute [rw] schedule_time # @return [Google::Protobuf::Timestamp] # Required. # # The task's current schedule time, available in the # {Google::Cloud::Tasks::V2beta2::Task#schedule_time schedule_time} returned by # {Google::Cloud::Tasks::V2beta2::CloudTasks::LeaseTasks LeaseTasks} response or # {Google::Cloud::Tasks::V2beta2::CloudTasks::RenewLease RenewLease} response. This restriction is # to ensure that your worker currently holds the lease. # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. class CancelLeaseRequest; end # Request message for forcing a task to run now using # {Google::Cloud::Tasks::V2beta2::CloudTasks::RunTask RunTask}. # @!attribute [rw] name # @return [String] # Required. # # The task name. For example: # +projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID+ # @!attribute [rw] response_view # @return [Google::Cloud::Tasks::V2beta2::Task::View] # The response_view specifies which subset of the {Google::Cloud::Tasks::V2beta2::Task Task} will be # returned. # # By default response_view is {Google::Cloud::Tasks::V2beta2::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::V2beta2::Task::View::FULL FULL} requires # +cloudtasks.tasks.fullView+ [Google IAM](https://cloud.google.com/iam/) permission on the # {Google::Cloud::Tasks::V2beta2::Task Task} resource. class RunTaskRequest; end end end end end