aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
131 lines (130 loc) • 3.41 kB
TypeScript
import { Construct } from 'constructs';
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;
}
/**
* 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;
}
/**
* A CloudFront Function
*
* @resource AWS::CloudFront::Function
*/
export declare class Function extends Resource implements IFunction {
/** 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;
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;
}