@altostra/core
Version:
Core library for shared types and logic
70 lines (69 loc) • 2.44 kB
TypeScript
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';