UNPKG

@altostra/core

Version:

Core library for shared types and logic

70 lines (69 loc) 2.44 kB
import type { Integer } from "../../../common/CustomTypes/Integer"; import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString"; import type { SecurityGroupId } from "../../../common/CustomTypes/SecurityGroupId"; import type { SubnetId } from "../../../common/CustomTypes/SubnetId"; import type { Dict } from "../../../common/Types"; import type { Arn } from "../../CustomTypes/Arn"; import type { S3BucketName } from "../../CustomTypes/S3BucketName"; import type { AwsResourceCommon, CloudFormationTags } from "../common"; import type { CloudFormationString, CloudFormationValue } from "../IntrinsicFunctions"; export declare type FunctionType = 'AWS::Lambda::Function'; export interface Function extends AwsResourceCommon { Type: FunctionType; Properties: FunctionProperties; } export interface FunctionProperties { Code: Code; Description?: string; DeadLetterConfig?: object; Environment?: Environment; FileSystemConfigs?: object; FunctionName?: string; Handler?: NonEmptyString; ImageConfig?: ImageConfig; KmsKeyArn?: CloudFormationValue<Arn>; Layers?: CloudFormationValue<Arn>[]; MemorySize?: Integer; PackageType?: PackageType; ReservedConcurrentExecutions?: Integer; Role: CloudFormationValue<Arn>; Runtime?: NonEmptyString; Tags?: CloudFormationTags; Timeout?: Integer; TracingConfig?: TracingConfig; VpcConfig?: VpcConfig; SnapStart?: SnapStart; } export declare type Code = ImageCode | S3Code | ZipFileCode; export interface ImageCode { ImageUri: CloudFormationValue<NonEmptyString>; } export interface S3Code { S3Bucket: S3BucketName; S3Key: NonEmptyString; S3ObjectVersion?: Integer; } export interface ZipFileCode { ZipFile: NonEmptyString; } export interface Environment { Variables: Dict<CloudFormationString>; } export interface ImageConfig { Command?: string[]; EntryPoint?: string[]; WorkingDirectory?: string; } export declare type PackageType = 'Image' | 'Zip'; export interface TracingConfig { Mode: TracingConfigMode; } export declare type TracingConfigMode = 'Active' | 'PassThrough'; export interface VpcConfig { SecurityGroupIds: CloudFormationValue<SecurityGroupId>[]; SubnetIds: CloudFormationValue<SubnetId>[]; } export interface SnapStart { ApplyOn: SnapStartApplication; } export declare type SnapStartApplication = 'None' | 'PublishedVersions';