import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class VpcConfig { SecurityGroupIds ? : List < Value < string > > ; SubnetIds ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DeadLetterConfig { TargetArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FileSystemConfig { Arn ! : Value < string > ; LocalMountPath ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Code { S3Bucket ? : Value < string > ; S3Key ? : Value < string > ; S3ObjectVersion ? : Value < string > ; ZipFile ? : Value < string > ; ImageUri ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TracingConfig { Mode ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Environment { Variables ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ImageConfig { EntryPoint ? : List < Value < string > > ; Command ? : List < Value < string > > ; WorkingDirectory ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface FunctionProperties { Code : Code ; DeadLetterConfig ? : DeadLetterConfig ; Description ? : Value < string > ; Environment ? : Environment ; FileSystemConfigs ? : List < FileSystemConfig > ; FunctionName ? : Value < string > ; Handler ? : Value < string > ; KmsKeyArn ? : Value < string > ; Layers ? : List < Value < string > > ; MemorySize ? : Value < number > ; ReservedConcurrentExecutions ? : Value < number > ; Role : Value < string > ; Runtime ? : Value < string > ; Tags ? : List < ResourceTag > ; Timeout ? : Value < number > ; TracingConfig ? : TracingConfig ; VpcConfig ? : VpcConfig ; CodeSigningConfigArn ? : Value < string > ; ImageConfig ? : ImageConfig ; PackageType ? : Value < string > ; } export default class Function extends ResourceBase < FunctionProperties > { static VpcConfig = VpcConfig ; static DeadLetterConfig = DeadLetterConfig ; static FileSystemConfig = FileSystemConfig ; static Code = Code ; static TracingConfig = TracingConfig ; static Environment = Environment ; static ImageConfig = ImageConfig ; constructor ( properties ) { super ( 'AWS::Lambda::Function' , properties ) ; } }