diff --git a/README.md b/README.md
index 441726e3..928224cd 100644
--- a/README.md
+++ b/README.md
@@ -667,7 +667,7 @@ Q4: What does this error mean - `"We currently do not support adding policies fo
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [external](#requirement\_external) | >= 1.0 |
| [local](#requirement\_local) | >= 1.0 |
| [null](#requirement\_null) | >= 2.0 |
@@ -676,7 +676,7 @@ Q4: What does this error mean - `"We currently do not support adding policies fo
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [external](#provider\_external) | >= 1.0 |
| [local](#provider\_local) | >= 1.0 |
| [null](#provider\_null) | >= 2.0 |
@@ -712,6 +712,7 @@ No modules.
| [aws_lambda_event_source_mapping.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
| [aws_lambda_function.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |
| [aws_lambda_function_event_invoke_config.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function_event_invoke_config) | resource |
+| [aws_lambda_function_recursion_config.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function_recursion_config) | resource |
| [aws_lambda_function_url.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function_url) | resource |
| [aws_lambda_layer_version.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_layer_version) | resource |
| [aws_lambda_permission.current_version_triggers](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
@@ -836,6 +837,7 @@ No modules.
| [publish](#input\_publish) | Whether to publish creation/change as new Lambda Function Version. | `bool` | `false` | no |
| [putin\_khuylo](#input\_putin\_khuylo) | Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo! | `bool` | `true` | no |
| [recreate\_missing\_package](#input\_recreate\_missing\_package) | Whether to recreate missing Lambda package if it is missing locally or not | `bool` | `true` | no |
+| [recursive\_loop](#input\_recursive\_loop) | Lambda function recursion configuration. Valid values are Allow or Terminate. | `string` | `null` | no |
| [replace\_security\_groups\_on\_destroy](#input\_replace\_security\_groups\_on\_destroy) | (Optional) When true, all security groups defined in vpc\_security\_group\_ids will be replaced with the default security group after the function is destroyed. Set the replacement\_security\_group\_ids variable to use a custom list of security groups for replacement instead. | `bool` | `null` | no |
| [replacement\_security\_group\_ids](#input\_replacement\_security\_group\_ids) | (Optional) List of security group IDs to assign to orphaned Lambda function network interfaces upon destruction. replace\_security\_groups\_on\_destroy must be set to true to use this attribute. | `list(string)` | `null` | no |
| [reserved\_concurrent\_executions](#input\_reserved\_concurrent\_executions) | The amount of reserved concurrent executions for this Lambda Function. A value of 0 disables Lambda Function from being triggered and -1 removes any concurrency limitations. Defaults to Unreserved Concurrency Limits -1. | `number` | `-1` | no |
diff --git a/examples/alias/README.md b/examples/alias/README.md
index eea4262c..c4037dd6 100644
--- a/examples/alias/README.md
+++ b/examples/alias/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/alias/versions.tf b/examples/alias/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/alias/versions.tf
+++ b/examples/alias/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/async/README.md b/examples/async/README.md
index 370ec6aa..bfc7647b 100644
--- a/examples/async/README.md
+++ b/examples/async/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/async/versions.tf b/examples/async/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/async/versions.tf
+++ b/examples/async/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/build-package/README.md b/examples/build-package/README.md
index bfb77c4c..d26739dd 100644
--- a/examples/build-package/README.md
+++ b/examples/build-package/README.md
@@ -22,7 +22,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/build-package/versions.tf b/examples/build-package/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/build-package/versions.tf
+++ b/examples/build-package/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/code-signing/README.md b/examples/code-signing/README.md
index cebebfc7..6d4317d8 100644
--- a/examples/code-signing/README.md
+++ b/examples/code-signing/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/code-signing/versions.tf b/examples/code-signing/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/code-signing/versions.tf
+++ b/examples/code-signing/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/complete/README.md b/examples/complete/README.md
index c82da9aa..edebc13a 100644
--- a/examples/complete/README.md
+++ b/examples/complete/README.md
@@ -21,14 +21,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/complete/main.tf b/examples/complete/main.tf
index fbb97cc3..0d87f3c1 100644
--- a/examples/complete/main.tf
+++ b/examples/complete/main.tf
@@ -26,6 +26,7 @@ module "lambda_function" {
ephemeral_storage_size = 10240
architectures = ["x86_64"]
publish = true
+ # recursive_loop = "Allow"
source_path = "${path.module}/../fixtures/python-app1"
diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/complete/versions.tf
+++ b/examples/complete/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/container-image/README.md b/examples/container-image/README.md
index 114eaba4..d7d83e0d 100644
--- a/examples/container-image/README.md
+++ b/examples/container-image/README.md
@@ -20,7 +20,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [docker](#requirement\_docker) | >= 3.0 |
| [random](#requirement\_random) | >= 2.0 |
@@ -28,7 +28,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/container-image/versions.tf b/examples/container-image/versions.tf
index b3e66a3f..5b04c7cd 100644
--- a/examples/container-image/versions.tf
+++ b/examples/container-image/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
docker = {
source = "kreuzwerker/docker"
diff --git a/examples/deploy/README.md b/examples/deploy/README.md
index 040e3354..86d5e5a5 100644
--- a/examples/deploy/README.md
+++ b/examples/deploy/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/deploy/versions.tf b/examples/deploy/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/deploy/versions.tf
+++ b/examples/deploy/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/event-source-mapping/README.md b/examples/event-source-mapping/README.md
index 857b018f..60c28525 100644
--- a/examples/event-source-mapping/README.md
+++ b/examples/event-source-mapping/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/event-source-mapping/main.tf b/examples/event-source-mapping/main.tf
index b7a714cc..f76d30c8 100644
--- a/examples/event-source-mapping/main.tf
+++ b/examples/event-source-mapping/main.tf
@@ -37,6 +37,9 @@ module "lambda_function" {
scaling_config = {
maximum_concurrency = 20
}
+ metrics_config = {
+ metrics = ["EventCount"]
+ }
}
dynamodb = {
event_source_arn = aws_dynamodb_table.this.stream_arn
diff --git a/examples/event-source-mapping/versions.tf b/examples/event-source-mapping/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/event-source-mapping/versions.tf
+++ b/examples/event-source-mapping/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/multiple-regions/README.md b/examples/multiple-regions/README.md
index 41bed35c..7c09e0b0 100644
--- a/examples/multiple-regions/README.md
+++ b/examples/multiple-regions/README.md
@@ -21,15 +21,15 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
-| [aws.us-east-1](#provider\_aws.us-east-1) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
+| [aws.us-east-1](#provider\_aws.us-east-1) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/multiple-regions/versions.tf b/examples/multiple-regions/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/multiple-regions/versions.tf
+++ b/examples/multiple-regions/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/runtimes/README.md b/examples/runtimes/README.md
index 9487e0a1..9e67eeb7 100644
--- a/examples/runtimes/README.md
+++ b/examples/runtimes/README.md
@@ -24,7 +24,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.2 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [http](#requirement\_http) | >= 3.0 |
| [random](#requirement\_random) | >= 3.0 |
@@ -32,7 +32,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [http](#provider\_http) | >= 3.0 |
| [random](#provider\_random) | >= 3.0 |
diff --git a/examples/runtimes/versions.tf b/examples/runtimes/versions.tf
index 6d7b7626..6c4e77fa 100644
--- a/examples/runtimes/versions.tf
+++ b/examples/runtimes/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/simple-cicd/README.md b/examples/simple-cicd/README.md
index dff217d9..2edb2e51 100644
--- a/examples/simple-cicd/README.md
+++ b/examples/simple-cicd/README.md
@@ -22,7 +22,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/simple-cicd/versions.tf b/examples/simple-cicd/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/simple-cicd/versions.tf
+++ b/examples/simple-cicd/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/simple/README.md b/examples/simple/README.md
index 3d408a17..bee54ded 100644
--- a/examples/simple/README.md
+++ b/examples/simple/README.md
@@ -20,7 +20,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/simple/versions.tf b/examples/simple/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/simple/versions.tf
+++ b/examples/simple/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/triggers/README.md b/examples/triggers/README.md
index 58e28d8e..c6a6fde9 100644
--- a/examples/triggers/README.md
+++ b/examples/triggers/README.md
@@ -21,14 +21,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/triggers/versions.tf b/examples/triggers/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/triggers/versions.tf
+++ b/examples/triggers/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/with-efs/README.md b/examples/with-efs/README.md
index 6a2c5983..742816ba 100644
--- a/examples/with-efs/README.md
+++ b/examples/with-efs/README.md
@@ -21,14 +21,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/with-efs/versions.tf b/examples/with-efs/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/with-efs/versions.tf
+++ b/examples/with-efs/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/with-vpc-s3-endpoint/README.md b/examples/with-vpc-s3-endpoint/README.md
index 33fe46cd..60a93661 100644
--- a/examples/with-vpc-s3-endpoint/README.md
+++ b/examples/with-vpc-s3-endpoint/README.md
@@ -22,14 +22,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 3.4 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.70 |
+| [aws](#provider\_aws) | >= 5.79 |
| [random](#provider\_random) | >= 3.4 |
## Modules
diff --git a/examples/with-vpc-s3-endpoint/versions.tf b/examples/with-vpc-s3-endpoint/versions.tf
index c07ee92d..7a4d860b 100644
--- a/examples/with-vpc-s3-endpoint/versions.tf
+++ b/examples/with-vpc-s3-endpoint/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/examples/with-vpc/README.md b/examples/with-vpc/README.md
index 2fe7760d..a29f0bb3 100644
--- a/examples/with-vpc/README.md
+++ b/examples/with-vpc/README.md
@@ -22,7 +22,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.70 |
+| [aws](#requirement\_aws) | >= 5.79 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/with-vpc/versions.tf b/examples/with-vpc/versions.tf
index 6d9488f3..5cf868aa 100644
--- a/examples/with-vpc/versions.tf
+++ b/examples/with-vpc/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
random = {
source = "hashicorp/random"
diff --git a/main.tf b/main.tf
index 5e3ed5de..c37d445c 100644
--- a/main.tf
+++ b/main.tf
@@ -405,6 +405,22 @@ resource "aws_lambda_event_source_mapping" "this" {
}
}
+ dynamic "metrics_config" {
+ for_each = try([each.value.metrics_config], [])
+
+ content {
+ metrics = metrics_config.value.metrics
+ }
+ }
+
+ dynamic "provisioned_poller_config" {
+ for_each = try([each.value.provisioned_poller_config], [])
+ content {
+ maximum_pollers = try(provisioned_poller_config.value.maximum_pollers, null)
+ minimum_pollers = try(provisioned_poller_config.value.minimum_pollers, null)
+ }
+ }
+
tags = merge(var.tags, try(each.value.tags, {}))
}
@@ -432,6 +448,13 @@ resource "aws_lambda_function_url" "this" {
}
}
+resource "aws_lambda_function_recursion_config" "this" {
+ count = local.create && var.create_function && !var.create_layer && var.recursive_loop == "Allow" ? 1 : 0
+
+ function_name = aws_lambda_function.this[0].function_name
+ recursive_loop = var.recursive_loop
+}
+
# This resource contains the extra information required by SAM CLI to provide the testing capabilities
# to the TF application. The required data is where SAM CLI can find the Lambda function source code
# and what are the resources that contain the building logic.
diff --git a/variables.tf b/variables.tf
index ae55c936..91ff6961 100644
--- a/variables.tf
+++ b/variables.tf
@@ -825,3 +825,13 @@ variable "logging_log_group" {
type = string
default = null
}
+
+############################################
+# Lambda Recursive Loop Settings
+############################################
+
+variable "recursive_loop" {
+ description = "Lambda function recursion configuration. Valid values are Allow or Terminate."
+ type = string
+ default = null
+}
diff --git a/versions.tf b/versions.tf
index 303bc003..bf462c65 100644
--- a/versions.tf
+++ b/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
external = {
source = "hashicorp/external"
diff --git a/wrappers/main.tf b/wrappers/main.tf
index bd3e58f2..d1acc1cf 100644
--- a/wrappers/main.tf
+++ b/wrappers/main.tf
@@ -99,6 +99,7 @@ module "wrapper" {
publish = try(each.value.publish, var.defaults.publish, false)
putin_khuylo = try(each.value.putin_khuylo, var.defaults.putin_khuylo, true)
recreate_missing_package = try(each.value.recreate_missing_package, var.defaults.recreate_missing_package, true)
+ recursive_loop = try(each.value.recursive_loop, var.defaults.recursive_loop, null)
replace_security_groups_on_destroy = try(each.value.replace_security_groups_on_destroy, var.defaults.replace_security_groups_on_destroy, null)
replacement_security_group_ids = try(each.value.replacement_security_group_ids, var.defaults.replacement_security_group_ids, null)
reserved_concurrent_executions = try(each.value.reserved_concurrent_executions, var.defaults.reserved_concurrent_executions, -1)
diff --git a/wrappers/versions.tf b/wrappers/versions.tf
index 303bc003..bf462c65 100644
--- a/wrappers/versions.tf
+++ b/wrappers/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 5.79"
}
external = {
source = "hashicorp/external"