resource "grafana_rule_group" "this" { for_each = { for g in local.groups : g.uid => g } name = each.value.name folder_uid = each.value.folder_uid interval_seconds = ( substr(each.value.interval, length(each.value.interval) - 1, 1) == "m" ? tonumber(substr(each.value.interval, 0, length(each.value.interval) - 1)) * 60 : tonumber(trim(each.value.interval, "s")) ) disable_provenance = var.disable_provenance dynamic "rule" { for_each = each.value.rules content { uid = rule.value.uid name = try(rule.value.title, rule.value.name) condition = rule.value.condition for = try(rule.value.for, null) no_data_state = rule.value.noDataState exec_err_state = rule.value.execErrState is_paused = try(rule.value.isPaused, false) # Merge team labels with platform-injected receiver annotations = try(rule.value.annotations, {}) labels = try(rule.value.labels, {}) dynamic "data" { for_each = rule.value.data content { ref_id = data.value.refId datasource_uid = data.value.datasource_uid dynamic "relative_time_range" { for_each = [data.value.relative_time_range] content { from = relative_time_range.value.from to = relative_time_range.value.to } } model = jsonencode(data.value.model) } } } } }