diff --git a/README.md b/README.md
index b7b7a17..66a6cf1 100644
--- a/README.md
+++ b/README.md
@@ -255,13 +255,13 @@ Terraform documentation is generated automatically using [pre-commit hooks](http
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
@@ -412,6 +412,7 @@ No modules.
| [preferred\_maintenance\_window](#input\_preferred\_maintenance\_window) | The weekly time range during which system maintenance can occur, in (UTC) | `string` | `"sun:05:00-sun:06:00"` | no |
| [publicly\_accessible](#input\_publicly\_accessible) | Determines whether instances are publicly accessible. Default `false` | `bool` | `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\_source\_identifier](#input\_replication\_source\_identifier) | ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica | `string` | `null` | no |
| [restore\_to\_point\_in\_time](#input\_restore\_to\_point\_in\_time) | Map of nested attributes for cloning Aurora cluster | `map(string)` | `{}` | no |
| [s3\_import](#input\_s3\_import) | Configuration map used to restore from a Percona Xtrabackup in S3 (only MySQL is supported) | `map(string)` | `{}` | no |
diff --git a/examples/autoscaling/README.md b/examples/autoscaling/README.md
index c40b4e5..4882d34 100644
--- a/examples/autoscaling/README.md
+++ b/examples/autoscaling/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/examples/autoscaling/versions.tf b/examples/autoscaling/versions.tf
index c00acf7..aaf26b8 100644
--- a/examples/autoscaling/versions.tf
+++ b/examples/autoscaling/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/dsql/README.md b/examples/dsql/README.md
index e381540..a77295d 100644
--- a/examples/dsql/README.md
+++ b/examples/dsql/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.100 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
diff --git a/examples/dsql/versions.tf b/examples/dsql/versions.tf
index 7aad8ab..aaf26b8 100644
--- a/examples/dsql/versions.tf
+++ b/examples/dsql/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.100"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/global-cluster/README.md b/examples/global-cluster/README.md
index af76781..0720695 100644
--- a/examples/global-cluster/README.md
+++ b/examples/global-cluster/README.md
@@ -20,15 +20,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.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 2.2 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
-| [aws.secondary](#provider\_aws.secondary) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
+| [aws.secondary](#provider\_aws.secondary) | >= 6.0 |
| [random](#provider\_random) | >= 2.2 |
## Modules
diff --git a/examples/global-cluster/versions.tf b/examples/global-cluster/versions.tf
index 157cc31..f1cdeaa 100644
--- a/examples/global-cluster/versions.tf
+++ b/examples/global-cluster/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
random = {
diff --git a/examples/limitless/README.md b/examples/limitless/README.md
index efbf8c2..f1095e2 100644
--- a/examples/limitless/README.md
+++ b/examples/limitless/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.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 3.5 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 3.5 |
## Modules
diff --git a/examples/limitless/versions.tf b/examples/limitless/versions.tf
index 2832cf7..198c044 100644
--- a/examples/limitless/versions.tf
+++ b/examples/limitless/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/examples/multi-az/README.md b/examples/multi-az/README.md
index d97a1a8..9b5c091 100644
--- a/examples/multi-az/README.md
+++ b/examples/multi-az/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/examples/multi-az/versions.tf b/examples/multi-az/versions.tf
index c00acf7..aaf26b8 100644
--- a/examples/multi-az/versions.tf
+++ b/examples/multi-az/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/mysql/README.md b/examples/mysql/README.md
index ec4fcab..896ffc7 100644
--- a/examples/mysql/README.md
+++ b/examples/mysql/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/examples/mysql/versions.tf b/examples/mysql/versions.tf
index c00acf7..aaf26b8 100644
--- a/examples/mysql/versions.tf
+++ b/examples/mysql/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/postgresql/README.md b/examples/postgresql/README.md
index 223fd64..0dc4e35 100644
--- a/examples/postgresql/README.md
+++ b/examples/postgresql/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/examples/postgresql/versions.tf b/examples/postgresql/versions.tf
index c00acf7..aaf26b8 100644
--- a/examples/postgresql/versions.tf
+++ b/examples/postgresql/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/s3-import/README.md b/examples/s3-import/README.md
index e128f91..72aaeed 100644
--- a/examples/s3-import/README.md
+++ b/examples/s3-import/README.md
@@ -49,13 +49,13 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
## Modules
diff --git a/examples/s3-import/versions.tf b/examples/s3-import/versions.tf
index c00acf7..aaf26b8 100644
--- a/examples/s3-import/versions.tf
+++ b/examples/s3-import/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}
diff --git a/examples/serverless/README.md b/examples/serverless/README.md
index 42eb54c..a0efad1 100644
--- a/examples/serverless/README.md
+++ b/examples/serverless/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.89 |
+| [aws](#requirement\_aws) | >= 6.0 |
| [random](#requirement\_random) | >= 3.5 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.89 |
+| [aws](#provider\_aws) | >= 6.0 |
| [random](#provider\_random) | >= 3.5 |
## Modules
diff --git a/examples/serverless/versions.tf b/examples/serverless/versions.tf
index 2832cf7..198c044 100644
--- a/examples/serverless/versions.tf
+++ b/examples/serverless/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
random = {
source = "hashicorp/random"
diff --git a/main.tf b/main.tf
index 4f56970..4a4b889 100644
--- a/main.tf
+++ b/main.tf
@@ -25,6 +25,8 @@ locals {
resource "aws_db_subnet_group" "this" {
count = local.create && var.create_db_subnet_group ? 1 : 0
+ region = var.region
+
name = local.internal_db_subnet_group_name
description = "For Aurora cluster ${var.name}"
subnet_ids = var.subnets
@@ -39,6 +41,8 @@ resource "aws_db_subnet_group" "this" {
resource "aws_rds_cluster" "this" {
count = local.create ? 1 : 0
+ region = var.region
+
allocated_storage = var.allocated_storage
allow_major_version_upgrade = var.allow_major_version_upgrade
apply_immediately = var.apply_immediately
@@ -172,6 +176,8 @@ resource "aws_rds_cluster" "this" {
resource "aws_rds_cluster_instance" "this" {
for_each = { for k, v in var.instances : k => v if local.create && !local.is_serverless }
+ region = var.region
+
apply_immediately = try(each.value.apply_immediately, var.apply_immediately)
auto_minor_version_upgrade = try(each.value.auto_minor_version_upgrade, var.auto_minor_version_upgrade)
availability_zone = try(each.value.availability_zone, null)
@@ -215,6 +221,8 @@ resource "aws_rds_cluster_instance" "this" {
resource "aws_rds_cluster_endpoint" "this" {
for_each = { for k, v in var.endpoints : k => v if local.create && !local.is_serverless }
+ region = var.region
+
cluster_endpoint_identifier = each.value.identifier
cluster_identifier = aws_rds_cluster.this[0].id
custom_endpoint_type = each.value.type
@@ -234,6 +242,8 @@ resource "aws_rds_cluster_endpoint" "this" {
resource "aws_rds_cluster_role_association" "this" {
for_each = { for k, v in var.iam_roles : k => v if local.create }
+ region = var.region
+
db_cluster_identifier = aws_rds_cluster.this[0].id
feature_name = each.value.feature_name
role_arn = each.value.role_arn
@@ -291,6 +301,8 @@ resource "aws_iam_role_policy_attachment" "rds_enhanced_monitoring" {
resource "aws_appautoscaling_target" "this" {
count = local.create && var.autoscaling_enabled && !local.is_serverless ? 1 : 0
+ region = var.region
+
max_capacity = var.autoscaling_max_capacity
min_capacity = var.autoscaling_min_capacity
resource_id = "cluster:${aws_rds_cluster.this[0].cluster_identifier}"
@@ -309,6 +321,8 @@ resource "aws_appautoscaling_target" "this" {
resource "aws_appautoscaling_policy" "this" {
count = local.create && var.autoscaling_enabled && !local.is_serverless ? 1 : 0
+ region = var.region
+
name = var.autoscaling_policy_name
policy_type = "TargetTrackingScaling"
resource_id = "cluster:${aws_rds_cluster.this[0].cluster_identifier}"
@@ -337,6 +351,8 @@ resource "aws_appautoscaling_policy" "this" {
resource "aws_security_group" "this" {
count = local.create && var.create_security_group ? 1 : 0
+ region = var.region
+
name = var.security_group_use_name_prefix ? null : local.security_group_name
name_prefix = var.security_group_use_name_prefix ? "${local.security_group_name}-" : null
vpc_id = var.vpc_id
@@ -352,6 +368,8 @@ resource "aws_security_group" "this" {
resource "aws_security_group_rule" "this" {
for_each = { for k, v in var.security_group_rules : k => v if local.create && var.create_security_group }
+ region = var.region
+
# required
type = try(each.value.type, "ingress")
from_port = try(each.value.from_port, local.port)
@@ -375,6 +393,8 @@ resource "aws_security_group_rule" "this" {
resource "aws_rds_cluster_parameter_group" "this" {
count = local.create && var.create_db_cluster_parameter_group ? 1 : 0
+ region = var.region
+
name = var.db_cluster_parameter_group_use_name_prefix ? null : local.cluster_parameter_group_name
name_prefix = var.db_cluster_parameter_group_use_name_prefix ? "${local.cluster_parameter_group_name}-" : null
description = var.db_cluster_parameter_group_description
@@ -404,6 +424,8 @@ resource "aws_rds_cluster_parameter_group" "this" {
resource "aws_db_parameter_group" "this" {
count = local.create && var.create_db_parameter_group ? 1 : 0
+ region = var.region
+
name = var.db_parameter_group_use_name_prefix ? null : local.db_parameter_group_name
name_prefix = var.db_parameter_group_use_name_prefix ? "${local.db_parameter_group_name}-" : null
description = var.db_parameter_group_description
@@ -434,6 +456,8 @@ resource "aws_db_parameter_group" "this" {
resource "aws_cloudwatch_log_group" "this" {
for_each = toset([for log in var.enabled_cloudwatch_logs_exports : log if local.create && var.create_cloudwatch_log_group && !var.cluster_use_name_prefix])
+ region = var.region
+
name = "/aws/rds/cluster/${var.name}/${each.value}"
retention_in_days = var.cloudwatch_log_group_retention_in_days
kms_key_id = var.cloudwatch_log_group_kms_key_id
@@ -450,6 +474,8 @@ resource "aws_cloudwatch_log_group" "this" {
resource "aws_rds_cluster_activity_stream" "this" {
count = local.create && var.create_db_cluster_activity_stream ? 1 : 0
+ region = var.region
+
resource_arn = aws_rds_cluster.this[0].arn
mode = var.db_cluster_activity_stream_mode
kms_key_id = var.db_cluster_activity_stream_kms_key_id
@@ -471,6 +497,8 @@ resource "aws_rds_cluster_activity_stream" "this" {
resource "aws_secretsmanager_secret_rotation" "this" {
count = local.create && var.manage_master_user_password && var.manage_master_user_password_rotation ? 1 : 0
+ region = var.region
+
secret_id = aws_rds_cluster.this[0].master_user_secret[0].secret_arn
rotate_immediately = var.master_user_password_rotate_immediately
@@ -488,6 +516,8 @@ resource "aws_secretsmanager_secret_rotation" "this" {
resource "aws_rds_shard_group" "this" {
count = local.create && var.create_shard_group ? 1 : 0
+ region = var.region
+
compute_redundancy = var.compute_redundancy
db_cluster_identifier = aws_rds_cluster.this[0].id
db_shard_group_identifier = var.db_shard_group_identifier
diff --git a/variables.tf b/variables.tf
index 7a1dadc..6e88993 100644
--- a/variables.tf
+++ b/variables.tf
@@ -4,6 +4,12 @@ variable "create" {
default = true
}
+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 "name" {
description = "Name used across resources created"
type = string
diff --git a/versions.tf b/versions.tf
index c00acf7..aaf26b8 100644
--- a/versions.tf
+++ b/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.89"
+ version = ">= 6.0"
}
}
}