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

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

module "buckets" {
    source                 = "../modules/bucket"
    environment            = "${var.environment}"
}

module "lambda_throttler" {
    source = "../modules/lambdas/throttler"

    environment                           = "${var.environment}"
    vpc_security_group_ids                = "${var.vpc_security_group_ids}"
    vpc_subnet_ids                        = "${var.vpc_subnet_ids}"
    lambda_memory_size                    = "${var.lambda_throttler_lambda_memory_size}"
    LOGGER_DSN                            = "${var.LOGGER_DSN}"
}

# This is duplicated from the Lambda module directory. It's ok.
data "aws_secretsmanager_secret_version" "sentry_dsn" {
    secret_id = "${var.environment}/lambda-throttler-manager/SENTRY_DSN"
}

module "throttler_manager_fargate_environment" {
  source = "git@github.com:theorchard/terraform-fargate.git//"

  environment                      = "${var.environment}"
  application_family               = "vector"
  service_name                     = "lambda-throttler-manager"
  aws_region                       = "us-east-1"
  commit_sha                       = "latest"
  container_port                   = "8080"
  task_type                        = "worker"
  desired_task_count               = 0
  task_cpu                         = 512
  task_memory                      = 1024
  maximum_capacity                 = 1
  minimum_capacity                 = 0
  vpc_id                           = "vpc-7f0e841a"
  iam_policy_file_enabled          = true
  cloudwatch_event_enabled         = true
  cloudwatch_event_schedule        = "rate(3 minutes)"
  autoscaling_cpu_policy_enabled   = false

  fargate_service_subnets = [
    "subnet-067a6b45b079d7296",
    "subnet-043d235081c966332",
  ]

  environment_variables = [
    {
      Environment = "${var.environment}"
    },
    {
      LOGGER_DSN = "${var.LOGGER_DSN}"
    },
    {
      SENTRY_DSN = "${data.aws_secretsmanager_secret_version.sentry_dsn.secret_string}"
    },
  ]
}