terraform {
  backend "s3" {
    bucket                  = "dev-dna-tfstate"
    key                     = "delphi/qa/gcp/bt_df_data_retention_manager.tfstate"
    region                  = "us-east-1"
    shared_credentials_file = "~/.aws/credentials"
    profile                 = "gdb-delphi-dev"
    dynamodb_table          = "terraform-state-lock-dynamodb"
  }
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "4.68.0"
    }
    archive = {
      source  = "hashicorp/archive"
      version = "2.2.0"
    }
  }
}

locals {
  region_zones  = formatlist("%s-%s", var.region_id, ["a", "b", "c", "f"])
  lambda_bucket = "${join("-", reverse(split("-", var.project_id)))}-lambda-artifacts"
}

provider "google" {
  credentials = file("~/.gcp/gdb-${var.project_id}.json")
  project     = var.project_id
  zone        = local.region_zones[0]
}

module "function" {
  source = "../module"

  project_id              = var.project_id
  region_id               = var.region_id
  instance_id             = var.instance_id
  tables                  = var.tables
  start_year              = var.start_year
  retention_months        = var.retention_months
  key_prefix              = var.key_prefix
  df_staging_location     = var.df_staging_location
  df_template             = var.df_template
  df_max_num_workers      = var.df_max_num_workers
  simultaneous_jobs_limit = var.simultaneous_jobs_limit
  job_timeout_hours       = var.job_timeout_hours
  job_max_retries         = var.job_max_retries
  delete_rows             = var.delete_rows



  lambda_bucket     = local.lambda_bucket
  scheduler_enabled = var.scheduler_enabled
  schedule          = var.schedule
  slack_channel_id  = var.slack_channel_id
  slack_secret      = var.slack_secret
}
