module "networking" {
  source = "../../stacks/networking"

  providers = {
    aws = aws
  }

  client_name = var.client_name
  stage       = var.stage

  vpc_name                     = var.vpc_name
  cidr                         = var.cidr
  azs                          = var.azs
  public_subnets               = var.public_subnets
  private_subnets              = var.private_subnets
  database_subnets             = var.database_subnets
  enable_nat_gateway           = var.enable_nat_gateway
  single_nat_gateway           = var.single_nat_gateway
  enable_dns_hostname          = var.enable_dns_hostname
  enable_dns_support           = var.enable_dns_support
  create_database_subnet_group = var.create_database_subnet_group
}

module "datafy" {
  source = "../../stacks/datafy"

  providers = {
    aws           = aws
    aws.us-east-1 = aws.us-east-1
  }

  client_name = var.client_name
  stage       = var.stage

  security_contact_info   = var.security_contact_info
  operations_contact_info = var.operations_contact_info
  billing_contact_info    = var.billing_contact_info

  monthly_budget_limit_amount     = var.monthly_budget_limit_amount
  budget_alerts_subscriber_emails = var.budget_alerts_subscriber_emails
  budgets_escalations_emails      = var.budgets_escalations_emails
  budgets_monitor_emails          = var.budgets_monitor_emails
  sns_technical_alerts_emails     = var.sns_technical_alerts_emails

  peer_owner_id = var.peer_owner_id
  peer_vpc_id   = var.peer_vpc_id

  alb_internal_name                 = var.alb_internal_name
  alb_internal                      = var.alb_internal
  alb_internal_preserve_host_header = var.alb_internal_preserve_host_header
  public_aliases                    = var.public_aliases

  private_dns = var.private_dns
  public_dns  = var.public_dns

  vpc_id             = module.networking.vpc_id
  public_subnets     = module.networking.public_subnets
  private_subnets    = module.networking.private_subnets
  database_subnets   = module.networking.database_subnets
  access_logs_bucket = module.networking.access_logs_bucket

  alb_public_sg_id     = module.networking.alb_public_sg_id
  db_private_sg_id     = module.networking.db_private_sg_id
  ec2_private_sg_id    = module.networking.ec2_private_sg_id
  lambda_private_sg_id = module.networking.lambda_private_sg_id
  rds_proxy_sg_id      = module.networking.rds_proxy_sg_id
}
