variable environment {}
variable lambda_function_name {}
variable api_gateway_instance_name {}

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

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

module "iam_owsrequest" {
  source = "git@github.com:theorchard/terraform-owsrequest.git"

  environment_name = "${var.environment}"
  service_name     = "lambda-${var.lambda_function_name}"
}

module "lambda_new_releases" {
  source      = "../modules/lambda"
  environment = "${var.environment}"
  lambda_name = "${var.lambda_function_name}"
  s3_bucket   = "${var.environment}-orcdbucket"
  s3_path     = "releases.theorchard.com"

  lambda_function_environment_variables = {
    Environment         = "prod"
    SNOWFLAKE_ACCOUNT   = "dummy"
    SNOWFLAKE_USER      = "dummy"
    SNOWFLAKE_PASSWORD  = "dummy"
    SNOWFLAKE_ROLE      = "dummy"
    SNOWFLAKE_DATABASE  = "dummy"
    SNOWFLAKE_SCHEMA    = "dummy"
    SNOWFLAKE_WAREHOUSE = "dummy"
  }

  owsrequest_iam_policy  = "${module.iam_owsrequest.policy_arn_output}"
  vpc_security_group_ids = ["sg-21f1ed44"]
  vpc_subnet_ids         = ["subnet-5366ef24", "subnet-cb4dbae0"]
}

module "api_gateway_new_releases" {
  source = "../modules/api_gateway"

  api_gateway_name            = "${var.environment}-${var.api_gateway_instance_name}"
  api_gateway_certificate_arn = "arn:aws:acm:us-east-1:437795906767:certificate/a76e4883-28aa-4062-a4cc-c06b8012ae28"
  api_gateway_domain_name     = "new-release-data.theorchard.io"
  invoke_api_iam_user_name    = "${var.environment}-45press-invoke-${var.api_gateway_instance_name}"
  s3_bucket                   = "${var.environment}-orcdbucket"
  s3_path                     = "releases.theorchard.com"
  s3_region                   = "us-east-1"

  aws_route53_params = {
    zone_id = "Z2RSKZ9M7TJ9Z"
    type    = "A"
  }
}
