module "dbx-prod_delphi-prod" {
  source              = "../../../modules/vpc/peering/one-to-one-external"
  vpc_requester_cidr  = "10.165.0.0/16"
  vpc_accepter_cidr   = "10.33.0.0/16"
  connection_name     = "DBX_PROD_TO_DLP_PROD"
  accepter_account_id = module.aws_accounts_list.accounts.gdb-delphi-prod
  providers = {
    aws.requester = aws
    aws.accepter  = aws.delphi-prod
  }
}

data "aws_ec2_transit_gateway" "transit_gateway" {
  filter {
    name   = "options.amazon-side-asn"
    values = ["64513"]
  }
}

data "aws_ec2_managed_prefix_list" "vpn_ny_users" {
  filter {
    name   = "prefix-list-name"
    values = ["vpn-ny-users"]
  }
}

resource "aws_ec2_transit_gateway_vpc_attachment" "transit_gateway_attachment" {
  vpc_id             = module.vpc.vpc_id
  transit_gateway_id = data.aws_ec2_transit_gateway.transit_gateway.id
  subnet_ids = concat(
    module.vpc.private_subnets,
  )
}

resource "aws_route" "ny" {
  for_each = toset(concat(module.vpc.public_route_table_ids, module.vpc.private_route_table_ids))

  route_table_id             = each.value
  destination_prefix_list_id = data.aws_ec2_managed_prefix_list.vpn_ny_users.id
  transit_gateway_id         = data.aws_ec2_transit_gateway.transit_gateway.id
}
