data "aws_route53_zone" "dns_zone" {
  name = "theorchard.io."
}

module "opensearch" {
  source = "git@github.com:theorchard/terraform-elasticsearch.git//?ref=4.1.3"

  providers = {
    aws.dns = aws.networking
  }

  application_family         = var.application_family
  use_opensearch_engine      = true
  env                        = var.environment
  aws_es_domain_name         = var.domain_name
  aws_es_version             = "OpenSearch_2.19"
  aws_es_instance_type       = "t3.medium.search"
  aws_es_instance_count      = 3 # match this to qa. Prod has 4 nodes.
  dedicated_master_enabled   = false
  aws_es_disk_size           = 75 # set it to 75GB per node as discussed. Prod has 250 GiB.
  aws_es_disk_type           = "gp3"
  zone_awareness_enabled     = false # explicitly set to false.
  vpc_id                     = module.vpc_info.vpc_id
  subnet_ids                 = slice(module.vpc_info.default_private_subnet_ids, 0, 1)
  aws_route53_params_zone_id = data.aws_route53_zone.dns_zone.zone_id

  advanced_security_options_enabled = true
  # internal_user_database is false for ES but we need username/password credentials for OS-SINK connector.
  # once the backfill is done: turn internal_user_database off and uncomment to set iam_master_user to the role.
  # advanced_security_options_iam_master_user_arn = aws_iam_role.os_manager_role.arn
  advanced_security_options_iam_master_user_arn            = ""
  advanced_security_options_internal_user_database_enabled = true
}

# datadog monitors for opensearch.
module "os_datadog_integration" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/open_search?ref=6.15.0"

  environment        = var.environment
  service_name       = var.domain_name
  application_family = var.application_family

  notification_endpoints            = var.notification_endpoints
  escalation_notification_endpoints = var.escalation_notification_endpoints

  monitor_enabled                 = true
  critical_number_5XX             = 5
  disk_space_monitor_enabled      = true
  disk_space_monitor_gib_critical = 20
}
