1. Registry
  2. Packages
  3. incident.io
  4. API Docs
  5. StatusPageStructure
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 the structure of a standalone status page: which components it shows, in what order, how they are grouped, and how each is displayed. The page itself is created in the incident.io dashboard; look it up with the incident.getStatusPage data source. Components come from incident.StatusPageComponent.

    A group keeps its ID across applies as long as its name does, so links to it stay valid. Renaming a group creates a new one. Display settings left out of the configuration keep whatever the page already has, so a structure adopted from the dashboard keeps its hidden components and uptime settings until the configuration says otherwise.

    Terraform claims the structure, so it cannot be edited in the dashboard; set unlockInDashboard to leave it editable there. Destroying this resource leaves the page’s structure in place, since a page always has one; it only stops Terraform managing it. The API key needs the “Configure status pages” permission. Parent and customer pages build their structure from the catalog and cannot be managed here.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@incident-io/pulumi";
    
    // The page itself is created in the dashboard. Its components can be managed here.
    const _public = incident.getStatusPage({
        name: "Our public status page",
    });
    const website = new incident.StatusPageComponent("website", {name: "Website"});
    const api = new incident.StatusPageComponent("api", {name: "API"});
    const database = new incident.StatusPageComponent("database", {name: "Database"});
    // The structure is the page's layout: items appear in the order listed, each one either a
    // single component or a named group of components. Display settings are optional; one left
    // out keeps whatever the dashboard has.
    const publicStatusPageStructure = new incident.StatusPageStructure("public", {
        statusPageId: _public.then(_public => _public.id),
        displayUptimeMode: "chart_and_percentage",
        items: [
            {
                componentId: website.id,
            },
            {
                group: {
                    name: "Backend",
                    description: "The services behind the website",
                    components: [
                        {
                            componentId: api.id,
                        },
                        {
                            componentId: database.id,
                            displayUptime: false,
                        },
                    ],
                },
            },
        ],
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # The page itself is created in the dashboard. Its components can be managed here.
    public = incident.get_status_page(name="Our public status page")
    website = incident.StatusPageComponent("website", name="Website")
    api = incident.StatusPageComponent("api", name="API")
    database = incident.StatusPageComponent("database", name="Database")
    # The structure is the page's layout: items appear in the order listed, each one either a
    # single component or a named group of components. Display settings are optional; one left
    # out keeps whatever the dashboard has.
    public_status_page_structure = incident.StatusPageStructure("public",
        status_page_id=public.id,
        display_uptime_mode="chart_and_percentage",
        items=[
            {
                "component_id": website.id,
            },
            {
                "group": {
                    "name": "Backend",
                    "description": "The services behind the website",
                    "components": [
                        {
                            "component_id": api.id,
                        },
                        {
                            "component_id": database.id,
                            "display_uptime": False,
                        },
                    ],
                },
            },
        ])
    
    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 {
    		// The page itself is created in the dashboard. Its components can be managed here.
    		public, err := incident.GetStatusPage(ctx, &incident.GetStatusPageArgs{
    			Name: pulumi.StringRef("Our public status page"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		website, err := incident.NewStatusPageComponent(ctx, "website", &incident.StatusPageComponentArgs{
    			Name: pulumi.String("Website"),
    		})
    		if err != nil {
    			return err
    		}
    		api, err := incident.NewStatusPageComponent(ctx, "api", &incident.StatusPageComponentArgs{
    			Name: pulumi.String("API"),
    		})
    		if err != nil {
    			return err
    		}
    		database, err := incident.NewStatusPageComponent(ctx, "database", &incident.StatusPageComponentArgs{
    			Name: pulumi.String("Database"),
    		})
    		if err != nil {
    			return err
    		}
    		// The structure is the page's layout: items appear in the order listed, each one either a
    		// single component or a named group of components. Display settings are optional; one left
    		// out keeps whatever the dashboard has.
    		_, err = incident.NewStatusPageStructure(ctx, "public", &incident.StatusPageStructureArgs{
    			StatusPageId:      pulumi.String(public.Id),
    			DisplayUptimeMode: pulumi.String("chart_and_percentage"),
    			Items: incident.StatusPageStructureItemArray{
    				&incident.StatusPageStructureItemArgs{
    					ComponentId: website.ID().ToIDOutput().ToStringOutput(),
    				},
    				&incident.StatusPageStructureItemArgs{
    					Group: &incident.StatusPageStructureItemGroupArgs{
    						Name:        pulumi.String("Backend"),
    						Description: pulumi.String("The services behind the website"),
    						Components: incident.StatusPageStructureItemGroupComponentArray{
    							&incident.StatusPageStructureItemGroupComponentArgs{
    								ComponentId: api.ID().ToIDOutput().ToStringOutput(),
    							},
    							&incident.StatusPageStructureItemGroupComponentArgs{
    								ComponentId:   database.ID().ToIDOutput().ToStringOutput(),
    								DisplayUptime: pulumi.Bool(false),
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incident = Pulumi.Incident;
    
    return await Deployment.RunAsync(() => 
    {
        // The page itself is created in the dashboard. Its components can be managed here.
        var @public = Incident.GetStatusPage.Invoke(new()
        {
            Name = "Our public status page",
        });
    
        var website = new Incident.StatusPageComponent("website", new()
        {
            Name = "Website",
        });
    
        var api = new Incident.StatusPageComponent("api", new()
        {
            Name = "API",
        });
    
        var database = new Incident.StatusPageComponent("database", new()
        {
            Name = "Database",
        });
    
        // The structure is the page's layout: items appear in the order listed, each one either a
        // single component or a named group of components. Display settings are optional; one left
        // out keeps whatever the dashboard has.
        var publicStatusPageStructure = new Incident.StatusPageStructure("public", new()
        {
            StatusPageId = @public.Apply(@public => @public.Apply(getStatusPageResult => getStatusPageResult.Id)),
            DisplayUptimeMode = "chart_and_percentage",
            Items = new[]
            {
                new Incident.Inputs.StatusPageStructureItemArgs
                {
                    ComponentId = website.Id,
                },
                new Incident.Inputs.StatusPageStructureItemArgs
                {
                    Group = new Incident.Inputs.StatusPageStructureItemGroupArgs
                    {
                        Name = "Backend",
                        Description = "The services behind the website",
                        Components = new[]
                        {
                            new Incident.Inputs.StatusPageStructureItemGroupComponentArgs
                            {
                                ComponentId = api.Id,
                            },
                            new Incident.Inputs.StatusPageStructureItemGroupComponentArgs
                            {
                                ComponentId = database.Id,
                                DisplayUptime = false,
                            },
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.IncidentFunctions;
    import com.pulumi.incident.inputs.GetStatusPageArgs;
    import com.pulumi.incident.StatusPageComponent;
    import com.pulumi.incident.StatusPageComponentArgs;
    import com.pulumi.incident.StatusPageStructure;
    import com.pulumi.incident.StatusPageStructureArgs;
    import com.pulumi.incident.inputs.StatusPageStructureItemArgs;
    import com.pulumi.incident.inputs.StatusPageStructureItemGroupArgs;
    import com.pulumi.incident.inputs.StatusPageStructureItemGroupComponentArgs;
    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) {
            // The page itself is created in the dashboard. Its components can be managed here.
            final var public = IncidentFunctions.getStatusPage(GetStatusPageArgs.builder()
                .name("Our public status page")
                .build());
    
            var website = new StatusPageComponent("website", StatusPageComponentArgs.builder()
                .name("Website")
                .build());
    
            var api = new StatusPageComponent("api", StatusPageComponentArgs.builder()
                .name("API")
                .build());
    
            var database = new StatusPageComponent("database", StatusPageComponentArgs.builder()
                .name("Database")
                .build());
    
            // The structure is the page's layout: items appear in the order listed, each one either a
            // single component or a named group of components. Display settings are optional; one left
            // out keeps whatever the dashboard has.
            var publicStatusPageStructure = new StatusPageStructure("publicStatusPageStructure", StatusPageStructureArgs.builder()
                .statusPageId(public_.id())
                .displayUptimeMode("chart_and_percentage")
                .items(            
                    StatusPageStructureItemArgs.builder()
                        .componentId(website.id())
                        .build(),
                    StatusPageStructureItemArgs.builder()
                        .group(StatusPageStructureItemGroupArgs.builder()
                            .name("Backend")
                            .description("The services behind the website")
                            .components(                        
                                StatusPageStructureItemGroupComponentArgs.builder()
                                    .componentId(api.id())
                                    .build(),
                                StatusPageStructureItemGroupComponentArgs.builder()
                                    .componentId(database.id())
                                    .displayUptime(false)
                                    .build())
                            .build())
                        .build())
                .build());
    
        }
    }
    
    resources:
      website:
        type: incident:StatusPageComponent
        properties:
          name: Website
      api:
        type: incident:StatusPageComponent
        properties:
          name: API
      database:
        type: incident:StatusPageComponent
        properties:
          name: Database
      # The structure is the page's layout: items appear in the order listed, each one either a
      # single component or a named group of components. Display settings are optional; one left
      # out keeps whatever the dashboard has.
      publicStatusPageStructure:
        type: incident:StatusPageStructure
        name: public
        properties:
          statusPageId: ${public.id}
          displayUptimeMode: chart_and_percentage
          items:
            - componentId: ${website.id}
            - group:
                name: Backend
                description: The services behind the website
                components:
                  - componentId: ${api.id}
                  - componentId: ${database.id}
                    displayUptime: false
    variables:
      # The page itself is created in the dashboard. Its components can be managed here.
      public:
        fn::invoke:
          function: incident:getStatusPage
          arguments:
            name: Our public status page
    
    pulumi {
      required_providers {
        incident = {
          source = "pulumi/incident"
        }
      }
    }
    
    data "incident_getstatuspage" "public" {
      name = "Our public status page"
    }
    
    resource "incident_statuspagecomponent" "website" {
      name = "Website"
    }
    resource "incident_statuspagecomponent" "api" {
      name = "API"
    }
    resource "incident_statuspagecomponent" "database" {
      name = "Database"
    }
    # The structure is the page's layout: items appear in the order listed, each one either a
    # single component or a named group of components. Display settings are optional; one left
    # out keeps whatever the dashboard has.
    resource "incident_statuspagestructure" "public" {
      status_page_id      = data.incident_getstatuspage.public.id
      display_uptime_mode = "chart_and_percentage"
      items {
        component_id = incident_statuspagecomponent.website.id
      }
      items {
        group = {
          name        = "Backend"
          description = "The services behind the website"
          components = [{
            "componentId" = incident_statuspagecomponent.api.id
            }, {
            "componentId"   = incident_statuspagecomponent.database.id
            "displayUptime" = false
          }]
        }
      }
    }
    # The page itself is created in the dashboard. Its components can be managed here.
    

    Create StatusPageStructure Resource

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

    Constructor syntax

    new StatusPageStructure(name: string, args: StatusPageStructureArgs, opts?: CustomResourceOptions);
    @overload
    def StatusPageStructure(resource_name: str,
                            args: StatusPageStructureArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def StatusPageStructure(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            items: Optional[Sequence[StatusPageStructureItemArgs]] = None,
                            status_page_id: Optional[str] = None,
                            display_uptime_mode: Optional[str] = None,
                            unlock_in_dashboard: Optional[bool] = None)
    func NewStatusPageStructure(ctx *Context, name string, args StatusPageStructureArgs, opts ...ResourceOption) (*StatusPageStructure, error)
    public StatusPageStructure(string name, StatusPageStructureArgs args, CustomResourceOptions? opts = null)
    public StatusPageStructure(String name, StatusPageStructureArgs args)
    public StatusPageStructure(String name, StatusPageStructureArgs args, CustomResourceOptions options)
    
    type: incident:StatusPageStructure
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "incident_status_page_structure" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args StatusPageStructureArgs
    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 StatusPageStructureArgs
    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 StatusPageStructureArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args StatusPageStructureArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args StatusPageStructureArgs
    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 statusPageStructureResource = new Incident.StatusPageStructure("statusPageStructureResource", new()
    {
        Items = new[]
        {
            new Incident.Inputs.StatusPageStructureItemArgs
            {
                ComponentId = "string",
                DisplayUptime = false,
                Group = new Incident.Inputs.StatusPageStructureItemGroupArgs
                {
                    Components = new[]
                    {
                        new Incident.Inputs.StatusPageStructureItemGroupComponentArgs
                        {
                            ComponentId = "string",
                            DisplayUptime = false,
                            Hidden = false,
                        },
                    },
                    Name = "string",
                    Description = "string",
                    DisplayAggregatedUptime = false,
                    Hidden = false,
                    Id = "string",
                },
                Hidden = false,
            },
        },
        StatusPageId = "string",
        DisplayUptimeMode = "string",
        UnlockInDashboard = false,
    });
    
    example, err := incident.NewStatusPageStructure(ctx, "statusPageStructureResource", &incident.StatusPageStructureArgs{
    	Items: incident.StatusPageStructureItemArray{
    		&incident.StatusPageStructureItemArgs{
    			ComponentId:   pulumi.String("string"),
    			DisplayUptime: pulumi.Bool(false),
    			Group: &incident.StatusPageStructureItemGroupArgs{
    				Components: incident.StatusPageStructureItemGroupComponentArray{
    					&incident.StatusPageStructureItemGroupComponentArgs{
    						ComponentId:   pulumi.String("string"),
    						DisplayUptime: pulumi.Bool(false),
    						Hidden:        pulumi.Bool(false),
    					},
    				},
    				Name:                    pulumi.String("string"),
    				Description:             pulumi.String("string"),
    				DisplayAggregatedUptime: pulumi.Bool(false),
    				Hidden:                  pulumi.Bool(false),
    				Id:                      pulumi.String("string"),
    			},
    			Hidden: pulumi.Bool(false),
    		},
    	},
    	StatusPageId:      pulumi.String("string"),
    	DisplayUptimeMode: pulumi.String("string"),
    	UnlockInDashboard: pulumi.Bool(false),
    })
    
    resource "incident_status_page_structure" "statusPageStructureResource" {
      lifecycle {
        create_before_destroy = true
      }
      items {
        component_id   = "string"
        display_uptime = false
        group = {
          components = [{
            component_id   = "string"
            display_uptime = false
            hidden         = false
          }]
          name                      = "string"
          description               = "string"
          display_aggregated_uptime = false
          hidden                    = false
          id                        = "string"
        }
        hidden = false
      }
      status_page_id      = "string"
      display_uptime_mode = "string"
      unlock_in_dashboard = false
    }
    
    var statusPageStructureResource = new StatusPageStructure("statusPageStructureResource", StatusPageStructureArgs.builder()
        .items(StatusPageStructureItemArgs.builder()
            .componentId("string")
            .displayUptime(false)
            .group(StatusPageStructureItemGroupArgs.builder()
                .components(StatusPageStructureItemGroupComponentArgs.builder()
                    .componentId("string")
                    .displayUptime(false)
                    .hidden(false)
                    .build())
                .name("string")
                .description("string")
                .displayAggregatedUptime(false)
                .hidden(false)
                .id("string")
                .build())
            .hidden(false)
            .build())
        .statusPageId("string")
        .displayUptimeMode("string")
        .unlockInDashboard(false)
        .build());
    
    status_page_structure_resource = incident.StatusPageStructure("statusPageStructureResource",
        items=[{
            "component_id": "string",
            "display_uptime": False,
            "group": {
                "components": [{
                    "component_id": "string",
                    "display_uptime": False,
                    "hidden": False,
                }],
                "name": "string",
                "description": "string",
                "display_aggregated_uptime": False,
                "hidden": False,
                "id": "string",
            },
            "hidden": False,
        }],
        status_page_id="string",
        display_uptime_mode="string",
        unlock_in_dashboard=False)
    
    const statusPageStructureResource = new incident.StatusPageStructure("statusPageStructureResource", {
        items: [{
            componentId: "string",
            displayUptime: false,
            group: {
                components: [{
                    componentId: "string",
                    displayUptime: false,
                    hidden: false,
                }],
                name: "string",
                description: "string",
                displayAggregatedUptime: false,
                hidden: false,
                id: "string",
            },
            hidden: false,
        }],
        statusPageId: "string",
        displayUptimeMode: "string",
        unlockInDashboard: false,
    });
    
    type: incident:StatusPageStructure
    properties:
        displayUptimeMode: string
        items:
            - componentId: string
              displayUptime: false
              group:
                components:
                    - componentId: string
                      displayUptime: false
                      hidden: false
                description: string
                displayAggregatedUptime: false
                hidden: false
                id: string
                name: string
              hidden: false
        statusPageId: string
        unlockInDashboard: false
    

    StatusPageStructure 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 StatusPageStructure resource accepts the following input properties:

    Items List<StatusPageStructureItem>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    StatusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    DisplayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    Items []StatusPageStructureItemArgs
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    StatusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    DisplayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    items list(object)
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    status_page_id string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    display_uptime_mode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    items List<StatusPageStructureItem>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId String
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    displayUptimeMode String
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    items StatusPageStructureItem[]
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    displayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    items Sequence[StatusPageStructureItemArgs]
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    status_page_id str
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    display_uptime_mode str
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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.
    items List<Property Map>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId String
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    displayUptimeMode String
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    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 StatusPageStructure 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 StatusPageStructure Resource

    Get an existing StatusPageStructure 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?: StatusPageStructureState, opts?: CustomResourceOptions): StatusPageStructure
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            display_uptime_mode: Optional[str] = None,
            items: Optional[Sequence[StatusPageStructureItemArgs]] = None,
            status_page_id: Optional[str] = None,
            unlock_in_dashboard: Optional[bool] = None) -> StatusPageStructure
    func GetStatusPageStructure(ctx *Context, name string, id IDInput, state *StatusPageStructureState, opts ...ResourceOption) (*StatusPageStructure, error)
    public static StatusPageStructure Get(string name, Input<string> id, StatusPageStructureState? state, CustomResourceOptions? opts = null)
    public static StatusPageStructure get(String name, Output<String> id, StatusPageStructureState state, CustomResourceOptions options)
    resources:  _:    type: incident:StatusPageStructure    get:      id: ${id}
    import {
      to = incident_status_page_structure.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:
    DisplayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    Items List<StatusPageStructureItem>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    StatusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    DisplayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    Items []StatusPageStructureItemArgs
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    StatusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    display_uptime_mode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    items list(object)
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    status_page_id string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    displayUptimeMode String
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    items List<StatusPageStructureItem>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId String
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    displayUptimeMode string
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    items StatusPageStructureItem[]
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId string
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    display_uptime_mode str
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    items Sequence[StatusPageStructureItemArgs]
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    status_page_id str
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.
    displayUptimeMode String
    How the page shows uptime against its components: chartAndPercentage, chartOnly or nothing. Left out, the page keeps its current setting.
    items List<Property Map>
    The components and groups the page shows, in display order. Each item is either a single componentId, with its own hidden and displayUptime, or a group, not both.
    statusPageId String
    The ID of the status page whose structure this is. Changing it manages a different page's structure.
    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.

    Supporting Types

    StatusPageStructureItem, StatusPageStructureItemArgs

    ComponentId string
    ID of the component to place, shown on its own.
    DisplayUptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    Group StatusPageStructureItemGroup
    A named group of components.
    Hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    ComponentId string
    ID of the component to place, shown on its own.
    DisplayUptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    Group StatusPageStructureItemGroup
    A named group of components.
    Hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    component_id string
    ID of the component to place, shown on its own.
    display_uptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    group object
    A named group of components.
    hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId String
    ID of the component to place, shown on its own.
    displayUptime Boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    group StatusPageStructureItemGroup
    A named group of components.
    hidden Boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId string
    ID of the component to place, shown on its own.
    displayUptime boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    group StatusPageStructureItemGroup
    A named group of components.
    hidden boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    component_id str
    ID of the component to place, shown on its own.
    display_uptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    group StatusPageStructureItemGroup
    A named group of components.
    hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId String
    ID of the component to place, shown on its own.
    displayUptime Boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    group Property Map
    A named group of components.
    hidden Boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.

    StatusPageStructureItemGroup, StatusPageStructureItemGroupArgs

    Components List<StatusPageStructureItemGroupComponent>
    The components in this group, in display order.
    Name string
    The name of this component group
    Description string
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    DisplayAggregatedUptime bool
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    Hidden bool
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    Id string
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    Components []StatusPageStructureItemGroupComponent
    The components in this group, in display order.
    Name string
    The name of this component group
    Description string
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    DisplayAggregatedUptime bool
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    Hidden bool
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    Id string
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    components list(object)
    The components in this group, in display order.
    name string
    The name of this component group
    description string
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    display_aggregated_uptime bool
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    hidden bool
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    id string
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    components List<StatusPageStructureItemGroupComponent>
    The components in this group, in display order.
    name String
    The name of this component group
    description String
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    displayAggregatedUptime Boolean
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    hidden Boolean
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    id String
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    components StatusPageStructureItemGroupComponent[]
    The components in this group, in display order.
    name string
    The name of this component group
    description string
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    displayAggregatedUptime boolean
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    hidden boolean
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    id string
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    components Sequence[StatusPageStructureItemGroupComponent]
    The components in this group, in display order.
    name str
    The name of this component group
    description str
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    display_aggregated_uptime bool
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    hidden bool
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    id str
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.
    components List<Property Map>
    The components in this group, in display order.
    name String
    The name of this component group
    description String
    A description shown under the group's name. Left out, the group has none, so a description set in the dashboard has to be written here to survive an apply.
    displayAggregatedUptime Boolean
    Whether the page shows uptime aggregated across the group's components. Left out, a group already on the page keeps its setting and a new one shows it when a component allows. It needs a visible component that shows uptime.
    hidden Boolean
    Whether the group is hidden from the page. Left out, a group already on the page keeps its setting and a new one is hidden only when every component in it is. A visible group needs a visible component.
    id String
    Unique ID of this component group. Assigned by incident.io, and kept while the group keeps its name.

    StatusPageStructureItemGroupComponent, StatusPageStructureItemGroupComponentArgs

    ComponentId string
    ID of the component to place
    DisplayUptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    Hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    ComponentId string
    ID of the component to place
    DisplayUptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    Hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    component_id string
    ID of the component to place
    display_uptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId String
    ID of the component to place
    displayUptime Boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    hidden Boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId string
    ID of the component to place
    displayUptime boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    hidden boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    component_id str
    ID of the component to place
    display_uptime bool
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    hidden bool
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.
    componentId String
    ID of the component to place
    displayUptime Boolean
    Whether the page shows the component's uptime. Left out, a component already on the page keeps its setting and a new one shows it.
    hidden Boolean
    Whether the component is hidden from the page. Left out, a component already on the page keeps its setting and a new one is shown.

    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’s structure using the status page’s ID Replace the ID with a real ID from your incident.io organization

    $ pulumi import incident:index/statusPageStructure:StatusPageStructure 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