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

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

data "aws_secretsmanager_secret" "DB_URL" {
  name = "${var.environment}/${var.service_name}/DB_URL"
}

data "aws_secretsmanager_secret_version" "DB_URL" {
  secret_id = "${data.aws_secretsmanager_secret.DB_URL.id}"
}



module "ows_transcoding_environment" {
  source       = "git@github.com:theorchard/terraform-elasticbeanstalk.git//"
  environment  = "${var.environment}"
  service_name = "${var.service_name}"

  vpc_elb_subnets                   = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_subnets                       = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_id                            = "vpc-7f0e841a"
  load_balancer_ssl_certificate_arn = "arn:aws:acm:us-east-1:437795906767:certificate/a76e4883-28aa-4062-a4cc-c06b8012ae28"
  elb_v2_access_logs_s3_bucket      = "aws-logs-437795906767-us-east-1"
  aws_route53_zone_id               = "Z2RSKZ9M7TJ9Z"

  iam_managed_policy_attachments = [
    "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
    "arn:aws:iam::aws:policy/CloudWatchFullAccess",
    "arn:aws:iam::437795906767:policy/Dynamo-qa-ows-transcoding-owsrequest",
    "arn:aws:iam::437795906767:policy/S3-qa-orcdbucket_transcoding-RW",
    "arn:aws:iam::437795906767:policy/S3-qa-orcd-raw-assets-load-testing-RO",
    "arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier",
    "arn:aws:iam::437795906767:policy/SQS-qa-transcoding-jobs-RW",
    "arn:aws:iam::437795906767:policy/SNS-qa-asset_encoding_status-Publish",
    "arn:aws:iam::437795906767:policy/S3-qa-orcd-raw-assets-Read-Get",
    "arn:aws:iam::437795906767:policy/SNS-qa-transcoding_order_status-Publish"
  ]

  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      = "DEFAULT_SNS_TOPIC_ARN"
      value     = "${var.default_sns_topic_arn}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "TRANSCODED_ASSET_BASE_BUCKET_NAME"
      value     = "${var.transcoded_assets_bucket}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "LOGGLY_DSN"
      value     = "${var.loggly_dsn}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name  = "SQS_TRANSCODING_URL"
      value = "${var.sqs_transcoding_url}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "MEZZANINE_SNS_TOPIC_ARN"
      value     = "${var.mezzanine_sns_topic_arn}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNS_REGION"
      value     = "${var.sns_region}"
    } 
  ]
}
