Uptimeify Docs
Ressourcen

uptimeify_status_page

Ressource uptimeify_status_page: Beispiel, alle Attribute, Import.

Die Beschreibungen auf dieser Seite kommen direkt aus dem Provider-Schema und sind deshalb englisch.

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.

Beispiel

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

Pflichtfelder

  • 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 whenever access_password_wo_version changes; never stored in state. Removing it does not remove the password.
  • access_password_wo_version (Number) Change to resend access_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). (siehe verschachteltes Schema)
  • include_customer_monitors (Boolean) Also show every monitor of the customer (minus hidden_monitors) after the explicit components (uptimeify_status_page_component). false = only the components. Unset = the server default at creation (false for new pages; older app versions used true for 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 of visibility. 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) Default true.
  • push_subscriptions_enabled (Boolean) Visitors may subscribe to browser push notifications. Default false; needs push keys on the platform.
  • slug (String) URL slug, lowercase letters, digits and single hyphens, 2 to 120 characters. Unset = derived from name once 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. Default false. Each SMS draws on the organization's SMS quota.
  • subscription_delay_minutes (Number) Flap window before subscribers are mailed, 1 to 120 minutes. Default 5.
  • subscriptions_enabled (Boolean) Visitors may subscribe to e-mail updates. Default true.
  • visibility (String) public (default), customer_members_only, password_protected or sso_members_only. password_protected needs a password: set access_password_wo, or keep one set earlier. sso_members_only is customer_members_only plus a session from the organization's single sign-on (uptimeify_sso_oidc); without verified SSO the API refuses it (ssoNotConfigured).

Nur lesbar

  • 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)

Verschachteltes Schema für hidden_monitors

Required:

  • id (Number) Numeric monitor id.
  • type (String) Monitor type: http (website), dns, icmp, smtp, ssh, tcp, ftp or imap_pop.

Import

Import geht so:

Mit tofu import bzw. terraform import, zum Beispiel:

# Numeric id or public id
terraform import uptimeify_status_page.acme 42

Auf dieser Seite