1. Registry
  2. Packages
  3. incident.io
  4. API Docs
  5. StatusPageComponent
Viewing docs for incident.io v0.4.1
published on Wednesday, Oct 21, 2026 by incident-io
incident logo incident.io
Viewing docs for incident.io v0.4.1
published on Wednesday, Oct 21, 2026 by incident-io

    Manages a status page component: something a status page reports the status of, such as a service or a region.

    A component belongs to your organisation rather than to a page, and can appear on any number of status pages. Each page’s structure decides which pages show it, and where. This resource creates and maintains the component; placing it on a page is incident.StatusPageStructure’s job. Look a page up with the incident.getStatusPage data source.

    The API key needs the “Configure status pages” permission. Deleting a component archives it. incident.io refuses to archive a component while a page’s structure still places it, or while an incident, maintenance window or subscription still refers to it. Remove it from those first.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@incident-io/pulumi";
    
    // A component is something a status page reports the status of. It belongs to your
    // organisation rather than to a page. Each page's structure in the dashboard decides which
    // pages show it, so creating one here doesn't put it on a page yet.
    const api = new incident.StatusPageComponent("api", {
        name: "API",
        description: "The public REST API",
    });
    // The description is optional. Drop the attribute to clear one.
    const dashboard = new incident.StatusPageComponent("dashboard", {name: "Dashboard"});
    // Terraform claims what it manages, so a component can't be edited in the dashboard. Set
    // unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
    const editedByHand = new incident.StatusPageComponent("edited_by_hand", {
        name: "Email delivery",
        unlockInDashboard: true,
    }, {
        ignoreChanges: ["description"],
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # A component is something a status page reports the status of. It belongs to your
    # organisation rather than to a page. Each page's structure in the dashboard decides which
    # pages show it, so creating one here doesn't put it on a page yet.
    api = incident.StatusPageComponent("api",
        name="API",
        description="The public REST API")
    # The description is optional. Drop the attribute to clear one.
    dashboard = incident.StatusPageComponent("dashboard", name="Dashboard")
    # Terraform claims what it manages, so a component can't be edited in the dashboard. Set
    # unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
    edited_by_hand = incident.StatusPageComponent("edited_by_hand",
        name="Email delivery",
        unlock_in_dashboard=True,
        opts = pulumi.ResourceOptions(ignore_changes=["description"]))
    
    package main
    
    import (
    	"github.com/incident-io/pulumi-incident/sdk/go/incident"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// A component is something a status page reports the status of. It belongs to your
    		// organisation rather than to a page. Each page's structure in the dashboard decides which
    		// pages show it, so creating one here doesn't put it on a page yet.
    		_, err := incident.NewStatusPageComponent(ctx, "api", &incident.StatusPageComponentArgs{
    			Name:        pulumi.String("API"),
    			Description: pulumi.String("The public REST API"),
    		})
    		if err != nil {
    			return err
    		}
    		// The description is optional. Drop the attribute to clear one.
    		_, err = incident.NewStatusPageComponent(ctx, "dashboard", &incident.StatusPageComponentArgs{
    			Name: pulumi.String("Dashboard"),
    		})
    		if err != nil {
    			return err
    		}
    		// Terraform claims what it manages, so a component can't be edited in the dashboard. Set
    		// unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
    		_, err = incident.NewStatusPageComponent(ctx, "edited_by_hand", &incident.StatusPageComponentArgs{
    			Name:              pulumi.String("Email delivery"),
    			UnlockInDashboard: pulumi.Bool(true),
    		}, pulumi.IgnoreChanges([]string{
    			"description",
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incident = Pulumi.Incident;
    
    return await Deployment.RunAsync(() => 
    {
        // A component is something a status page reports the status of. It belongs to your
        // organisation rather than to a page. Each page's structure in the dashboard decides which
        // pages show it, so creating one here doesn't put it on a page yet.
        var api = new Incident.StatusPageComponent("api", new()
        {
            Name = "API",
            Description = "The public REST API",
        });
    
        // The description is optional. Drop the attribute to clear one.
        var dashboard = new Incident.StatusPageComponent("dashboard", new()
        {
            Name = "Dashboard",
        });
    
        // Terraform claims what it manages, so a component can't be edited in the dashboard. Set
        // unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
        var editedByHand = new Incident.StatusPageComponent("edited_by_hand", new()
        {
            Name = "Email delivery",
            UnlockInDashboard = true,
        }, new CustomResourceOptions
        {
            IgnoreChanges =
            {
                "description",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.StatusPageComponent;
    import com.pulumi.incident.StatusPageComponentArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // A component is something a status page reports the status of. It belongs to your
            // organisation rather than to a page. Each page's structure in the dashboard decides which
            // pages show it, so creating one here doesn't put it on a page yet.
            var api = new StatusPageComponent("api", StatusPageComponentArgs.builder()
                .name("API")
                .description("The public REST API")
                .build());
    
            // The description is optional. Drop the attribute to clear one.
            var dashboard = new StatusPageComponent("dashboard", StatusPageComponentArgs.builder()
                .name("Dashboard")
                .build());
    
            // Terraform claims what it manages, so a component can't be edited in the dashboard. Set
            // unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
            var editedByHand = new StatusPageComponent("editedByHand", StatusPageComponentArgs.builder()
                .name("Email delivery")
                .unlockInDashboard(true)
                .build(), CustomResourceOptions.builder()
                    .ignoreChanges("description")
                    .build());
    
        }
    }
    
    resources:
      # A component is something a status page reports the status of. It belongs to your
      # organisation rather than to a page. Each page's structure in the dashboard decides which
      # pages show it, so creating one here doesn't put it on a page yet.
      api:
        type: incident:StatusPageComponent
        properties:
          name: API
          description: The public REST API
      # The description is optional. Drop the attribute to clear one.
      dashboard:
        type: incident:StatusPageComponent
        properties:
          name: Dashboard
      # Terraform claims what it manages, so a component can't be edited in the dashboard. Set
      # unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
      editedByHand:
        type: incident:StatusPageComponent
        name: edited_by_hand
        properties:
          name: Email delivery
          unlockInDashboard: true
        options:
          ignoreChanges:
            - description
    
    pulumi {
      required_providers {
        incident = {
          source = "pulumi/incident"
        }
      }
    }
    
    # A component is something a status page reports the status of. It belongs to your
    # organisation rather than to a page. Each page's structure in the dashboard decides which
    # pages show it, so creating one here doesn't put it on a page yet.
    resource "incident_statuspagecomponent" "api" {
      name        = "API"
      description = "The public REST API"
    }
    # The description is optional. Drop the attribute to clear one.
    resource "incident_statuspagecomponent" "dashboard" {
      name = "Dashboard"
    }
    # Terraform claims what it manages, so a component can't be edited in the dashboard. Set
    # unlock_in_dashboard to leave it editable there, and ignore the attributes people change.
    resource "incident_statuspagecomponent" "edited_by_hand" {
      lifecycle {
        ignore_changes = [description]
      }
      name                = "Email delivery"
      unlock_in_dashboard = true
    }
    

    Create StatusPageComponent Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new StatusPageComponent(name: string, args?: StatusPageComponentArgs, opts?: CustomResourceOptions);
    @overload
    def StatusPageComponent(resource_name: str,
                            args: Optional[StatusPageComponentArgs] = None,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def StatusPageComponent(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            description: Optional[str] = None,
                            name: Optional[str] = None,
                            unlock_in_dashboard: Optional[bool] = None)
    func NewStatusPageComponent(ctx *Context, name string, args *StatusPageComponentArgs, opts ...ResourceOption) (*StatusPageComponent, error)
    public StatusPageComponent(string name, StatusPageComponentArgs? args = null, CustomResourceOptions? opts = null)
    public StatusPageComponent(String name, StatusPageComponentArgs args)
    public StatusPageComponent(String name, StatusPageComponentArgs args, CustomResourceOptions options)
    
    type: incident:StatusPageComponent
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "incident_status_page_component" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args StatusPageComponentArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args StatusPageComponentArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args StatusPageComponentArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args StatusPageComponentArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args StatusPageComponentArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var statusPageComponentResource = new Incident.StatusPageComponent("statusPageComponentResource", new()
    {
        Description = "string",
        Name = "string",
        UnlockInDashboard = false,
    });
    
    example, err := incident.NewStatusPageComponent(ctx, "statusPageComponentResource", &incident.StatusPageComponentArgs{
    	Description:       pulumi.String("string"),
    	Name:              pulumi.String("string"),
    	UnlockInDashboard: pulumi.Bool(false),
    })
    
    resource "incident_status_page_component" "statusPageComponentResource" {
      lifecycle {
        create_before_destroy = true
      }
      description         = "string"
      name                = "string"
      unlock_in_dashboard = false
    }
    
    var statusPageComponentResource = new StatusPageComponent("statusPageComponentResource", StatusPageComponentArgs.builder()
        .description("string")
        .name("string")
        .unlockInDashboard(false)
        .build());
    
    status_page_component_resource = incident.StatusPageComponent("statusPageComponentResource",
        description="string",
        name="string",
        unlock_in_dashboard=False)
    
    const statusPageComponentResource = new incident.StatusPageComponent("statusPageComponentResource", {
        description: "string",
        name: "string",
        unlockInDashboard: false,
    });
    
    type: incident:StatusPageComponent
    properties:
        description: string
        name: string
        unlockInDashboard: false
    

    StatusPageComponent Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The StatusPageComponent resource accepts the following input properties:

    Description string
    Optional short description of this component
    Name string
    Human-readable name for the component
    UnlockInDashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    Description string
    Optional short description of this component
    Name string
    Human-readable name for the component
    UnlockInDashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description string
    Optional short description of this component
    name string
    Human-readable name for the component
    unlock_in_dashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description String
    Optional short description of this component
    name String
    Human-readable name for the component
    unlockInDashboard Boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description string
    Optional short description of this component
    name string
    Human-readable name for the component
    unlockInDashboard boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description str
    Optional short description of this component
    name str
    Human-readable name for the component
    unlock_in_dashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description String
    Optional short description of this component
    name String
    Human-readable name for the component
    unlockInDashboard Boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the StatusPageComponent resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing StatusPageComponent Resource

    Get an existing StatusPageComponent resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: StatusPageComponentState, opts?: CustomResourceOptions): StatusPageComponent
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            name: Optional[str] = None,
            unlock_in_dashboard: Optional[bool] = None) -> StatusPageComponent
    func GetStatusPageComponent(ctx *Context, name string, id IDInput, state *StatusPageComponentState, opts ...ResourceOption) (*StatusPageComponent, error)
    public static StatusPageComponent Get(string name, Input<string> id, StatusPageComponentState? state, CustomResourceOptions? opts = null)
    public static StatusPageComponent get(String name, Output<String> id, StatusPageComponentState state, CustomResourceOptions options)
    resources:  _:    type: incident:StatusPageComponent    get:      id: ${id}
    import {
      to = incident_status_page_component.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Description string
    Optional short description of this component
    Name string
    Human-readable name for the component
    UnlockInDashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    Description string
    Optional short description of this component
    Name string
    Human-readable name for the component
    UnlockInDashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description string
    Optional short description of this component
    name string
    Human-readable name for the component
    unlock_in_dashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description String
    Optional short description of this component
    name String
    Human-readable name for the component
    unlockInDashboard Boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description string
    Optional short description of this component
    name string
    Human-readable name for the component
    unlockInDashboard boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description str
    Optional short description of this component
    name str
    Human-readable name for the component
    unlock_in_dashboard bool
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.
    description String
    Optional short description of this component
    name String
    Human-readable name for the component
    unlockInDashboard Boolean
    Whether to leave this resource unlocked in the incident.io dashboard, so people can edit it there. Defaults to false: Terraform claims what it manages, and a claimed resource cannot be edited in the dashboard. Set it to true to leave the resource unclaimed — pair that with lifecycle { ignoreChanges = [...] } naming the attributes people edit, or the next apply reverts them. Setting it on a resource Terraform already claimed hands that resource back, and someone disconnecting one in the dashboard shows as no change.

    Import

    Import is supported using an import block or the pulumi import command:

    The pulumi import command can be used, for example:

    !/bin/bash

    Import a status page component using its ID Replace the ID with a real ID from your incident.io organization

    $ pulumi import incident:index/statusPageComponent:StatusPageComponent example 01ABC123DEF456GHI789JKL
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    incident incident-io/pulumi-incident
    License
    MIT
    Notes
    This Pulumi package is based on the incident Terraform Provider.
    incident logo incident.io
    Viewing docs for incident.io v0.4.1
    published on Wednesday, Oct 21, 2026 by incident-io

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial