provider "aws" {
  region = "${var.region}"
}

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

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

  environment                       = "prod"
  service_name                      = "ows-pricing"
  use_existing_application          = true
  existing_application_name         = "ows-pricing"
  asg_min_size                      = "2"
  asg_max_size                      = "4"
  update_max_batch                  = "1"
  vpc_elb_subnets                   = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_subnets                       = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_id                            = "vpc-7f0e841a"
  aws_route53_zone_id               = "Z2RSKZ9M7TJ9Z"
  elb_v2_access_logs_enabled        = true
  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"
  notification_endpoints            = "video.distro.eng@theorchard.com"
  iam_managed_policy_attachments    = [
    "arn:aws:iam::437795906767:policy/Dynamo-prod-ows-pricing-owsrequest",
    "arn:aws:iam::437795906767:policy/STS-prod-ows-pricing-AssumeRole",
    "arn:aws:iam::437795906767:policy/SecretsManager-prod-ows-pricing-policy",
    "arn:aws:iam::437795906767:policy/S3-cucumbers-bulk-physical-pricing-update-ingest-RW"
  ]

  environment_variables = [
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "Environment"
      value = "${var.Environment}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "SENTRY_DSN"
      value = "${var.SENTRY_DSN}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "LOGGER_DSN"
      value = "${var.LOGGER_DSN}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "LOGGER_LEVEL"
      value = "${var.LOGGER_LEVEL}"

    },
       {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "S3_BUCKET"
      value = "${var.S3_BUCKET}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "DB_URL"
      value = "${var.DB_URL}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "IAM_ROLE"
      value = "${var.IAM_ROLE}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "PRICING_BUCKET"
      value = "${var.PRICING_BUCKET}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "AR_DB_URL"
      value = "${var.AR_DB_URL}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "PRICING_FOLDER"
      value = "${var.PRICING_FOLDER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "STS_TOKEN_DURATION"
      value = "${var.STS_TOKEN_DURATION}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "REDIS_URL"
      value = "${var.REDIS_URL}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "NEW_RELIC_APP_NAME"
      value = "${var.NEW_RELIC_APP_NAME}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name = "NEW_RELIC_LICENSE_KEY"
      value = "${var.NEW_RELIC_LICENSE_KEY}"
    },
  ]
}
