published on Friday, Sep 11, 2026 by incident-io
published on Friday, Sep 11, 2026 by incident-io
Manage custom fields.
Custom fields are used to attach metadata to incidents, which you can use when searching for incidents in the dashboard, triggering workflows, building announcement rules or for your own data needs.
Each field has a type:
- Single-select, single value selected from a predefined list of options (e.g. Detection Method)
- Multi-select, as above but you can pick more than one option (e.g. Affected Teams)
- Text, freeform text field (e.g. Customer ID)
- Link, link URL that is synced to Slack bookmarks on the incident channel (e.g. External Status Page)
- Number, integer or fractional numbers (e.g. # Customers Affected)
We may add more custom field types in the future - we’d love to hear any other types you’d like to use!
Example - Single-select
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Single-select: one value from a predefined list of options (e.g. Detection Method).
// Options are managed separately with incident_custom_field_option.
const detectionMethod = new incident.CustomField("detection_method", {
name: "Detection Method",
description: "How this incident was detected.",
fieldType: "single_select",
});
import pulumi
import pulumi_incident as incident
# Single-select: one value from a predefined list of options (e.g. Detection Method).
# Options are managed separately with incident_custom_field_option.
detection_method = incident.CustomField("detection_method",
name="Detection Method",
description="How this incident was detected.",
field_type="single_select")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Single-select: one value from a predefined list of options (e.g. Detection Method).
// Options are managed separately with incident_custom_field_option.
_, err := incident.NewCustomField(ctx, "detection_method", &incident.CustomFieldArgs{
Name: pulumi.String("Detection Method"),
Description: pulumi.String("How this incident was detected."),
FieldType: pulumi.String("single_select"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Single-select: one value from a predefined list of options (e.g. Detection Method).
// Options are managed separately with incident_custom_field_option.
var detectionMethod = new Incident.CustomField("detection_method", new()
{
Name = "Detection Method",
Description = "How this incident was detected.",
FieldType = "single_select",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
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) {
// Single-select: one value from a predefined list of options (e.g. Detection Method).
// Options are managed separately with incident_custom_field_option.
var detectionMethod = new CustomField("detectionMethod", CustomFieldArgs.builder()
.name("Detection Method")
.description("How this incident was detected.")
.fieldType("single_select")
.build());
}
}
resources:
# Single-select: one value from a predefined list of options (e.g. Detection Method).
# Options are managed separately with incident_custom_field_option.
detectionMethod:
type: incident:CustomField
name: detection_method
properties:
name: Detection Method
description: How this incident was detected.
fieldType: single_select
Example coming soon!
Example - Multi-select
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Multi-select: like single-select, but more than one option can be picked
// (e.g. Affected Teams). Options are managed separately with
// incident_custom_field_option.
const affectedTeams = new incident.CustomField("affected_teams", {
name: "Affected Teams",
description: "The teams that are affected by this incident.",
fieldType: "multi_select",
});
import pulumi
import pulumi_incident as incident
# Multi-select: like single-select, but more than one option can be picked
# (e.g. Affected Teams). Options are managed separately with
# incident_custom_field_option.
affected_teams = incident.CustomField("affected_teams",
name="Affected Teams",
description="The teams that are affected by this incident.",
field_type="multi_select")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Multi-select: like single-select, but more than one option can be picked
// (e.g. Affected Teams). Options are managed separately with
// incident_custom_field_option.
_, err := incident.NewCustomField(ctx, "affected_teams", &incident.CustomFieldArgs{
Name: pulumi.String("Affected Teams"),
Description: pulumi.String("The teams that are affected by this incident."),
FieldType: pulumi.String("multi_select"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Multi-select: like single-select, but more than one option can be picked
// (e.g. Affected Teams). Options are managed separately with
// incident_custom_field_option.
var affectedTeams = new Incident.CustomField("affected_teams", new()
{
Name = "Affected Teams",
Description = "The teams that are affected by this incident.",
FieldType = "multi_select",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
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) {
// Multi-select: like single-select, but more than one option can be picked
// (e.g. Affected Teams). Options are managed separately with
// incident_custom_field_option.
var affectedTeams = new CustomField("affectedTeams", CustomFieldArgs.builder()
.name("Affected Teams")
.description("The teams that are affected by this incident.")
.fieldType("multi_select")
.build());
}
}
resources:
# Multi-select: like single-select, but more than one option can be picked
# (e.g. Affected Teams). Options are managed separately with
# incident_custom_field_option.
affectedTeams:
type: incident:CustomField
name: affected_teams
properties:
name: Affected Teams
description: The teams that are affected by this incident.
fieldType: multi_select
Example coming soon!
Example - Text
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Text: a freeform text field (e.g. Customer ID).
const customerId = new incident.CustomField("customer_id", {
name: "Customer ID",
description: "The customer identifier associated with this incident.",
fieldType: "text",
});
import pulumi
import pulumi_incident as incident
# Text: a freeform text field (e.g. Customer ID).
customer_id = incident.CustomField("customer_id",
name="Customer ID",
description="The customer identifier associated with this incident.",
field_type="text")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Text: a freeform text field (e.g. Customer ID).
_, err := incident.NewCustomField(ctx, "customer_id", &incident.CustomFieldArgs{
Name: pulumi.String("Customer ID"),
Description: pulumi.String("The customer identifier associated with this incident."),
FieldType: pulumi.String("text"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Text: a freeform text field (e.g. Customer ID).
var customerId = new Incident.CustomField("customer_id", new()
{
Name = "Customer ID",
Description = "The customer identifier associated with this incident.",
FieldType = "text",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
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) {
// Text: a freeform text field (e.g. Customer ID).
var customerId = new CustomField("customerId", CustomFieldArgs.builder()
.name("Customer ID")
.description("The customer identifier associated with this incident.")
.fieldType("text")
.build());
}
}
resources:
# Text: a freeform text field (e.g. Customer ID).
customerId:
type: incident:CustomField
name: customer_id
properties:
name: Customer ID
description: The customer identifier associated with this incident.
fieldType: text
Example coming soon!
Example - Link
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Link: a URL synced to Slack bookmarks on the incident channel
// (e.g. External Status Page).
const externalStatusPage = new incident.CustomField("external_status_page", {
name: "External Status Page",
description: "Link to the external status page for this incident.",
fieldType: "link",
});
import pulumi
import pulumi_incident as incident
# Link: a URL synced to Slack bookmarks on the incident channel
# (e.g. External Status Page).
external_status_page = incident.CustomField("external_status_page",
name="External Status Page",
description="Link to the external status page for this incident.",
field_type="link")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Link: a URL synced to Slack bookmarks on the incident channel
// (e.g. External Status Page).
_, err := incident.NewCustomField(ctx, "external_status_page", &incident.CustomFieldArgs{
Name: pulumi.String("External Status Page"),
Description: pulumi.String("Link to the external status page for this incident."),
FieldType: pulumi.String("link"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Link: a URL synced to Slack bookmarks on the incident channel
// (e.g. External Status Page).
var externalStatusPage = new Incident.CustomField("external_status_page", new()
{
Name = "External Status Page",
Description = "Link to the external status page for this incident.",
FieldType = "link",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
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) {
// Link: a URL synced to Slack bookmarks on the incident channel
// (e.g. External Status Page).
var externalStatusPage = new CustomField("externalStatusPage", CustomFieldArgs.builder()
.name("External Status Page")
.description("Link to the external status page for this incident.")
.fieldType("link")
.build());
}
}
resources:
# Link: a URL synced to Slack bookmarks on the incident channel
# (e.g. External Status Page).
externalStatusPage:
type: incident:CustomField
name: external_status_page
properties:
name: External Status Page
description: Link to the external status page for this incident.
fieldType: link
Example coming soon!
Example - Numeric
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Numeric: an integer or fractional number (e.g. Customers Affected).
const customersAffected = new incident.CustomField("customers_affected", {
name: "Customers Affected",
description: "How many customers are affected by this incident.",
fieldType: "numeric",
});
import pulumi
import pulumi_incident as incident
# Numeric: an integer or fractional number (e.g. Customers Affected).
customers_affected = incident.CustomField("customers_affected",
name="Customers Affected",
description="How many customers are affected by this incident.",
field_type="numeric")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Numeric: an integer or fractional number (e.g. Customers Affected).
_, err := incident.NewCustomField(ctx, "customers_affected", &incident.CustomFieldArgs{
Name: pulumi.String("Customers Affected"),
Description: pulumi.String("How many customers are affected by this incident."),
FieldType: pulumi.String("numeric"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Numeric: an integer or fractional number (e.g. Customers Affected).
var customersAffected = new Incident.CustomField("customers_affected", new()
{
Name = "Customers Affected",
Description = "How many customers are affected by this incident.",
FieldType = "numeric",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
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) {
// Numeric: an integer or fractional number (e.g. Customers Affected).
var customersAffected = new CustomField("customersAffected", CustomFieldArgs.builder()
.name("Customers Affected")
.description("How many customers are affected by this incident.")
.fieldType("numeric")
.build());
}
}
resources:
# Numeric: an integer or fractional number (e.g. Customers Affected).
customersAffected:
type: incident:CustomField
name: customers_affected
properties:
name: Customers Affected
description: How many customers are affected by this incident.
fieldType: numeric
Example coming soon!
Example - Catalog-backed with a fixed filter
import * as pulumi from "@pulumi/pulumi";
import * as incident from "@pulumi/incident";
// Catalog-backed fields can offer a restricted set of options, rather than every
// entry of their catalog type.
const service = new incident.CatalogType("service", {
name: "Service",
description: "All services that we run across our product",
sourceRepoUrl: "",
});
const serviceTier = new incident.CatalogType("service_tier", {
name: "Service Tier",
description: "Level of importance for each service",
sourceRepoUrl: "",
});
const serviceServiceTier = new incident.CatalogTypeAttribute("service_service_tier", {
catalogTypeId: service.id,
name: "Tier",
type: serviceTier.typeName,
});
const tierOne = new incident.CatalogEntry("tier_one", {
catalogTypeId: serviceTier.id,
name: "Tier 1",
attributeValues: [],
});
// Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
// options to entries whose Tier attribute is one of the listed values - unlike
// `filter_by`, which follows another custom field's value on the incident.
const affectedTierOneService = new incident.CustomField("affected_tier_one_service", {
name: "Affected tier 1 service",
description: "The tier 1 service that is affected by this incident.",
fieldType: "single_select",
catalogTypeId: service.id,
fixedFilter: {
catalogAttributeId: serviceServiceTier.id,
values: [tierOne.id],
},
});
import pulumi
import pulumi_incident as incident
# Catalog-backed fields can offer a restricted set of options, rather than every
# entry of their catalog type.
service = incident.CatalogType("service",
name="Service",
description="All services that we run across our product",
source_repo_url="")
service_tier = incident.CatalogType("service_tier",
name="Service Tier",
description="Level of importance for each service",
source_repo_url="")
service_service_tier = incident.CatalogTypeAttribute("service_service_tier",
catalog_type_id=service.id,
name="Tier",
type=service_tier.type_name)
tier_one = incident.CatalogEntry("tier_one",
catalog_type_id=service_tier.id,
name="Tier 1",
attribute_values=[])
# Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
# options to entries whose Tier attribute is one of the listed values - unlike
# `filter_by`, which follows another custom field's value on the incident.
affected_tier_one_service = incident.CustomField("affected_tier_one_service",
name="Affected tier 1 service",
description="The tier 1 service that is affected by this incident.",
field_type="single_select",
catalog_type_id=service.id,
fixed_filter={
"catalog_attribute_id": service_service_tier.id,
"values": [tier_one.id],
})
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v7/incident"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Catalog-backed fields can offer a restricted set of options, rather than every
// entry of their catalog type.
service, err := incident.NewCatalogType(ctx, "service", &incident.CatalogTypeArgs{
Name: pulumi.String("Service"),
Description: pulumi.String("All services that we run across our product"),
SourceRepoUrl: pulumi.String(""),
})
if err != nil {
return err
}
serviceTier, err := incident.NewCatalogType(ctx, "service_tier", &incident.CatalogTypeArgs{
Name: pulumi.String("Service Tier"),
Description: pulumi.String("Level of importance for each service"),
SourceRepoUrl: pulumi.String(""),
})
if err != nil {
return err
}
serviceServiceTier, err := incident.NewCatalogTypeAttribute(ctx, "service_service_tier", &incident.CatalogTypeAttributeArgs{
CatalogTypeId: service.ID(),
Name: pulumi.String("Tier"),
Type: serviceTier.TypeName,
})
if err != nil {
return err
}
tierOne, err := incident.NewCatalogEntry(ctx, "tier_one", &incident.CatalogEntryArgs{
CatalogTypeId: serviceTier.ID(),
Name: pulumi.String("Tier 1"),
AttributeValues: incident.CatalogEntryAttributeValueArray{},
})
if err != nil {
return err
}
// Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
// options to entries whose Tier attribute is one of the listed values - unlike
// `filter_by`, which follows another custom field's value on the incident.
_, err = incident.NewCustomField(ctx, "affected_tier_one_service", &incident.CustomFieldArgs{
Name: pulumi.String("Affected tier 1 service"),
Description: pulumi.String("The tier 1 service that is affected by this incident."),
FieldType: pulumi.String("single_select"),
CatalogTypeId: service.ID(),
FixedFilter: &incident.CustomFieldFixedFilterArgs{
CatalogAttributeId: serviceServiceTier.ID(),
Values: pulumi.StringArray{
tierOne.ID(),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Incident = Pulumi.Incident;
return await Deployment.RunAsync(() =>
{
// Catalog-backed fields can offer a restricted set of options, rather than every
// entry of their catalog type.
var service = new Incident.CatalogType("service", new()
{
Name = "Service",
Description = "All services that we run across our product",
SourceRepoUrl = "",
});
var serviceTier = new Incident.CatalogType("service_tier", new()
{
Name = "Service Tier",
Description = "Level of importance for each service",
SourceRepoUrl = "",
});
var serviceServiceTier = new Incident.CatalogTypeAttribute("service_service_tier", new()
{
CatalogTypeId = service.Id,
Name = "Tier",
Type = serviceTier.TypeName,
});
var tierOne = new Incident.CatalogEntry("tier_one", new()
{
CatalogTypeId = serviceTier.Id,
Name = "Tier 1",
AttributeValues = new[] {},
});
// Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
// options to entries whose Tier attribute is one of the listed values - unlike
// `filter_by`, which follows another custom field's value on the incident.
var affectedTierOneService = new Incident.CustomField("affected_tier_one_service", new()
{
Name = "Affected tier 1 service",
Description = "The tier 1 service that is affected by this incident.",
FieldType = "single_select",
CatalogTypeId = service.Id,
FixedFilter = new Incident.Inputs.CustomFieldFixedFilterArgs
{
CatalogAttributeId = serviceServiceTier.Id,
Values = new[]
{
tierOne.Id,
},
},
});
});
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 com.pulumi.incident.CatalogTypeAttribute;
import com.pulumi.incident.CatalogTypeAttributeArgs;
import com.pulumi.incident.CatalogEntry;
import com.pulumi.incident.CatalogEntryArgs;
import com.pulumi.incident.CustomField;
import com.pulumi.incident.CustomFieldArgs;
import com.pulumi.incident.inputs.CustomFieldFixedFilterArgs;
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) {
// Catalog-backed fields can offer a restricted set of options, rather than every
// entry of their catalog type.
var service = new CatalogType("service", CatalogTypeArgs.builder()
.name("Service")
.description("All services that we run across our product")
.sourceRepoUrl("")
.build());
var serviceTier = new CatalogType("serviceTier", CatalogTypeArgs.builder()
.name("Service Tier")
.description("Level of importance for each service")
.sourceRepoUrl("")
.build());
var serviceServiceTier = new CatalogTypeAttribute("serviceServiceTier", CatalogTypeAttributeArgs.builder()
.catalogTypeId(service.id())
.name("Tier")
.type(serviceTier.typeName())
.build());
var tierOne = new CatalogEntry("tierOne", CatalogEntryArgs.builder()
.catalogTypeId(serviceTier.id())
.name("Tier 1")
.attributeValues()
.build());
// Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
// options to entries whose Tier attribute is one of the listed values - unlike
// `filter_by`, which follows another custom field's value on the incident.
var affectedTierOneService = new CustomField("affectedTierOneService", CustomFieldArgs.builder()
.name("Affected tier 1 service")
.description("The tier 1 service that is affected by this incident.")
.fieldType("single_select")
.catalogTypeId(service.id())
.fixedFilter(CustomFieldFixedFilterArgs.builder()
.catalogAttributeId(serviceServiceTier.id())
.values(tierOne.id())
.build())
.build());
}
}
resources:
# Catalog-backed fields can offer a restricted set of options, rather than every
# entry of their catalog type.
service:
type: incident:CatalogType
properties:
name: Service
description: All services that we run across our product
sourceRepoUrl: ""
serviceTier:
type: incident:CatalogType
name: service_tier
properties:
name: Service Tier
description: Level of importance for each service
sourceRepoUrl: ""
serviceServiceTier:
type: incident:CatalogTypeAttribute
name: service_service_tier
properties:
catalogTypeId: ${service.id}
name: Tier
type: ${serviceTier.typeName}
tierOne:
type: incident:CatalogEntry
name: tier_one
properties:
catalogTypeId: ${serviceTier.id}
name: Tier 1
attributeValues: []
# Offer only our tier 1 services, on every incident. `fixed_filter` restricts the
# options to entries whose Tier attribute is one of the listed values - unlike
# `filter_by`, which follows another custom field's value on the incident.
affectedTierOneService:
type: incident:CustomField
name: affected_tier_one_service
properties:
name: Affected tier 1 service
description: The tier 1 service that is affected by this incident.
fieldType: single_select
catalogTypeId: ${service.id}
fixedFilter:
catalogAttributeId: ${serviceServiceTier.id}
values:
- ${tierOne.id}
Example coming soon!
Create CustomField Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new CustomField(name: string, args: CustomFieldArgs, opts?: CustomResourceOptions);@overload
def CustomField(resource_name: str,
args: CustomFieldArgs,
opts: Optional[ResourceOptions] = None)
@overload
def CustomField(resource_name: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
field_type: Optional[str] = None,
catalog_type_id: Optional[str] = None,
filter_by: Optional[CustomFieldFilterByArgs] = None,
fixed_filter: Optional[CustomFieldFixedFilterArgs] = None,
group_by_catalog_attribute_id: Optional[str] = None,
helptext_catalog_attribute_id: Optional[str] = None,
name: Optional[str] = None)func NewCustomField(ctx *Context, name string, args CustomFieldArgs, opts ...ResourceOption) (*CustomField, error)public CustomField(string name, CustomFieldArgs args, CustomResourceOptions? opts = null)
public CustomField(String name, CustomFieldArgs args)
public CustomField(String name, CustomFieldArgs args, CustomResourceOptions options)
type: incident:CustomField
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "incident_custom_field" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args CustomFieldArgs
- 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 CustomFieldArgs
- 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 CustomFieldArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args CustomFieldArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args CustomFieldArgs
- 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 customFieldResource = new Incident.CustomField("customFieldResource", new()
{
Description = "string",
FieldType = "string",
CatalogTypeId = "string",
FilterBy = new Incident.Inputs.CustomFieldFilterByArgs
{
CatalogAttributeId = "string",
CustomFieldId = "string",
},
FixedFilter = new Incident.Inputs.CustomFieldFixedFilterArgs
{
CatalogAttributeId = "string",
Values = new[]
{
"string",
},
},
GroupByCatalogAttributeId = "string",
HelptextCatalogAttributeId = "string",
Name = "string",
});
example, err := incident.NewCustomField(ctx, "customFieldResource", &incident.CustomFieldArgs{
Description: pulumi.String("string"),
FieldType: pulumi.String("string"),
CatalogTypeId: pulumi.String("string"),
FilterBy: &incident.CustomFieldFilterByArgs{
CatalogAttributeId: pulumi.String("string"),
CustomFieldId: pulumi.String("string"),
},
FixedFilter: &incident.CustomFieldFixedFilterArgs{
CatalogAttributeId: pulumi.String("string"),
Values: pulumi.StringArray{
pulumi.String("string"),
},
},
GroupByCatalogAttributeId: pulumi.String("string"),
HelptextCatalogAttributeId: pulumi.String("string"),
Name: pulumi.String("string"),
})
resource "incident_custom_field" "customFieldResource" {
lifecycle {
create_before_destroy = true
}
description = "string"
field_type = "string"
catalog_type_id = "string"
filter_by = {
catalog_attribute_id = "string"
custom_field_id = "string"
}
fixed_filter = {
catalog_attribute_id = "string"
values = ["string"]
}
group_by_catalog_attribute_id = "string"
helptext_catalog_attribute_id = "string"
name = "string"
}
var customFieldResource = new CustomField("customFieldResource", CustomFieldArgs.builder()
.description("string")
.fieldType("string")
.catalogTypeId("string")
.filterBy(CustomFieldFilterByArgs.builder()
.catalogAttributeId("string")
.customFieldId("string")
.build())
.fixedFilter(CustomFieldFixedFilterArgs.builder()
.catalogAttributeId("string")
.values("string")
.build())
.groupByCatalogAttributeId("string")
.helptextCatalogAttributeId("string")
.name("string")
.build());
custom_field_resource = incident.CustomField("customFieldResource",
description="string",
field_type="string",
catalog_type_id="string",
filter_by={
"catalog_attribute_id": "string",
"custom_field_id": "string",
},
fixed_filter={
"catalog_attribute_id": "string",
"values": ["string"],
},
group_by_catalog_attribute_id="string",
helptext_catalog_attribute_id="string",
name="string")
const customFieldResource = new incident.CustomField("customFieldResource", {
description: "string",
fieldType: "string",
catalogTypeId: "string",
filterBy: {
catalogAttributeId: "string",
customFieldId: "string",
},
fixedFilter: {
catalogAttributeId: "string",
values: ["string"],
},
groupByCatalogAttributeId: "string",
helptextCatalogAttributeId: "string",
name: "string",
});
type: incident:CustomField
properties:
catalogTypeId: string
description: string
fieldType: string
filterBy:
catalogAttributeId: string
customFieldId: string
fixedFilter:
catalogAttributeId: string
values:
- string
groupByCatalogAttributeId: string
helptextCatalogAttributeId: string
name: string
CustomField 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 CustomField resource accepts the following input properties:
- Description string
- Description of the custom field
- Field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - Catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- Filter
By CustomField Filter By - Fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - Group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- Helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- Name string
- Human readable name for the custom field
- Description string
- Description of the custom field
- Field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - Catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- Filter
By CustomField Filter By Args - Fixed
Filter CustomField Fixed Filter Args - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - Group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- Helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- Name string
- Human readable name for the custom field
- description string
- Description of the custom field
- field_
type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - catalog_
type_ stringid - For catalog fields, the ID of the associated catalog type
- filter_
by object - fixed_
filter object - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group_
by_ stringcatalog_ attribute_ id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext_
catalog_ stringattribute_ id - Which catalog attribute provides helptext for the options
- name string
- Human readable name for the custom field
- description String
- Description of the custom field
- field
Type String - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - catalog
Type StringId - For catalog fields, the ID of the associated catalog type
- filter
By CustomField Filter By - fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By StringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog StringAttribute Id - Which catalog attribute provides helptext for the options
- name String
- Human readable name for the custom field
- description string
- Description of the custom field
- field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- filter
By CustomField Filter By - fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- name string
- Human readable name for the custom field
- description str
- Description of the custom field
- field_
type str - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - catalog_
type_ strid - For catalog fields, the ID of the associated catalog type
- filter_
by CustomField Filter By Args - fixed_
filter CustomField Fixed Filter Args - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group_
by_ strcatalog_ attribute_ id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext_
catalog_ strattribute_ id - Which catalog attribute provides helptext for the options
- name str
- Human readable name for the custom field
- description String
- Description of the custom field
- field
Type String - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - catalog
Type StringId - For catalog fields, the ID of the associated catalog type
- filter
By Property Map - fixed
Filter Property Map - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By StringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog StringAttribute Id - Which catalog attribute provides helptext for the options
- name String
- Human readable name for the custom field
Outputs
All input properties are implicitly available as output properties. Additionally, the CustomField 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 CustomField Resource
Get an existing CustomField 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?: CustomFieldState, opts?: CustomResourceOptions): CustomField@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
catalog_type_id: Optional[str] = None,
description: Optional[str] = None,
field_type: Optional[str] = None,
filter_by: Optional[CustomFieldFilterByArgs] = None,
fixed_filter: Optional[CustomFieldFixedFilterArgs] = None,
group_by_catalog_attribute_id: Optional[str] = None,
helptext_catalog_attribute_id: Optional[str] = None,
name: Optional[str] = None) -> CustomFieldfunc GetCustomField(ctx *Context, name string, id IDInput, state *CustomFieldState, opts ...ResourceOption) (*CustomField, error)public static CustomField Get(string name, Input<string> id, CustomFieldState? state, CustomResourceOptions? opts = null)public static CustomField get(String name, Output<String> id, CustomFieldState state, CustomResourceOptions options)resources: _: type: incident:CustomField get: id: ${id}import {
to = incident_custom_field.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.
- Catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- Description string
- Description of the custom field
- Field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - Filter
By CustomField Filter By - Fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - Group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- Helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- Name string
- Human readable name for the custom field
- Catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- Description string
- Description of the custom field
- Field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - Filter
By CustomField Filter By Args - Fixed
Filter CustomField Fixed Filter Args - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - Group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- Helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- Name string
- Human readable name for the custom field
- catalog_
type_ stringid - For catalog fields, the ID of the associated catalog type
- description string
- Description of the custom field
- field_
type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - filter_
by object - fixed_
filter object - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group_
by_ stringcatalog_ attribute_ id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext_
catalog_ stringattribute_ id - Which catalog attribute provides helptext for the options
- name string
- Human readable name for the custom field
- catalog
Type StringId - For catalog fields, the ID of the associated catalog type
- description String
- Description of the custom field
- field
Type String - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - filter
By CustomField Filter By - fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By StringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog StringAttribute Id - Which catalog attribute provides helptext for the options
- name String
- Human readable name for the custom field
- catalog
Type stringId - For catalog fields, the ID of the associated catalog type
- description string
- Description of the custom field
- field
Type string - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - filter
By CustomField Filter By - fixed
Filter CustomField Fixed Filter - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By stringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog stringAttribute Id - Which catalog attribute provides helptext for the options
- name string
- Human readable name for the custom field
- catalog_
type_ strid - For catalog fields, the ID of the associated catalog type
- description str
- Description of the custom field
- field_
type str - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - filter_
by CustomField Filter By Args - fixed_
filter CustomField Fixed Filter Args - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group_
by_ strcatalog_ attribute_ id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext_
catalog_ strattribute_ id - Which catalog attribute provides helptext for the options
- name str
- Human readable name for the custom field
- catalog
Type StringId - For catalog fields, the ID of the associated catalog type
- description String
- Description of the custom field
- field
Type String - Type of custom field. Possible values are:
single_select,multi_select,text,link,numeric. - filter
By Property Map - fixed
Filter Property Map - Restrict this catalog-backed field's options to catalog entries whose
catalog_attribute_idattribute references one ofvalues. This is the static counterpart tofilter_by: rather than following whatever another custom field is set to on the incident, the filter is chosen up front and is the same for every incident. Mutually exclusive withfilter_by. - group
By StringCatalog Attribute Id - For catalog fields, the ID of the attribute used to group catalog entries (if applicable)
- helptext
Catalog StringAttribute Id - Which catalog attribute provides helptext for the options
- name String
- Human readable name for the custom field
Supporting Types
CustomFieldFilterBy, CustomFieldFilterByArgs
- Catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- Custom
Field stringId - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- Catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- Custom
Field stringId - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- catalog_
attribute_ stringid - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- custom_
field_ stringid - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- catalog
Attribute StringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- custom
Field StringId - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- custom
Field stringId - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- catalog_
attribute_ strid - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- custom_
field_ strid - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
- catalog
Attribute StringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- custom
Field StringId - This must be the ID of a custom field, which must have values of the same type as the attribute you are filtering by.
CustomFieldFixedFilter, CustomFieldFixedFilterArgs
- Catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- Values List<string>
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- Catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- Values []string
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- catalog_
attribute_ stringid - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- values list(string)
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- catalog
Attribute StringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- values List<String>
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- catalog
Attribute stringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- values string[]
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- catalog_
attribute_ strid - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- values Sequence[str]
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
- catalog
Attribute StringId - This must be an attribute of the catalog type of this custom field. It must be an attribute that points to another catalog type (so not a plain string, number, or boolean attribute).
- values List<String>
- The catalog entry IDs (of the type the attribute points at) that the attribute must reference. The options for this custom field are restricted to entries matching one of these values.
Import
Import is supported using an import block or the pulumi import command:
The import block can be used with the id attribute, for example:
terraform
Import a custom field using its ID
Replace the ID with a real ID from your incident.io organization
import {
to = incident_custom_field.example
id = “01ABC123DEF456GHI789JKL”
}
The pulumi import command can be used, for example:
#!/bin/bash
Import a custom field using its ID
Replace the ID with a real ID from your incident.io organization
$ pulumi import incident:index/customField:CustomField 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
incidentTerraform Provider.
published on Friday, Sep 11, 2026 by incident-io