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

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

  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         = 105
  aws_es_disk_type         = "gp3"

  advanced_security_options_enabled = true # to get audit logs
  # Turn this ON after initial setup with os_manager_role having required permissions.
  advanced_security_options_internal_user_database_enabled = true
  # Turn this off after initial setup to avoid conflicts with internal_user_database.
  # advanced_security_options_iam_master_user_arn = aws_iam_role.os_manager_role.arn

  vpc_id                          = module.vpc_info.vpc_id
  subnet_ids                      = slice(module.vpc_info.default_private_subnet_ids, 0, 3)
  route53_record_creation_enabled = true
  use_service_specific_kms_key    = false
  override_main_response_version  = null

  # Only for Prod.
  https_allowed_custom_prefix_list_names = [
    "vpn-ny-users",
    "shared-orcd-atlantis-private-subnet-prefix-list",
  ]

}

# datadog monitors for opensearch.
module "os_datadog_integration" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/open_search?ref=6.19.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
}
