provider "aws" {
  region = "us-east-1"

  default_tags {
    tags = module.default_tags.tags
  }
}

module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=2.0.0"
  environment        = "dev"
  application_family = "devops"
  service_name       = "rds-cluster-test"
  team_name          = "devops"
}

module "vpc_info" {
  source = "git@github.com:theorchard/terraform-vpc-info.git?ref=1.4.0"

  environment = "dev"
}

module "secrets" {
  source = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.5.1"
  for_each = toset([
    "rds-proxy-user"
  ])

  environment        = "dev"
  service_name       = "rds-cluster-test"
  secret_name        = each.value
  application_family = "platform"
  // Ensure secret is deleted immediately for testing
  secret_recovery_window_in_days = 0
}

module "rds_cluster_with_proxy" {
  source = "../../.."

  providers = {
    aws.dns = aws
  }

  environment        = "dev"
  service_name       = "rds-cluster-test-with-proxy"
  application_family = "platform"
  vpc_id             = module.vpc_info.vpc_id

  rds_engine                                  = "aurora-mysql"
  rds_engine_version                          = "8.0"
  rds_db_cluster_parameter_group_family       = "aurora-mysql8.0"
  rds_cluster_instance_parameter_group_family = "aurora-mysql8.0"

  rds_cluster_instance_class       = "db.t4g.medium"
  rds_cluster_instance_count       = "1"
  rds_master_username              = "ows_master"
  rds_master_password              = "Password1234"
  rds_performance_insights_enabled = false
  rds_db_subnet_ids                = module.vpc_info.default_private_subnet_ids

  rds_proxy_enabled = true
  rds_proxy_secrets = [for secret in module.secrets : secret.secret_arn]

  # optional
  rds_proxy_debug_logging                = false
  rds_proxy_engine_family                = "MYSQL"
  rds_proxy_idle_client_timeout          = 1800
  rds_proxy_require_tls                  = true
  rds_proxy_connection_borrow_timeout    = 120
  rds_proxy_init_query                   = "SET NAMES utf8mb4;"
  rds_proxy_max_connections_percent      = 80
  rds_proxy_max_idle_connections_percent = 40
}
