module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=1.0.0"
  environment        = var.environment
  application_family = var.application_family
  service_name       = var.service_name
}

provider "aws" {
  region = var.aws_region

  default_tags {
    tags = module.default_tags.tags
  }
}

provider "datadog" {
  default_tags {
    tags = module.default_tags.tags
  }
}

provider "aws" {
  region  = var.aws_region
  alias   = "networking"
  profile = "networking"

  default_tags {
    tags = module.default_tags.tags
  }
}

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

resource "datadog_monitor" "last_updated_monitor" {
  for_each = var.monitor_metrics

  name = "${var.environment} BACON ${each.value} last updated monitor"
  type = "metric alert"

  message = "BACON metric ${each.value} is too old and needs investigation. Notify: ${var.notification_endpoints}"
  query   = "sum(last_60m):max:${each.value}{*}.as_count() >= 21600"

  monitor_thresholds {
    warning  = 10800 # 3 hours
    critical = 21600 # 6 hours
  }

  require_full_window = false
}
