uptimeify_status_page
A status page of one customer, or of the whole organization without customer_id. It shows its explicit components (uptimeify_status_page_component, the allowlist) and, only with include_customer_monitors, also every monitor of the customer except hidden_monitors. Design, audience groups, custom domain and IM rules are separate resources (uptimeify_status_page_design, uptimeify_status_page_audience_groups, uptimeify_status_page_domain, uptimeify_im_statuspage_rule). Deleting the page also deletes its custom domain. Import with the numeric id or the public id.
A status page of one customer, or of the whole organization without customer_id. It shows its explicit components (uptimeify_status_page_component, the allowlist) and, only with include_customer_monitors, also every monitor of the customer except hidden_monitors. Design, audience groups, custom domain and IM rules are separate resources (uptimeify_status_page_design, uptimeify_status_page_audience_groups, uptimeify_status_page_domain, uptimeify_im_statuspage_rule). Deleting the page also deletes its custom domain. Import with the numeric id or the public id.
Example Usage
data "uptimeify_customer" "acme" {
name = "ACME GmbH"
}
# Shows the explicit components and every other monitor of the customer except the hidden ones.
resource "uptimeify_status_page" "acme" {
customer_id = tonumber(data.uptimeify_customer.acme.id)
name = "ACME Status"
slug = "acme"
description = "Live status of the ACME shop."
include_customer_monitors = true
hidden_monitors = [
{ type = "http", id = 1234 },
{ type = "dns", id = 56 },
]
}
# A page of the whole organization: no customer, only the explicit components
# (uptimeify_status_page_component), which may come from any customer. Visitors may also
# subscribe by SMS and browser push.
resource "uptimeify_status_page" "platform" {
name = "Platform Status"
sms_subscriptions_enabled = true
push_subscriptions_enabled = true
}
# Internal page: only members signed in through the organization's single sign-on, and only
# from the office networks.
resource "uptimeify_status_page" "staff" {
name = "Staff Status"
visibility = "sso_members_only"
ip_allowlist = ["203.0.113.0/24", "2001:db8::/32"]
}
# Password-protected page; the password never lands in state.
# Bump access_password_wo_version to send a new password.
resource "uptimeify_status_page" "internal" {
customer_id = tonumber(data.uptimeify_customer.acme.id)
name = "ACME Internal"
visibility = "password_protected"
access_password_wo = var.status_page_password
access_password_wo_version = 1
}
variable "status_page_password" {
type = string
sensitive = true
ephemeral = true
}Schema
Required
name(String) 1 to 120 characters, no surrounding whitespace.
Optional
NOTE: Write-only arguments are supported in Terraform 1.11 and later.
access_password_wo(String, Sensitive, Write-only) Access password, 8 to 200 characters. Write-only: sent on create and wheneveraccess_password_wo_versionchanges; never stored in state. Removing it does not remove the password.access_password_wo_version(Number) Change to resendaccess_password_wo.customer_id(Number) Customer the page belongs to. Unset = a page of the whole organization (organization-wide tokens and roles only); its components may then come from any customer. Changing or removing it moves the page in place; moving to a customer fails while the page has monitor components of another customer.description(String) Up to 1000 characters, no surrounding whitespace.hidden_monitors(Attributes Set) Monitors of the customer the page does not show, at most 500. Default: none (every monitor is shown). (see below for nested schema)include_customer_monitors(Boolean) Also show every monitor of the customer (minushidden_monitors) after the explicit components (uptimeify_status_page_component).false= only the components. Unset = the server default at creation (falsefor new pages; older app versions usedtruefor pages with a customer), then kept as is.ip_allowlist(Set of String) Only visitors from these networks see the page (403 for everyone else), on top ofvisibility. CIDR ranges with explicit prefix and lowercase address (203.0.113.0/24,203.0.113.5/32,2001:db8::/32), at most 50. Default: none (no IP restriction). A page with a list has no badge, widget, feeds or subscriptions.is_published(Boolean) Defaulttrue.push_subscriptions_enabled(Boolean) Visitors may subscribe to browser push notifications. Defaultfalse; needs push keys on the platform.slug(String) URL slug, lowercase letters, digits and single hyphens, 2 to 120 characters. Unset = derived fromnameonce at creation (with a numeric suffix on collision). A set slug that is taken fails the create.sms_subscriptions_enabled(Boolean) Visitors may subscribe by SMS. Defaultfalse. Each SMS draws on the organization's SMS quota.subscription_delay_minutes(Number) Flap window before subscribers are mailed, 1 to 120 minutes. Default5.subscriptions_enabled(Boolean) Visitors may subscribe to e-mail updates. Defaulttrue.visibility(String)public(default),customer_members_only,password_protectedorsso_members_only.password_protectedneeds a password: setaccess_password_wo, or keep one set earlier.sso_members_onlyiscustomer_members_onlyplus a session from the organization's single sign-on (uptimeify_sso_oidc); without verified SSO the API refuses it (ssoNotConfigured).
Read-Only
access_password_set_at(String)created_at(String)customer_name(String)has_password(Boolean) Whether a password is set (it is never returned).id(String) Numeric status page id.organization_id(Number)public_id(String) Public UUID of the page.updated_at(String)
Nested Schema for hidden_monitors
Required:
id(Number) Numeric monitor id.type(String) Monitor type:http(website),dns,icmp,smtp,ssh,tcp,ftporimap_pop.
Import
Import is supported using the following syntax:
The terraform import command can be used, for example:
# Numeric id or public id
terraform import uptimeify_status_page.acme 42uptimeify_sso_oidc
Single sign-on of the organization with an OpenID Connect identity provider (PUT /api/organization/sso). One per organization; needs an organization admin token. Saving runs the issuer's discovery, so the issuer must be reachable over HTTPS from Uptimeify. Register the client at your identity provider with redirect_uri and the scopes (both known before the first apply, see GET /api/organization/sso). Prove the domain with the DNS TXT record verification_record and uptimeify_sso_domain_verification. A new domain or issuer resets the verification, the first login and enforce_sso. Destroying it removes SSO. A SAML configuration is not managed here: it reads as gone, and an apply replaces it with OIDC. Import with the id sso.
uptimeify_status_page_audience_groups
The audience groups of one status page (one resource per page): a component listed in a group is shown only to visitors signed in with a verified email address of one of the group's domains, and to editors of the page; components in no group stay visible to everyone who may view the page. A page with groups has no badge, widget, feeds or subscriptions. Destroying the resource removes all groups. Import with the numeric status page id.