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

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

  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_3.1"
  aws_es_instance_type     = var.es_instance_type
  aws_es_instance_count    = 3
  dedicated_master_enabled = true
  dedicated_master_count   = 3
  dedicated_master_type    = var.dedicated_master_type
  aws_es_disk_size         = 600
  aws_es_disk_type         = "gp3"

  advanced_security_options_enabled                        = true # to get audit logs
  advanced_security_options_internal_user_database_enabled = true

  vpc_id                     = module.vpc_info.vpc_id
  subnet_ids                 = module.vpc_info.default_private_subnet_ids
  aws_route53_params_zone_id = data.aws_route53_zone.dns_zone.zone_id
}

# 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
}
