module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=2.0.0"
  environment        = var.environment
  application_family = var.application_family
  service_name       = var.service_name
  team_name          = var.team
}

provider "aws" {
  region = var.aws_region

  default_tags {
    tags = module.default_tags.tags
  }
}

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "dev-orcd-terraform-state"
    key     = "dev/team-stats/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "aws_vpc" "dev" {
  filter {
    name   = "tag:Name"
    values = ["dev"]
  }
}

data "aws_subnets" "private" {
  filter {
    name   = "tag:tier"
    values = ["private"]
  }
  filter {
    name   = "vpc-id"
    values = [data.aws_vpc.dev.id]
  }
}

module "internal_spa" {
  source = "git@github.com:theorchard/terraform-internal-spa.git?ref=1.1.0"

  providers = {
    aws.dns = aws
  }

  environment                 = var.environment
  service_name                = var.service_name
  application_family          = var.application_family
  vpc_id                      = data.aws_vpc.dev.id
  load_balancer_subnet_ids    = slice(data.aws_subnets.private.ids, 0, 2)
  fully_qualified_domain_name = "${var.service_name}.${var.dns_zone_name}"
  certificate_domain          = "*.${var.dns_zone_name}"
  ingress_prefix_list_names   = ["vpn-ny-users"]
  route53_record_enabled      = true
  route53_zone_name           = var.dns_zone_name
}
