From d5f4c2511239fa292f1aeb76e7e205063f241638 Mon Sep 17 00:00:00 2001
From: iodeslykos <42@iodeslykos.com>
Date: Mon, 23 Jun 2025 17:16:41 -0400
Subject: [PATCH 1/4] chore(pre-commit): autoupdate && run --all-files
---
.pre-commit-config.yaml | 2 +-
examples/table-bucket/main.tf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index ad3592ca..b84d048d 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.98.1
+ rev: v1.99.4
hooks:
- id: terraform_fmt
- id: terraform_wrapper_module_for_each
diff --git a/examples/table-bucket/main.tf b/examples/table-bucket/main.tf
index c6e51601..4a6a898a 100644
--- a/examples/table-bucket/main.tf
+++ b/examples/table-bucket/main.tf
@@ -152,7 +152,7 @@ module "kms" {
test = "StringLike"
variable = "kms:EncryptionContext:aws:s3:arn"
values = [
- "arn:aws:s3tables:${data.aws_region.this.name}:${data.aws_caller_identity.this.account_id}:bucket/${local.bucket_name}/table/*"
+ "arn:aws:s3tables:${data.aws_region.this.region}:${data.aws_caller_identity.this.account_id}:bucket/${local.bucket_name}/table/*"
]
}
]
From 6aca35a00160b757bfc4abdb497779c59d191fb9 Mon Sep 17 00:00:00 2001
From: iodeslykos <42@iodeslykos.com>
Date: Mon, 23 Jun 2025 17:20:49 -0400
Subject: [PATCH 2/4] fix(s3): name -> region
---
main.tf | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/main.tf b/main.tf
index e1c57510..45593c05 100644
--- a/main.tf
+++ b/main.tf
@@ -620,7 +620,7 @@ data "aws_iam_policy_document" "elb_log_delivery" {
# Policy for AWS Regions created before August 2022 (e.g. US East (N. Virginia), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland))
dynamic "statement" {
- for_each = { for k, v in local.elb_service_accounts : k => v if k == data.aws_region.current.name }
+ for_each = { for k, v in local.elb_service_accounts : k => v if k == data.aws_region.current.region }
content {
sid = format("ELBRegion%s", title(statement.key))
@@ -854,7 +854,7 @@ data "aws_iam_policy_document" "waf_log_delivery" {
condition {
test = "ArnLike"
- values = ["arn:aws:logs:${data.aws_region.current.name}:${data.aws_caller_identity.current.id}:*"]
+ values = ["arn:aws:logs:${data.aws_region.current.region}:${data.aws_caller_identity.current.id}:*"]
variable = "aws:SourceArn"
}
}
@@ -885,7 +885,7 @@ data "aws_iam_policy_document" "waf_log_delivery" {
condition {
test = "ArnLike"
- values = ["arn:aws:logs:${data.aws_region.current.name}:${data.aws_caller_identity.current.id}:*"]
+ values = ["arn:aws:logs:${data.aws_region.current.region}:${data.aws_caller_identity.current.id}:*"]
variable = "aws:SourceArn"
}
}
From f3be43bcfdb641831d2ef5fe8771db94f814fcda Mon Sep 17 00:00:00 2001
From: iodeslykos <42@iodeslykos.com>
Date: Mon, 23 Jun 2025 18:07:03 -0400
Subject: [PATCH 3/4] fix(s3): AWS Provider >= 6.0.0 + README.md
---
README.md | 4 ++--
versions.tf | 2 +-
wrappers/versions.tf | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 0fd6e03a..5f149254 100644
--- a/README.md
+++ b/README.md
@@ -152,13 +152,13 @@ Users of Terragrunt can achieve similar results by using modules provided in the
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.83 |
+| [aws](#requirement\_aws) | >= 6.0.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0.0 |
## Modules
diff --git a/versions.tf b/versions.tf
index e0d68841..a8ab2732 100644
--- a/versions.tf
+++ b/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0.0"
}
}
}
diff --git a/wrappers/versions.tf b/wrappers/versions.tf
index e0d68841..a8ab2732 100644
--- a/wrappers/versions.tf
+++ b/wrappers/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0.0"
}
}
}
From f3f42d8b9165d7caf2b764a4495ca561f5d93892 Mon Sep 17 00:00:00 2001
From: Anton Babenko
Date: Wed, 25 Jun 2025 12:37:45 +0200
Subject: [PATCH 4/4] Added support for region and fixed examples
---
README.md | 7 ++--
examples/account-public-access/README.md | 4 +--
examples/account-public-access/versions.tf | 4 +--
examples/complete/README.md | 6 ++--
examples/complete/versions.tf | 4 +--
examples/directory-bucket/README.md | 6 ++--
examples/directory-bucket/versions.tf | 4 +--
examples/notification/README.md | 6 ++--
examples/notification/versions.tf | 4 +--
examples/object/README.md | 6 ++--
examples/object/versions.tf | 4 +--
examples/s3-analytics/README.md | 6 ++--
examples/s3-analytics/versions.tf | 4 +--
examples/s3-inventory/README.md | 6 ++--
examples/s3-inventory/versions.tf | 4 +--
examples/s3-replication/README.md | 8 ++---
examples/s3-replication/versions.tf | 4 +--
examples/table-bucket/README.md | 6 ++--
examples/table-bucket/versions.tf | 4 +--
main.tf | 40 ++++++++++++++++++++++
modules/account-public-access/README.md | 6 ++--
modules/account-public-access/versions.tf | 4 +--
modules/notification/README.md | 6 ++--
modules/notification/versions.tf | 4 +--
modules/object/README.md | 6 ++--
modules/object/versions.tf | 4 +--
modules/table-bucket/README.md | 6 ++--
modules/table-bucket/versions.tf | 4 +--
variables.tf | 6 ++++
versions.tf | 4 +--
wrappers/account-public-access/versions.tf | 4 +--
wrappers/main.tf | 1 +
wrappers/notification/versions.tf | 4 +--
wrappers/object/versions.tf | 4 +--
wrappers/table-bucket/versions.tf | 4 +--
wrappers/versions.tf | 4 +--
36 files changed, 128 insertions(+), 80 deletions(-)
diff --git a/README.md b/README.md
index 5f149254..fa5926f4 100644
--- a/README.md
+++ b/README.md
@@ -151,14 +151,14 @@ Users of Terragrunt can achieve similar results by using modules provided in the
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 6.0.0 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.0.0 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
@@ -265,6 +265,7 @@ No modules.
| [owner](#input\_owner) | Bucket owner's display name and ID. Conflicts with `acl` | `map(string)` | `{}` | no |
| [policy](#input\_policy) | (Optional) A valid bucket policy JSON document. Note that if the policy document is not specific enough (but still valid), Terraform may view the policy as constantly changing in a terraform plan. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with Terraform, see the AWS IAM Policy Document Guide. | `string` | `null` | 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 |
+| [region](#input\_region) | Region where the resource(s) will be managed. Defaults to the region set in the provider configuration | `string` | `null` | no |
| [replication\_configuration](#input\_replication\_configuration) | Map containing cross-region replication configuration. | `any` | `{}` | no |
| [request\_payer](#input\_request\_payer) | (Optional) Specifies who should bear the cost of Amazon S3 data transfer. Can be either BucketOwner or Requester. By default, the owner of the S3 bucket would incur the costs of any data transfer. See Requester Pays Buckets developer guide for more information. | `string` | `null` | no |
| [restrict\_public\_buckets](#input\_restrict\_public\_buckets) | Whether Amazon S3 should restrict public bucket policies for this bucket. | `bool` | `true` | no |
diff --git a/examples/account-public-access/README.md b/examples/account-public-access/README.md
index 9dae8331..350725f5 100644
--- a/examples/account-public-access/README.md
+++ b/examples/account-public-access/README.md
@@ -19,8 +19,8 @@ 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 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/account-public-access/versions.tf b/examples/account-public-access/versions.tf
index 6d9488f3..9af58496 100644
--- a/examples/account-public-access/versions.tf
+++ b/examples/account-public-access/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.70"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/complete/README.md b/examples/complete/README.md
index 079f346f..7a3bdf68 100644
--- a/examples/complete/README.md
+++ b/examples/complete/README.md
@@ -29,15 +29,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.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/complete/versions.tf
+++ b/examples/complete/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/directory-bucket/README.md b/examples/directory-bucket/README.md
index 1ce36553..8fa8d849 100644
--- a/examples/directory-bucket/README.md
+++ b/examples/directory-bucket/README.md
@@ -19,15 +19,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.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/directory-bucket/versions.tf b/examples/directory-bucket/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/directory-bucket/versions.tf
+++ b/examples/directory-bucket/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/notification/README.md b/examples/notification/README.md
index 8c331142..1510530a 100644
--- a/examples/notification/README.md
+++ b/examples/notification/README.md
@@ -19,8 +19,8 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [null](#requirement\_null) | >= 2.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.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [null](#provider\_null) | >= 2.0 |
| [random](#provider\_random) | >= 2.0 |
diff --git a/examples/notification/versions.tf b/examples/notification/versions.tf
index bd90e261..a387cec5 100644
--- a/examples/notification/versions.tf
+++ b/examples/notification/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/object/README.md b/examples/object/README.md
index f694e65d..5c8c6a78 100644
--- a/examples/object/README.md
+++ b/examples/object/README.md
@@ -19,15 +19,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.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/object/versions.tf b/examples/object/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/object/versions.tf
+++ b/examples/object/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-analytics/README.md b/examples/s3-analytics/README.md
index c2148d9e..295dcb7f 100644
--- a/examples/s3-analytics/README.md
+++ b/examples/s3-analytics/README.md
@@ -9,15 +9,15 @@ Please check [complete example](https://github.com/terraform-aws-modules/terrafo
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-analytics/versions.tf b/examples/s3-analytics/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/s3-analytics/versions.tf
+++ b/examples/s3-analytics/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-inventory/README.md b/examples/s3-inventory/README.md
index fb67fb8d..4b58a1d6 100644
--- a/examples/s3-inventory/README.md
+++ b/examples/s3-inventory/README.md
@@ -9,15 +9,15 @@ Please check [complete example](https://github.com/terraform-aws-modules/terrafo
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-inventory/versions.tf b/examples/s3-inventory/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/s3-inventory/versions.tf
+++ b/examples/s3-inventory/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-replication/README.md b/examples/s3-replication/README.md
index e85b5c03..80662a0d 100644
--- a/examples/s3-replication/README.md
+++ b/examples/s3-replication/README.md
@@ -21,16 +21,16 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.83 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.83 |
-| [aws.replica](#provider\_aws.replica) | >= 5.83 |
+| [aws](#provider\_aws) | >= 6.0 |
+| [aws.replica](#provider\_aws.replica) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-replication/versions.tf b/examples/s3-replication/versions.tf
index 9ef2d5d8..9af58496 100644
--- a/examples/s3-replication/versions.tf
+++ b/examples/s3-replication/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.83"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/table-bucket/README.md b/examples/table-bucket/README.md
index 836464f5..5ab6af70 100644
--- a/examples/table-bucket/README.md
+++ b/examples/table-bucket/README.md
@@ -19,15 +19,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.98 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.98 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/table-bucket/versions.tf b/examples/table-bucket/versions.tf
index 6d2b2999..9af58496 100644
--- a/examples/table-bucket/versions.tf
+++ b/examples/table-bucket/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.98"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/main.tf b/main.tf
index 45593c05..697aef1a 100644
--- a/main.tf
+++ b/main.tf
@@ -25,6 +25,8 @@ locals {
resource "aws_s3_bucket" "this" {
count = local.create_bucket && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = var.bucket
bucket_prefix = var.bucket_prefix
@@ -36,6 +38,8 @@ resource "aws_s3_bucket" "this" {
resource "aws_s3_directory_bucket" "this" {
count = local.create_bucket && var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = "${var.bucket}--${var.availability_zone_id}--x-s3"
data_redundancy = var.data_redundancy
force_destroy = var.force_destroy
@@ -50,6 +54,8 @@ resource "aws_s3_directory_bucket" "this" {
resource "aws_s3_bucket_logging" "this" {
count = local.create_bucket && length(keys(var.logging)) > 0 && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
target_bucket = var.logging["target_bucket"]
@@ -79,6 +85,8 @@ resource "aws_s3_bucket_logging" "this" {
resource "aws_s3_bucket_acl" "this" {
count = local.create_bucket && local.create_bucket_acl && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -118,6 +126,8 @@ resource "aws_s3_bucket_acl" "this" {
resource "aws_s3_bucket_website_configuration" "this" {
count = local.create_bucket && length(keys(var.website)) > 0 && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -173,6 +183,8 @@ resource "aws_s3_bucket_website_configuration" "this" {
resource "aws_s3_bucket_versioning" "this" {
count = local.create_bucket && length(keys(var.versioning)) > 0 && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
mfa = try(var.versioning["mfa"], null)
@@ -189,6 +201,8 @@ resource "aws_s3_bucket_versioning" "this" {
resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
count = local.create_bucket && length(keys(var.server_side_encryption_configuration)) > 0 ? 1 : 0
+ region = var.region
+
bucket = var.is_directory_bucket ? aws_s3_directory_bucket.this[0].bucket : aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -213,6 +227,8 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
resource "aws_s3_bucket_accelerate_configuration" "this" {
count = local.create_bucket && var.acceleration_status != null && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -223,6 +239,8 @@ resource "aws_s3_bucket_accelerate_configuration" "this" {
resource "aws_s3_bucket_request_payment_configuration" "this" {
count = local.create_bucket && var.request_payer != null && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -233,6 +251,8 @@ resource "aws_s3_bucket_request_payment_configuration" "this" {
resource "aws_s3_bucket_cors_configuration" "this" {
count = local.create_bucket && length(local.cors_rules) > 0 && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
@@ -253,6 +273,8 @@ resource "aws_s3_bucket_cors_configuration" "this" {
resource "aws_s3_bucket_lifecycle_configuration" "this" {
count = local.create_bucket && length(local.lifecycle_rules) > 0 ? 1 : 0
+ region = var.region
+
bucket = var.is_directory_bucket ? aws_s3_directory_bucket.this[0].bucket : aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
transition_default_minimum_object_size = var.transition_default_minimum_object_size
@@ -369,6 +391,8 @@ resource "aws_s3_bucket_lifecycle_configuration" "this" {
resource "aws_s3_bucket_object_lock_configuration" "this" {
count = local.create_bucket && var.object_lock_enabled && try(var.object_lock_configuration.rule.default_retention, null) != null ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
expected_bucket_owner = var.expected_bucket_owner
token = try(var.object_lock_configuration.token, null)
@@ -385,6 +409,8 @@ resource "aws_s3_bucket_object_lock_configuration" "this" {
resource "aws_s3_bucket_replication_configuration" "this" {
count = local.create_bucket && length(keys(var.replication_configuration)) > 0 && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
role = var.replication_configuration["role"]
@@ -550,6 +576,8 @@ resource "aws_s3_bucket_replication_configuration" "this" {
resource "aws_s3_bucket_policy" "this" {
count = local.create_bucket && local.attach_policy ? 1 : 0
+ region = var.region
+
# Chain resources (s3_bucket -> s3_bucket_public_access_block -> s3_bucket_policy )
# to prevent "A conflicting conditional operation is currently in progress against this resource."
# Ref: https://github.com/hashicorp/terraform-provider-aws/issues/7628
@@ -1108,6 +1136,8 @@ data "aws_iam_policy_document" "deny_ssec_encrypted_object_uploads" {
resource "aws_s3_bucket_public_access_block" "this" {
count = local.create_bucket && var.attach_public_policy && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
block_public_acls = var.block_public_acls
@@ -1119,6 +1149,8 @@ resource "aws_s3_bucket_public_access_block" "this" {
resource "aws_s3_bucket_ownership_controls" "this" {
count = local.create_bucket && var.control_object_ownership && !var.is_directory_bucket ? 1 : 0
+ region = var.region
+
bucket = local.attach_policy ? aws_s3_bucket_policy.this[0].id : aws_s3_bucket.this[0].id
rule {
@@ -1136,6 +1168,8 @@ resource "aws_s3_bucket_ownership_controls" "this" {
resource "aws_s3_bucket_intelligent_tiering_configuration" "this" {
for_each = { for k, v in local.intelligent_tiering : k => v if local.create_bucket && !var.is_directory_bucket }
+ region = var.region
+
name = each.key
bucket = aws_s3_bucket.this[0].id
status = try(tobool(each.value.status) ? "Enabled" : "Disabled", title(lower(each.value.status)), null)
@@ -1164,6 +1198,8 @@ resource "aws_s3_bucket_intelligent_tiering_configuration" "this" {
resource "aws_s3_bucket_metric" "this" {
for_each = { for k, v in local.metric_configuration : k => v if local.create_bucket && !var.is_directory_bucket }
+ region = var.region
+
name = each.value.name
bucket = aws_s3_bucket.this[0].id
@@ -1179,6 +1215,8 @@ resource "aws_s3_bucket_metric" "this" {
resource "aws_s3_bucket_inventory" "this" {
for_each = { for k, v in var.inventory_configuration : k => v if local.create_bucket && !var.is_directory_bucket }
+ region = var.region
+
name = each.key
bucket = try(each.value.bucket, aws_s3_bucket.this[0].id)
included_object_versions = each.value.included_object_versions
@@ -1280,6 +1318,8 @@ data "aws_iam_policy_document" "inventory_and_analytics_destination_policy" {
resource "aws_s3_bucket_analytics_configuration" "this" {
for_each = { for k, v in var.analytics_configuration : k => v if local.create_bucket && !var.is_directory_bucket }
+ region = var.region
+
bucket = aws_s3_bucket.this[0].id
name = each.key
diff --git a/modules/account-public-access/README.md b/modules/account-public-access/README.md
index 4c6fadd5..774133e6 100644
--- a/modules/account-public-access/README.md
+++ b/modules/account-public-access/README.md
@@ -11,14 +11,14 @@ Each AWS account may only have one S3 Public Access Block configuration.
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 3.74 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 3.74 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/modules/account-public-access/versions.tf b/modules/account-public-access/versions.tf
index ff97a040..f648e20c 100644
--- a/modules/account-public-access/versions.tf
+++ b/modules/account-public-access/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 3.74"
+ version = ">= 6.0"
}
}
}
diff --git a/modules/notification/README.md b/modules/notification/README.md
index d2fb883e..e528fb97 100644
--- a/modules/notification/README.md
+++ b/modules/notification/README.md
@@ -7,14 +7,14 @@ Creates S3 bucket notification resource with all supported types of deliveries:
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 3.74 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 3.74 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/modules/notification/versions.tf b/modules/notification/versions.tf
index ff97a040..f648e20c 100644
--- a/modules/notification/versions.tf
+++ b/modules/notification/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 3.74"
+ version = ">= 6.0"
}
}
}
diff --git a/modules/object/README.md b/modules/object/README.md
index ac397c1f..24e8a6dd 100644
--- a/modules/object/README.md
+++ b/modules/object/README.md
@@ -7,14 +7,14 @@ Creates S3 bucket objects with different configurations.
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.24 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.24 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/modules/object/versions.tf b/modules/object/versions.tf
index a9c2eed5..f648e20c 100644
--- a/modules/object/versions.tf
+++ b/modules/object/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.24"
+ version = ">= 6.0"
}
}
}
diff --git a/modules/table-bucket/README.md b/modules/table-bucket/README.md
index a4ae6942..8ef7ff99 100644
--- a/modules/table-bucket/README.md
+++ b/modules/table-bucket/README.md
@@ -7,14 +7,14 @@ Creates S3 Table Bucket and Tables with various configurations.
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.98 |
+| [terraform](#requirement\_terraform) | >= 1.10 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.98 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/modules/table-bucket/versions.tf b/modules/table-bucket/versions.tf
index e1389835..f648e20c 100644
--- a/modules/table-bucket/versions.tf
+++ b/modules/table-bucket/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.98"
+ version = ">= 6.0"
}
}
}
diff --git a/variables.tf b/variables.tf
index 4652acff..9a97214e 100644
--- a/variables.tf
+++ b/variables.tf
@@ -100,6 +100,12 @@ variable "attach_waf_log_delivery_policy" {
default = false
}
+variable "region" {
+ description = "Region where the resource(s) will be managed. Defaults to the region set in the provider configuration"
+ type = string
+ default = null
+}
+
variable "bucket" {
description = "(Optional, Forces new resource) The name of the bucket. If omitted, Terraform will assign a random, unique name."
type = string
diff --git a/versions.tf b/versions.tf
index a8ab2732..f648e20c 100644
--- a/versions.tf
+++ b/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.0.0"
+ version = ">= 6.0"
}
}
}
diff --git a/wrappers/account-public-access/versions.tf b/wrappers/account-public-access/versions.tf
index ff97a040..f648e20c 100644
--- a/wrappers/account-public-access/versions.tf
+++ b/wrappers/account-public-access/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 3.74"
+ version = ">= 6.0"
}
}
}
diff --git a/wrappers/main.tf b/wrappers/main.tf
index e1a39316..def69e27 100644
--- a/wrappers/main.tf
+++ b/wrappers/main.tf
@@ -58,6 +58,7 @@ module "wrapper" {
owner = try(each.value.owner, var.defaults.owner, {})
policy = try(each.value.policy, var.defaults.policy, null)
putin_khuylo = try(each.value.putin_khuylo, var.defaults.putin_khuylo, true)
+ region = try(each.value.region, var.defaults.region, null)
replication_configuration = try(each.value.replication_configuration, var.defaults.replication_configuration, {})
request_payer = try(each.value.request_payer, var.defaults.request_payer, null)
restrict_public_buckets = try(each.value.restrict_public_buckets, var.defaults.restrict_public_buckets, true)
diff --git a/wrappers/notification/versions.tf b/wrappers/notification/versions.tf
index ff97a040..f648e20c 100644
--- a/wrappers/notification/versions.tf
+++ b/wrappers/notification/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 3.74"
+ version = ">= 6.0"
}
}
}
diff --git a/wrappers/object/versions.tf b/wrappers/object/versions.tf
index a9c2eed5..f648e20c 100644
--- a/wrappers/object/versions.tf
+++ b/wrappers/object/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.24"
+ version = ">= 6.0"
}
}
}
diff --git a/wrappers/table-bucket/versions.tf b/wrappers/table-bucket/versions.tf
index e1389835..f648e20c 100644
--- a/wrappers/table-bucket/versions.tf
+++ b/wrappers/table-bucket/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.98"
+ version = ">= 6.0"
}
}
}
diff --git a/wrappers/versions.tf b/wrappers/versions.tf
index a8ab2732..f648e20c 100644
--- a/wrappers/versions.tf
+++ b/wrappers/versions.tf
@@ -1,10 +1,10 @@
terraform {
- required_version = ">= 1.0"
+ required_version = ">= 1.10"
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.0.0"
+ version = ">= 6.0"
}
}
}