diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7e4e7da..b84d048 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.96.1 + rev: v1.99.4 hooks: - id: terraform_fmt - id: terraform_wrapper_module_for_each diff --git a/README.md b/README.md index 14bcb71..96162eb 100644 --- a/README.md +++ b/README.md @@ -67,14 +67,14 @@ Users of Terragrunt can achieve similar results by using modules provided in the | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.98 | +| [terraform](#requirement\_terraform) | >= 1.5.7 | +| [aws](#requirement\_aws) | >= 6.3 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.98 | +| [aws](#provider\_aws) | >= 6.3 | ## Modules @@ -121,6 +121,7 @@ No modules. | [point\_in\_time\_recovery\_period\_in\_days](#input\_point\_in\_time\_recovery\_period\_in\_days) | Number of preceding days for which continuous backups are taken and maintained. Default 35 | `number` | `null` | no | | [range\_key](#input\_range\_key) | The attribute to use as the range (sort) key. Must also be defined as an attribute | `string` | `null` | no | | [read\_capacity](#input\_read\_capacity) | The number of read units for this table. If the billing\_mode is PROVISIONED, this field should be greater than 0 | `number` | `null` | no | +| [region](#input\_region) | Region where this resource will be managed. Defaults to the Region set in the provider configuration | `string` | `null` | no | | [replica\_regions](#input\_replica\_regions) | Region names for creating replicas for a global DynamoDB table. | `any` | `[]` | no | | [resource\_policy](#input\_resource\_policy) | The JSON definition of the resource-based policy. | `string` | `null` | no | | [restore\_date\_time](#input\_restore\_date\_time) | Time of the point-in-time recovery point to restore. | `string` | `null` | no | diff --git a/examples/autoscaling/README.md b/examples/autoscaling/README.md index 2a7d2a0..1659cbc 100644 --- a/examples/autoscaling/README.md +++ b/examples/autoscaling/README.md @@ -19,8 +19,8 @@ Note that this example may create resources which can cost money (AWS Elastic IP | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.98 | +| [terraform](#requirement\_terraform) | >= 1.5.7 | +| [aws](#requirement\_aws) | >= 6.3 | | [random](#requirement\_random) | >= 2.0 | ## Providers diff --git a/examples/autoscaling/versions.tf b/examples/autoscaling/versions.tf index 6d2b299..4a8ec3e 100644 --- a/examples/autoscaling/versions.tf +++ b/examples/autoscaling/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } random = { source = "hashicorp/random" diff --git a/examples/basic/README.md b/examples/basic/README.md index 21f55c1..8d5e31f 100644 --- a/examples/basic/README.md +++ b/examples/basic/README.md @@ -19,8 +19,8 @@ Note that this example may create resources which can cost money (AWS Elastic IP | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.98 | +| [terraform](#requirement\_terraform) | >= 1.5.7 | +| [aws](#requirement\_aws) | >= 6.3 | | [random](#requirement\_random) | >= 2.0 | ## Providers diff --git a/examples/basic/versions.tf b/examples/basic/versions.tf index 6d2b299..4a8ec3e 100644 --- a/examples/basic/versions.tf +++ b/examples/basic/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } random = { source = "hashicorp/random" diff --git a/examples/global-tables/README.md b/examples/global-tables/README.md index d346a14..30d6b36 100644 --- a/examples/global-tables/README.md +++ b/examples/global-tables/README.md @@ -19,16 +19,16 @@ Note that this example may create resources which can cost money (AWS Elastic IP | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.98 | +| [terraform](#requirement\_terraform) | >= 1.5.7 | +| [aws](#requirement\_aws) | >= 6.3 | | [random](#requirement\_random) | >= 2.0 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.98 | -| [aws.euwest2](#provider\_aws.euwest2) | >= 5.98 | +| [aws](#provider\_aws) | >= 6.3 | +| [aws.euwest2](#provider\_aws.euwest2) | >= 6.3 | | [random](#provider\_random) | >= 2.0 | ## Modules diff --git a/examples/global-tables/versions.tf b/examples/global-tables/versions.tf index 6d2b299..4a8ec3e 100644 --- a/examples/global-tables/versions.tf +++ b/examples/global-tables/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } random = { source = "hashicorp/random" diff --git a/examples/s3-import/README.md b/examples/s3-import/README.md index 63bf58b..bd318d8 100644 --- a/examples/s3-import/README.md +++ b/examples/s3-import/README.md @@ -19,8 +19,8 @@ Note that this example may create resources which can cost money (AWS Elastic IP | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.98 | +| [terraform](#requirement\_terraform) | >= 1.5.7 | +| [aws](#requirement\_aws) | >= 6.3 | | [random](#requirement\_random) | >= 2.0 | ## Providers diff --git a/examples/s3-import/versions.tf b/examples/s3-import/versions.tf index 6d2b299..4a8ec3e 100644 --- a/examples/s3-import/versions.tf +++ b/examples/s3-import/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } random = { source = "hashicorp/random" diff --git a/main.tf b/main.tf index 91a2589..25b3064 100644 --- a/main.tf +++ b/main.tf @@ -15,6 +15,7 @@ resource "aws_dynamodb_table" "this" { stream_view_type = var.stream_view_type table_class = var.table_class deletion_protection_enabled = var.deletion_protection_enabled + region = var.region restore_date_time = var.restore_date_time restore_source_name = var.restore_source_name restore_source_table_arn = var.restore_source_table_arn @@ -81,6 +82,7 @@ resource "aws_dynamodb_table" "this" { kms_key_arn = lookup(replica.value, "kms_key_arn", null) propagate_tags = lookup(replica.value, "propagate_tags", null) point_in_time_recovery = lookup(replica.value, "point_in_time_recovery", null) + consistency_mode = try(replica.value.consistency_mode, null) } } @@ -156,6 +158,7 @@ resource "aws_dynamodb_table" "autoscaled" { stream_view_type = var.stream_view_type table_class = var.table_class deletion_protection_enabled = var.deletion_protection_enabled + region = var.region restore_date_time = var.restore_date_time restore_source_name = var.restore_source_name restore_source_table_arn = var.restore_source_table_arn @@ -222,6 +225,7 @@ resource "aws_dynamodb_table" "autoscaled" { kms_key_arn = lookup(replica.value, "kms_key_arn", null) propagate_tags = lookup(replica.value, "propagate_tags", null) point_in_time_recovery = lookup(replica.value, "point_in_time_recovery", null) + consistency_mode = try(replica.value.consistency_mode, null) } } @@ -301,6 +305,7 @@ resource "aws_dynamodb_table" "autoscaled_gsi_ignore" { stream_view_type = var.stream_view_type table_class = var.table_class deletion_protection_enabled = var.deletion_protection_enabled + region = var.region restore_date_time = var.restore_date_time restore_source_name = var.restore_source_name restore_source_table_arn = var.restore_source_table_arn @@ -358,6 +363,7 @@ resource "aws_dynamodb_table" "autoscaled_gsi_ignore" { kms_key_arn = lookup(replica.value, "kms_key_arn", null) propagate_tags = lookup(replica.value, "propagate_tags", null) point_in_time_recovery = lookup(replica.value, "point_in_time_recovery", null) + consistency_mode = try(replica.value.consistency_mode, null) } } @@ -387,6 +393,7 @@ resource "aws_dynamodb_table" "autoscaled_gsi_ignore" { resource "aws_dynamodb_resource_policy" "this" { count = var.create_table && var.resource_policy != null ? 1 : 0 + region = var.region resource_arn = local.dynamodb_table_arn policy = replace(var.resource_policy, "__DYNAMODB_TABLE_ARN__", local.dynamodb_table_arn) } diff --git a/variables.tf b/variables.tf index e5d42f4..942e28e 100644 --- a/variables.tf +++ b/variables.tf @@ -221,3 +221,9 @@ variable "resource_policy" { type = string default = null } + +variable "region" { + description = "Region where this resource will be managed. Defaults to the Region set in the provider configuration" + type = string + default = null +} diff --git a/versions.tf b/versions.tf index e138983..fd053a1 100644 --- a/versions.tf +++ b/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } } } diff --git a/wrappers/main.tf b/wrappers/main.tf index c24c994..9bfd996 100644 --- a/wrappers/main.tf +++ b/wrappers/main.tf @@ -27,6 +27,7 @@ module "wrapper" { point_in_time_recovery_period_in_days = try(each.value.point_in_time_recovery_period_in_days, var.defaults.point_in_time_recovery_period_in_days, null) range_key = try(each.value.range_key, var.defaults.range_key, null) read_capacity = try(each.value.read_capacity, var.defaults.read_capacity, null) + region = try(each.value.region, var.defaults.region, null) replica_regions = try(each.value.replica_regions, var.defaults.replica_regions, []) resource_policy = try(each.value.resource_policy, var.defaults.resource_policy, null) restore_date_time = try(each.value.restore_date_time, var.defaults.restore_date_time, null) diff --git a/wrappers/versions.tf b/wrappers/versions.tf index e138983..fd053a1 100644 --- a/wrappers/versions.tf +++ b/wrappers/versions.tf @@ -1,10 +1,10 @@ terraform { - required_version = ">= 1.0" + required_version = ">= 1.5.7" required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.98" + version = ">= 6.3" } } }