provider "aws" {
  region = var.aws_region

  default_tags {
    tags = module.default_tags.tags
  }
}

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

data "aws_caller_identity" "current" {
}

module "test_secret_without_replication" {
  source = "../"

  environment                    = var.environment
  service_name                   = var.service_name
  secret_name                    = var.secret_name
  application_family             = var.application_family
  secret_recovery_window_in_days = 0
}

module "test_secret_with_replication" {
  source = "../"

  environment                    = var.environment
  service_name                   = var.service_name
  secret_name                    = "${var.secret_name}_WITH_REPLICATION"
  application_family             = var.application_family
  secret_recovery_window_in_days = 0
  secret_replication_regions = [
    "us-west-1",
    "us-west-2",
  ]
}

module "multiple_secrets_with_same_settings" {
  source   = "../"
  for_each = toset(var.secrets_manager_secret_names)

  environment                    = var.environment
  service_name                   = var.service_name
  secret_name                    = each.value
  application_family             = var.application_family
  secret_recovery_window_in_days = 30
  secret_map = {
    "key1" = "value1"
    "key2" = "value2"
  }
}


data "aws_lambda_function" "existing_function_used_as_dummy_for_rotation" {
  function_name = "DatadogLambdaFunction"
}

module "test_secret_with_rotation_interval_in_days" {
  source = "../"

  environment                      = var.environment
  service_name                     = var.service_name
  secret_name                      = "${var.secret_name}_ROTATION_INTERVAL"
  application_family               = var.application_family
  secret_recovery_window_in_days   = 0
  secret_rotation_enabled          = true
  secret_rotation_interval_in_days = 14
  secret_rotation_lambda_arn       = data.aws_lambda_function.existing_function_used_as_dummy_for_rotation.arn
}

module "test_secret_with_rotation_schedule" {
  source = "../"

  environment                         = var.environment
  service_name                        = var.service_name
  secret_name                         = "${var.secret_name}_ROTATION_SCHEDULE"
  application_family                  = var.application_family
  secret_recovery_window_in_days      = 0
  secret_rotation_enabled             = true
  secret_rotation_schedule_expression = "rate(1 day)"
  secret_rotation_lambda_arn          = data.aws_lambda_function.existing_function_used_as_dummy_for_rotation.arn
}

module "test_auth0m2m_module" {
  source = "../modules/auth0m2m"

  environment                         = var.environment
  service_name                        = var.service_name
  application_family                  = var.application_family
  secret_rotation_schedule_expression = "cron(0 /8 * * ? *)"
}

module "test_auth0m2m_module_random_schedule" {
  source = "../modules/auth0m2m"

  environment                         = var.environment
  service_name                        = "${var.service_name}-random"
  application_family                  = var.application_family
}
