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
}

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

  environment = var.environment
}

module "es_simple_domain" {
  source = "../../"

  providers = {
    aws.dns = aws
  }

  vpc_id     = module.vpc_info.vpc_id
  subnet_ids = slice(module.vpc_info.default_private_subnet_ids, 0, 1)

  env                = var.environment
  aws_es_domain_name = var.service_name
  application_family = var.application_family
  aws_es_version     = "7.10"
  datadog_enabled    = true

  # These are optional
  additional_tags = {
    "user_supplied_tag_1" = "some_project",
    "user_supplied_tag_2" = "orchard"
  }
}

module "es_advanced_domain" {
  source = "../../"

  providers = {
    aws.dns = aws
  }

  vpc_id     = module.vpc_info.vpc_id
  subnet_ids = slice(module.vpc_info.default_private_subnet_ids, 0, 2)

  env                          = var.environment
  aws_es_domain_name           = "${var.service_name}-multi"
  application_family           = var.application_family
  aws_es_version               = "7.10"
  aws_es_instance_count        = 2
  use_service_specific_kms_key = true
  datadog_enabled              = true

  advanced_security_options_enabled                        = true
  advanced_security_options_internal_user_database_enabled = true
  advanced_security_options_internal_master_user_name      = "admin"
  advanced_security_options_internal_master_user_password  = random_password.master_user_password.result

  # These are optional
  additional_tags = {
    "user_supplied_tag_1" = "some_project",
    "user_supplied_tag_2" = "orchard"
  }
}

resource "random_password" "master_user_password" {
  length  = 24
  special = true
}
