terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/datadog/on-call/sony-music-fans/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "datadog_team" "team" {
  filter_keyword = "Sony Music Fans"
}

data "datadog_user" "on_call_team_users" {
  for_each                 = toset(var.on_call_users)
  filter                   = each.value
  exclude_service_accounts = true
}

data "datadog_user" "escalation_users" {
  for_each                 = toset(var.escalation_only_users)
  filter                   = each.value
  exclude_service_accounts = true
}

# There is no dedicated schedule for Sony Music Fans
# Escalation is directly to users
resource "datadog_on_call_escalation_policy" "escalation_policy" {
  name                       = "Sony Music Fans Escalation Policy"
  teams                      = [
    data.datadog_team.team.id,
  ]
  resolve_page_on_policy_end = false
  retries                    = 3

  step {
    assignment             = "default"
    escalate_after_seconds = 60

    target {
      user = data.datadog_user.escalation_users["bill.fleischer@sonymusic-pde.com"].id
    }

    target {
      user = data.datadog_user.escalation_users["christian.aziz@sonymusic-pde.com"].id
    }
  }
}

resource "datadog_on_call_team_routing_rules" "routing_rules" {
  id = data.datadog_team.team.id

  rule {
    escalation_policy = datadog_on_call_escalation_policy.escalation_policy.id
    urgency           = "dynamic"
  }
}
