/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Resource Type definition for AWS::Lambda::Function */ export interface AwsLambdaFunction { /** * A description of the function. */ Description?: string; TracingConfig?: TracingConfig; VpcConfig?: VpcConfig; RuntimeManagementConfig?: RuntimeManagementConfig; /** * The number of simultaneous executions to reserve for the function. */ ReservedConcurrentExecutions?: number; SnapStart?: SnapStart; /** * Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an AWS::EFS::MountTarget resource, you must also specify a DependsOn attribute to ensure that the mount target is created or updated before the function. * * @maxItems 1 */ FileSystemConfigs?: [] | [FileSystemConfig]; /** * The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. */ FunctionName?: string; /** * The identifier of the function's runtime. */ Runtime?: string; /** * The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key. */ KmsKeyArn?: string; /** * PackageType. */ PackageType?: "Image" | "Zip"; /** * A unique Arn for CodeSigningConfig resource */ CodeSigningConfigArn?: string; /** * A list of function layers to add to the function's execution environment. Specify each layer by its ARN, including the version. */ Layers?: string[]; /** * A list of tags to apply to the function. */ Tags?: Tag[]; ImageConfig?: ImageConfig; /** * The amount of memory that your function has access to. Increasing the function's memory also increases its CPU allocation. The default value is 128 MB. The value must be a multiple of 64 MB. */ MemorySize?: number; DeadLetterConfig?: DeadLetterConfig; /** * The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. */ Timeout?: number; /** * The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime */ Handler?: string; SnapStartResponse?: SnapStartResponse; Code: Code; /** * The Amazon Resource Name (ARN) of the function's execution role. */ Role: string; Environment?: Environment; /** * Unique identifier for function resources */ Arn?: string; EphemeralStorage?: EphemeralStorage; /** * @minItems 1 * @maxItems 1 */ Architectures?: ["x86_64" | "arm64"]; } /** * Set Mode to Active to sample and trace a subset of incoming requests with AWS X-Ray. */ export interface TracingConfig { /** * The tracing mode. */ Mode?: "Active" | "PassThrough"; } /** * For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. */ export interface VpcConfig { /** * A list of VPC security groups IDs. * * @maxItems 5 */ SecurityGroupIds?: | [] | [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string]; /** * A list of VPC subnet IDs. * * @maxItems 16 */ SubnetIds?: | [] | [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [ string, string, string, string, string, string, string, string, string, string, string, string, string, string, string ] | [ string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string ]; } /** * RuntimeManagementConfig */ export interface RuntimeManagementConfig { /** * Trigger for runtime update */ UpdateRuntimeOn: "Auto" | "FunctionUpdate" | "Manual"; /** * Unique identifier for a runtime version arn */ RuntimeVersionArn?: string; } /** * The SnapStart setting of your function */ export interface SnapStart { /** * Applying SnapStart setting on function resource type. */ ApplyOn: "PublishedVersions" | "None"; } export interface FileSystemConfig { /** * The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system. */ Arn: string; /** * The path where the function can access the file system, starting with /mnt/. */ LocalMountPath: string; } export interface Tag { /** * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. */ Value?: string; /** * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. */ Key: string; } /** * ImageConfig */ export interface ImageConfig { /** * WorkingDirectory. */ WorkingDirectory?: string; /** * Command. * * @maxItems 1500 */ Command?: string[]; /** * EntryPoint. * * @maxItems 1500 */ EntryPoint?: string[]; } /** * A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. */ export interface DeadLetterConfig { /** * The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic. */ TargetArn?: string; } /** * The SnapStart response of your function */ export interface SnapStartResponse { /** * Indicates whether SnapStart is activated for the specified function version. */ OptimizationStatus?: "On" | "Off"; /** * Applying SnapStart setting on function resource type. */ ApplyOn?: "PublishedVersions" | "None"; } /** * The code for the function. */ export interface Code { /** * For versioned objects, the version of the deployment package object to use. */ S3ObjectVersion?: string; /** * An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. */ S3Bucket?: string; /** * The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named index and zips it to create a deployment package.. */ ZipFile?: string; /** * The Amazon S3 key of the deployment package. */ S3Key?: string; /** * ImageUri. */ ImageUri?: string; } /** * Environment variables that are accessible from function code during execution. */ export interface Environment { /** * Environment variable key-value pairs. */ Variables?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z][a-zA-Z0-9_]+". */ [k: string]: string; }; } /** * A function's ephemeral storage settings. */ export interface EphemeralStorage { /** * The amount of ephemeral storage that your function has access to. */ Size: number; }