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

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

variable Environment {}
variable AWS_REGION {}
variable AWS_ACCESS_KEY_ID {}
variable AWS_SECRET_ACCESS_KEY {}
variable DATA_DROP_FTP_HOST {}
variable FEED_INGESTION_DATA_BUCKET {}
variable FEED_INGESTION_SNS_TOPIC {}
variable FEED_INGESTION_TABLE {}
variable LOGGLY_URI {}
variable ORCHARDETL_LOGGER_HOST {}
variable ORCHARDETL_LOGGER_PASSWORD {}
variable ORCHARDETL_LOGGER_USER {}
variable PROPER_DROP_FTP_HOST {}
variable PROPER_FTP_PASSWORD {}
variable PROPER_FTP_PATH {}
variable PROPER_FTP_USERNAME {}
variable PROPER_MYSQL_DBNAME {}
variable PROPER_MYSQL_HOST {}
variable PROPER_MYSQL_PASSWORD {}
variable PROPER_MYSQL_USER {}
variable REDSHIFT_READ_ONLY_DB {}
variable REDSHIFT_READ_ONLY_HOST {}
variable REDSHIFT_READ_ONLY_PASSWORD {}
variable REDSHIFT_READ_ONLY_PORT {}
variable REDSHIFT_READ_ONLY_USER {}
variable REDSHIFT_READ_WRITE_DB {}
variable REDSHIFT_READ_WRITE_HOST {}
variable REDSHIFT_READ_WRITE_PASSWORD {}
variable REDSHIFT_READ_WRITE_PORT {}
variable REDSHIFT_READ_WRITE_USER {}
variable SENTRY_DSN {}
variable SF_DB {}
variable SF_JDBC_JAR {}
variable SF_PASS {}
variable SF_SCHEMA {}
variable SF_USER {}
variable SF_WHSE {}
variable SNOWFLAKE_ACCOUNT {}
variable SNOWFLAKE_DATABASE {}
variable SNOWFLAKE_PASSWORD {}
variable SNOWFLAKE_ROLE {}
variable SNOWFLAKE_SCHEMA {}
variable SNOWFLAKE_USER {}
variable SNOWFLAKE_WAREHOUSE {}


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

  environment                        = "${var.Environment}"
  service_name                       = "swf-proper-ingest"
  use_existing_application           = true
  existing_application_name          = "swf-feed-ingestion"
  launchconfiguration_instance_type  = "t3.small"
  update_max_batch                   = "1"
  vpc_subnets                        = "subnet-067a6b45b079d7296,subnet-043d235081c966332"
  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             = "data-squad@theorchard.com"
  vpc_elb_subnets                    = "subnet-5366ef24"
  process_instance_health_check_path = ""
  asg_max_size                       = "1"

  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_ACCESS_KEY_ID"
      value     = "${var.AWS_ACCESS_KEY_ID}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "AWS_SECRET_ACCESS_KEY"
      value     = "${var.AWS_SECRET_ACCESS_KEY}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "DATA_DROP_FTP_HOST"
      value     = "${var.DATA_DROP_FTP_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "FEED_INGESTION_DATA_BUCKET"
      value     = "${var.FEED_INGESTION_DATA_BUCKET}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "FEED_INGESTION_SNS_TOPIC"
      value     = "${var.FEED_INGESTION_SNS_TOPIC}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "FEED_INGESTION_TABLE"
      value     = "${var.FEED_INGESTION_TABLE}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "LOGGLY_URI"
      value     = "${var.LOGGLY_URI}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "ORCHARDETL_LOGGER_HOST"
      value     = "${var.ORCHARDETL_LOGGER_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "ORCHARDETL_LOGGER_PASSWORD"
      value     = "${var.ORCHARDETL_LOGGER_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "ORCHARDETL_LOGGER_USER"
      value     = "${var.ORCHARDETL_LOGGER_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_DROP_FTP_HOST"
      value     = "${var.PROPER_DROP_FTP_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_FTP_PASSWORD"
      value     = "${var.PROPER_FTP_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_FTP_PATH"
      value     = "${var.PROPER_FTP_PATH}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_FTP_USERNAME"
      value     = "${var.PROPER_FTP_USERNAME}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_MYSQL_DBNAME"
      value     = "${var.PROPER_MYSQL_DBNAME}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_MYSQL_HOST"
      value     = "${var.PROPER_MYSQL_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_MYSQL_PASSWORD"
      value     = "${var.PROPER_MYSQL_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "PROPER_MYSQL_USER"
      value     = "${var.PROPER_MYSQL_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_ONLY_DB"
      value     = "${var.REDSHIFT_READ_ONLY_DB}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_ONLY_HOST"
      value     = "${var.REDSHIFT_READ_ONLY_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_ONLY_PASSWORD"
      value     = "${var.REDSHIFT_READ_ONLY_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_ONLY_PORT"
      value     = "${var.REDSHIFT_READ_ONLY_PORT}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_ONLY_USER"
      value     = "${var.REDSHIFT_READ_ONLY_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_WRITE_DB"
      value     = "${var.REDSHIFT_READ_WRITE_DB}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_WRITE_HOST"
      value     = "${var.REDSHIFT_READ_WRITE_HOST}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_WRITE_PASSWORD"
      value     = "${var.REDSHIFT_READ_WRITE_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_WRITE_PORT"
      value     = "${var.REDSHIFT_READ_WRITE_PORT}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "REDSHIFT_READ_WRITE_USER"
      value     = "${var.REDSHIFT_READ_WRITE_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SENTRY_DSN"
      value     = "${var.SENTRY_DSN}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_DB"
      value     = "${var.SF_DB}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_JDBC_JAR"
      value     = "${var.SF_JDBC_JAR}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_PASS"
      value     = "${var.SF_PASS}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_SCHEMA"
      value     = "${var.SF_SCHEMA}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_USER"
      value     = "${var.SF_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SF_WHSE"
      value     = "${var.SF_WHSE}"
    },
    {
      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_PASSWORD"
      value     = "${var.SNOWFLAKE_PASSWORD}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_ROLE"
      value     = "${var.SNOWFLAKE_ROLE}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_SCHEMA"
      value     = "${var.SNOWFLAKE_SCHEMA}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_USER"
      value     = "${var.SNOWFLAKE_USER}"
    },
    {
      namespace = "aws:elasticbeanstalk:application:environment"
      name      = "SNOWFLAKE_WAREHOUSE"
      value     = "${var.SNOWFLAKE_WAREHOUSE}"
    }

  ]

}
