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

provider "aws" {
  region = "us-east-1"

  default_tags {
    tags = module.default_tags.tags
  }
}

terraform {
  backend "s3" {
    bucket  = "prod-682033496752-terraform-state"
    key     = "vpc/us_east_1/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "aws_s3_bucket" "flow_logs_bucket" {
  bucket = "${var.environment}-${var.account_group}-vpc-logs"
}

module "networking-vpc" {
  source = "git@github.com:theorchard/terraform-vpc.git//modules/vpc?ref=4.1.1"

  env           = var.environment
  account_group = var.account_group
  vpc_cidr      = "10.224.0.0/16"

  vpc_public_subnets = [
    { availability_zone = "us-east-1a", cidr_block = "10.224.240.0/24", name = "${var.environment}_public_subnet_0" },
    { availability_zone = "us-east-1b", cidr_block = "10.224.241.0/24", name = "${var.environment}_public_subnet_1" },
    { availability_zone = "us-east-1c", cidr_block = "10.224.242.0/24", name = "${var.environment}_public_subnet_2" },
  ]

  vpc_private_subnets = [
    { availability_zone = "us-east-1a", cidr_block = "10.224.0.0/20", name = "${var.environment}_private_subnet_0" },
    { availability_zone = "us-east-1b", cidr_block = "10.224.16.0/20", name = "${var.environment}_private_subnet_1" },
    { availability_zone = "us-east-1c", cidr_block = "10.224.32.0/20", name = "${var.environment}_private_subnet_2" },
  ]

  vpc_flow_logs = {
    gsirt = {
      log_destination      = data.aws_s3_bucket.flow_logs_bucket.arn
      log_destination_type = "s3"
      traffic_type         = "REJECT"
    }
  }
}
