1. Registry
  2. Packages
  3. incident.io
  4. API Docs
  5. Status
Viewing docs for incident.io v0.3.1
published on Thursday, Oct 8, 2026 by incident-io
incident logo incident.io
Viewing docs for incident.io v0.3.1
published on Thursday, Oct 8, 2026 by incident-io

    Manage incident statuses.

    Each incident has a status, picked from one of the statuses configured in your organisations settings.

    Statuses help communicate where an incident is in its lifecycle. You can use statuses when filtering incidents in the dashboard, and in workflows and announcement rules.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@incident-io/pulumi";
    
    // Statuses are ordered by rank within their category, lowest first. Give every status
    // in a category a rank and the order is whatever the config says, rather than the order
    // Terraform happened to create them in.
    //
    // Leaving gaps is worth doing: a status can then be slotted between two others without
    // renumbering them.
    const investigating = new incident.Status("investigating", {
        name: "Investigating",
        description: "We've spotted that something is wrong, but we're not sure why yet.",
        category: "live",
        rank: 10,
    });
    const cleanUp = new incident.Status("clean_up", {
        name: "Clean-up",
        description: "Not yet fully finished, but isn't a live incident anymore.",
        category: "live",
        rank: 20,
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # Statuses are ordered by rank within their category, lowest first. Give every status
    # in a category a rank and the order is whatever the config says, rather than the order
    # Terraform happened to create them in.
    #
    # Leaving gaps is worth doing: a status can then be slotted between two others without
    # renumbering them.
    investigating = incident.Status("investigating",
        name="Investigating",
        description="We've spotted that something is wrong, but we're not sure why yet.",
        category="live",
        rank=10)
    clean_up = incident.Status("clean_up",
        name="Clean-up",
        description="Not yet fully finished, but isn't a live incident anymore.",
        category="live",
        rank=20)
    
    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 {
    		// Statuses are ordered by rank within their category, lowest first. Give every status
    		// in a category a rank and the order is whatever the config says, rather than the order
    		// Terraform happened to create them in.
    		//
    		// Leaving gaps is worth doing: a status can then be slotted between two others without
    		// renumbering them.
    		_, err := incident.NewStatus(ctx, "investigating", &incident.StatusArgs{
    			Name:        pulumi.String("Investigating"),
    			Description: pulumi.String("We've spotted that something is wrong, but we're not sure why yet."),
    			Category:    pulumi.String("live"),
    			Rank:        pulumi.Int(10),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = incident.NewStatus(ctx, "clean_up", &incident.StatusArgs{
    			Name:        pulumi.String("Clean-up"),
    			Description: pulumi.String("Not yet fully finished, but isn't a live incident anymore."),
    			Category:    pulumi.String("live"),
    			Rank:        pulumi.Int(20),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incident = Pulumi.Incident;
    
    return await Deployment.RunAsync(() => 
    {
        // Statuses are ordered by rank within their category, lowest first. Give every status
        // in a category a rank and the order is whatever the config says, rather than the order
        // Terraform happened to create them in.
        //
        // Leaving gaps is worth doing: a status can then be slotted between two others without
        // renumbering them.
        var investigating = new Incident.Status("investigating", new()
        {
            Name = "Investigating",
            Description = "We've spotted that something is wrong, but we're not sure why yet.",
            Category = "live",
            Rank = 10,
        });
    
        var cleanUp = new Incident.Status("clean_up", new()
        {
            Name = "Clean-up",
            Description = "Not yet fully finished, but isn't a live incident anymore.",
            Category = "live",
            Rank = 20,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.Status;
    import com.pulumi.incident.StatusArgs;
    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) {
            // Statuses are ordered by rank within their category, lowest first. Give every status
            // in a category a rank and the order is whatever the config says, rather than the order
            // Terraform happened to create them in.
            //
            // Leaving gaps is worth doing: a status can then be slotted between two others without
            // renumbering them.
            var investigating = new Status("investigating", StatusArgs.builder()
                .name("Investigating")
                .description("We've spotted that something is wrong, but we're not sure why yet.")
                .category("live")
                .rank(10)
                .build());
    
            var cleanUp = new Status("cleanUp", StatusArgs.builder()
                .name("Clean-up")
                .description("Not yet fully finished, but isn't a live incident anymore.")
                .category("live")
                .rank(20)
                .build());
    
        }
    }
    
    resources:
      # Statuses are ordered by rank within their category, lowest first. Give every status
      # in a category a rank and the order is whatever the config says, rather than the order
      # Terraform happened to create them in.
      #
      # Leaving gaps is worth doing: a status can then be slotted between two others without
      # renumbering them.
      investigating:
        type: incident:Status
        properties:
          name: Investigating
          description: We've spotted that something is wrong, but we're not sure why yet.
          category: live
          rank: 10
      cleanUp:
        type: incident:Status
        name: clean_up
        properties:
          name: Clean-up
          description: Not yet fully finished, but isn't a live incident anymore.
          category: live
          rank: 20
    
    pulumi {
      required_providers {
        incident = {
          source = "pulumi/incident"
        }
      }
    }
    
    # Statuses are ordered by rank within their category, lowest first. Give every status
    # in a category a rank and the order is whatever the config says, rather than the order
    # Terraform happened to create them in.
    #
    # Leaving gaps is worth doing: a status can then be slotted between two others without
    # renumbering them.
    resource "incident_status" "investigating" {
      name        = "Investigating"
      description = "We've spotted that something is wrong, but we're not sure why yet."
      category    = "live"
      rank        = 10
    }
    resource "incident_status" "clean_up" {
      name        = "Clean-up"
      description = "Not yet fully finished, but isn't a live incident anymore."
      category    = "live"
      rank        = 20
    }
    

    Create Status Resource

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

    Constructor syntax

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

    Parameters

    name string
    The unique name of the resource.
    args StatusArgs
    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 StatusArgs
    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 StatusArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args StatusArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args StatusArgs
    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 statusResource = new Incident.Status("statusResource", new()
    {
        Category = "string",
        Description = "string",
        Name = "string",
        Rank = 0,
    });
    
    example, err := incident.NewStatus(ctx, "statusResource", &incident.StatusArgs{
    	Category:    pulumi.String("string"),
    	Description: pulumi.String("string"),
    	Name:        pulumi.String("string"),
    	Rank:        pulumi.Int(0),
    })
    
    resource "incident_status" "statusResource" {
      lifecycle {
        create_before_destroy = true
      }
      category    = "string"
      description = "string"
      name        = "string"
      rank        = 0
    }
    
    var statusResource = new Status("statusResource", StatusArgs.builder()
        .category("string")
        .description("string")
        .name("string")
        .rank(0)
        .build());
    
    status_resource = incident.Status("statusResource",
        category="string",
        description="string",
        name="string",
        rank=0)
    
    const statusResource = new incident.Status("statusResource", {
        category: "string",
        description: "string",
        name: "string",
        rank: 0,
    });
    
    type: incident:Status
    properties:
        category: string
        description: string
        name: string
        rank: 0
    

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

    Category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    Description string
    Rich text description of the incident status
    Name string
    Unique name of this status
    Rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    Category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    Description string
    Rich text description of the incident status
    Name string
    Unique name of this status
    Rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description string
    Rich text description of the incident status
    name string
    Unique name of this status
    rank number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category String
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description String
    Rich text description of the incident status
    name String
    Unique name of this status
    rank Integer
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description string
    Rich text description of the incident status
    name string
    Unique name of this status
    rank number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category str
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description str
    Rich text description of the incident status
    name str
    Unique name of this status
    rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category String
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description String
    Rich text description of the incident status
    name String
    Unique name of this status
    rank Number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Status 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 Status Resource

    Get an existing Status 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?: StatusState, opts?: CustomResourceOptions): Status
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            category: Optional[str] = None,
            description: Optional[str] = None,
            name: Optional[str] = None,
            rank: Optional[int] = None) -> Status
    func GetStatus(ctx *Context, name string, id IDInput, state *StatusState, opts ...ResourceOption) (*Status, error)
    public static Status Get(string name, Input<string> id, StatusState? state, CustomResourceOptions? opts = null)
    public static Status get(String name, Output<String> id, StatusState state, CustomResourceOptions options)
    resources:  _:    type: incident:Status    get:      id: ${id}
    import {
      to = incident_status.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:
    Category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    Description string
    Rich text description of the incident status
    Name string
    Unique name of this status
    Rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    Category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    Description string
    Rich text description of the incident status
    Name string
    Unique name of this status
    Rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description string
    Rich text description of the incident status
    name string
    Unique name of this status
    rank number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category String
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description String
    Rich text description of the incident status
    name String
    Unique name of this status
    rank Integer
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category string
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description string
    Rich text description of the incident status
    name string
    Unique name of this status
    rank number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category str
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description str
    Rich text description of the incident status
    name str
    Unique name of this status
    rank int
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.
    category String
    What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured. Possible values are: triage, declined, merged, canceled, live, learning, closed, paused. Changing it replaces the status, as a status can't move between categories. Set rank if you want the replacement to keep its place.
    description String
    Rich text description of the incident status
    name String
    Unique name of this status
    rank Number
    Where this status sits within its category, lowest rank first. Set it on every status in a category to fix their order: without it each status lands after the last one created, which for a single apply means whichever order Terraform happened to create them in. No two statuses in a category can share a rank, and ranks needn't be consecutive — leaving gaps (10, 20, 30) means you can insert a status between two others without renumbering them. Because a rank belongs to one status at a time, swapping a pair of them in a single apply fails: move a status to a rank nothing holds instead.

    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.3.1
    published on Thursday, Oct 8, 2026 by incident-io

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial