@serverless/typescript
Version:
Serverless typescript definitions
1,657 lines (1,654 loc) • 47.1 kB
TypeScript
/* tslint: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.
*/
export type AwsArn = AwsArnString | AwsCfFunction;
export type AwsArnString = string;
export type AwsCfFunction =
| AwsCfImport
| AwsCfJoin
| AwsCfGetAtt
| AwsCfRef
| AwsCfSub
| AwsCfBase64
| AwsCfToJsonString;
export type ErrorCode = string;
export type AwsCfInstruction = string | AwsCfFunction;
export type FunctionName = string;
export type AwsSecretsManagerArnString = string;
export type FilterPatterns = {
[]: unknown;
}[];
export type AwsAlbListenerArn = string;
export type AwsAlexaEventToken = string;
export type AwsLogGroupName = string;
export type AwsKmsArn = AwsCfFunction | string;
export type AwsLambdaArchitecture = "arm64" | "x86_64";
export type AwsResourceCondition = string;
export type AwsResourceDependsOn = string[];
export type EcrImageUri = string;
export type AwsLambdaLayers = AwsArn[];
export type AwsLogRetentionInDays =
| 1
| 3
| 5
| 7
| 14
| 30
| 60
| 90
| 120
| 150
| 180
| 365
| 400
| 545
| 731
| 1827
| 2192
| 2557
| 2922
| 3288
| 3653;
export type AwsLambdaMemorySize = number;
export type AwsLambdaRole = string | AwsCfSub | AwsCfImport | AwsCfGetAtt;
export type AwsLambdaRuntime =
| "dotnet6"
| "dotnet8"
| "go1.x"
| "java25"
| "java21"
| "java17"
| "java11"
| "java8"
| "java8.al2"
| "nodejs14.x"
| "nodejs16.x"
| "nodejs18.x"
| "nodejs20.x"
| "nodejs22.x"
| "nodejs24.x"
| "provided"
| "provided.al2"
| "provided.al2023"
| "python3.7"
| "python3.8"
| "python3.9"
| "python3.10"
| "python3.11"
| "python3.12"
| "python3.13"
| "python3.14"
| "ruby2.7"
| "ruby3.2"
| "ruby3.3";
export type AwsLambdaRuntimeManagement =
| ("auto" | "onFunctionUpdate")
| {
mode?: "auto" | "onFunctionUpdate" | "manual";
arn?: AwsArn;
};
export type AwsLambdaTimeout = number;
export type AwsLambdaTracing = ("Active" | "PassThrough") | boolean;
export type AwsLambdaVersioning = boolean;
export type AwsHttpApiPayload = "1.0" | "2.0";
export type AwsIamPolicyStatements = ({
[]: unknown;
} & (
| {
[]: unknown;
}
| {
[]: unknown;
}
) &
(
| {
[]: unknown;
}
| {
[]: unknown;
}
))[];
export type AwsApiGatewayApiKeys = (
| string
| AwsApiGatewayApiKeysProperties
| {
[]: (string | AwsApiGatewayApiKeysProperties)[];
}
)[];
export type AwsResourcePolicyStatements = ({
[]: unknown;
} & (
| {
[]: unknown;
}
| {
[]: unknown;
}
) &
(
| {
[]: unknown;
}
| {
[]: unknown;
}
))[];
export type AwsS3BucketName = string;
export type Stage = string;
export type AwsCfArrayInstruction = AwsCfInstruction[] | AwsCfSplit;
export type ServiceName = string;
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^Fn::ForEach::[a-zA-Z0-9]+$".
*/
export type AwsCfForEach = unknown[];
export interface AWS {
org?: string;
app?: string;
outputs?: {
[]:
| string
| number
| boolean
| unknown[]
| {
[]: unknown;
};
};
configValidationMode?: "error" | "warn" | "off";
console?:
| boolean
| {
[]: unknown;
};
custom?: {
"serverless-iam-roles-per-function"?: {
defaultInherit?: boolean;
iamGlobalPermissionsBoundary?: AwsArn;
};
[]: unknown;
};
dashboard?: {
disableMonitoring?: boolean;
};
deprecationNotificationMode?: "error" | "warn" | "warn:summary";
disabledDeprecations?: "*" | ErrorCode[];
build?:
| string
| {
esbuild?:
| {
external?: string[];
exclude?: string[];
packages?: "external";
buildConcurrency?: number;
bundle?: boolean;
minify?: boolean;
sourcemap?:
| boolean
| {
type?: "inline" | "linked" | "external";
setNodeOptions?: boolean;
[]: unknown;
};
[]: unknown;
}
| boolean;
[]: unknown;
};
frameworkVersion?: string;
functions?: {
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^[a-zA-Z0-9-_]+$".
*/
[]: {
name?: string;
events?: (
| {
__schemaWorkaround__: null;
}
| {
schedule:
| string
| {
rate: (AwsCfFunction | string)[];
enabled?: boolean;
name?: string;
description?: string;
input?:
| string
| (
| {
body: string;
}
| {
[]: unknown;
}
);
inputPath?: string;
inputTransformer?: {
inputTemplate: string;
inputPathsMap?: {
[]: unknown;
};
};
method?: "eventBus" | "scheduler";
timezone?: string;
};
}
| {
s3:
| string
| {
bucket: string | AwsCfFunction | AwsCfIf;
event?: string;
existing?: boolean;
forceDeploy?: boolean;
rules?: {
prefix?: string | AwsCfFunction;
suffix?: string | AwsCfFunction;
}[];
};
}
| {
http:
| string
| {
async?: boolean;
authorizer?:
| string
| {
arn?: AwsArn;
authorizerId?: AwsCfInstruction;
claims?: string[];
identitySource?: string;
identityValidationExpression?: string;
managedExternally?: boolean;
name?: string;
resultTtlInSeconds?: number;
scopes?: (string | AwsCfInstruction)[];
type?: string | string | string | string | string;
};
connectionId?: AwsCfInstruction;
connectionType?: string | string;
cors?:
| boolean
| {
allowCredentials?: boolean;
cacheControl?: string;
headers?: string[];
maxAge?: number;
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "OPTIONS" | "HEAD" | "DELETE" | "ANY")[];
origin?: string;
origins?: string[];
};
integration?: string | string | string | string | string | string | string | string | string | string;
method: string;
operationId?: string;
path: string;
private?: boolean;
request?: {
contentHandling?: "CONVERT_TO_BINARY" | "CONVERT_TO_TEXT";
method?: string;
parameters?: {
querystrings?: {
[]:
| boolean
| {
required?: boolean;
mappedValue?: AwsCfInstruction;
};
};
headers?: {
[]:
| boolean
| {
required?: boolean;
mappedValue?: AwsCfInstruction;
};
};
paths?: {
[]:
| boolean
| {
required?: boolean;
mappedValue?: AwsCfInstruction;
};
};
};
passThrough?: "NEVER" | "WHEN_NO_MATCH" | "WHEN_NO_TEMPLATES";
schemas?: {
[]:
| {
[]: unknown;
}
| string;
};
template?: {
[]: string;
};
uri?: AwsCfInstruction;
};
response?: {
contentHandling?: "CONVERT_TO_BINARY" | "CONVERT_TO_TEXT";
headers?: {
[]: string;
};
template?: string;
transferMode?: string | string;
statusCodes?: {
[]: {
headers?: {
[]: string;
};
pattern?: string;
template?:
| string
| {
[]: string;
};
};
};
};
timeoutInMillis?: number;
};
}
| {
websocket:
| string
| {
route: string;
routeResponseSelectionExpression?: "$default";
authorizer?:
| AwsArnString
| FunctionName
| (
| {
[]: unknown;
}
| {
[]: unknown;
}
);
};
}
| {
sns:
| string
| AwsArnString
| (
| {
[]: unknown;
}
| {
[]: unknown;
}
);
}
| {
stream:
| AwsArnString
| (
| {
arn: AwsCfFunction;
[]: unknown;
}
| {
arn: AwsArnString;
[]: unknown;
}
);
}
| {
kafka: {
accessConfigurations: {
vpcSubnet?: string[];
vpcSecurityGroup?: string[];
saslPlainAuth?: AwsSecretsManagerArnString[];
saslScram256Auth?: AwsSecretsManagerArnString[];
saslScram512Auth?: AwsSecretsManagerArnString[];
clientCertificateTlsAuth?: AwsSecretsManagerArnString[];
serverRootCaCertificate?: AwsSecretsManagerArnString[];
};
batchSize?: number;
maximumBatchingWindow?: number;
enabled?: boolean;
bootstrapServers: string[];
startingPosition?: "LATEST" | "TRIM_HORIZON" | "AT_TIMESTAMP";
startingPositionTimestamp?: number;
topic: string;
consumerGroupId?: string;
filterPatterns?: FilterPatterns;
};
}
| {
activemq: {
arn: string | AwsCfImport | AwsCfRef;
basicAuthArn: AwsSecretsManagerArnString | AwsCfImport | AwsCfRef;
batchSize?: number;
maximumBatchingWindow?: number;
enabled?: boolean;
queue: string;
filterPatterns?: FilterPatterns;
};
}
| {
rabbitmq: {
arn: string | AwsCfImport | AwsCfRef;
basicAuthArn: AwsSecretsManagerArnString | AwsCfImport | AwsCfRef;
batchSize?: number;
maximumBatchingWindow?: number;
enabled?: boolean;
queue: string;
virtualHost?: string;
filterPatterns?: FilterPatterns;
};
}
| {
msk: {
arn: AwsArnString | AwsCfImport | AwsCfRef;
batchSize?: number;
maximumBatchingWindow?: number;
enabled?: boolean;
startingPosition?: "LATEST" | "TRIM_HORIZON" | "AT_TIMESTAMP";
startingPositionTimestamp?: number;
topic: string;
saslScram512?: AwsArnString;
consumerGroupId?: string;
filterPatterns?: FilterPatterns;
};
}
| {
alb: {
authorizer?: string[];
conditions: {
header?:
| {
name: string;
values: string[];
}[]
| {
name: string;
values: string[];
};
host?: string[];
ip?: string[];
method?: string[];
path?: string[];
query?: {
[]: string;
};
};
healthCheck?:
| boolean
| {
healthyThresholdCount?: number;
intervalSeconds?: number;
matcher?: {
httpCode?: string;
};
path?: string;
timeoutSeconds?: number;
unhealthyThresholdCount?: number;
};
listenerArn: AwsAlbListenerArn | AwsCfRef;
multiValueHeaders?: boolean;
priority: number;
targetGroupName?: string;
};
}
| {
alexaSkill:
| AwsAlexaEventToken
| {
appId: AwsAlexaEventToken;
enabled?: boolean;
};
}
| {
alexaSmartHome:
| AwsAlexaEventToken
| {
appId: AwsAlexaEventToken;
enabled?: boolean;
};
}
| {
iot: {
sql: string;
sqlVersion?: "2015-10-08" | "2016-03-23" | "beta";
name?: string;
enabled?: boolean;
description?: string;
};
}
| {
iotFleetProvisioning: {
enabled?: boolean;
provisioningRoleArn: AwsArn;
templateBody: {
[]: unknown;
};
templateName?: string;
};
}
| {
cloudwatchEvent: {
event?: {
[]: unknown;
};
input?:
| string
| {
[]: unknown;
};
inputPath?: string;
inputTransformer?: {
inputPathsMap?: {
[]: string;
};
inputTemplate: string;
};
description?: string;
name?: string;
enabled?: boolean;
};
}
| {
cloudwatchLog:
| AwsLogGroupName
| {
logGroup: AwsLogGroupName;
filter?: string;
};
}
| {
cognitoUserPool: {
pool: string;
trigger:
| "PreSignUp"
| "PostConfirmation"
| "PreAuthentication"
| "PostAuthentication"
| "PreTokenGeneration"
| "CustomMessage"
| "DefineAuthChallenge"
| "CreateAuthChallenge"
| "VerifyAuthChallengeResponse"
| "UserMigration"
| "CustomSMSSender"
| "CustomEmailSender";
existing?: boolean;
forceDeploy?: boolean;
kmsKeyId?: AwsKmsArn;
};
}
| {
eventBridge:
| {
[]: unknown;
}
| {
[]: unknown;
};
}
| {
sqs:
| AwsArnString
| {
arn: AwsArn;
batchSize?: number;
enabled?: boolean;
maximumBatchingWindow?: number;
functionResponseType?: "ReportBatchItemFailures";
filterPatterns?: FilterPatterns;
maximumConcurrency?: number;
};
}
| {
cloudFront: {
behavior?: {
AllowedMethods?:
| ("GET" | "HEAD")[]
| ("GET" | "HEAD" | "OPTIONS")[]
| ("GET" | "HEAD" | "OPTIONS" | "PUT" | "PATCH" | "POST" | "DELETE")[];
CachedMethods?: ("GET" | "HEAD")[] | ("GET" | "HEAD" | "OPTIONS")[];
CachePolicyId?: string;
Compress?: boolean;
FieldLevelEncryptionId?: string;
OriginRequestPolicyId?: string | AwsCfFunction;
ResponseHeadersPolicyId?: string | AwsCfFunction;
SmoothStreaming?: boolean;
TrustedSigners?: string[];
ViewerProtocolPolicy?: "allow-all" | "redirect-to-https" | "https-only";
TrustedKeyGroups?: (string | AwsCfRef)[];
MaxTTL?: number;
MinTTL?: number;
DefaultTTL?: number;
ForwardedValues?: {
Cookies?:
| {
Forward: "all" | "none";
}
| {
Forward: "whitelist";
WhitelistedNames: string[];
};
Headers?: string[];
QueryString: boolean;
QueryStringCacheKeys?: string[];
};
};
cachePolicy?:
| {
[]: unknown;
}
| {
[]: unknown;
};
eventType?: "viewer-request" | "origin-request" | "origin-response" | "viewer-response";
isDefaultOrigin?: boolean;
includeBody?: boolean;
origin?:
| string
| (
| {
[]: unknown;
}
| {
[]: unknown;
}
);
pathPattern?: string;
};
}
| {
httpApi:
| string
| {
authorizer?:
| string
| (
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
);
method?: string;
path: string;
};
}
)[];
architecture?: AwsLambdaArchitecture;
awsKmsKeyArn?: AwsKmsArn;
condition?: AwsResourceCondition;
dependsOn?: AwsResourceDependsOn;
description?: string;
destinations?: {
onSuccess?:
| string
| {
arn: AwsCfFunction;
type: "function" | "sns" | "sqs" | "eventBus";
};
onFailure?:
| string
| {
arn: AwsCfFunction;
type: "function" | "sns" | "sqs" | "eventBus";
};
};
disableLogs?: boolean;
environment?: AwsLambdaEnvironment;
ephemeralStorageSize?: number;
fileSystemConfig?: {
arn: string | AwsCfGetAtt | AwsCfJoin | AwsCfImport;
localMountPath: string;
};
handler?: string;
image?:
| EcrImageUri
| {
name?: string;
uri?: EcrImageUri;
workingDirectory?: string;
command?: string[];
entryPoint?: string[];
};
kmsKeyArn?: AwsKmsArn;
snapStart?: boolean;
layers?: AwsLambdaLayers;
logRetentionInDays?: AwsLogRetentionInDays;
logDataProtectionPolicy?: AwsLogDataProtectionPolicy;
logs?: AwsLambdaLoggingConfiguration;
maximumEventAge?: number;
maximumRetryAttempts?: number;
memorySize?: AwsLambdaMemorySize;
onError?: string | AwsCfFunction;
package?: {
artifact?: string;
exclude?: string[];
include?: string[];
individually?: boolean;
patterns?: string[];
};
provisionedConcurrency?:
| (
| number
| {
executions: number;
alias?: string;
}
)
| AwsCfFunction
| AwsCfIf;
reservedConcurrency?: number | AwsCfFunction | AwsCfIf;
role?: AwsLambdaRole;
runtime?: AwsLambdaRuntime;
build?: string;
runtimeManagement?: AwsLambdaRuntimeManagement;
tags?: AwsResourceTags;
tenancy?: AwsLambdaTenancy;
timeout?: AwsLambdaTimeout;
tracing?: AwsLambdaTracing;
url?:
| boolean
| {
authorizer?: "aws_iam";
cors?:
| boolean
| {
allowCredentials?: boolean;
allowedHeaders?: string[];
allowedMethods?: string[];
allowedOrigins?: string[];
exposedResponseHeaders?: string[];
maxAge?: number;
};
invokeMode?: "BUFFERED" | "RESPONSE_STREAM";
};
versionFunction?: AwsLambdaVersioning;
vpc?: AwsLambdaVpcConfig;
httpApi?: {
payload?: AwsHttpApiPayload;
};
iam?: {
inheritStatements?: boolean;
role?: {
name?: string;
statements?: AwsIamPolicyStatements;
permissionsBoundary?: AwsArn;
managedPolicies?: AwsArn[];
path?: string;
tags?: AwsResourceTags;
};
};
iamRoleStatementsInherit?: boolean;
iamRoleStatementsName?: string;
iamPermissionsBoundary?: AwsArn;
iamRoleStatements?: AwsIamPolicyStatements;
alarms?: unknown[];
};
};
licenseKey?: string;
package?: {
artifact?: string;
exclude?: string[];
excludeDevDependencies?: boolean;
include?: string[];
individually?: boolean;
path?: string;
patterns?: string[];
};
params?: {
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^[a-zA-Z0-9-]+$".
*/
[]: {
[]: unknown;
};
};
stages?: {
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^[a-zA-Z0-9-]+$".
*/
[]: {
observability?:
| boolean
| ("axiom" | "dashboard")
| {
provider: "axiom" | "dashboard";
dataset?: string;
};
resolvers?: {
[]: unknown;
};
[]: unknown;
};
};
plugins?:
| {
localPath?: string;
modules: string[];
}
| string[];
projectDir?: string;
provider: {
name: "aws";
alb?: {
targetGroupPrefix?: string;
authorizers?: {
[]:
| {
type: "oidc";
authorizationEndpoint: string;
clientId: string;
clientSecret?: string;
issuer: string;
tokenEndpoint: string;
userInfoEndpoint: string;
onUnauthenticatedRequest?: "allow" | "authenticate" | "deny";
requestExtraParams?: {
[]: string;
};
scope?: string;
sessionCookieName?: string;
sessionTimeout?: number;
}
| {
type: "cognito";
userPoolArn: AwsArn;
userPoolClientId: string;
userPoolDomain: string;
onUnauthenticatedRequest?: "allow" | "authenticate" | "deny";
requestExtraParams?: {
[]: string;
};
scope?: string;
sessionCookieName?: string;
sessionTimeout?: number;
};
};
};
apiGateway?: {
apiKeys?: AwsApiGatewayApiKeys;
apiKeySourceType?: string;
binaryMediaTypes?: string[];
description?: string;
disableDefaultEndpoint?: boolean;
endpoint?: {
securityPolicy?: string;
accessMode?: string;
disable?: boolean;
};
metrics?: boolean;
minimumCompressionSize?: number;
resourcePolicy?: AwsResourcePolicyStatements;
restApiId?: AwsCfInstruction;
restApiResources?:
| {
path?: string;
resourceId?: string;
}[]
| {
[]: unknown;
};
restApiRootResourceId?: AwsCfInstruction;
request?: {
schemas?: {
[]: {
schema: {
[]: unknown;
};
name?: string;
description?: string;
};
};
};
shouldStartNameWithService?: boolean;
stage?: string;
timeoutInMillis?: number;
usagePlan?:
| {
quota?: {
limit?: number;
offset?: number;
period?: "DAY" | "WEEK" | "MONTH";
};
throttle?: {
burstLimit?: number;
rateLimit?: number;
};
}
| {
[]: {
quota?: {
limit?: number;
offset?: number;
period?: "DAY" | "WEEK" | "MONTH";
};
throttle?: {
burstLimit?: number;
rateLimit?: number;
};
};
}[];
websocketApiId?: AwsCfInstruction;
};
apiName?: string;
domain?: string | AwsCustomDomain;
domains?: (string | AwsCustomDomain)[] | AwsCustomDomain;
architecture?: AwsLambdaArchitecture;
cfnRole?: AwsArn;
cloudFront?: {
cachePolicies?: {
[]: {
Comment?: string;
DefaultTTL: number;
MaxTTL: number;
MinTTL: number;
ParametersInCacheKeyAndForwardedToOrigin: {
CookiesConfig: {
CookieBehavior: "none" | "whitelist" | "allExcept" | "all";
Cookies?: string[];
};
EnableAcceptEncodingBrotli?: boolean;
EnableAcceptEncodingGzip: boolean;
HeadersConfig: {
HeaderBehavior: "none" | "whitelist";
Headers?: string[];
};
QueryStringsConfig: {
QueryStringBehavior: "none" | "whitelist" | "allExcept" | "all";
QueryStrings?: string[];
};
};
};
};
};
deploymentBucket?:
| AwsS3BucketName
| {
blockPublicAccess?: boolean;
skipPolicySetup?: boolean;
maxPreviousDeploymentArtifacts?: number;
name?: AwsS3BucketName;
versioning?: boolean;
serverSideEncryption?: "AES256" | "aws:kms";
sseCustomerAlgorithim?: string;
sseCustomerKey?: string;
sseCustomerKeyMD5?: string;
sseKMSKeyId?: string;
tags?: AwsResourceTags;
};
deploymentPrefix?: string;
disableRollback?: boolean;
endpointType?: string;
environment?: AwsLambdaEnvironment;
eventBridge?: {
useCloudFormation?: boolean;
};
httpApi?: {
authorizers?: {
[]:
| {
type?: "jwt";
name?: string;
identitySource: AwsCfInstruction;
issuerUrl: AwsCfInstruction;
audience: AwsCfInstruction | AwsCfInstruction[];
}
| {
type: "request";
name?: string;
functionName?: string;
functionArn?: AwsCfInstruction;
managedExternally?: boolean;
resultTtlInSeconds?: number;
enableSimpleResponses?: boolean;
payloadVersion?: AwsHttpApiPayload;
identitySource?: AwsCfInstruction | AwsCfInstruction[];
[]: unknown;
};
};
cors?:
| boolean
| {
allowCredentials?: boolean;
allowedHeaders?: string[];
allowedMethods?: string[];
allowedOrigins?: string[];
exposedResponseHeaders?: string[];
maxAge?: number;
};
id?: string | AwsCfImportLocallyResolvable;
name?: string;
payload?: string;
metrics?: boolean;
useProviderTags?: true;
disableDefaultEndpoint?: boolean;
shouldStartNameWithService?: boolean;
};
iam?: {
role?:
| AwsLambdaRole
| {
mode?: "shared" | "perFunction";
name?: string;
path?: string;
managedPolicies?: AwsArn[];
statements?: AwsIamPolicyStatements;
permissionBoundary?: AwsArn;
permissionsBoundary?: AwsArn;
tags?: AwsResourceTags;
};
deploymentRole?: AwsArn;
};
iamManagedPolicies?: AwsArn[];
iamRoleStatements?: AwsIamPolicyStatements;
ecr?: {
scanOnPush?: boolean;
images: {
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^[a-z][a-z0-9-_]{1,31}$".
*/
[]:
| {
uri?: EcrImageUri;
path?: string;
file?: string;
buildArgs?: {
[]: string;
};
buildOptions?: string[];
cacheFrom?: string[];
platform?: string;
provenance?: string;
}
| string;
};
};
kmsKeyArn?: AwsKmsArn;
lambdaHashingVersion?: "20200924" | "20201221";
layers?: AwsLambdaLayers;
logRetentionInDays?: AwsLogRetentionInDays;
logDataProtectionPolicy?: AwsLogDataProtectionPolicy;
logs?: {
frameworkLambda?: boolean;
lambda?: AwsLambdaLoggingConfiguration;
httpApi?:
| boolean
| {
format?: string;
};
restApi?:
| boolean
| {
accessLogging?: boolean;
executionLogging?: boolean;
format?: string;
fullExecutionData?: boolean;
level?: "INFO" | "ERROR";
role?: AwsArn;
roleManagedExternally?: boolean;
};
websocket?:
| boolean
| {
accessLogging?: boolean;
executionLogging?: boolean;
format?: string;
fullExecutionData?: boolean;
level?: "INFO" | "ERROR";
};
[]: unknown;
};
memorySize?: AwsLambdaMemorySize;
notificationArns?: AwsArnString[];
profile?: string;
region?:
| "us-east-1"
| "us-east-2"
| "us-gov-east-1"
| "us-gov-west-1"
| "us-iso-east-1"
| "us-iso-west-1"
| "us-isob-east-1"
| "us-west-1"
| "us-west-2"
| "af-south-1"
| "ap-east-1"
| "ap-northeast-1"
| "ap-northeast-2"
| "ap-northeast-3"
| "ap-south-1"
| "ap-south-2"
| "ap-southeast-1"
| "ap-southeast-2"
| "ap-southeast-3"
| "ap-southeast-4"
| "ap-southeast-5"
| "ap-southeast-6"
| "ap-southeast-7"
| "ca-central-1"
| "ca-west-1"
| "cn-north-1"
| "cn-northwest-1"
| "eu-central-1"
| "eu-central-2"
| "eu-north-1"
| "eu-south-1"
| "eu-south-2"
| "eu-west-1"
| "eu-west-2"
| "eu-west-3"
| "il-central-1"
| "me-central-1"
| "me-south-1"
| "sa-east-1"
| "mx-central-1";
resolver?: string;
role?: AwsLambdaRole;
rolePermissionsBoundary?: AwsArnString;
rollbackConfiguration?: {
RollbackTriggers?: {
Arn: AwsArnString;
Type: "AWS::CloudWatch::Alarm";
}[];
MonitoringTimeInMinutes?: number;
};
runtime?: AwsLambdaRuntime;
runtimeManagement?: AwsLambdaRuntimeManagement;
build?: string;
deploymentMethod?: "changesets" | "direct";
enableLegacyDeploymentBucket?: boolean;
s3?: {
[]: {
accelerateConfiguration?: {
AccelerationStatus: "Enabled" | "Suspended";
};
accessControl?: string;
analyticsConfigurations?: {
Id: string;
Prefix?: string;
StorageClassAnalysis: {
DataExport?: {
Destination: {
BucketAccountId?: string;
BucketArn: AwsArn;
Format: "CSV" | "ORC" | "Parquet";
Prefix?: string;
};
OutputSchemaVersion: "V_1";
};
};
TagFilters?: {
Key: string;
Value: string;
}[];
}[];
bucketEncryption?: {
ServerSideEncryptionConfiguration: {
ServerSideEncryptionByDefault?: {
KMSMasterKeyID?: AwsArn | string;
SSEAlgorithm: "AES256" | "aws:kms";
};
BucketKeyEnabled?: boolean;
}[];
};
bucketName?: AwsS3BucketName;
corsConfiguration?: {
CorsRules: {
AllowedHeaders?: string[];
AllowedMethods: ("GET" | "PUT" | "HEAD" | "POST" | "DELETE")[];
AllowedOrigins: string[];
ExposedHeaders?: string[];
Id?: string;
MaxAge?: number;
}[];
};
inventoryConfigurations?: {
Destination: {
BucketAccountId?: string;
BucketArn: AwsArn;
Format: "CSV" | "ORC" | "Parquet";
Prefix?: string;
};
Enabled: boolean;
Id: string;
IncludedObjectVersions: "All" | "Current";
OptionalFields?: string[];
Prefix?: string;
ScheduleFrequency: "Daily" | "Weekly";
}[];
lifecycleConfiguration?: {
Rules: (
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
| {
[]: unknown;
}
)[];
};
loggingConfiguration?: {
DestinationBucketName?: AwsS3BucketName | AwsCfFunction;
LogFilePrefix?: string;
};
metricsConfigurations?: {
Id: string;
Prefix?: string;
TagFilters?: {
Key: string;
Value: string;
}[];
}[];
name?: AwsS3BucketName;
notificationConfiguration?: {
LambdaConfigurations?: {
Event: string;
Filter?: {
S3Key: {
Rules: {
Name: "prefix" | "suffix";
Value: string;
}[];
};
};
Function: AwsArn;
}[];
QueueConfigurations?: {
Event: string;
Filter?: {
S3Key: {
Rules: {
Name: "prefix" | "suffix";
Value: string;
}[];
};
};
Queue: AwsArn;
}[];
TopicConfigurations?: {
Event: string;
Filter?: {
S3Key: {
Rules: {
Name: "prefix" | "suffix";
Value: string;
}[];
};
};
Topic: AwsArn;
}[];
};
objectLockConfiguration?: {
ObjectLockEnabled?: "Enabled";
Rule?: {
DefaultRetention?: {
Days?: number;
Mode?: "COMPLIANCE" | "GOVERNANCE";
Years?: number;
};
};
};
objectLockEnabled?: boolean;
publicAccessBlockConfiguration?: {
BlockPublicAcls?: boolean;
BlockPublicPolicy?: boolean;
IgnorePublicAcls?: boolean;
RestrictPublicBuckets?: boolean;
};
replicationConfiguration?: {
Role: AwsArn;
Rules: {
DeleteMarkerReplication?: {
Status?: "Disabled" | "Enabled";
};
Destination: {
AccessControlTranslation?: {
Owner: "Destination";
};
Account?: string;
Bucket: AwsArn;
EncryptionConfiguration?: {
ReplicaKmsKeyID: string;
};
Metrics?: {
EventThreshold: {
Minutes: number;
};
Status: "Disabled" | "Enabled";
};
ReplicationTime?: {
Status: "Disabled" | "Enabled";
Time: {
Minutes: number;
};
};
StorageClass?:
| "DEEP_ARCHIVE"
| "GLACIER"
| "INTELLIGENT_TIERING"
| "ONEZONE_IA"
| "OUTPOSTS"
| "REDUCED_REDUNDANCY"
| "STANDARD"
| "STANDARD_IA";
};
Filter?: {
And?: {
Prefix?: string;
TagFilters?: {
Key: string;
Value: string;
}[];
};
Prefix?: string;
TagFilter?: {
Key: string;
Value: string;
};
};
Id?: string;
Prefix?: string;
Priority?: number;
SourceSelectionCriteria?: {
SseKmsEncryptedObjects: {
Status: "Disabled" | "Enabled";
};
};
Status: "Disabled" | "Enabled";
}[];
};
tags?: {
Key: string;
Value: string;
}[];
versioningConfiguration?: {
Status: "Enabled" | "Suspended";
};
websiteConfiguration?: {
ErrorDocument?: string;
IndexDocument?: string;
RedirectAllRequestsTo?: {
HostName: string;
Protocol?: "http" | "https";
};
RoutingRules?: {
RedirectRule: {
HostName?: string;
HttpRedirectCode?: string;
Protocol?: "http" | "https";
ReplaceKeyPrefixWith?: string;
ReplaceKeyWith?: string;
};
RoutingRuleCondition?: {
HttpErrorCodeReturnedEquals?: string;
KeyPrefixEquals?: string;
};
}[];
};
};
};
stage?: Stage;
stackName?: string;
stackParameters?: {
ParameterKey?: string;
ParameterValue?: string;
UsePreviousValue?: boolean;
ResolvedValue?: string;
}[];
stackPolicy?: AwsIamPolicyStatements;
stackTags?: AwsResourceTags;
tags?: AwsResourceTags;
timeout?: AwsLambdaTimeout;
tracing?: {
apiGateway?: boolean;
lambda?: AwsLambdaTracing;
};
vpc?: AwsLambdaVpcConfig;
vpcEndpointIds?: AwsCfArrayInstruction;
versionFunctions?: AwsLambdaVersioning;
websocket?: {
useProviderTags?: boolean;
};
websocketsApiName?: string;
kinesis?: {
consumerNamingMode?: "serviceSpecific";
};
websocketsApiRouteSelectionExpression?: string;
websocketsDescription?: string;
};
service: ServiceName;
state?:
| {
resolver: string;
}
| string;
useDotenv?: true;
variablesResolutionMode?: "20210219" | "20210326";
resources?: {
AWSTemplateFormatVersion?: string;
Conditions?: {
[]: unknown;
};
Description?: string;
Mappings?: {
[]: unknown;
};
Metadata?: {
[]: unknown;
};
Outputs?: {
[]: unknown;
};
Parameters?: {
[]: unknown;
};
Resources?: {
"Fn::Transform"?: {
Name: string;
Parameters?: {
[]: unknown;
};
};
};
Transform?: string[];
extensions?: {
/**
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^[a-zA-Z0-9]{1,255}$".
*/
[]: {
Properties?: {
[]: unknown;
};
CreationPolicy?: {
[]: unknown;
};
DeletionPolicy?: string;
DependsOn?: AwsResourceDependsOn;
Metadata?: {
[]: unknown;
};
UpdatePolicy?: {
[]: unknown;
};
UpdateReplacePolicy?: string;
Condition?: AwsResourceCondition;
};
};
};
layers?: {
[]: {
allowedAccounts?: string[];
compatibleArchitectures?: AwsLambdaArchitecture[];
compatibleRuntimes?: AwsLambdaRuntime[];
description?: string;
licenseInfo?: string;
name?: string;
package?: {
artifact?: string;
exclude?: string[];
include?: string[];
patterns?: string[];
};
path?: string;
retain?: boolean;
};
};
}
export interface AwsCfImport {
"Fn::ImportValue": unknown;
}
export interface AwsCfJoin {
"Fn::Join": [string, unknown[]];
}
export interface AwsCfGetAtt {
"Fn::GetAtt": string[];
}
export interface AwsCfRef {
Ref: string;
}
export interface AwsCfSub {
"Fn::Sub": unknown;
}
export interface AwsCfBase64 {
"Fn::Base64"?: unknown;
[]: unknown;
}
export interface AwsCfToJsonString {
"Fn::ToJsonString":
| {
[]: unknown;
}
| unknown[];
}
export interface AwsCfIf {
"Fn::If": AwsCfInstruction[];
}
export interface AwsLambdaEnvironment {
/**
* This interface was referenced by `AwsLambdaEnvironment`'s JSON-Schema definition
* via the `patternProperty` "^[A-Za-z_][a-zA-Z0-9_]*$".
*/
[]: "" | AwsCfInstruction | AwsCfIf | AwsCfSelect;
}
export interface AwsCfSelect {
"Fn::Select": (
| number
| string
| unknown[]
| AwsCfFindInMap
| AwsCfGetAtt
| AwsCfGetAZs
| AwsCfIf
| AwsCfSplit
| AwsCfRef
)[];
}
export interface AwsCfFindInMap {
"Fn::FindInMap": (string | AwsCfFunction)[];
}
export interface AwsCfGetAZs {
"Fn::GetAZs": string | AwsCfRef;
}
export interface AwsCfSplit {
"Fn::Split": (string | AwsCfFunction)[];
}
export interface AwsLogDataProtectionPolicy {
Name: string;
Description?: string;
Version: string;
Statement: unknown[];
}
export interface AwsLambdaLoggingConfiguration {
applicationLogLevel?: "DEBUG" | "ERROR" | "FATAL" | "INFO" | "TRACE" | "WARN";
logFormat?: "JSON" | "Text";
logGroup?: string;
systemLogLevel?: "DEBUG" | "INFO" | "WARN";
}
export interface AwsResourceTags {
/**
* This interface was referenced by `AwsResourceTags`'s JSON-Schema definition
* via the `patternProperty` "^(?!aws:)[\w./=+:\-_\x20]{1,128}$".
*/
[]: string;
}
export interface AwsLambdaTenancy {
mode: string;
}
export interface AwsLambdaVpcConfig {
ipv6AllowedForDualStack?: boolean;
securityGroupIds: (AwsCfInstruction | AwsCfIf)[] | AwsCfSplit | AwsCfFindInMap;
subnetIds: (AwsCfInstruction | AwsCfIf)[] | AwsCfSplit | AwsCfFindInMap;
}
export interface AwsApiGatewayApiKeysProperties {
name?: string;
value?: string;
description?: string;
customerId?: string;
enabled?: boolean;
}
export interface AwsCustomDomain {
name?: string;
basePath?: string;
certificateName?: string;
certificateArn?: string;
createRoute53Record?: boolean;
createRoute53IPv6Record?: boolean;
route53Profile?: string;
route53Region?: string;
endpointType?: string;
apiType?: string;
tlsTruststoreUri?: string;
tlsTruststoreVersion?: string;
hostedZoneId?: string;
hostedZonePrivate?: boolean;
splitHorizonDns?: boolean;
enabled?: boolean | string;
securityPolicy?: string;
autoDomain?: boolean;
autoDomainWaitFor?: string;
allowPathMatching?: boolean;
route53Params?: {
[]: unknown;
};
preserveExternalPathMappings?: boolean;
[]: unknown;
}
export interface AwsCfImportLocallyResolvable {
"Fn::ImportValue": string;
}