module "aws_accounts_list" {
  source = "../../../modules/iam/aws_accounts_list"
}

module "client_platforms_list" {
  source = "../../../modules/vpc/whitelist_nat_by_platform"

  allowed_envs = var.nat_whitelist
}

module "web_ip_whitelist" {
  source = "../../../modules/ip_whitelist_v2"

  users = var.web_whitelist
}

module "projectgroup_whitelist" {
  source = "../../../modules/ip_whitelist_v2"

  users = var.projectgroup_whitelist
}

module "main_sg_map" {
  source = "../../module_sg_map"

  name_prefix             = local.name_prefix
  vpc_id                  = module.main_vpc.vpc_id
  projectgroup_whitelist  = module.projectgroup_whitelist.whitelist_for_sg
  vpn_masq_cidrs          = var.vpn_servers
  external_access_mode    = "mixed"
  managed_prefix_list_ids = [data.aws_ec2_managed_prefix_list.vpn_ny_users.id]
  vpn_sg_id               = "483193324480/sg-0632765285b0ccf1d"

  external_https_access = concat(
    module.web_ip_whitelist.whitelist_for_sg,
    module.client_platforms_list.rules_list
  )

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Infrastructure",
      service                  = "Networking",
      plat_env_project_service = "${local.aggregated_tag}_INFRA_NTW"
    }
  )
}

module "gsirt_regional_endpoints" {
  source = "../../../modules/gsirt_regional_endpoints"
}
