googleapis
Version:
Google APIs Client Library for Node.js
1,062 lines • 125 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* 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
*
* http://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.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Cloud Tasks API
*
* Manages the execution of large numbers of distributed requests. Cloud Tasks
* is in Alpha.
*
* @example
* const google = require('googleapis');
* const cloudtasks = google.cloudtasks('v2beta2');
*
* @namespace cloudtasks
* @type {Function}
* @version v2beta2
* @variation v2beta2
* @param {object=} options Options for Cloudtasks
*/
export declare class Cloudtasks {
_options: GlobalOptions;
google: GoogleApis;
root: this;
projects: Resource$Projects;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* Request message for acknowledging a task using AcknowledgeTask.
*/
export interface Schema$AcknowledgeTaskRequest {
/**
* Required. The task's current schedule time, available in the
* schedule_time returned by LeaseTasks response or RenewLease response. This
* restriction is to ensure that your worker currently holds the lease.
*/
scheduleTime: string;
}
/**
* App Engine HTTP request. The message defines the HTTP request that is sent
* to an App Engine app when the task is dispatched. This proto can only be
* used for tasks in a queue which has app_engine_http_target set. Using
* AppEngineHttpRequest requires
* [`appengine.applications.get`](/appengine/docs/admin-api/access-control)
* Google IAM permission for the project and the following scope:
* `https://www.googleapis.com/auth/cloud-platform` The task will be delivered
* to the App Engine app which belongs to the same project as the queue. For
* more information, see [How Requests are
* Routed](/appengine/docs/standard/python/how-requests-are-routed) and how
* routing is affected by [dispatch
* files](/appengine/docs/python/config/dispatchref). The AppEngineRouting used
* to construct the URL that the task is delivered to can be set at the
* queue-level or task-level: * If set, app_engine_routing_override is
* used for all tasks in the queue, no matter what the setting is for the
* task-level app_engine_routing. The `url` that the task will be sent to is:
* * `url =` host `+` relative_url The task attempt has succeeded if the
* app's request handler returns an HTTP response code in the range [`200` -
* `299`]. `503` is considered an App Engine system error instead of an
* application error. Requests returning error `503` will be retried regardless
* of retry configuration and not counted against retry counts. Any other
* response code or a failure to receive a response before the deadline is a
* failed attempt.
*/
export interface Schema$AppEngineHttpRequest {
/**
* Task-level setting for App Engine routing. If set,
* app_engine_routing_override is used for all tasks in the queue, no matter
* what the setting is for the task-level app_engine_routing.
*/
appEngineRouting: Schema$AppEngineRouting;
/**
* HTTP request headers. This map contains the header field names and values.
* Headers can be set when the [task is
* created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask). Repeated
* headers are not supported but a header value can contain commas. Cloud
* Tasks sets some headers to default values: * `User-Agent`: By default,
* this header is `"AppEngine-Google;
* (+http://code.google.com/appengine)"`. This header can be modified,
* but Cloud Tasks will append `"AppEngine-Google;
* (+http://code.google.com/appengine)"` to the modified `User-Agent`.
* If the task has a payload, Cloud Tasks sets the following headers: *
* `Content-Type`: By default, the `Content-Type` header is set to
* `"application/octet-stream"`. The default can be overridden by
* explicitly setting `Content-Type` to a particular media type when the
* [task is created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask). For
* example, `Content-Type` can be set to `"application/json"`. *
* `Content-Length`: This is computed by Cloud Tasks. This value is output
* only. It cannot be changed. The headers below cannot be set or
* overridden: * `Host` * `X-Google-*` * `X-AppEngine-*` In addition, Cloud
* Tasks sets some headers when the task is dispatched, such as headers
* containing information about the task; see [request
* headers](/appengine/docs/python/taskqueue/push/creating-handlers#reading_request_headers).
* These headers are set only when the task is dispatched, so they are not
* visible when the task is returned in a Cloud Tasks response. Although
* there is no specific limit for the maximum number of headers or the size,
* there is a limit on the maximum size of the Task. For more information, see
* the CreateTask documentation.
*/
headers: any;
/**
* The HTTP method to use for the request. The default is POST. The app's
* request handler for the task's target URL must be able to handle HTTP
* requests with this http_method, otherwise the task attempt will fail with
* error code 405 (Method Not Allowed). See [Writing a push task request
* handler](/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler)
* and the documentation for the request handlers in the language your app is
* written in e.g. [Python Request
* Handler](/appengine/docs/python/tools/webapp/requesthandlerclass).
*/
httpMethod: string;
/**
* Payload. The payload will be sent as the HTTP message body. A message
* body, and thus a payload, is allowed only if the HTTP method is POST or
* PUT. It is an error to set a data payload on a task with an incompatible
* HttpMethod.
*/
payload: string;
/**
* The relative URL. The relative URL must begin with "/" and must
* be a valid HTTP relative URL. It can contain a path and query string
* arguments. If the relative URL is empty, then the root path "/"
* will be used. No spaces are allowed, and the maximum length allowed is 2083
* characters.
*/
relativeUrl: string;
}
/**
* App Engine HTTP target. The task will be delivered to the App Engine
* application hostname specified by its AppEngineHttpTarget and
* AppEngineHttpRequest. The documentation for AppEngineHttpRequest explains how
* the task's host URL is constructed. Using AppEngineHttpTarget requires
* [`appengine.applications.get`](/appengine/docs/admin-api/access-control)
* Google IAM permission for the project and the following scope:
* `https://www.googleapis.com/auth/cloud-platform`
*/
export interface Schema$AppEngineHttpTarget {
/**
* Overrides for the task-level app_engine_routing. If set,
* `app_engine_routing_override` is used for all tasks in the queue, no matter
* what the setting is for the task-level app_engine_routing.
*/
appEngineRoutingOverride: Schema$AppEngineRouting;
}
/**
* App Engine Routing. For more information about services, versions, and
* instances see [An Overview of App
* Engine](/appengine/docs/python/an-overview-of-app-engine), [Microservices
* Architecture on Google App
* Engine](/appengine/docs/python/microservices-on-app-engine), [App Engine
* Standard request
* routing](/appengine/docs/standard/python/how-requests-are-routed), and [App
* Engine Flex request
* routing](/appengine/docs/flexible/python/how-requests-are-routed).
*/
export interface Schema$AppEngineRouting {
/**
* Output only. The host that the task is sent to. For more information, see
* [How Requests are
* Routed](/appengine/docs/standard/python/how-requests-are-routed). The host
* is constructed as: * `host = [application_domain_name]`</br> `|
* [service] + '.' + [application_domain_name]`</br> `|
* [version] + '.' + [application_domain_name]`</br> `|
* [version_dot_service]+ '.' + [application_domain_name]`</br>
* `| [instance] + '.' + [application_domain_name]`</br> `|
* [instance_dot_service] + '.' +
* [application_domain_name]`</br> `| [instance_dot_version] +
* '.' + [application_domain_name]`</br> `|
* [instance_dot_version_dot_service] + '.' +
* [application_domain_name]` * `application_domain_name` = The domain name
* of the app, for example <app-id>.appspot.com, which is associated
* with the queue's project ID. Some tasks which were created using the
* App Engine SDK use a custom domain name. * `service =` service *
* `version =` version * `version_dot_service =` version `+ '.' +`
* service * `instance =` instance * `instance_dot_service =` instance `+
* '.' +` service * `instance_dot_version =` instance `+
* '.' +` version * `instance_dot_version_dot_service =` instance
* `+ '.' +` version `+ '.' +` service If service is
* empty, then the task will be sent to the service which is the default
* service when the task is attempted. If version is empty, then the task
* will be sent to the version which is the default version when the task is
* attempted. If instance is empty, then the task will be sent to an instance
* which is available when the task is attempted. When service is
* "default", version is "default", and instance is empty,
* host is shortened to just the `application_domain_name`. If service,
* version, or instance is invalid, then the task will be sent to the default
* version of the default service when the task is attempted.
*/
host: string;
/**
* App instance. By default, the task is sent to an instance which is
* available when the task is attempted. Requests can only be sent to a
* specific instance if [manual scaling is used in App Engine
* Standard](/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes).
* App Engine Flex does not support instances. For more information, see [App
* Engine Standard request
* routing](/appengine/docs/standard/python/how-requests-are-routed) and [App
* Engine Flex request
* routing](/appengine/docs/flexible/python/how-requests-are-routed).
*/
instance: string;
/**
* App service. By default, the task is sent to the service which is the
* default service when the task is attempted ("default"). For some
* queues or tasks which were created using the App Engine Task Queue API,
* host is not parsable into service, version, and instance. For example, some
* tasks which were created using the App Engine SDK use a custom domain name;
* custom domains are not parsed by Cloud Tasks. If host is not parsable, then
* service, version, and instance are the empty string.
*/
service: string;
/**
* App version. By default, the task is sent to the version which is the
* default version when the task is attempted ("default"). For some
* queues or tasks which were created using the App Engine Task Queue API,
* host is not parsable into service, version, and instance. For example, some
* tasks which were created using the App Engine SDK use a custom domain name;
* custom domains are not parsed by Cloud Tasks. If host is not parsable, then
* service, version, and instance are the empty string.
*/
version: string;
}
/**
* The status of a task attempt.
*/
export interface Schema$AttemptStatus {
/**
* Output only. The time that this attempt was dispatched. `dispatch_time`
* will be truncated to the nearest microsecond.
*/
dispatchTime: string;
/**
* Output only. The response from the target for this attempt. If the task
* has not been attempted or the task is currently running then the response
* status is unset.
*/
responseStatus: Schema$Status;
/**
* Output only. The time that this attempt response was received.
* `response_time` will be truncated to the nearest microsecond.
*/
responseTime: string;
/**
* Output only. The time that this attempt was scheduled. `schedule_time`
* will be truncated to the nearest microsecond.
*/
scheduleTime: string;
}
/**
* Associates `members` with a `role`.
*/
export interface Schema$Binding {
/**
* Specifies the identities requesting access for a Cloud Platform resource.
* `members` can have the following values: * `allUsers`: A special
* identifier that represents anyone who is on the internet; with or
* without a Google account. * `allAuthenticatedUsers`: A special identifier
* that represents anyone who is authenticated with a Google account or a
* service account. * `user:{emailid}`: An email address that represents a
* specific Google account. For example, `alice@gmail.com` or
* `joe@example.com`. * `serviceAccount:{emailid}`: An email address that
* represents a service account. For example,
* `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email
* address that represents a Google group. For example,
* `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that
* represents all the users of that domain. For example, `google.com` or
* `example.com`.
*/
members: string[];
/**
* Role that is assigned to `members`. For example, `roles/viewer`,
* `roles/editor`, or `roles/owner`. Required
*/
role: string;
}
/**
* Request message for canceling a lease using CancelLease.
*/
export interface Schema$CancelLeaseRequest {
/**
* The response_view specifies which subset of the Task will be returned. By
* default response_view is 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 FULL requires `cloudtasks.tasks.fullView`
* [Google IAM](/iam/) permission on the Task resource.
*/
responseView: string;
/**
* Required. The task's current schedule time, available in the
* schedule_time returned by LeaseTasks response or RenewLease response. This
* restriction is to ensure that your worker currently holds the lease.
*/
scheduleTime: string;
}
/**
* Request message for CreateTask.
*/
export interface Schema$CreateTaskRequest {
/**
* The response_view specifies which subset of the Task will be returned. By
* default response_view is 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 FULL requires `cloudtasks.tasks.fullView`
* [Google IAM](/iam/) permission on the Task resource.
*/
responseView: string;
/**
* 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 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 response. If 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 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 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.
*/
task: Schema$Task;
}
/**
* A generic empty message that you can re-use to avoid defining duplicated
* empty messages in your APIs. A typical example is to use it as the request or
* the response type of an API method. For instance: service Foo { rpc
* Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON
* representation for `Empty` is empty JSON object `{}`.
*/
export interface Schema$Empty {
}
/**
* Request message for `GetIamPolicy` method.
*/
export interface Schema$GetIamPolicyRequest {
}
/**
* Request message for leasing tasks using LeaseTasks.
*/
export interface Schema$LeaseTasksRequest {
/**
* `filter` can be used to specify a subset of tasks to lease. When `filter`
* is set to `tag=<my-tag>` then the response will contain only tasks
* whose tag is equal to `<my-tag>`. `<my-tag>` 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 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](/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 filter and the task's tag will
* be displayed as empty in Cloud Tasks.
*/
filter: string;
/**
* After the worker has successfully finished the work associated with the
* task, the worker must call via AcknowledgeTask before the schedule_time.
* Otherwise the task will be returned to a later 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.
*/
leaseDuration: string;
/**
* The maximum number of tasks to lease. The maximum that can be requested is
* 1000.
*/
maxTasks: number;
/**
* The response_view specifies which subset of the Task will be returned. By
* default response_view is 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 FULL requires `cloudtasks.tasks.fullView`
* [Google IAM](/iam/) permission on the Task resource.
*/
responseView: string;
}
/**
* Response message for leasing tasks using LeaseTasks.
*/
export interface Schema$LeaseTasksResponse {
/**
* The leased tasks.
*/
tasks: Schema$Task[];
}
/**
* The response message for Locations.ListLocations.
*/
export interface Schema$ListLocationsResponse {
/**
* A list of locations that matches the specified filter in the request.
*/
locations: Schema$Location[];
/**
* The standard List next-page token.
*/
nextPageToken: string;
}
/**
* Response message for ListQueues.
*/
export interface Schema$ListQueuesResponse {
/**
* A token to retrieve next page of results. To return the next page of
* results, call ListQueues with this value as the page_token. If the
* next_page_token is empty, there are no more results. The page token is
* valid for only 2 hours.
*/
nextPageToken: string;
/**
* The list of queues.
*/
queues: Schema$Queue[];
}
/**
* Response message for listing tasks using ListTasks.
*/
export interface Schema$ListTasksResponse {
/**
* A token to retrieve next page of results. To return the next page of
* results, call ListTasks with this value as the page_token. If the
* next_page_token is empty, there are no more results.
*/
nextPageToken: string;
/**
* The list of tasks.
*/
tasks: Schema$Task[];
}
/**
* A resource that represents Google Cloud Platform location.
*/
export interface Schema$Location {
/**
* The friendly name for this location, typically a nearby city name. For
* example, "Tokyo".
*/
displayName: string;
/**
* Cross-service attributes for the location. For example
* {"cloud.googleapis.com/region": "us-east1"}
*/
labels: any;
/**
* The canonical id for this location. For example: `"us-east1"`.
*/
locationId: string;
/**
* Service-specific metadata. For example the available capacity at the given
* location.
*/
metadata: any;
/**
* Resource name for the location, which may vary between implementations. For
* example: `"projects/example-project/locations/us-east1"`
*/
name: string;
}
/**
* Request message for PauseQueue.
*/
export interface Schema$PauseQueueRequest {
}
/**
* Defines an Identity and Access Management (IAM) policy. It is used to specify
* access control policies for Cloud Platform resources. A `Policy` consists
* of a list of `bindings`. A `Binding` binds a list of `members` to a `role`,
* where the members can be user accounts, Google groups, Google domains, and
* service accounts. A `role` is a named list of permissions defined by IAM.
* **Example** { "bindings": [ { "role":
* "roles/owner", "members": [
* "user:mike@example.com", "group:admins@example.com",
* "domain:google.com",
* "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, {
* "role": "roles/viewer", "members":
* ["user:sean@example.com"] } ] } For a
* description of IAM and its features, see the [IAM developer's
* guide](https://cloud.google.com/iam/docs).
*/
export interface Schema$Policy {
/**
* Associates a list of `members` to a `role`. `bindings` with no members will
* result in an error.
*/
bindings: Schema$Binding[];
/**
* `etag` is used for optimistic concurrency control as a way to help prevent
* simultaneous updates of a policy from overwriting each other. It is
* strongly suggested that systems make use of the `etag` in the
* read-modify-write cycle to perform policy updates in order to avoid race
* conditions: An `etag` is returned in the response to `getIamPolicy`, and
* systems are expected to put that etag in the request to `setIamPolicy` to
* ensure that their change will be applied to the same version of the policy.
* If no `etag` is provided in the call to `setIamPolicy`, then the existing
* policy is overwritten blindly.
*/
etag: string;
/**
* Deprecated.
*/
version: number;
}
/**
* The pull message contains data that can be used by the caller of LeaseTasks
* to process the task. This proto can only be used for tasks in a queue which
* has pull_target set.
*/
export interface Schema$PullMessage {
/**
* A data payload consumed by the worker to execute the task.
*/
payload: string;
/**
* The task's tag. Tags allow similar tasks to be processed in a batch.
* If you label tasks with a tag, your worker can lease tasks with the same
* tag using filter. For example, if you want to aggregate the events
* associated with a specific user once a day, you could tag tasks with the
* user ID. The task's tag can only be set when the task is created. The
* tag must be less than 500 characters. SDK compatibility: Although the SDK
* allows tags to be either string or
* [bytes](/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. If a tag isn't
* UTF-8 encoded, the tag will be empty when the task is returned by Cloud
* Tasks.
*/
tag: string;
}
/**
* Pull target.
*/
export interface Schema$PullTarget {
}
/**
* Request message for PurgeQueue.
*/
export interface Schema$PurgeQueueRequest {
}
/**
* A queue is a container of related tasks. Queues are configured to manage how
* those tasks are dispatched. Configurable properties include rate limits,
* retry options, target types, and others.
*/
export interface Schema$Queue {
/**
* App Engine HTTP target. An App Engine queue is a queue that has an
* AppEngineHttpTarget.
*/
appEngineHttpTarget: Schema$AppEngineHttpTarget;
/**
* The queue name. The queue name must have the following format:
* `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` * `PROJECT_ID`
* can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons
* (:), or periods (.). For more information, see [Identifying
* projects](/resource-manager/docs/creating-managing-projects#identifying_projects)
* * `LOCATION_ID` is the canonical ID for the queue's location. The
* list of available locations can be obtained by calling ListLocations.
* For more information, see https://cloud.google.com/about/locations/. *
* `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens
* (-). The maximum length is 100 characters. Caller-specified and required
* in CreateQueue, after which it becomes output only.
*/
name: string;
/**
* Pull target. A pull queue is a queue that has a PullTarget.
*/
pullTarget: Schema$PullTarget;
/**
* Output only. The last time this queue was purged. All tasks that were
* created before this time were purged. A queue can be purged using
* PurgeQueue, the [App Engine Task Queue SDK, or the Cloud
* Console](/appengine/docs/standard/python/taskqueue/push/deleting-tasks-and-queues#purging_all_tasks_from_a_queue).
* Purge time will be truncated to the nearest microsecond. Purge time will be
* unset if the queue has never been purged.
*/
purgeTime: string;
/**
* Rate limits for task dispatches. rate_limits and retry_config are related
* because they both control task attempts however they control how tasks are
* attempted in different ways: * rate_limits controls the total rate of
* dispatches from a queue (i.e. all traffic dispatched from the queue,
* regardless of whether the dispatch is from a first attempt or a retry). *
* retry_config controls what happens to particular a task after its first
* attempt fails. That is, retry_config controls task retries (the second
* attempt, third attempt, etc).
*/
rateLimits: Schema$RateLimits;
/**
* Settings that determine the retry behavior. * For tasks created using
* Cloud Tasks: the queue-level retry settings apply to all tasks in the
* queue that were created using Cloud Tasks. Retry settings cannot be set
* on individual tasks. * For tasks created using the App Engine SDK: the
* queue-level retry settings apply to all tasks in the queue which do not
* have retry settings explicitly set on the task and were created by the
* App Engine SDK. See [App Engine
* documentation](/appengine/docs/standard/python/taskqueue/push/retrying-tasks).
*/
retryConfig: Schema$RetryConfig;
/**
* Output only. The state of the queue. `state` can only be changed by called
* PauseQueue, ResumeQueue, or uploading
* [queue.yaml/xml](/appengine/docs/python/config/queueref). UpdateQueue
* cannot be used to change `state`.
*/
state: string;
}
/**
* Rate limits. This message determines the maximum rate that tasks can be
* dispatched by a queue, regardless of whether the dispatch is a first task
* attempt or a retry.
*/
export interface Schema$RateLimits {
/**
* Output only. The max burst size. Max burst size limits how fast tasks in
* queue are processed when many tasks are in the queue and the rate is high.
* This field allows the queue to have a high rate so processing starts
* shortly after a task is enqueued, but still limits resource usage when many
* tasks are enqueued in a short period of time. The [token
* bucket](https://wikipedia.org/wiki/Token_Bucket) algorithm is used to
* control the rate of task dispatches. Each queue has a token bucket that
* holds tokens, up to the maximum specified by `max_burst_size`. Each time a
* task is dispatched, a token is removed from the bucket. Tasks will be
* dispatched until the queue's bucket runs out of tokens. The bucket will
* be continuously refilled with new tokens based on
* max_tasks_dispatched_per_second. Cloud Tasks will pick the value of
* `max_burst_size` based on the value of max_tasks_dispatched_per_second. For
* App Engine queues that were created or updated using `queue.yaml/xml`,
* `max_burst_size` is equal to
* [bucket_size](/appengine/docs/standard/python/config/queueref#bucket_size).
* Since `max_burst_size` is output only, if UpdateQueue is called on a queue
* created by `queue.yaml/xml`, `max_burst_size` will be reset based on the
* value of max_tasks_dispatched_per_second, regardless of whether
* max_tasks_dispatched_per_second is updated.
*/
maxBurstSize: number;
/**
* The maximum number of concurrent tasks that Cloud Tasks allows to be
* dispatched for this queue. After this threshold has been reached, Cloud
* Tasks stops dispatching tasks until the number of concurrent requests
* decreases. If unspecified when the queue is created, Cloud Tasks will pick
* the default. The maximum allowed value is 5,000. -1 indicates no limit.
* This field is output only for [pull
* queues](google.cloud.tasks.v2beta2.PullTarget). This field has the same
* meaning as [max_concurrent_requests in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#max_concurrent_requests).
*/
maxConcurrentTasks: number;
/**
* The maximum rate at which tasks are dispatched from this queue. If
* unspecified when the queue is created, Cloud Tasks will pick the default.
* * For App Engine queues, the maximum allowed value is 500. * This field is
* output only for [pull queues](google.cloud.tasks.v2beta2.PullTarget). In
* addition to the `max_tasks_dispatched_per_second` limit, a maximum of 10
* QPS of LeaseTasks requests are allowed per pull queue. This field has
* the same meaning as [rate in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#rate).
*/
maxTasksDispatchedPerSecond: number;
}
/**
* Request message for renewing a lease using RenewLease.
*/
export interface Schema$RenewLeaseRequest {
/**
* 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.
*/
leaseDuration: string;
/**
* The response_view specifies which subset of the Task will be returned. By
* default response_view is 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 FULL requires `cloudtasks.tasks.fullView`
* [Google IAM](/iam/) permission on the Task resource.
*/
responseView: string;
/**
* Required. The task's current schedule time, available in the
* schedule_time returned by LeaseTasks response or RenewLease response. This
* restriction is to ensure that your worker currently holds the lease.
*/
scheduleTime: string;
}
/**
* Request message for ResumeQueue.
*/
export interface Schema$ResumeQueueRequest {
}
/**
* Retry config. These settings determine how a failed task attempt is retried.
*/
export interface Schema$RetryConfig {
/**
* The maximum number of attempts for a task. Cloud Tasks will attempt the
* task `max_attempts` times (that is, if the first attempt fails, then there
* will be `max_attempts - 1` retries). Must be > 0.
*/
maxAttempts: number;
/**
* A task will be [scheduled](Task.schedule_time) for retry between
* min_backoff and max_backoff duration after it fails, if the queue's
* RetryConfig specifies that the task should be retried. If unspecified when
* the queue is created, Cloud Tasks will pick the default. This field is
* output only for [pull queues](google.cloud.tasks.v2beta2.PullTarget).
* `max_backoff` will be truncated to the nearest second. This field has the
* same meaning as [max_backoff_seconds in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
*/
maxBackoff: string;
/**
* The time between retries will double `max_doublings` times. A task's
* retry interval starts at min_backoff, then doubles `max_doublings` times,
* then increases linearly, and finally retries retries at intervals of
* max_backoff up to max_attempts times. For example, if min_backoff is 10s,
* max_backoff is 300s, and `max_doublings` is 3, then the a task will first
* be retried in 10s. The retry interval will double three times, and then
* increase linearly by 2^3 * 10s. Finally, the task will retry at intervals
* of max_backoff until the task has been attempted max_attempts times. Thus,
* the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, ....
* If unspecified when the queue is created, Cloud Tasks will pick the
* default. This field is output only for [pull
* queues](google.cloud.tasks.v2beta2.PullTarget). This field has the same
* meaning as [max_doublings in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
*/
maxDoublings: number;
/**
* If positive, `max_retry_duration` specifies the time limit for retrying a
* failed task, measured from when the task was first attempted. Once
* `max_retry_duration` time has passed *and* the task has been attempted
* max_attempts times, no further attempts will be made and the task will be
* deleted. If zero, then the task age is unlimited. If unspecified when the
* queue is created, Cloud Tasks will pick the default. This field is output
* only for [pull queues](google.cloud.tasks.v2beta2.PullTarget).
* `max_retry_duration` will be truncated to the nearest second. This field
* has the same meaning as [task_age_limit in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
*/
maxRetryDuration: string;
/**
* A task will be [scheduled](Task.schedule_time) for retry between
* min_backoff and max_backoff duration after it fails, if the queue's
* RetryConfig specifies that the task should be retried. If unspecified when
* the queue is created, Cloud Tasks will pick the default. This field is
* output only for [pull queues](google.cloud.tasks.v2beta2.PullTarget).
* `min_backoff` will be truncated to the nearest second. This field has the
* same meaning as [min_backoff_seconds in
* queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
*/
minBackoff: string;
/**
* If true, then the number of attempts is unlimited.
*/
unlimitedAttempts: boolean;
}
/**
* Request message for forcing a task to run now using RunTask.
*/
export interface Schema$RunTaskRequest {
/**
* The response_view specifies which subset of the Task will be returned. By
* default response_view is 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 FULL requires `cloudtasks.tasks.fullView`
* [Google IAM](/iam/) permission on the Task resource.
*/
responseView: string;
}
/**
* Request message for `SetIamPolicy` method.
*/
export interface Schema$SetIamPolicyRequest {
/**
* 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.
*/
policy: Schema$Policy;
}
/**
* The `Status` type defines a logical error model that is suitable for
* different programming environments, including REST APIs and RPC APIs. It is
* used by [gRPC](https://github.com/grpc). The error model is designed to be:
* - Simple to use and understand for most users - Flexible enough to meet
* unexpected needs # Overview The `Status` message contains three pieces of
* data: error code, error message, and error details. The error code should be
* an enum value of google.rpc.Code, but it may accept additional error codes if
* needed. The error message should be a developer-facing English message that
* helps developers *understand* and *resolve* the error. If a localized
* user-facing error message is needed, put the localized message in the error
* details or localize it in the client. The optional error details may contain
* arbitrary information about the error. There is a predefined set of error
* detail types in the package `google.rpc` that can be used for common error
* conditions. # Language mapping The `Status` message is the logical
* representation of the error model, but it is not necessarily the actual wire
* format. When the `Status` message is exposed in different client libraries
* and different wire protocols, it can be mapped differently. For example, it
* will likely be mapped to some exceptions in Java, but more likely mapped to
* some error codes in C. # Other uses The error model and the `Status`
* message can be used in a variety of environments, either with or without
* APIs, to provide a consistent developer experience across different
* environments. Example uses of this error model include: - Partial errors.
* If a service needs to return partial errors to the client, it may embed
* the `Status` in the normal response to indicate the partial errors. -
* Workflow errors. A typical workflow has multiple steps. Each step may have a
* `Status` message for error reporting. - Batch operations. If a client uses
* batch request and batch response, the `Status` message should be used
* directly inside batch response, one for each error sub-response. -
* Asynchronous operations. If an API call embeds asynchronous operation results
* in its response, the status of those operations should be represented
* directly using the `Status` message. - Logging. If some API errors are
* stored in logs, the message `Status` could be used directly after any
* stripping needed for security/privacy reasons.
*/
export interface Schema$Status {
/**
* The status code, which should be an enum value of google.rpc.Code.
*/
code: number;
/**
* A list of messages that carry the error details. There is a common set of
* message types for APIs to use.
*/
details: any[];
/**
* A developer-facing error message, which should be in English. Any
* user-facing error message should be localized and sent in the
* google.rpc.Status.details field, or localized by the client.
*/
message: string;
}
/**
* A unit of scheduled work.
*/
export interface Schema$Task {
/**
* App Engine HTTP request that is sent to the task's target. Can be set
* only if app_engine_http_target is set on the queue. An App Engine task is
* a task that has AppEngineHttpRequest set.
*/
appEngineHttpRequest: Schema$AppEngineHttpRequest;
/**
* Output only. The time that the task was created. `create_time` will be
* truncated to the nearest second.
*/
createTime: string;
/**
* The task name. The task name must have the following format:
* `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
* * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]), hyphens
* (-), colons (:), or periods (.). For more information, see [Identifying
* projects](/resource-manager/docs/creating-managing-projects#identifying_projects)
* * `LOCATION_ID` is the canonical ID for the task's location. The
* list of available locations can be obtained by calling ListLocations.
* For more information, see https://cloud.google.com/about/locations/. *
* `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens
* (-). The maximum length is 100 characters. * `TASK_ID` can contain only
* letters ([A-Za-z]), numbers ([0-9]), hyphens (-), or underscores (_). The
* maximum length is 500 characters. Optionally caller-specified in
* CreateTask.
*/
name: string;
/**
* LeaseTasks to process the task. Can be set only if pull_target is set on
* the queue. A pull task is a task that has PullMessage set.
*/
pullMessage: Schema$PullMessage;
/**
* The time when the task is scheduled to be attempted. For App Engine
* queues, this is when the task will be attempted or retried. For pull
* queues, this is the time when the task is available to be leased; if a task
* is currently leased, this is the time when the current lease expires, that
* is, the time that the task was leased plus the lease_duration.
* `schedule_time` will be truncated to the nearest microsecond.
*/
scheduleTime: string;
/**
* Output only. The task status.
*/
status: Schema$TaskStatus;
/**
* Output only. The view specifies which subset of the Task has been returned.
*/
view: string;
}
/**
* Status of the task.
*/
export interface Schema$TaskStatus {
/**
* Output only. The number of attempts dispatched. This count includes tasks
* which have been dispatched but haven't received a response.
*/
attemptDispatchCount: number;
/**
* Output only. The number of attempts which have received a response. This
* field is not calculated for [pull
* tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
*/
attemptResponseCount: number;
/**
* Output only. The status of the task's first attempt. Only
* dispatch_time will be set. The other AttemptStatus information is not
* retained by Cloud Tasks. This field is not calculated for [pull
* tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
*/
firstAttemptStatus: Schema$AttemptStatus;
/**
* Output only. The status of the task's last attempt. This field is not
* calculated for [pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
*/
lastAttemptStatus: Schema$AttemptStatus;
}
/**
* Request message for `TestIamPermissions` method.
*/
export interface Schema$TestIamPermissionsRequest {
/**
* 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).
*/
permissions: string[];
}
/**
* Response message for `TestIamPermissions` method.
*/
export interface Schema$TestIamPermissionsResponse {
/**
* A subset of `TestPermissionsRequest.permissions` that the caller is
* allowed.
*/
permissions: string[];
}
export declare class Resource$Projects {
root: Cloudtasks;
locations: Resource$Projects$Locations;
constructor(root: Cloudtasks);
getRoot(): Cloudtasks;
}
export declare class Resource$Projects$Locations {
root: Cloudtasks;
queues: Resource$Projects$Locations$Queues;
constructor(root: Cloudtasks);
getRoot(): Cloudtasks;
/**
* cloudtasks.projects.locations.get
* @desc Get information about a location.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Tasks API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/cloudtasks
* // 2. This sample uses Application Default Credentials for authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var cloudTasks = google.cloudtasks('v2beta2');
*
* authorize(function(authClient) {
* var request = {
* // Resource name for the location.
* name: 'projects/my-project/locations/my-location', // TODO: Update
* placeholder value.
*
* auth: authClient,
* };
*
* cloudTasks.projects.locations.get(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias cloudtasks.projects.locations.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name Resource name for the location.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$Location>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Location>, callback?: BodyResponseCallback<Schema$Location>): void;
/**
* cloudtasks.projects.locations.list
* @desc Lists information about the supported locations for this service.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Tasks API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/cloudtasks
* // 2. This sample uses Application Default Credentials for authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Ins