123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*! firebase-admin v12.1.1 */
- /*!
- * @license
- * Copyright 2021 Google Inc.
- *
- * 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.
- */
- /**
- * Interface representing task options with delayed delivery.
- */
- export interface DelayDelivery {
- /**
- * The duration of delay of the time when the task is scheduled to be attempted or retried.
- * This delay is added to the current time.
- */
- scheduleDelaySeconds?: number;
- /** @alpha */
- scheduleTime?: never;
- }
- /**
- * Interface representing task options with absolute delivery.
- */
- export interface AbsoluteDelivery {
- /**
- * The time when the task is scheduled to be attempted or retried.
- */
- scheduleTime?: Date;
- /** @alpha */
- scheduleDelaySeconds?: never;
- }
- /**
- * Type representing delivery schedule options.
- * `DeliverySchedule` is a union type of {@link DelayDelivery} and {@link AbsoluteDelivery} types.
- */
- export type DeliverySchedule = DelayDelivery | AbsoluteDelivery;
- /**
- * Type representing task options.
- */
- export type TaskOptions = DeliverySchedule & TaskOptionsExperimental & {
- /**
- * The deadline for requests sent to the worker. If the worker does not respond by this deadline
- * then the request is cancelled and the attempt is marked as a DEADLINE_EXCEEDED failure.
- * Cloud Tasks will retry the task according to the `RetryConfig`.
- * The default is 10 minutes. The deadline must be in the range of 15 seconds and 30 minutes.
- */
- dispatchDeadlineSeconds?: number;
- /**
- * The ID to use for the enqueued event.
- * If not provided, one will be automatically generated.
- * If provided, an explicitly specified 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 throw an error with code "functions/task-already-exists". Another task with
- * the same ID can't be created for ~1hour after the original task was deleted or executed.
- *
- * Because there is an extra lookup cost to identify duplicate task IDs, setting ID
- * significantly increases 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.
- *
- * "Push IDs" from the Firebase Realtime Database make poor IDs because they are based on
- * timestamps and will cause contention (slowdowns) in your task queue. Reversed push IDs
- * however form a perfect distribution and are an ideal key. To reverse a string in
- * javascript use `someString.split("").reverse().join("")`
- */
- id?: string;
- /**
- * HTTP request headers to include in the request to the task queue function.
- * These headers represent a subset of the headers that will accompany the task's HTTP
- * request. Some HTTP request headers will be ignored or replaced, e.g. Authorization, Host, Content-Length,
- * User-Agent etc. cannot be overridden.
- *
- * By default, Content-Type is set to 'application/json'.
- *
- * The size of the headers must be less than 80KB.
- */
- headers?: Record<string, string>;
- };
- /**
- * Type representing experimental (beta) task options.
- */
- export interface TaskOptionsExperimental {
- /**
- * The full URL path that the request will be sent to. Must be a valid URL.
- * @beta
- */
- uri?: string;
- }
|