variable env {
  default = "prod"
}

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

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket         = "orcd-terraform-state"
    key            = "prod/ows-users-proxy/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = "true"
  }
}

module "ows_users_proxy_environment" {
  source = "git@github.com:theorchard/terraform-elasticbeanstalk.git//"

  environment                               = "${var.env}"
  service_name                              = "ows-users-proxy"
  update_max_batch                          = "1"
  asg_min_size                              = "2"
  asg_max_size                              = "4"
  vpc_elb_subnets                           = "subnet-0f4dba24,subnet-30e29047"
  vpc_subnets                               = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_id                                    = "vpc-7f0e841a"
  vpc_elb_scheme                            = ""
  aws_route53_zone_id                       = "Z2RSKZ9M7TJ9Z"
  elb_v2_access_logs_s3_bucket              = "aws-logs-437795906767-us-east-1"
  load_balancer_listener_port               = "443"
  load_balancer_listener_protocol           = "HTTPS"
  load_balancer_ssl_certificate_arn         = "arn:aws:acm:us-east-1:437795906767:certificate/a76e4883-28aa-4062-a4cc-c06b8012ae28"
  process_port                              = "80"
  process_protocol                          = "HTTP"
  load_balancer_inbound_allowed_cidr_blocks = [
    "35.167.74.121/32",
    "35.166.202.113/32",
    "35.160.3.103/32",
    "54.183.64.135/32",
    "54.67.77.38/32",
    "54.67.15.170/32",
    "54.183.204.205/32"
  ]

  environment_variables = [
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "Environment"
      value = "${var.env}"
    }
  ]

}

# Create a vanity DNS name
resource "aws_route53_record" "proxy_dns_record" {
  zone_id = "Z2RSKZ9M7TJ9Z"
  name    = "ows-users-auth0"
  type    = "CNAME"
  ttl     = "300"
  records = ["${module.ows_users_proxy_environment.elastic_beanstalk_environment_prod_dns_name}"]
}
