provider "aws" {
  region = var.aws_region
}

variable Environment {}
variable AWS_REGION {}
variable AWS_SECRET_ACCESS_KEY {}
variable AWS_ACCESS_KEY_ID {}
variable SNOWFLAKE_USER {}
variable SNOWFLAKE_WAREHOUSE {}
variable SNOWFLAKE_ACCOUNT {}
variable SNOWFLAKE_ROLE {}
variable SNOWFLAKE_DATABASE {}
variable SNOWFLAKE_SCHEMA {}
variable SNOWFLAKE_PASSWORD {}
variable COLLABORATOR_REPORT_DYNAMODB_TABLE {}
variable COLLABORATOR_REPORT_S3_BUCKET {}
variable SWF_DOMAIN {}
variable SENTRY_DSN_NEW {}
variable LOGGLY_URI {}
variable TEMP_DIR {}

terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/swf-collaborator-report/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

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

  environment                        = var.Environment
  service_name                       = "swf-collaborator-report"
  launchconfiguration_instance_type  = "t3.xlarge"
  update_max_batch                   = "1"
  vpc_subnets                        = "subnet-cb4dbae0,subnet-5366ef24"
  vpc_id                             = "vpc-7f0e841a"
  aws_route53_zone_id                = "Z2RSKZ9M7TJ9Z"
  elb_v2_access_logs_s3_bucket       = "aws-logs-437795906767-us-east-1"
  environment_tier                   = "Worker"
  notification_endpoints             = "it@theorchard.com"
  vpc_elb_subnets                    = "subnet-5366ef24"
  process_instance_health_check_path = ""

  environment_variables = [
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "Environment"
      value     = var.Environment
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "AWS_REGION"
      value     = var.AWS_REGION
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "AWS_DEFAULT_REGION"
      value     = var.aws_region
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "AWS_SECRET_ACCESS_KEY"
      value     = var.AWS_SECRET_ACCESS_KEY
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "AWS_ACCESS_KEY_ID"
      value     = var.AWS_ACCESS_KEY_ID
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_USER"
      value     = var.SNOWFLAKE_USER
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_ROLE"
      value     = var.SNOWFLAKE_ROLE
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_WAREHOUSE"
      value     = var.SNOWFLAKE_WAREHOUSE
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_ACCOUNT"
      value     = var.SNOWFLAKE_ACCOUNT
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_DATABASE"
      value     = var.SNOWFLAKE_DATABASE
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_SCHEMA"
      value     = var.SNOWFLAKE_SCHEMA
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_PASSWORD"
      value     = var.SNOWFLAKE_PASSWORD
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "COLLABORATOR_REPORT_DYNAMODB_TABLE"
      value     = var.COLLABORATOR_REPORT_DYNAMODB_TABLE
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "COLLABORATOR_REPORT_S3_BUCKET"
      value     = var.COLLABORATOR_REPORT_S3_BUCKET
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SWF_DOMAIN"
      value     = var.SWF_DOMAIN
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SENTRY_DSN_NEW"
      value     = var.SENTRY_DSN_NEW
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "LOGGLY_URI"
      value     = var.LOGGLY_URI
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "TEMP_DIR"
      value     = var.TEMP_DIR
    }
  ]

}

