terraform-provider-stackgen

sg_sre_alert_webhook (Resource)

⚠️ Experimental — Registers a StackGen SRE Copilot alert ingest webhook.

This resource calls the SRE app POST /api/v1/alerts/webhook API, which creates a Guild app webhook forwarder to /api/v1/alerts/ingest and stores classify / auto-investigate settings in the SRE app database. sg_webhook alone is insufficient — ingest rejects payloads without the SRE app config row.

Requires provider workspace_id and stackgen_url so requests reach /app/{app_name}/api under the platform base URL.

Import ID format: {app_name}/{source}/{integration} (integration may be empty).

Example Usage

# When to use: Register an SRE Copilot alert-ingest webhook (Datadog, Grafana, …).
# sg_webhook alone is NOT enough — ingest rejects payloads without the SRE app
# config row this resource creates.
#
# Prerequisites:
#   - Provider workspace_id + stackgen_url (requests go to /app/{app_name}/api)
#   - SRE app installed and integrations bound (sg_app)
#   - source must match a registered SRE webhook parser (e.g. datadog, grafana)
#
# Related: sg_app (bind integrations first), sg_webhook (generic Guild webhooks —
# different API; do not substitute for this resource).
#
# Import ID format: {app_name}/{source}/{integration}
# Requires provider >= 0.1.27.
resource "sg_sre_alert_webhook" "datadog" {
  app_name    = "sre"
  source      = "datadog"
  integration = "example-datadog"

  auto_investigate              = true
  classify_mode                 = "batch"
  classify_batch_window_seconds = 60
  classify_bucket_by            = "storm_scope"
  classify_critical_bypass      = true
}

Import

Import an existing sg_sre_alert_webhook using its app_name/source[/integration]:

terraform import sg_sre_alert_webhook.example 'sre/grafana/example-grafana'

The integration segment is optional: use sre/grafana when none is configured.

Schema

Required

Optional

Read-Only