@awsless/awsless 0.0.142 → 0.0.144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/app.json CHANGED
@@ -1 +1 @@
1
- {"$ref":"#/definitions/app","definitions":{"app":{"type":"object","properties":{"$schema":{"type":"string"},"name":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"App name.","markdownDescription":"App name."},"region":{"type":"string","enum":["us-east-2","us-east-1","us-west-1","us-west-2","af-south-1","ap-east-1","ap-south-2","ap-southeast-3","ap-southeast-4","ap-south-1","ap-northeast-3","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","ca-central-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-south-2","eu-north-1","eu-central-2","me-south-1","me-central-1","sa-east-1"],"description":"The AWS region to deploy to.","markdownDescription":"The AWS region to deploy to."},"profile":{"type":"string","description":"The AWS profile to deploy to.","markdownDescription":"The AWS profile to deploy to."},"stage":{"type":"string","pattern":"^[a-z]+$","default":"prod","description":"The deployment stage.\n\n@default \"prod\"","markdownDescription":"The deployment stage.\n\n@default ```\"prod\"```"},"defaults":{"type":"object","properties":{"auth":{"type":"object","additionalProperties":{"type":"object","properties":{"allowUserRegistration":{"type":"boolean","default":true,"description":"Specifies whether users can create an user account or if only the administrator can.","markdownDescription":"Specifies whether users can create an user account or if only the administrator can."},"messaging":{"type":"object","properties":{"fromEmail":{"type":"string","format":"email","description":"Specifies the sender's email address.","markdownDescription":"Specifies the sender's email address."},"fromName":{"type":"string","description":"Specifies the sender's name.","markdownDescription":"Specifies the sender's name."},"replyTo":{"type":"string","format":"email","description":"The destination to which the receiver of the email should reply.","markdownDescription":"The destination to which the receiver of the email should reply."}},"required":["fromEmail"],"additionalProperties":false,"description":"The email configuration for sending messages.","markdownDescription":"The email configuration for sending messages."},"username":{"type":"object","properties":{"emailAlias":{"type":"boolean","default":true,"description":"Allow the user email to be used as username.","markdownDescription":"Allow the user email to be used as username."},"caseSensitive":{"type":"boolean","default":false,"description":"Specifies whether username case sensitivity will be enabled. When usernames and email addresses are case insensitive, users can sign in as the same user when they enter a different capitalization of their user name.","markdownDescription":"Specifies whether username case sensitivity will be enabled. When usernames and email addresses are case insensitive, users can sign in as the same user when they enter a different capitalization of their user name."}},"additionalProperties":false,"default":{},"description":"The username policy.","markdownDescription":"The username policy."},"password":{"type":"object","properties":{"minLength":{"type":"integer","minimum":6,"maximum":99,"default":12,"description":"Required users to have at least the minimum password length.","markdownDescription":"Required users to have at least the minimum password length."},"uppercase":{"type":"boolean","default":true,"description":"Required users to use at least one uppercase letter in their password.","markdownDescription":"Required users to use at least one uppercase letter in their password."},"lowercase":{"type":"boolean","default":true,"description":"Required users to use at least one lowercase letter in their password.","markdownDescription":"Required users to use at least one lowercase letter in their password."},"numbers":{"type":"boolean","default":true,"description":"Required users to use at least one number in their password.","markdownDescription":"Required users to use at least one number in their password."},"symbols":{"type":"boolean","default":true,"description":"Required users to use at least one symbol in their password.","markdownDescription":"Required users to use at least one symbol in their password."},"temporaryPasswordValidity":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"7 days","description":"The duration a temporary password is valid. If the user doesn't sign in during this time, an administrator must reset their password.","markdownDescription":"The duration a temporary password is valid. If the user doesn't sign in during this time, an administrator must reset their password."}},"additionalProperties":false,"default":{},"description":"The password policy.","markdownDescription":"The password policy."},"validity":{"type":"object","properties":{"idToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"1 hour","description":"The ID token time limit. After this limit expires, your user can't use their ID token.","markdownDescription":"The ID token time limit. After this limit expires, your user can't use their ID token."},"accessToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"1 hour","description":"The access token time limit. After this limit expires, your user can't use their access token.","markdownDescription":"The access token time limit. After this limit expires, your user can't use their access token."},"refreshToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"365 days","description":"The refresh token time limit. After this limit expires, your user can't use their refresh token.","markdownDescription":"The refresh token time limit. After this limit expires, your user can't use their refresh token."}},"additionalProperties":false,"default":{},"description":"Specifies the validity duration for every JWT token.","markdownDescription":"Specifies the validity duration for every JWT token."},"triggers":{"type":"object","properties":{"beforeToken":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre jwt token generation AWS Lambda trigger.","markdownDescription":"A pre jwt token generation AWS Lambda trigger."},"beforeLogin":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre user login AWS Lambda trigger.","markdownDescription":"A pre user login AWS Lambda trigger."},"afterLogin":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A post user login AWS Lambda trigger.","markdownDescription":"A post user login AWS Lambda trigger."},"beforeRegister":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre user register AWS Lambda trigger.","markdownDescription":"A pre user register AWS Lambda trigger."},"afterRegister":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A post user register AWS Lambda trigger.","markdownDescription":"A post user register AWS Lambda trigger."},"customMessage":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A custom message AWS Lambda trigger.","markdownDescription":"A custom message AWS Lambda trigger."},"defineChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Defines the authentication challenge.","markdownDescription":"Defines the authentication challenge."},"createChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Creates an authentication challenge.","markdownDescription":"Creates an authentication challenge."},"verifyChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Verifies the authentication challenge response.","markdownDescription":"Verifies the authentication challenge response."}},"additionalProperties":false,"description":"Specifies the configuration for AWS Lambda triggers.","markdownDescription":"Specifies the configuration for AWS Lambda triggers."}},"additionalProperties":false},"default":{},"description":"Define the authenticatable users in your app.","markdownDescription":"Define the authenticatable users in your app."},"domains":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","pattern":"[a-z\\-\\_\\.]","description":"Define the domain name","markdownDescription":"Define the domain name"},"dns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"[a-z\\-\\_\\.]","description":"Enter a fully qualified domain name, for example, www.example.com. You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.","markdownDescription":"Enter a fully qualified domain name, for example, www.example.com. You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical."},"type":{"type":"string","enum":["A","AAAA","CAA","CNAME","DS","MX","NAPTR","NS","PTR","SOA","SPF","SRV","TXT"],"description":"The DNS record type.","markdownDescription":"The DNS record type."},"ttl":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The resource record cache time to live (TTL).","markdownDescription":"The resource record cache time to live (TTL)."},"records":{"type":"array","items":{"type":"string"},"description":"One or more values that correspond with the value that you specified for the Type property.","markdownDescription":"One or more values that correspond with the value that you specified for the Type property."}},"required":["type","ttl","records"],"additionalProperties":false},"description":"Define the domain dns records","markdownDescription":"Define the domain dns records"}},"required":["domain"],"additionalProperties":false},"description":"Define the domains for your application.","markdownDescription":"Define the domains for your application."},"function":{"type":"object","properties":{"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function.","default":"default"},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code.","default":true},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","default":0},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC.","default":false},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","default":false},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","default":"10 seconds"},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime.","default":"nodejs20.x"},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","default":"128 MB"},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports.","default":"arm64"},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","default":"512 MB"},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","default":2},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"additionalProperties":false,"default":{}},"queue":{"type":"object","properties":{"retentionPeriod":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The number of seconds that Amazon SQS retains a message. You can specify a duration from 1 minute to 14 days.","markdownDescription":"The number of seconds that Amazon SQS retains a message. You can specify a duration from 1 minute to 14 days.","default":"7 days"},"visibilityTimeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The length of time during which a message will be unavailable after a message is delivered from the queue. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue. You can specify a duration from 0 to 12 hours.","markdownDescription":"The length of time during which a message will be unavailable after a message is delivered from the queue. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue. You can specify a duration from 0 to 12 hours.","default":"30 seconds"},"deliveryDelay":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The time in seconds for which the delivery of all messages in the queue is delayed. You can specify a duration from 0 to 15 minutes.","markdownDescription":"The time in seconds for which the delivery of all messages in the queue is delayed. You can specify a duration from 0 to 15 minutes.","default":"0 seconds"},"receiveMessageWaitTime":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"Specifies the duration, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available. You can specify a duration from 1 to 20 seconds. Short polling is used as the default.","markdownDescription":"Specifies the duration, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available. You can specify a duration from 1 to 20 seconds. Short polling is used as the default."},"maxMessageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The limit of how many bytes that a message can contain before Amazon SQS rejects it. You can specify an size from 1 KB to 256 KB.","markdownDescription":"The limit of how many bytes that a message can contain before Amazon SQS rejects it. You can specify an size from 1 KB to 256 KB.","default":"256 KB"},"batchSize":{"type":"integer","minimum":1,"maximum":10000,"description":"The maximum number of records in each batch that Lambda pulls from your queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). You can specify an integer from 1 to 10000.","markdownDescription":"The maximum number of records in each batch that Lambda pulls from your queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). You can specify an integer from 1 to 10000.","default":10},"maxConcurrency":{"type":"integer","minimum":2,"maximum":1000,"description":"Limits the number of concurrent instances that the queue worker can invoke. You can specify an integer from 2 to 1000.","markdownDescription":"Limits the number of concurrent instances that the queue worker can invoke. You can specify an integer from 2 to 1000."},"maxBatchingWindow":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The maximum amount of time, that Lambda spends gathering records before invoking the function. You can specify an duration from 0 seconds to 5 minutes.","markdownDescription":"The maximum amount of time, that Lambda spends gathering records before invoking the function. You can specify an duration from 0 seconds to 5 minutes."}},"additionalProperties":false,"default":{}},"graphql":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"},"auth":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$"},"resolver":{"type":"string"}},"additionalProperties":false}},"http":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"},"auth":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$"}},"required":["domain"],"additionalProperties":false},"description":"Define your global HTTP API's.","markdownDescription":"Define your global HTTP API's."},"rest":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"}},"required":["domain"],"additionalProperties":false},"description":"Define your global REST API's.","markdownDescription":"Define your global REST API's."}},"additionalProperties":false,"default":{},"description":"Default properties\n\n@default {}","markdownDescription":"Default properties\n\n@default ```{}```"}},"required":["name","region","profile"],"additionalProperties":false}},"$schema":"http://json-schema.org/draft-07/schema#","title":"Awsless App Config"}
1
+ {"$ref":"#/definitions/app","definitions":{"app":{"type":"object","properties":{"$schema":{"type":"string"},"name":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"App name.","markdownDescription":"App name."},"region":{"type":"string","enum":["us-east-2","us-east-1","us-west-1","us-west-2","af-south-1","ap-east-1","ap-south-2","ap-southeast-3","ap-southeast-4","ap-south-1","ap-northeast-3","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","ca-central-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-south-2","eu-north-1","eu-central-2","me-south-1","me-central-1","sa-east-1"],"description":"The AWS region to deploy to.","markdownDescription":"The AWS region to deploy to."},"profile":{"type":"string","description":"The AWS profile to deploy to.","markdownDescription":"The AWS profile to deploy to."},"stage":{"type":"string","pattern":"^[a-z]+$","default":"prod","description":"The deployment stage.\n\n@default \"prod\"","markdownDescription":"The deployment stage.\n\n@default ```\"prod\"```"},"defaults":{"type":"object","properties":{"auth":{"type":"object","additionalProperties":{"type":"object","properties":{"allowUserRegistration":{"type":"boolean","default":true,"description":"Specifies whether users can create an user account or if only the administrator can.","markdownDescription":"Specifies whether users can create an user account or if only the administrator can."},"messaging":{"type":"object","properties":{"fromEmail":{"type":"string","format":"email","description":"Specifies the sender's email address.","markdownDescription":"Specifies the sender's email address."},"fromName":{"type":"string","description":"Specifies the sender's name.","markdownDescription":"Specifies the sender's name."},"replyTo":{"type":"string","format":"email","description":"The destination to which the receiver of the email should reply.","markdownDescription":"The destination to which the receiver of the email should reply."}},"required":["fromEmail"],"additionalProperties":false,"description":"The email configuration for sending messages.","markdownDescription":"The email configuration for sending messages."},"secret":{"type":"boolean","default":false,"description":"Specifies whether you want to generate a client secret.","markdownDescription":"Specifies whether you want to generate a client secret."},"username":{"type":"object","properties":{"emailAlias":{"type":"boolean","default":true,"description":"Allow the user email to be used as username.","markdownDescription":"Allow the user email to be used as username."},"caseSensitive":{"type":"boolean","default":false,"description":"Specifies whether username case sensitivity will be enabled. When usernames and email addresses are case insensitive, users can sign in as the same user when they enter a different capitalization of their user name.","markdownDescription":"Specifies whether username case sensitivity will be enabled. When usernames and email addresses are case insensitive, users can sign in as the same user when they enter a different capitalization of their user name."}},"additionalProperties":false,"default":{},"description":"The username policy.","markdownDescription":"The username policy."},"password":{"type":"object","properties":{"minLength":{"type":"integer","minimum":6,"maximum":99,"default":12,"description":"Required users to have at least the minimum password length.","markdownDescription":"Required users to have at least the minimum password length."},"uppercase":{"type":"boolean","default":true,"description":"Required users to use at least one uppercase letter in their password.","markdownDescription":"Required users to use at least one uppercase letter in their password."},"lowercase":{"type":"boolean","default":true,"description":"Required users to use at least one lowercase letter in their password.","markdownDescription":"Required users to use at least one lowercase letter in their password."},"numbers":{"type":"boolean","default":true,"description":"Required users to use at least one number in their password.","markdownDescription":"Required users to use at least one number in their password."},"symbols":{"type":"boolean","default":true,"description":"Required users to use at least one symbol in their password.","markdownDescription":"Required users to use at least one symbol in their password."},"temporaryPasswordValidity":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"7 days","description":"The duration a temporary password is valid. If the user doesn't sign in during this time, an administrator must reset their password.","markdownDescription":"The duration a temporary password is valid. If the user doesn't sign in during this time, an administrator must reset their password."}},"additionalProperties":false,"default":{},"description":"The password policy.","markdownDescription":"The password policy."},"validity":{"type":"object","properties":{"idToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"1 hour","description":"The ID token time limit. After this limit expires, your user can't use their ID token.","markdownDescription":"The ID token time limit. After this limit expires, your user can't use their ID token."},"accessToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"1 hour","description":"The access token time limit. After this limit expires, your user can't use their access token.","markdownDescription":"The access token time limit. After this limit expires, your user can't use their access token."},"refreshToken":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","default":"365 days","description":"The refresh token time limit. After this limit expires, your user can't use their refresh token.","markdownDescription":"The refresh token time limit. After this limit expires, your user can't use their refresh token."}},"additionalProperties":false,"default":{},"description":"Specifies the validity duration for every JWT token.","markdownDescription":"Specifies the validity duration for every JWT token."},"triggers":{"type":"object","properties":{"beforeToken":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre jwt token generation AWS Lambda trigger.","markdownDescription":"A pre jwt token generation AWS Lambda trigger."},"beforeLogin":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre user login AWS Lambda trigger.","markdownDescription":"A pre user login AWS Lambda trigger."},"afterLogin":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A post user login AWS Lambda trigger.","markdownDescription":"A post user login AWS Lambda trigger."},"beforeRegister":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A pre user register AWS Lambda trigger.","markdownDescription":"A pre user register AWS Lambda trigger."},"afterRegister":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A post user register AWS Lambda trigger.","markdownDescription":"A post user register AWS Lambda trigger."},"customMessage":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"A custom message AWS Lambda trigger.","markdownDescription":"A custom message AWS Lambda trigger."},"defineChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Defines the authentication challenge.","markdownDescription":"Defines the authentication challenge."},"createChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Creates an authentication challenge.","markdownDescription":"Creates an authentication challenge."},"verifyChallenge":{"anyOf":[{"type":"string"},{"type":"object","properties":{"file":{"type":"string","description":"The file path of the function code.","markdownDescription":"The file path of the function code."},"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function."},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code."},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10."},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC."},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time."},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes."},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime."},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB."},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports."},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB."},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2."},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"required":["file"],"additionalProperties":false}],"description":"Verifies the authentication challenge response.","markdownDescription":"Verifies the authentication challenge response."}},"additionalProperties":false,"description":"Specifies the configuration for AWS Lambda triggers.","markdownDescription":"Specifies the configuration for AWS Lambda triggers."}},"additionalProperties":false},"default":{},"description":"Define the authenticatable users in your app.","markdownDescription":"Define the authenticatable users in your app."},"domains":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","pattern":"[a-z\\-\\_\\.]","description":"Define the domain name","markdownDescription":"Define the domain name"},"dns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"[a-z\\-\\_\\.]","description":"Enter a fully qualified domain name, for example, www.example.com. You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.","markdownDescription":"Enter a fully qualified domain name, for example, www.example.com. You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical."},"type":{"type":"string","enum":["A","AAAA","CAA","CNAME","DS","MX","NAPTR","NS","PTR","SOA","SPF","SRV","TXT"],"description":"The DNS record type.","markdownDescription":"The DNS record type."},"ttl":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The resource record cache time to live (TTL).","markdownDescription":"The resource record cache time to live (TTL)."},"records":{"type":"array","items":{"type":"string"},"description":"One or more values that correspond with the value that you specified for the Type property.","markdownDescription":"One or more values that correspond with the value that you specified for the Type property."}},"required":["type","ttl","records"],"additionalProperties":false},"description":"Define the domain dns records","markdownDescription":"Define the domain dns records"}},"required":["domain"],"additionalProperties":false},"description":"Define the domains for your application.","markdownDescription":"Define the domains for your application."},"function":{"type":"object","properties":{"handler":{"type":"string","description":"The name of the exported method within your code that Lambda calls to run your function.","markdownDescription":"The name of the exported method within your code that Lambda calls to run your function.","default":"default"},"minify":{"type":"boolean","description":"Minify the function code.","markdownDescription":"Minify the function code.","default":true},"warm":{"type":"integer","minimum":0,"maximum":10,"description":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","markdownDescription":"Specify how many functions you want to warm up each 5 minutes. You can specify a number from 0 to 10.","default":0},"vpc":{"type":"boolean","description":"Put the function inside your global VPC.","markdownDescription":"Put the function inside your global VPC.","default":false},"log":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$"}],"description":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","markdownDescription":"Enable logging to a CloudWatch log group. Providing a duration value will set the log retention time.","default":false},"timeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","markdownDescription":"The amount of time that Lambda allows a function to run before stopping it. You can specify a size value from 1 second to 15 minutes.","default":"10 seconds"},"runtime":{"type":"string","enum":["nodejs18.x","nodejs20.x"],"description":"The identifier of the function's runtime.","markdownDescription":"The identifier of the function's runtime.","default":"nodejs20.x"},"memorySize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","markdownDescription":"The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The value can be any multiple of 1 MB. You can specify a size value from 128 MB to 10 GB.","default":"128 MB"},"architecture":{"type":"string","enum":["x86_64","arm64"],"description":"The instruction set architecture that the function supports.","markdownDescription":"The instruction set architecture that the function supports.","default":"arm64"},"ephemeralStorageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","markdownDescription":"The size of the function's /tmp directory. You can specify a size value from 512 MB to 10 GB.","default":"512 MB"},"retryAttempts":{"type":"integer","minimum":0,"maximum":2,"description":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","markdownDescription":"The maximum number of times to retry when the function returns an error. You can specify a number from 0 to 2.","default":2},"reserved":{"type":"integer","minimum":0,"description":"The number of simultaneous executions to reserve for the function. You can specify a number from 0.","markdownDescription":"The number of simultaneous executions to reserve for the function. You can specify a number from 0."},"environment":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variable key-value pairs.","markdownDescription":"Environment variable key-value pairs."},"permissions":{"anyOf":[{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false},{"type":"array","items":{"type":"object","properties":{"effect":{"type":"string","enum":["allow","deny"],"default":"allow"},"actions":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}}},"required":["actions","resources"],"additionalProperties":false}}],"description":"Add IAM permissions to your function.","markdownDescription":"Add IAM permissions to your function."}},"additionalProperties":false,"default":{}},"queue":{"type":"object","properties":{"retentionPeriod":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The number of seconds that Amazon SQS retains a message. You can specify a duration from 1 minute to 14 days.","markdownDescription":"The number of seconds that Amazon SQS retains a message. You can specify a duration from 1 minute to 14 days.","default":"7 days"},"visibilityTimeout":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The length of time during which a message will be unavailable after a message is delivered from the queue. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue. You can specify a duration from 0 to 12 hours.","markdownDescription":"The length of time during which a message will be unavailable after a message is delivered from the queue. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue. You can specify a duration from 0 to 12 hours.","default":"30 seconds"},"deliveryDelay":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The time in seconds for which the delivery of all messages in the queue is delayed. You can specify a duration from 0 to 15 minutes.","markdownDescription":"The time in seconds for which the delivery of all messages in the queue is delayed. You can specify a duration from 0 to 15 minutes.","default":"0 seconds"},"receiveMessageWaitTime":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"Specifies the duration, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available. You can specify a duration from 1 to 20 seconds. Short polling is used as the default.","markdownDescription":"Specifies the duration, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available. You can specify a duration from 1 to 20 seconds. Short polling is used as the default."},"maxMessageSize":{"type":"string","pattern":"^[0-9]+ (KB|MB|GB)$","description":"The limit of how many bytes that a message can contain before Amazon SQS rejects it. You can specify an size from 1 KB to 256 KB.","markdownDescription":"The limit of how many bytes that a message can contain before Amazon SQS rejects it. You can specify an size from 1 KB to 256 KB.","default":"256 KB"},"batchSize":{"type":"integer","minimum":1,"maximum":10000,"description":"The maximum number of records in each batch that Lambda pulls from your queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). You can specify an integer from 1 to 10000.","markdownDescription":"The maximum number of records in each batch that Lambda pulls from your queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). You can specify an integer from 1 to 10000.","default":10},"maxConcurrency":{"type":"integer","minimum":2,"maximum":1000,"description":"Limits the number of concurrent instances that the queue worker can invoke. You can specify an integer from 2 to 1000.","markdownDescription":"Limits the number of concurrent instances that the queue worker can invoke. You can specify an integer from 2 to 1000."},"maxBatchingWindow":{"type":"string","pattern":"^[0-9]+ (seconds?|minutes?|hours?|days?)$","description":"The maximum amount of time, that Lambda spends gathering records before invoking the function. You can specify an duration from 0 seconds to 5 minutes.","markdownDescription":"The maximum amount of time, that Lambda spends gathering records before invoking the function. You can specify an duration from 0 seconds to 5 minutes."}},"additionalProperties":false,"default":{}},"graphql":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"},"auth":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$"},"resolver":{"type":"string"}},"additionalProperties":false}},"http":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"},"auth":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$"}},"required":["domain"],"additionalProperties":false},"description":"Define your global HTTP API's.","markdownDescription":"Define your global HTTP API's."},"rest":{"type":"object","additionalProperties":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":24,"pattern":"^[a-z0-9\\-]+$","description":"The domain id to link your API with.","markdownDescription":"The domain id to link your API with."},"subDomain":{"type":"string"}},"required":["domain"],"additionalProperties":false},"description":"Define your global REST API's.","markdownDescription":"Define your global REST API's."}},"additionalProperties":false,"default":{},"description":"Default properties\n\n@default {}","markdownDescription":"Default properties\n\n@default ```{}```"}},"required":["name","region","profile"],"additionalProperties":false}},"$schema":"http://json-schema.org/draft-07/schema#","title":"Awsless App Config"}
package/dist/bin.js CHANGED
@@ -723,16 +723,18 @@ var directories = {
723
723
  var setRoot = (path = root) => {
724
724
  directories.root = path;
725
725
  };
726
- var findRootDir = async (path, configFile, level = 5) => {
726
+ var findRootDir = async (path, configFiles, level = 5) => {
727
727
  if (!level) {
728
728
  throw new TypeError("No awsless project found");
729
729
  }
730
- const file = join(path, configFile);
731
- const exists = await fileExist(file);
732
- if (exists) {
733
- return path;
730
+ for (const configFile of configFiles) {
731
+ const file = join(path, configFile);
732
+ const exists = await fileExist(file);
733
+ if (exists) {
734
+ return [file, path];
735
+ }
734
736
  }
735
- return findRootDir(normalize(join(path, "..")), configFile, level - 1);
737
+ return findRootDir(normalize(join(path, "..")), configFiles, level - 1);
736
738
  };
737
739
  var fileExist = async (file) => {
738
740
  try {
@@ -1802,7 +1804,7 @@ var authPlugin = definePlugin({
1802
1804
  const client = userPool.addClient({
1803
1805
  name: `${config2.app.name}-${id}`,
1804
1806
  validity: props.validity,
1805
- generateSecret: true,
1807
+ generateSecret: props.secret,
1806
1808
  supportedIdentityProviders: ["cognito"],
1807
1809
  authFlows: {
1808
1810
  userSrp: true
@@ -5799,6 +5801,7 @@ var AuthDefaultSchema = z8.record(
5799
5801
  "The destination to which the receiver of the email should reply."
5800
5802
  )
5801
5803
  }).optional().describe("The email configuration for sending messages."),
5804
+ secret: z8.boolean().default(false).describe("Specifies whether you want to generate a client secret."),
5802
5805
  username: z8.object({
5803
5806
  emailAlias: z8.boolean().default(true).describe("Allow the user email to be used as username."),
5804
5807
  caseSensitive: z8.boolean().default(false).describe(
@@ -6409,13 +6412,12 @@ var parseConfig = async (schema, file, data) => {
6409
6412
  };
6410
6413
  var loadConfig = async (options) => {
6411
6414
  debug("Find the root directory");
6412
- const configFile = options.configFile || "app.json";
6413
- const root2 = await findRootDir(process.cwd(), configFile);
6415
+ const configFileOptions = options.configFile ? [options.configFile] : ["app.json", "app.jsonc", "app.json5"];
6416
+ const [appFileName, root2] = await findRootDir(process.cwd(), configFileOptions);
6414
6417
  setRoot(root2);
6415
6418
  setLocalBasePath(root2);
6416
6419
  debug("CWD:", style.info(root2));
6417
6420
  debug("Load app config file");
6418
- const appFileName = join7(root2, configFile);
6419
6421
  const appConfig = await readConfigWithStage(appFileName, options.stage);
6420
6422
  debug("Validate app config file");
6421
6423
  const app = await parseConfig(AppSchema, appFileName, appConfig);
@@ -6432,6 +6434,10 @@ var loadConfig = async (options) => {
6432
6434
  });
6433
6435
  const stacks = [];
6434
6436
  for (const file of stackFiles.sort()) {
6437
+ if (basename3(file).startsWith("_")) {
6438
+ debug("Skip stack file:", style.info(file));
6439
+ continue;
6440
+ }
6435
6441
  debug("Load stack file:", style.info(file));
6436
6442
  const stackConfig = await readConfigWithStage(file, options.stage);
6437
6443
  setLocalBasePath(join7(process.cwd(), dirname5(file)));
@@ -6456,19 +6462,24 @@ var hr = () => {
6456
6462
  };
6457
6463
  };
6458
6464
 
6465
+ // src/cli/ui/layout/pad-text.ts
6466
+ var padText = (texts) => {
6467
+ const size = Math.max(...texts.map((text) => text.length));
6468
+ return (text, padding = 0) => {
6469
+ return text.padEnd(size + padding);
6470
+ };
6471
+ };
6472
+
6459
6473
  // src/cli/ui/layout/list.ts
6460
6474
  var list = (data) => {
6461
6475
  const padding = 2;
6462
- const gap = 1;
6463
- const size = Object.keys(data).reduce((total, name) => {
6464
- return name.length > total ? name.length : total;
6465
- }, 0);
6476
+ const padName = padText(Object.keys(data));
6466
6477
  return (term) => {
6467
6478
  term.out.gap();
6468
6479
  term.out.write(
6469
6480
  Object.entries(data).map(([name, value]) => [
6470
6481
  " ".repeat(padding),
6471
- style.label((name + ":").padEnd(size + gap + 1)),
6482
+ style.label(padName(name + ":", 2)),
6472
6483
  value,
6473
6484
  br()
6474
6485
  ])
@@ -7057,6 +7068,7 @@ var flexLine = (term, left, right, reserveSpace = 0) => {
7057
7068
  import { dirname as dirname6, join as join8 } from "path";
7058
7069
  import { promise } from "fastq";
7059
7070
  var assetBuilder = (app) => {
7071
+ debug("Start building assets");
7060
7072
  return async (term) => {
7061
7073
  const assets = [];
7062
7074
  const stacks = [];
@@ -7132,8 +7144,15 @@ var assetBuilder = (app) => {
7132
7144
  async write(fingerprint, cb) {
7133
7145
  const prev = await getFingerPrint();
7134
7146
  if (prev === fingerprint && !process.env.NO_CACHE) {
7147
+ debug(
7148
+ "Skip building:",
7149
+ style.label(stack.name),
7150
+ style.warning(asset.type),
7151
+ style.info(asset.id)
7152
+ );
7135
7153
  return;
7136
7154
  }
7155
+ debug("Build:", style.label(stack.name), style.warning(asset.type), style.info(asset.id));
7137
7156
  try {
7138
7157
  await cb(async (file2, data2) => {
7139
7158
  const fullpath = getFullPath(file2);
@@ -7173,15 +7192,23 @@ var assetBuilder = (app) => {
7173
7192
  stop();
7174
7193
  }
7175
7194
  }, 3);
7195
+ let failure;
7176
7196
  await Promise.all(
7177
7197
  app.stacks.map(async (stack) => {
7178
7198
  await Promise.all(
7179
7199
  [...stack.assets].map(async (asset) => {
7180
- await queue2.push({ stack, asset });
7200
+ try {
7201
+ await queue2.push({ stack, asset });
7202
+ } catch (error) {
7203
+ failure = error;
7204
+ }
7181
7205
  })
7182
7206
  );
7183
7207
  })
7184
7208
  );
7209
+ if (failure) {
7210
+ throw failure;
7211
+ }
7185
7212
  done("Done building stack assets");
7186
7213
  if (showDetailedView) {
7187
7214
  term.out.gap();
@@ -7675,69 +7702,69 @@ var bootstrap = (program2) => {
7675
7702
  });
7676
7703
  };
7677
7704
 
7678
- // src/cli/ui/complex/deployer.ts
7679
- var stacksDeployer = (deploymentLine) => {
7680
- const stackNames = deploymentLine.map((line2) => line2.map((stack) => stack.name)).flat();
7681
- const stackNameSize = Math.max(...stackNames.map((name) => name.length));
7682
- return (term) => {
7683
- const ui = {};
7684
- term.out.gap();
7685
- for (const i in deploymentLine) {
7686
- const line2 = flexLine(term, [" "], [" ", style.placeholder(Number(i) + 1), style.placeholder(" \u2500\u2500")]);
7687
- term.out.write(line2);
7688
- term.out.write(br());
7689
- for (const stack of deploymentLine[i]) {
7690
- const icon = new Signal(" ");
7691
- const name = new Signal(style.label.dim(stack.name));
7692
- const status2 = new Signal(style.info.dim("waiting"));
7693
- let stopSpinner;
7694
- term.out.write([
7695
- icon,
7696
- " ",
7697
- name,
7698
- " ".repeat(stackNameSize - stack.name.length),
7699
- " ",
7700
- style.placeholder(symbol.pointerSmall),
7701
- " ",
7702
- status2,
7703
- br()
7704
- ]);
7705
- ui[stack.name] = {
7706
- start: (value) => {
7707
- const [spinner, stop] = createSpinner();
7708
- name.set(style.label(stack.name));
7709
- icon.set(spinner);
7710
- status2.set(style.warning(value));
7711
- stopSpinner = stop;
7712
- },
7713
- done(value) {
7714
- stopSpinner();
7715
- icon.set(style.success(symbol.success));
7716
- status2.set(style.success(value));
7717
- },
7718
- fail(value) {
7719
- stopSpinner();
7720
- icon.set(style.error(symbol.error));
7721
- status2.set(style.error(value));
7722
- },
7723
- warn(value) {
7724
- stopSpinner();
7725
- icon.set(style.warning(symbol.warning));
7726
- status2.set(style.warning(value));
7727
- }
7728
- };
7705
+ // src/cli/ui/complex/task-group.ts
7706
+ import { promise as promise2 } from "fastq";
7707
+ var runTaskGroup = (concurrency, tasks) => {
7708
+ const formatLabel = padText(tasks.map((task) => task?.label ?? ""));
7709
+ return async (term) => {
7710
+ const queue2 = promise2(async (task) => {
7711
+ const [icon, stop] = createSpinner();
7712
+ const status2 = new Signal("");
7713
+ const entry = new Signal([
7714
+ icon,
7715
+ " ",
7716
+ style.label(formatLabel(task.label)),
7717
+ " ",
7718
+ style.placeholder(symbol.pointerSmall),
7719
+ " ",
7720
+ status2,
7721
+ br()
7722
+ ]);
7723
+ term.out.write(entry);
7724
+ let result;
7725
+ try {
7726
+ result = await task.task((text) => {
7727
+ status2.set(text);
7728
+ });
7729
+ } catch (error) {
7730
+ icon.set(style.error(symbol.error));
7731
+ status2.update(style.error);
7732
+ throw error;
7733
+ } finally {
7734
+ stop();
7735
+ }
7736
+ switch (result) {
7737
+ case "done":
7738
+ icon.set(style.success(symbol.success));
7739
+ status2.update(style.success);
7740
+ break;
7741
+ case "fail":
7742
+ icon.set(style.error(symbol.error));
7743
+ status2.update(style.error);
7744
+ break;
7745
+ case "warn":
7746
+ icon.set(style.warning(symbol.warning));
7747
+ status2.update(style.warning);
7748
+ break;
7749
+ }
7750
+ }, concurrency);
7751
+ const results = await Promise.allSettled(
7752
+ tasks.map((task) => {
7753
+ return queue2.push(task);
7754
+ })
7755
+ );
7756
+ for (const result of results) {
7757
+ if (result.status === "rejected") {
7758
+ throw result.reason;
7729
7759
  }
7730
7760
  }
7731
- term.out.write(flexLine(term, [" "], [" ", style.warning("\u26A1\uFE0F"), style.placeholder("\u2500\u2500")]));
7732
- term.out.gap();
7733
- return ui;
7734
7761
  };
7735
7762
  };
7736
7763
 
7737
7764
  // src/cli/command/status.ts
7738
7765
  var status = (program2) => {
7739
7766
  program2.command("status").argument("[stacks...]", "Optionally filter stacks to lookup status").description("View the app status").action(async (filters) => {
7740
- await layout(async (config2, write) => {
7767
+ await layout(async (config2, write, term) => {
7741
7768
  const { app, deploymentLine } = await toApp(config2, filters);
7742
7769
  await cleanUp();
7743
7770
  await write(typesGenerator(config2));
@@ -7745,29 +7772,37 @@ var status = (program2) => {
7745
7772
  await write(templateBuilder(app));
7746
7773
  const doneLoading = write(loadingDialog("Loading stack information..."));
7747
7774
  const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
7748
- const statuses = [];
7749
- const ui = write(stacksDeployer(deploymentLine));
7775
+ let hasUndeployedChanges = false;
7750
7776
  debug("Load metadata for all deployed stacks on AWS");
7751
- await Promise.all(
7752
- app.stacks.map(async (stack) => {
7753
- const item = ui[stack.name];
7754
- item.start("loading");
7755
- const info = await client.get(stack.name, stack.region);
7756
- if (!info) {
7757
- item.fail("NON EXISTENT");
7758
- statuses.push("non-existent");
7759
- } else if (info.template !== stack.toString()) {
7760
- item.warn("OUT OF DATE");
7761
- statuses.push("out-of-date");
7762
- } else {
7763
- item.done("UP TO DATE");
7764
- statuses.push("up-to-date");
7765
- }
7766
- })
7777
+ term.out.gap();
7778
+ await write(
7779
+ runTaskGroup(
7780
+ 5,
7781
+ deploymentLine.flat().map((stack) => ({
7782
+ label: stack.name,
7783
+ task: async (update) => {
7784
+ update("Loading...");
7785
+ const info = await client.get(stack.name, stack.region);
7786
+ if (!info) {
7787
+ update("NON EXISTENT");
7788
+ hasUndeployedChanges = true;
7789
+ return "fail";
7790
+ } else if (info.template !== stack.toString()) {
7791
+ update("OUT OF DATE");
7792
+ hasUndeployedChanges = true;
7793
+ return "warn";
7794
+ } else {
7795
+ update("UP TO DATE");
7796
+ return "done";
7797
+ }
7798
+ }
7799
+ }))
7800
+ )
7767
7801
  );
7802
+ term.out.gap();
7768
7803
  doneLoading("Done loading stack information");
7769
7804
  debug("Done loading data for all deployed stacks on AWS");
7770
- if (statuses.includes("non-existent") || statuses.includes("out-of-date")) {
7805
+ if (hasUndeployedChanges) {
7771
7806
  write(dialog("warning", ["Your app has undeployed changes !!!"]));
7772
7807
  } else {
7773
7808
  write(dialog("success", ["Your app has not been changed"]));
@@ -7780,8 +7815,9 @@ var status = (program2) => {
7780
7815
  import { readFile as readFile7 } from "fs/promises";
7781
7816
  import { join as join10 } from "path";
7782
7817
  import { GetObjectCommand, ObjectCannedACL as ObjectCannedACL2, PutObjectCommand as PutObjectCommand2, S3Client as S3Client2, StorageClass as StorageClass2 } from "@aws-sdk/client-s3";
7783
- import { promise as promise2 } from "fastq";
7818
+ import { promise as promise3 } from "fastq";
7784
7819
  var assetPublisher = (config2, app) => {
7820
+ debug("Start publishing assets to AWS");
7785
7821
  const client = new S3Client2({
7786
7822
  credentials: config2.credentials,
7787
7823
  region: config2.app.region,
@@ -7789,7 +7825,7 @@ var assetPublisher = (config2, app) => {
7789
7825
  });
7790
7826
  return async (term) => {
7791
7827
  const done = term.out.write(loadingDialog("Publishing stack assets to AWS..."));
7792
- const queue2 = promise2(async ({ stack, asset }) => {
7828
+ const queue2 = promise3(async ({ stack, asset }) => {
7793
7829
  const getFullPath = (file) => {
7794
7830
  return join10(directories.asset, asset.type, app.name, stack.name, asset.id, file);
7795
7831
  };
@@ -7822,13 +7858,15 @@ var assetPublisher = (config2, app) => {
7822
7858
  throw error;
7823
7859
  }
7824
7860
  }
7825
- if (getResult?.Metadata?.hash === hash) {
7861
+ if (getResult?.Metadata?.hash === hash.toString("utf8")) {
7862
+ debug("Skip publishing:", style.info(key));
7826
7863
  return {
7827
7864
  bucket,
7828
7865
  key,
7829
7866
  version: getResult.VersionId
7830
7867
  };
7831
7868
  }
7869
+ debug("Publish:", style.info(key), getResult?.Metadata?.hash, hash.toString("utf8"));
7832
7870
  const putResult = await client.send(
7833
7871
  new PutObjectCommand2({
7834
7872
  Bucket: bucket,
@@ -8151,6 +8189,7 @@ var singleTester = (stack, dir, filters) => {
8151
8189
  };
8152
8190
  var runTester = (tests, filters = []) => {
8153
8191
  return async (term) => {
8192
+ term.out.gap();
8154
8193
  for (const [name, paths] of tests.entries()) {
8155
8194
  for (const path of paths) {
8156
8195
  const result = await term.out.write(singleTester(name, path, filters));
@@ -8159,6 +8198,7 @@ var runTester = (tests, filters = []) => {
8159
8198
  }
8160
8199
  }
8161
8200
  }
8201
+ term.out.gap();
8162
8202
  return true;
8163
8203
  };
8164
8204
  };
@@ -8166,7 +8206,7 @@ var runTester = (tests, filters = []) => {
8166
8206
  // src/cli/command/deploy.ts
8167
8207
  var deploy = (program2) => {
8168
8208
  program2.command("deploy").argument("[stacks...]", "Optionally filter stacks to deploy").description("Deploy your app to AWS").action(async (filters) => {
8169
- await layout(async (config2, write) => {
8209
+ await layout(async (config2, write, term) => {
8170
8210
  await write(bootstrapDeployer(config2));
8171
8211
  const { app, deploymentLine, tests } = await toApp(config2, filters);
8172
8212
  const stackNames = app.stacks.map((stack) => stack.name);
@@ -8195,28 +8235,30 @@ var deploy = (program2) => {
8195
8235
  await write(templateBuilder(app));
8196
8236
  const doneDeploying = write(loadingDialog("Deploying stacks to AWS..."));
8197
8237
  const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
8198
- const ui = write(stacksDeployer(deploymentLine));
8199
- for (const line2 of deploymentLine) {
8200
- const results = await Promise.allSettled(
8201
- line2.map(async (stack) => {
8202
- const item = ui[stack.name];
8203
- item.start("deploying");
8204
- try {
8205
- await client.deploy(stack);
8206
- } catch (error) {
8207
- debugError(error);
8208
- item.fail("failed");
8209
- throw error;
8210
- }
8211
- item.done("deployed");
8212
- })
8238
+ term.out.gap();
8239
+ for (const stacks of deploymentLine) {
8240
+ await write(
8241
+ runTaskGroup(
8242
+ 5,
8243
+ stacks.map((stack) => ({
8244
+ label: stack.name,
8245
+ task: async (update) => {
8246
+ update("deploying...");
8247
+ try {
8248
+ await client.deploy(stack);
8249
+ } catch (error) {
8250
+ debugError(error);
8251
+ update("failed");
8252
+ throw error;
8253
+ }
8254
+ update("deployed");
8255
+ return "done";
8256
+ }
8257
+ }))
8258
+ )
8213
8259
  );
8214
- for (const result of results) {
8215
- if (result.status === "rejected") {
8216
- throw result.reason;
8217
- }
8218
- }
8219
8260
  }
8261
+ term.out.gap();
8220
8262
  doneDeploying("Done deploying stacks to AWS");
8221
8263
  });
8222
8264
  });
@@ -8395,8 +8437,8 @@ var types = (program2) => {
8395
8437
  // src/config/watch.ts
8396
8438
  import { watch } from "chokidar";
8397
8439
  var watchConfig = async (options, resolve, reject) => {
8398
- const configFile = options.configFile || "app.json";
8399
- const root2 = await findRootDir(process.cwd(), configFile);
8440
+ const configFileOptions = options.configFile ? [options.configFile] : ["app.json", "app.jsonc", "app.json5"];
8441
+ const [_, root2] = await findRootDir(process.cwd(), configFileOptions);
8400
8442
  setRoot(root2);
8401
8443
  debug("CWD:", style.info(root2));
8402
8444
  debug("Start watching...");
@@ -8453,7 +8495,7 @@ var dev = (program2) => {
8453
8495
  // src/cli/command/delete.ts
8454
8496
  var del2 = (program2) => {
8455
8497
  program2.command("delete").argument("[stacks...]", "Optionally filter stacks to delete").description("Delete your app from AWS").action(async (filters) => {
8456
- await layout(async (config2, write) => {
8498
+ await layout(async (config2, write, term) => {
8457
8499
  const { app, deploymentLine } = await toApp(config2, filters);
8458
8500
  const deletingLine = deploymentLine.reverse();
8459
8501
  const stackNames = app.stacks.map((stack) => stack.name);
@@ -8477,28 +8519,30 @@ var del2 = (program2) => {
8477
8519
  }
8478
8520
  const doneDeploying = write(loadingDialog("Deleting stacks from AWS..."));
8479
8521
  const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
8480
- const ui = write(stacksDeployer(deletingLine));
8481
- for (const line2 of deletingLine) {
8482
- const results = await Promise.allSettled(
8483
- line2.map(async (stack) => {
8484
- const item = ui[stack.name];
8485
- item.start("deleting");
8486
- try {
8487
- await client.delete(stack.name, stack.region);
8488
- } catch (error) {
8489
- debugError(error);
8490
- item.fail("failed");
8491
- throw error;
8492
- }
8493
- item.done("deleted");
8494
- })
8522
+ term.out.gap();
8523
+ for (const stacks of deletingLine) {
8524
+ await write(
8525
+ runTaskGroup(
8526
+ 5,
8527
+ stacks.map((stack) => ({
8528
+ label: stack.name,
8529
+ task: async (update) => {
8530
+ update("deleting...");
8531
+ try {
8532
+ await client.delete(stack.name, stack.region);
8533
+ } catch (error) {
8534
+ debugError(error);
8535
+ update("failed");
8536
+ throw error;
8537
+ }
8538
+ update("deleted");
8539
+ return "done";
8540
+ }
8541
+ }))
8542
+ )
8495
8543
  );
8496
- for (const result of results) {
8497
- if (result.status === "rejected") {
8498
- throw result.reason;
8499
- }
8500
- }
8501
8544
  }
8545
+ term.out.gap();
8502
8546
  doneDeploying("Done deleting stacks from AWS");
8503
8547
  });
8504
8548
  });
@@ -8534,6 +8578,7 @@ var commands2 = [
8534
8578
  dev,
8535
8579
  config,
8536
8580
  test
8581
+ // draw,
8537
8582
  // diff,
8538
8583
  // remove,
8539
8584
  ];
package/dist/index.d.ts CHANGED
@@ -57,6 +57,7 @@ declare const AppSchema: z.ZodObject<{
57
57
  fromName?: string | undefined;
58
58
  replyTo?: string | undefined;
59
59
  }>>;
60
+ secret: z.ZodDefault<z.ZodBoolean>;
60
61
  username: z.ZodDefault<z.ZodObject<{
61
62
  emailAlias: z.ZodDefault<z.ZodBoolean>;
62
63
  caseSensitive: z.ZodDefault<z.ZodBoolean>;
@@ -1359,6 +1360,7 @@ declare const AppSchema: z.ZodObject<{
1359
1360
  }>>;
1360
1361
  }, "strip", z.ZodTypeAny, {
1361
1362
  allowUserRegistration: boolean;
1363
+ secret: boolean;
1362
1364
  username: {
1363
1365
  emailAlias: boolean;
1364
1366
  caseSensitive: boolean;
@@ -1615,6 +1617,7 @@ declare const AppSchema: z.ZodObject<{
1615
1617
  fromName?: string | undefined;
1616
1618
  replyTo?: string | undefined;
1617
1619
  } | undefined;
1620
+ secret?: boolean | undefined;
1618
1621
  username?: {
1619
1622
  emailAlias?: boolean | undefined;
1620
1623
  caseSensitive?: boolean | undefined;
@@ -2075,6 +2078,7 @@ declare const AppSchema: z.ZodObject<{
2075
2078
  };
2076
2079
  auth: Record<string, {
2077
2080
  allowUserRegistration: boolean;
2081
+ secret: boolean;
2078
2082
  username: {
2079
2083
  emailAlias: boolean;
2080
2084
  caseSensitive: boolean;
@@ -2367,6 +2371,7 @@ declare const AppSchema: z.ZodObject<{
2367
2371
  fromName?: string | undefined;
2368
2372
  replyTo?: string | undefined;
2369
2373
  } | undefined;
2374
+ secret?: boolean | undefined;
2370
2375
  username?: {
2371
2376
  emailAlias?: boolean | undefined;
2372
2377
  caseSensitive?: boolean | undefined;
@@ -2703,6 +2708,7 @@ declare const AppSchema: z.ZodObject<{
2703
2708
  };
2704
2709
  auth: Record<string, {
2705
2710
  allowUserRegistration: boolean;
2711
+ secret: boolean;
2706
2712
  username: {
2707
2713
  emailAlias: boolean;
2708
2714
  caseSensitive: boolean;
@@ -3003,6 +3009,7 @@ declare const AppSchema: z.ZodObject<{
3003
3009
  fromName?: string | undefined;
3004
3010
  replyTo?: string | undefined;
3005
3011
  } | undefined;
3012
+ secret?: boolean | undefined;
3006
3013
  username?: {
3007
3014
  emailAlias?: boolean | undefined;
3008
3015
  caseSensitive?: boolean | undefined;
package/dist/json.js CHANGED
@@ -378,6 +378,7 @@ var AuthDefaultSchema = z10.record(
378
378
  "The destination to which the receiver of the email should reply."
379
379
  )
380
380
  }).optional().describe("The email configuration for sending messages."),
381
+ secret: z10.boolean().default(false).describe("Specifies whether you want to generate a client secret."),
381
382
  username: z10.object({
382
383
  emailAlias: z10.boolean().default(true).describe("Allow the user email to be used as username."),
383
384
  caseSensitive: z10.boolean().default(false).describe(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/awsless",
3
- "version": "0.0.142",
3
+ "version": "0.0.144",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -28,12 +28,12 @@
28
28
  }
29
29
  },
30
30
  "peerDependencies": {
31
- "@awsless/sns": "^0.0.7",
32
- "@awsless/redis": "^0.0.10",
33
31
  "@awsless/lambda": "^0.0.15",
32
+ "@awsless/ssm": "^0.0.7",
33
+ "@awsless/sns": "^0.0.7",
34
34
  "@awsless/sqs": "^0.0.7",
35
35
  "@awsless/validate": "^0.0.10",
36
- "@awsless/ssm": "^0.0.7",
36
+ "@awsless/redis": "^0.0.10",
37
37
  "@awsless/weak-cache": "^0.0.1"
38
38
  },
39
39
  "dependencies": {
@@ -88,12 +88,12 @@
88
88
  "zod": "^3.21.4",
89
89
  "zod-to-json-schema": "^3.22.3",
90
90
  "@awsless/code": "^0.0.10",
91
- "@awsless/graphql": "^0.0.6"
91
+ "@awsless/graphql": "^0.0.7"
92
92
  },
93
93
  "scripts": {
94
94
  "test": "pnpm code test",
95
- "term": "zsh -c 'node dist/bin.js ${*} --config-file=./test/_data/app.json' --",
96
- "berm": "zsh -c 'pnpm build; pnpm build-features; pnpm build-json-schema; node dist/bin.js ${*} --config-file=./test/_data/app.json' --",
95
+ "term": "zsh -c 'node dist/bin.js ${*} --config-file=./test/_data/app.jsonc' --",
96
+ "berm": "zsh -c 'pnpm build; pnpm build-features; pnpm build-json-schema; node dist/bin.js ${*} --config-file=./test/_data/app.jsonc' --",
97
97
  "build": "pnpm tsup src/index.ts src/bin.ts src/client.ts --format esm --dts --clean",
98
98
  "build-json-schema": "pnpm tsup src/config/json.ts --format esm; node ./dist/json.js",
99
99
  "build-features": "node ./features/build.js",