variable "name" { description = "Название цепочки эскалации" type = string } variable "team_id" { description = "ID команды в Grafana IRM (опционально)" type = string default = null } variable "steps" { description = <<-EOT Шаги эскалации по порядку. position назначается автоматически (0, 1, 2...). Доступные типы (type): notify_persons — уведомить конкретных пользователей notify_person_next_each_time — round-robin по списку notify_on_call_from_schedule — кто сейчас на дежурстве по расписанию notify_user_group — уведомить группу пользователей notify_team_members — уведомить команду wait — пауза (duration_seconds секунд) trigger_webhook — вызвать webhook resolve — авторезолв инцидента repeat_escalation — повторить цепочку с начала Пример: steps = [ { type = "notify_on_call_from_schedule", notify_on_call_from_schedule = "" }, { type = "wait", duration_seconds = 300 }, { type = "notify_persons", persons_to_notify = [""] }, { type = "repeat_escalation" }, ] EOT type = list(object({ type = string duration_seconds = optional(number, null) persons_to_notify = optional(list(string), null) persons_to_notify_next_each_time = optional(list(string), null) notify_on_call_from_schedule = optional(string, null) group_to_notify = optional(string, null) action_to_trigger = optional(string, null) notify_to_team_members = optional(string, null) important = optional(bool, false) })) validation { condition = alltrue([ for s in var.steps : contains([ "notify_persons", "notify_person_next_each_time", "notify_on_call_from_schedule", "notify_user_group", "notify_team_members", "wait", "trigger_webhook", "resolve", "repeat_escalation", "declare_incident", "notify_whole_channel", "notify_if_time_from_to", "notify_if_num_alerts_in_window", ], s.type) ]) error_message = "Недопустимый тип шага эскалации. Проверь список допустимых значений в описании переменной." } }