UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

185 lines (184 loc) 5.01 kB
import { Construct } from 'constructs'; import { IKeyValueStore } from './key-value-store'; import { IResource, Resource } from '../../core'; /** * Represents the function's source code */ export declare abstract class FunctionCode { /** * Inline code for function * @returns code object with inline code. * @param code The actual function code */ static fromInline(code: string): FunctionCode; /** * Code from external file for function * @returns code object with contents from file. * @param options the options for the external file */ static fromFile(options: FileCodeOptions): FunctionCode; /** * renders the function code */ abstract render(): string; } /** * Options when reading the function's code from an external file */ export interface FileCodeOptions { /** * The path of the file to read the code from */ readonly filePath: string; } /** * Represents a CloudFront Function */ export interface IFunction extends IResource { /** * The name of the function. * @attribute */ readonly functionName: string; /** * The ARN of the function. * @attribute */ readonly functionArn: string; } /** * Attributes of an existing CloudFront Function to import it */ export interface FunctionAttributes { /** * The name of the function. */ readonly functionName: string; /** * The ARN of the function. */ readonly functionArn: string; /** * The Runtime of the function. * @default FunctionRuntime.JS_1_0 */ readonly functionRuntime?: string; } /** * Properties for creating a CloudFront Function */ export interface FunctionProps { /** * A name to identify the function. * @default - generated from the `id` */ readonly functionName?: string; /** * A comment to describe the function. * @default - same as `functionName` */ readonly comment?: string; /** * The source code of the function. */ readonly code: FunctionCode; /** * The runtime environment for the function. * @default FunctionRuntime.JS_1_0 (unless `keyValueStore` is specified, then `FunctionRuntime.JS_2_0`) */ readonly runtime?: FunctionRuntime; /** * The Key Value Store to associate with this function. * * In order to associate a Key Value Store, the `runtime` must be * `cloudfront-js-2.0` or newer. * * @default - no key value store is associated */ readonly keyValueStore?: IKeyValueStore; /** * A flag that determines whether to automatically publish the function to the LIVE stage when it’s created. * * @default - true */ readonly autoPublish?: boolean; } /** * A CloudFront Function * * @resource AWS::CloudFront::Function */ export declare class Function extends Resource implements IFunction { /** Uniquely identifies this class. */ static readonly PROPERTY_INJECTION_ID: string; /** Imports a function by its name and ARN */ static fromFunctionAttributes(scope: Construct, id: string, attrs: FunctionAttributes): IFunction; /** * the name of the CloudFront function * @attribute */ readonly functionName: string; /** * the ARN of the CloudFront function * @attribute */ readonly functionArn: string; /** * the deployment stage of the CloudFront function * @attribute */ readonly functionStage: string; /** * the runtime of the CloudFront function * @attribute */ readonly functionRuntime: string; constructor(scope: Construct, id: string, props: FunctionProps); private generateName; } /** * The type of events that a CloudFront function can be invoked in response to. */ export declare enum FunctionEventType { /** * The viewer-request specifies the incoming request */ VIEWER_REQUEST = "viewer-request", /** * The viewer-response specifies the outgoing response */ VIEWER_RESPONSE = "viewer-response" } /** * Represents a CloudFront function and event type when using CF Functions. * The type of the `AddBehaviorOptions.functionAssociations` property. */ export interface FunctionAssociation { /** * The CloudFront function that will be invoked. */ readonly function: IFunction; /** The type of event which should invoke the function. */ readonly eventType: FunctionEventType; } /** * The function's runtime environment version. */ export declare class FunctionRuntime { readonly value: string; /** * cloudfront-js-1.0 */ static readonly JS_1_0: FunctionRuntime; /** * cloudfront-js-2.0 */ static readonly JS_2_0: FunctionRuntime; /** * A custom runtime string. * * Gives full control over the runtime string fragment. */ static custom(runtimeString: string): FunctionRuntime; private constructor(); }