206 lines
8.4 KiB
TypeScript
206 lines
8.4 KiB
TypeScript
import { ResetValue } from "../common/options";
|
|
import { Expression } from "../params";
|
|
import { ParamSpec, SupportedSecretParam } from "../params/types";
|
|
export { RESET_VALUE } from "../common/options";
|
|
/**
|
|
* List of all regions supported by Cloud Functions (2nd gen).
|
|
*/
|
|
export type SupportedRegion = "asia-east1" | "asia-northeast1" | "asia-northeast2" | "europe-north1" | "europe-west1" | "europe-west4" | "us-central1" | "us-east1" | "us-east4" | "us-west1" | "asia-east2" | "asia-northeast3" | "asia-southeast1" | "asia-southeast2" | "asia-south1" | "australia-southeast1" | "europe-central2" | "europe-west2" | "europe-west3" | "europe-west6" | "northamerica-northeast1" | "southamerica-east1" | "us-west2" | "us-west3" | "us-west4";
|
|
/**
|
|
* List of available memory options supported by Cloud Functions.
|
|
*/
|
|
export type MemoryOption = "128MiB" | "256MiB" | "512MiB" | "1GiB" | "2GiB" | "4GiB" | "8GiB" | "16GiB" | "32GiB";
|
|
/**
|
|
* List of available options for `VpcConnectorEgressSettings`.
|
|
*/
|
|
export type VpcEgressSetting = "PRIVATE_RANGES_ONLY" | "ALL_TRAFFIC";
|
|
/**
|
|
* List of available options for `IngressSettings`.
|
|
*/
|
|
export type IngressSetting = "ALLOW_ALL" | "ALLOW_INTERNAL_ONLY" | "ALLOW_INTERNAL_AND_GCLB";
|
|
/**
|
|
* Interface for a direct VPC network connection.
|
|
* At least one of network or subnetwork must be specified.
|
|
*/
|
|
export interface NetworkInterface {
|
|
/**
|
|
* Network to use for VPC direct connect.
|
|
* network or subnetwork must be specified to use VPC direct connect, though
|
|
* both can be specified as well. "default" is an acceptable value.
|
|
* Mutually exclusive with vpcConnector.
|
|
*/
|
|
network?: string | Expression<string> | ResetValue;
|
|
/**
|
|
* Subnetwork to use for VPC direct connect.
|
|
* network or subnetwork must be specified to use VPC direct connect, though
|
|
* both can be specified as well. "default" is an acceptable value.
|
|
* Mutually exclusive with vpcConnector.
|
|
*/
|
|
subnetwork?: string | Expression<string> | ResetValue;
|
|
/**
|
|
* Tags for VPC traffic.
|
|
* An optional field for VPC direct connect
|
|
* mutually exclusive with vpcConnector.
|
|
*/
|
|
tags?: string | string[] | Expression<string> | Expression<string[]> | ResetValue;
|
|
}
|
|
/**
|
|
* `GlobalOptions` are options that can be set across an entire project.
|
|
* These options are common to HTTPS and event handling functions.
|
|
*/
|
|
export interface GlobalOptions {
|
|
/**
|
|
* If true, do not deploy or emulate this function.
|
|
*/
|
|
omit?: boolean | Expression<boolean>;
|
|
/**
|
|
* Region where functions should be deployed.
|
|
*/
|
|
region?: SupportedRegion | string | Expression<string> | ResetValue;
|
|
/**
|
|
* Amount of memory to allocate to a function.
|
|
*/
|
|
memory?: MemoryOption | Expression<number> | ResetValue;
|
|
/**
|
|
* Timeout for the function in seconds, possible values are 0 to 540.
|
|
* HTTPS functions can specify a higher timeout.
|
|
*
|
|
* @remarks
|
|
* The minimum timeout for a 2nd gen function is 1s. The maximum timeout for a
|
|
* function depends on the type of function: Event handling functions have a
|
|
* maximum timeout of 540s (9 minutes). HTTPS and callable functions have a
|
|
* maximum timeout of 3,600s (1 hour). Task queue functions have a maximum
|
|
* timeout of 1,800s (30 minutes).
|
|
*/
|
|
timeoutSeconds?: number | Expression<number> | ResetValue;
|
|
/**
|
|
* Minimum number of actual instances to be running at a given time.
|
|
*
|
|
* @remarks
|
|
* Instances are billed for memory allocation and 10% of CPU allocation
|
|
* while idle.
|
|
*/
|
|
minInstances?: number | Expression<number> | ResetValue;
|
|
/**
|
|
* Max number of instances that can be running in parallel.
|
|
*/
|
|
maxInstances?: number | Expression<number> | ResetValue;
|
|
/**
|
|
* Number of requests a function can serve at once.
|
|
*
|
|
* @remarks
|
|
* Can be applied only to functions running on Cloud Functions (2nd gen)).
|
|
* A value of null restores the default concurrency (80 when CPU >= 1, 1 otherwise).
|
|
* Concurrency cannot be set to any value other than 1 if `cpu` is less than 1.
|
|
* The maximum value for concurrency is 1,000.
|
|
*/
|
|
concurrency?: number | Expression<number> | ResetValue;
|
|
/**
|
|
* Fractional number of CPUs to allocate to a function.
|
|
*
|
|
* @remarks
|
|
* Defaults to 1 for functions with <= 2GB RAM and increases for larger memory sizes.
|
|
* This is different from the defaults when using the gcloud utility and is different from
|
|
* the fixed amount assigned in Cloud Functions (1st gen).
|
|
* To revert to the CPU amounts used in gcloud or in Cloud Functions (1st gen), set this
|
|
* to the value "gcf_gen1"
|
|
*/
|
|
cpu?: number | "gcf_gen1";
|
|
/**
|
|
* Connect a function to a specified VPC connector.
|
|
* Mutually exclusive with networkInterface
|
|
*/
|
|
vpcConnector?: string | Expression<string> | ResetValue;
|
|
/**
|
|
* Egress settings for VPC connector.
|
|
*/
|
|
vpcConnectorEgressSettings?: VpcEgressSetting | ResetValue;
|
|
/**
|
|
* An alias for vpcConnectorEgressSettings.
|
|
*/
|
|
vpcEgress?: VpcEgressSetting | ResetValue;
|
|
/**
|
|
* Network Interface to use with VPC Direct Connect
|
|
*/
|
|
networkInterface?: NetworkInterface | ResetValue;
|
|
/**
|
|
* Specific service account for the function to run as.
|
|
*/
|
|
serviceAccount?: string | Expression<string> | ResetValue;
|
|
/**
|
|
* Ingress settings which control where this function can be called from.
|
|
*/
|
|
ingressSettings?: IngressSetting | ResetValue;
|
|
/**
|
|
* Invoker to set access control on HTTPS functions.
|
|
*/
|
|
invoker?: "public" | "private" | string | string[];
|
|
/**
|
|
* User labels to set on the function.
|
|
*/
|
|
labels?: Record<string, string>;
|
|
secrets?: SupportedSecretParam[];
|
|
/**
|
|
* Determines whether Firebase App Check is enforced. Defaults to false.
|
|
*
|
|
* @remarks
|
|
* When true, requests with invalid tokens autorespond with a 401
|
|
* (Unauthorized) error.
|
|
* When false, requests with invalid tokens set `event.app` to `undefined`.
|
|
*/
|
|
enforceAppCheck?: boolean;
|
|
/**
|
|
* Controls whether function configuration modified outside of function source is preserved. Defaults to false.
|
|
*
|
|
* @remarks
|
|
* When setting configuration available in an underlying platform that is not yet available in the Firebase SDK
|
|
* for Cloud Functions, we recommend setting `preserveExternalChanges` to `true`. Otherwise, when Google releases
|
|
* a new version of the SDK with support for the missing configuration, your function's manually configured setting
|
|
* may inadvertently be wiped out.
|
|
*/
|
|
preserveExternalChanges?: boolean;
|
|
}
|
|
/**
|
|
* Sets default options for all functions written using the 2nd gen SDK.
|
|
* @param options Options to set as default
|
|
*/
|
|
export declare function setGlobalOptions(options: GlobalOptions): void;
|
|
/**
|
|
* Additional fields that can be set on any event-handling function.
|
|
*/
|
|
export interface EventHandlerOptions extends Omit<GlobalOptions, "enforceAppCheck"> {
|
|
/** Type of the event. */
|
|
eventType?: string;
|
|
/**
|
|
* Filters events based on exact matches on the CloudEvents attributes.
|
|
*
|
|
* Each key-value pair represents an attribute name and its required value for exact matching.
|
|
* Events must match all specified filters to trigger the function.
|
|
*/
|
|
eventFilters?: Record<string, string | Expression<string>>;
|
|
/**
|
|
* Filters events based on path pattern matching on the CloudEvents attributes.
|
|
*
|
|
* Similar to eventFilters, but supports wildcard patterns for flexible matching where `*` matches
|
|
* any single path segment, `**` matches zero or more path segments, and `{param}` captures a path segment
|
|
* as a parameter
|
|
*/
|
|
eventFilterPathPatterns?: Record<string, string | Expression<string>>;
|
|
/** Whether failed executions should be delivered again. */
|
|
retry?: boolean | Expression<boolean> | ResetValue;
|
|
/** Region of the EventArc trigger. */
|
|
region?: string | Expression<string> | ResetValue;
|
|
/** The service account that EventArc should use to invoke this function. Requires the P4SA to have ActAs permission on this service account. */
|
|
serviceAccount?: string | Expression<string> | ResetValue;
|
|
/** The name of the channel where the function receives events. */
|
|
channel?: string;
|
|
}
|
|
/**
|
|
* @hidden
|
|
* @alpha
|
|
*/
|
|
export declare function __getSpec(): {
|
|
globalOptions: GlobalOptions;
|
|
params: ParamSpec<any>[];
|
|
};
|