1. Packages
  2. Incident Provider
  3. API Docs
  4. CatalogType
incident 5.5.0 published on Wednesday, Apr 30, 2025 by incident-io

incident.CatalogType

Explore with Pulumi AI

incident logo
incident 5.5.0 published on Wednesday, Apr 30, 2025 by incident-io

    Manage and browse catalog resources.

    Use the incident.io catalog to track services, teams, product features and anything else that helps build a map of your organisation. These different categories of thing become catalog types, and each instance (like a particular service or team) is a catalog entry.

    Each type is made up of a series of attributes, and each attribute has a type. Types can even have attributes that refer to other catalog types.

    We automatically create catalog types when you connect an integration, such as GitHub repositories or PagerDuty services and teams. You can use this API to create custom types, that are specifically tailored to your organisation.

    Examples might be a ‘Service’ type with an ‘Alert channel’ which you can point at a Slack channel, or ‘Team’ which specifies its ‘Manager’ and ‘Technical Lead’ as Slack users. You can then use these types to create powerful new workflows.

    Consider using our official catalog importer. It can be used to sync catalog data from sources like local files or GitHub and push them into the incident.io catalog without having to directly interact with our public API.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@pulumi/incident";
    
    // Create a catalog type for a service tier, representing how important a service is.
    const serviceTier = new incident.CatalogType("serviceTier", {
        categories: ["service"],
        description: `  How critical is this service, with tier 1 being the highest and 3 the lowest.
      
    `,
        sourceRepoUrl: "https://github.com/mycompany/infrastructure",
        typeName: "Custom[\"ServiceTier\"]",
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # Create a catalog type for a service tier, representing how important a service is.
    service_tier = incident.CatalogType("serviceTier",
        categories=["service"],
        description="""  How critical is this service, with tier 1 being the highest and 3 the lowest.
      
    """,
        source_repo_url="https://github.com/mycompany/infrastructure",
        type_name="Custom[\"ServiceTier\"]")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v5/incident"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create a catalog type for a service tier, representing how important a service is.
    		_, err := incident.NewCatalogType(ctx, "serviceTier", &incident.CatalogTypeArgs{
    			Categories: pulumi.StringArray{
    				pulumi.String("service"),
    			},
    			Description:   pulumi.String("  How critical is this service, with tier 1 being the highest and 3 the lowest.\n  \n"),
    			SourceRepoUrl: pulumi.String("https://github.com/mycompany/infrastructure"),
    			TypeName:      pulumi.String("Custom[\"ServiceTier\"]"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incident = Pulumi.Incident;
    
    return await Deployment.RunAsync(() => 
    {
        // Create a catalog type for a service tier, representing how important a service is.
        var serviceTier = new Incident.CatalogType("serviceTier", new()
        {
            Categories = new[]
            {
                "service",
            },
            Description = @"  How critical is this service, with tier 1 being the highest and 3 the lowest.
      
    ",
            SourceRepoUrl = "https://github.com/mycompany/infrastructure",
            TypeName = "Custom[\"ServiceTier\"]",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.CatalogType;
    import com.pulumi.incident.CatalogTypeArgs;
    import java.util.List;
    import java.util.ArrayList;
    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) {
            // Create a catalog type for a service tier, representing how important a service is.
            var serviceTier = new CatalogType("serviceTier", CatalogTypeArgs.builder()
                .categories("service")
                .description("""
      How critical is this service, with tier 1 being the highest and 3 the lowest.
      
                """)
                .sourceRepoUrl("https://github.com/mycompany/infrastructure")
                .typeName("Custom[\"ServiceTier\"]")
                .build());
    
        }
    }
    
    resources:
      # Create a catalog type for a service tier, representing how important a service is.
      serviceTier:
        type: incident:CatalogType
        properties:
          categories:
            - service
          description: "  How critical is this service, with tier 1 being the highest and 3 the lowest.\n  \n"
          sourceRepoUrl: https://github.com/mycompany/infrastructure
          typeName: Custom["ServiceTier"]
    

    Create CatalogType Resource

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

    Constructor syntax

    new CatalogType(name: string, args: CatalogTypeArgs, opts?: CustomResourceOptions);
    @overload
    def CatalogType(resource_name: str,
                    args: CatalogTypeArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def CatalogType(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    description: Optional[str] = None,
                    source_repo_url: Optional[str] = None,
                    categories: Optional[Sequence[str]] = None,
                    name: Optional[str] = None,
                    type_name: Optional[str] = None)
    func NewCatalogType(ctx *Context, name string, args CatalogTypeArgs, opts ...ResourceOption) (*CatalogType, error)
    public CatalogType(string name, CatalogTypeArgs args, CustomResourceOptions? opts = null)
    public CatalogType(String name, CatalogTypeArgs args)
    public CatalogType(String name, CatalogTypeArgs args, CustomResourceOptions options)
    
    type: incident:CatalogType
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args CatalogTypeArgs
    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 CatalogTypeArgs
    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 CatalogTypeArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CatalogTypeArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CatalogTypeArgs
    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 catalogTypeResource = new Incident.CatalogType("catalogTypeResource", new()
    {
        Description = "string",
        SourceRepoUrl = "string",
        Categories = new[]
        {
            "string",
        },
        Name = "string",
        TypeName = "string",
    });
    
    example, err := incident.NewCatalogType(ctx, "catalogTypeResource", &incident.CatalogTypeArgs{
    	Description:   pulumi.String("string"),
    	SourceRepoUrl: pulumi.String("string"),
    	Categories: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Name:     pulumi.String("string"),
    	TypeName: pulumi.String("string"),
    })
    
    var catalogTypeResource = new CatalogType("catalogTypeResource", CatalogTypeArgs.builder()
        .description("string")
        .sourceRepoUrl("string")
        .categories("string")
        .name("string")
        .typeName("string")
        .build());
    
    catalog_type_resource = incident.CatalogType("catalogTypeResource",
        description="string",
        source_repo_url="string",
        categories=["string"],
        name="string",
        type_name="string")
    
    const catalogTypeResource = new incident.CatalogType("catalogTypeResource", {
        description: "string",
        sourceRepoUrl: "string",
        categories: ["string"],
        name: "string",
        typeName: "string",
    });
    
    type: incident:CatalogType
    properties:
        categories:
            - string
        description: string
        name: string
        sourceRepoUrl: string
        typeName: string
    

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

    Description string
    Human readble description of this type
    SourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    Categories List<string>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    Name string
    Name is the human readable name of this type
    TypeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    Description string
    Human readble description of this type
    SourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    Categories []string
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    Name string
    Name is the human readable name of this type
    TypeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    description String
    Human readble description of this type
    sourceRepoUrl String
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    categories List<String>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    name String
    Name is the human readable name of this type
    typeName String
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    description string
    Human readble description of this type
    sourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    categories string[]
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    name string
    Name is the human readable name of this type
    typeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    description str
    Human readble description of this type
    source_repo_url str
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    categories Sequence[str]
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    name str
    Name is the human readable name of this type
    type_name str
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    description String
    Human readble description of this type
    sourceRepoUrl String
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    categories List<String>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    name String
    Name is the human readable name of this type
    typeName String
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]

    Outputs

    All input properties are implicitly available as output properties. Additionally, the CatalogType 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 str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing CatalogType Resource

    Get an existing CatalogType 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?: CatalogTypeState, opts?: CustomResourceOptions): CatalogType
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            categories: Optional[Sequence[str]] = None,
            description: Optional[str] = None,
            name: Optional[str] = None,
            source_repo_url: Optional[str] = None,
            type_name: Optional[str] = None) -> CatalogType
    func GetCatalogType(ctx *Context, name string, id IDInput, state *CatalogTypeState, opts ...ResourceOption) (*CatalogType, error)
    public static CatalogType Get(string name, Input<string> id, CatalogTypeState? state, CustomResourceOptions? opts = null)
    public static CatalogType get(String name, Output<String> id, CatalogTypeState state, CustomResourceOptions options)
    resources:  _:    type: incident:CatalogType    get:      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:
    Categories List<string>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    Description string
    Human readble description of this type
    Name string
    Name is the human readable name of this type
    SourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    TypeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    Categories []string
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    Description string
    Human readble description of this type
    Name string
    Name is the human readable name of this type
    SourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    TypeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    categories List<String>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    description String
    Human readble description of this type
    name String
    Name is the human readable name of this type
    sourceRepoUrl String
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    typeName String
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    categories string[]
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    description string
    Human readble description of this type
    name string
    Name is the human readable name of this type
    sourceRepoUrl string
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    typeName string
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    categories Sequence[str]
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    description str
    Human readble description of this type
    name str
    Name is the human readable name of this type
    source_repo_url str
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    type_name str
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]
    categories List<String>
    The categories that this type belongs to, to be shown in the web dashboard. Possible values are: customer, issue-tracker, product-feature, service, on-call, team, user.
    description String
    Human readble description of this type
    name String
    Name is the human readable name of this type
    sourceRepoUrl String
    The url of the external repository where this type is managed. When set, users will not be able to edit the catalog type (or its entries) via the UI, and will instead be provided a link to this URL.
    typeName String
    The type name of this catalog type, to be used when defining attributes. This is immutable once a CatalogType has been created. For non-externally sync types, it must follow the pattern Custom["SomeName"]

    Import

    #!/bin/bash

    Import a catalog type using its ID

    Replace the ID with a real ID from your incident.io organization

    $ pulumi import incident:index/catalogType:CatalogType example 01ABC123DEF456GHI789JKL
    

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

    Package Details

    Repository
    incident incident-io/terraform-provider-incident
    License
    Notes
    This Pulumi package is based on the incident Terraform Provider.
    incident logo
    incident 5.5.0 published on Wednesday, Apr 30, 2025 by incident-io