Terraform Provider Resources, Data Sources, and Limitations
The hosted-status-page/hsp provider manages these StatusPage.me objects. Configuration resources have matching data sources; append-only timeline updates do not.
The incident lifecycle described below requires provider version 0.1.1 or later.
| Resource | Matching data source | What it manages |
|---|---|---|
hsp_status_page | hsp_status_page | Status page name, slug, and supported page configuration |
hsp_monitor | hsp_monitor | Site, API, and DNS monitors |
hsp_incident | hsp_incident | Immutable published incidents |
hsp_incident_update | — | Append-only incident timeline entries |
hsp_maintenance | hsp_maintenance | Scheduled maintenance windows |
hsp_metric | hsp_metric | Display-only live metrics |
The Terraform Registry contains the generated argument-by-argument reference and examples for every resource and data source: view the provider documentation.
Monitor types
hsp_monitor supports these monitor types:
siteapidns
API monitor authentication, custom query parameters, headers, and request bodies are not yet exposed through Terraform. Configure an authenticated or otherwise advanced API monitor in the StatusPage.me dashboard.
Database monitors are intentionally unavailable while their product design is paused.
Incident history
Published hsp_incident fields are immutable. Use hsp_incident_update to append messages and state transitions to the public timeline.
Terraform never hard-deletes an incident or timeline update. Destroying hsp_incident is refused unless archive_on_destroy = true; even then, the incident must be resolved and the status-page owner’s plan must include incident archiving. Removing hsp_incident_update only forgets its Terraform state because published timeline history remains permanent.
Changing an immutable hsp_incident field produces a plan error instead of replacing the incident. State transitions must move forward, and resolved or archived incidents reject new timeline updates.
Archiving is intentionally a two-apply operation. First set archive_on_destroy = true and apply that change. Then remove the resolved incident resource from configuration and apply again. This prevents an ordinary configuration removal from silently hiding incident history.
Normalization and drift
The API normalizes some input, including whitespace, status-page slugs, metric icons, and decimal metric values. Terraform records the normalized response in state.
hsp_status_page.is_simple is different: the API does not return it. Terraform keeps the last-applied value in state, cannot detect out-of-band changes to it, and replaces the resource when you change it.
New monitors can be forced disabled when their status page has reached its monitor limit. Check your plan limits before assuming an apply can activate another monitor.