require-prevent-destroy-on-irreplaceable
Warn when a curated durable-data container lacks a literal provider-side deletion guard or Terraform lifecycle destroy guard.
Why
Buckets, secrets, and registries may hold durable state; unguarded deletion needs review when no authoritative recovery source exists.
Fix
Prefer a supported provider guard. Otherwise consider lifecycle { prevent_destroy = true }, which stops planned deletion only while the resource block remains, or suppress SARJ203 with a disposable rationale.
Examples
resource "google_storage_bucket" "records" { name = "records" force_destroy = true}resource "google_storage_bucket" "records" { name = "records" force_destroy = true deletion_policy = "PREVENT"}resource "google_storage_bucket" "records" { name = "records"}resource "google_storage_bucket" "records" { name = "records" deletion_policy = "PREVENT"}