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

provider "aws" {
  region = var.aws_region

  default_tags {
    tags = module.default_tags.tags
  }
}

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "qa/sme/mobile-push-notifications/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

module "multiple_secrets_with_same_settings" {
  source   = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.2.1"
  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 = 7
}

module "sme_sns_mobile_push_notifications" {
  source        = "git@github.com:theorchard/terraform-sns.git//mobile-push-notifications?ref=3.0.0"
  service_name  = var.service_name
  environment   = var.environment
  platform_type = "APNS"

  depends_on = [
    module.multiple_secrets_with_same_settings
  ]
}

module "sme_gcm_sns_mobile_push_notifications" {
  source        = "git@github.com:theorchard/terraform-sns.git//mobile-push-notifications?ref=3.0.0"
  service_name  = var.service_name
  environment   = var.environment
  platform_type = "GCM"

  depends_on = [
    module.multiple_secrets_with_same_settings
  ]
}
