data "aws_caller_identity" "current" {}

data "datadog_role" "datadog_admin_role" {
  filter = "Datadog Admin Role"
}

resource "datadog_monitor" "sound_recordings_takedown_success_monitor" {
  name    = "${var.environment}-sound-recordings-takedown-success-monitor"
  type    = "metric alert"
  message = "Sound Recordings Takedown has not published a success metric in the last 25h; the daily job may not be running. Notify: @slack-content-delivery-and-asset-mgmt-alerts"
  query   = "sum(last_25h):sum:sound_recordings_takedown.success{*} < 1"

  monitor_thresholds {
    critical = 1
  }

  notify_no_data      = true
  renotify_interval   = 60 * 24
  require_full_window = false
  no_data_timeframe   = 0
  restricted_roles    = [data.datadog_role.datadog_admin_role.id]

  tags = [
    "environment:${var.environment}",
    "service_name:sound-recordings-takedown",
    "application_family:${var.application_family}",
    "terraformed:true",
  ]
}

resource "datadog_monitor" "sound_recordings_takedown_error_monitor" {
  name    = "${var.environment}-sound-recordings-takedown-error-monitor"
  type    = "metric alert"
  message = "Sound Recordings Takedown reported errors in the last 25h. Notify: @slack-content-delivery-and-asset-mgmt-alerts"
  query   = "sum(last_25h):sum:sound_recordings_takedown.error{*} >= 1"

  monitor_thresholds {
    critical = 1
  }

  notify_no_data      = false
  renotify_interval   = 60
  require_full_window = false
  restricted_roles    = [data.datadog_role.datadog_admin_role.id]

  tags = [
    "environment:${var.environment}",
    "service_name:sound-recordings-takedown",
    "application_family:${var.application_family}",
    "terraformed:true",
  ]
}
