Skip to main content

Resources and Data Sources

This page lists the Terraform provider types that are currently implemented in code.

Resources

The provider currently registers these resources:

  • statuspage_hierarchy_level
  • statuspage_hierarchy_item
  • statuspage_managed_domain
  • statuspage_status_definition
  • statuspage_lifecycle_stage
  • statuspage_maintenance_lifecycle_stage
  • statuspage_page_admin_auth_provider
  • statuspage_page_settings
  • statuspage_page_viewer_auth_provider
  • statuspage_site_settings
  • statuspage_role_definition
  • statuspage_role_binding
  • statuspage_sso_group_mapping
  • statuspage_preset_message
  • statuspage_beat_group
  • statuspage_synthetic_monitor
  • statuspage_external_event_source
  • statuspage_external_beat_trigger
  • statuspage_slack_app_settings
  • statuspage_slack_channel_reminder_settings
  • statuspage_custom_view
  • statuspage_rss_feed
  • statuspage_view_alias_blocklist_entry

Data sources

The provider currently registers these data sources:

  • statuspage_hierarchy_levels
  • statuspage_hierarchy_item
  • statuspage_custom_views
  • statuspage_rss_feeds
  • statuspage_status_events

Important behavior notes

Hierarchy items

Hierarchy item status is computed and read-only in Terraform. The resource schema explicitly documents that status changes must happen through incidents or maintenance.

Page and site settings

statuspage_page_settings manages page identity and viewer-access policy fields that belong to the page rather than the public site chrome.

statuspage_site_settings is a singleton resource. Removing it from Terraform state does not delete settings from the API.

Hosted embed settings also live on statuspage_site_settings. The provider manages the durable configuration:

  • embed_badge_enabled
  • embed_badge_label
  • embed_widget_enabled
  • custom_css
  • custom_head_script_url
  • custom_body_script_url
  • document_locale
  • datetime_locale

The rendered badge SVG and widget iframe remain hosted public surfaces, not separate Terraform resources.

Custom CSS, external script hooks, and locale defaults are durable page settings, so they fit the provider scope. One-off operational behavior tied to those integrations still belongs in the app or API instead of new Terraform resources.

RBAC resources

statuspage_role_definition and statuspage_role_binding support organization and page scope. In the main path, organization-scoped resources derive org context from the same page or custom-domain host, and page-scoped resources operate on that current page directly.

Built-in roles are available everywhere. Custom RBAC definitions and non-built-in role bindings require advanced RBAC and become read-only if the workspace drops below that plan.

Slack app settings

statuspage_slack_app_settings is also modeled as a singleton resource. Sensitive values such as client secret and signing secret are treated as write-only inputs.

Beat Groups and Beats

statuspage_beat_group models grouped synthetic-monitor automation ownership such as grouped incident scope, message policies, and message-source mode.

statuspage_synthetic_monitor continues to manage individual Beat configuration. Use its optional beat_group_id attribute when that Beat should delegate incident ownership and customer-facing messaging to a Beat Group while still keeping its own thresholds and evidence.

statuspage_synthetic_monitor also supports type = "external_event" for Beats driven by External Beat Triggers instead of scheduled probe execution.

External Beat Triggers

statuspage_external_event_source manages a page-scoped ingest endpoint. The full ingest token is returned only when the endpoint is created; subsequent reads expose only metadata and the token prefix.

statuspage_external_beat_trigger manages the rule that maps external event payloads into Beat state. It stores condition, stage-mapping, output-mapping, safety, and association JSON so the provider can support generic webhook payloads without adding a provider-specific Terraform schema for every upstream alerting product.

Use draft-only action policies on the target Beat or Beat Group until preview confirms the trigger matches and recovers as expected.

Custom views

Custom views are managed by short_code, name, description, component IDs, and protected-view policy fields such as:

  • access_mode
  • allowed_emails
  • allowed_domains
  • access_message
  • access_session_ttl_minutes

Page authentication

statuspage_page_admin_auth_provider and statuspage_page_viewer_auth_provider manage page-scoped identity-provider configuration for admin and private-page viewer access.

Managed domains

statuspage_managed_domain manages the custom-domain configuration attached to a page.

RSS

RSS feeds are available as both statuspage_rss_feed resources and the statuspage_rss_feeds data source.

View alias blocklist

statuspage_view_alias_blocklist_entry reserves public view aliases that should not be used by custom views.

Subscriber operations

Subscriber CSV import/export, hygiene suppression state, and bulk delivery actions are intentionally not Terraform resources. They are operational tools for migration and cleanup, not durable configuration.