1. Packages
  2. Packages
  3. Incident Provider
  4. API Docs
  5. ScheduleSyncRule
Viewing docs for incident 6.0.0
published on Monday, Aug 3, 2026 by incident-io
Viewing docs for incident 6.0.0
published on Monday, Aug 3, 2026 by incident-io

    Manage schedule sync rules that link schedules to sync targets (Slack user groups).

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@pulumi/incident";
    
    // Create a sync target (Slack user group)
    const platformOncall = new incident.ScheduleSyncTarget("platform_oncall", {
        addBotToGroup: true,
        newSlackUserGroup: {
            name: "Platform On-Call",
            handle: "platform-oncall",
            description: "Current on-call engineers for the Platform team",
        },
    });
    // Link a schedule to the sync target
    // Only the current on-call engineer(s) will be synced to the user group
    const platformOncallScheduleSyncRule = new incident.ScheduleSyncRule("platform_oncall", {
        scheduleId: platform.id,
        scheduleSyncTargetId: platformOncall.id,
        syncType: "on_call",
    });
    // Alternatively, sync all users in the rotation (not just who's on call)
    const platformAllUsers = new incident.ScheduleSyncRule("platform_all_users", {
        scheduleId: platform.id,
        scheduleSyncTargetId: platformTeam.id,
        syncType: "all_users",
    });
    // Scope a rule to a single rotation. Without rotation_id a rule covers every
    // rotation on the schedule; set it to sync only one. To feed a group from
    // several rotations, create one rule per rotation pointing at the same target.
    const platformEuOncall = new incident.ScheduleSyncRule("platform_eu_oncall", {
        scheduleId: platform.id,
        scheduleSyncTargetId: platformEuOncallIncidentScheduleSyncTarget.id,
        syncType: "on_call",
        rotationId: "eu",
    });
    // Keep a manager in the Slack user group regardless of who is on call.
    // Omit permanent_member_user_ids to leave existing members unchanged on update;
    // set it to [] to clear them.
    const platformOncallWithManager = new incident.ScheduleSyncRule("platform_oncall_with_manager", {
        scheduleId: platform.id,
        scheduleSyncTargetId: platformOncall.id,
        syncType: "on_call",
        permanentMemberUserIds: [platformManager.id],
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # Create a sync target (Slack user group)
    platform_oncall = incident.ScheduleSyncTarget("platform_oncall",
        add_bot_to_group=True,
        new_slack_user_group={
            "name": "Platform On-Call",
            "handle": "platform-oncall",
            "description": "Current on-call engineers for the Platform team",
        })
    # Link a schedule to the sync target
    # Only the current on-call engineer(s) will be synced to the user group
    platform_oncall_schedule_sync_rule = incident.ScheduleSyncRule("platform_oncall",
        schedule_id=platform["id"],
        schedule_sync_target_id=platform_oncall.id,
        sync_type="on_call")
    # Alternatively, sync all users in the rotation (not just who's on call)
    platform_all_users = incident.ScheduleSyncRule("platform_all_users",
        schedule_id=platform["id"],
        schedule_sync_target_id=platform_team["id"],
        sync_type="all_users")
    # Scope a rule to a single rotation. Without rotation_id a rule covers every
    # rotation on the schedule; set it to sync only one. To feed a group from
    # several rotations, create one rule per rotation pointing at the same target.
    platform_eu_oncall = incident.ScheduleSyncRule("platform_eu_oncall",
        schedule_id=platform["id"],
        schedule_sync_target_id=platform_eu_oncall_incident_schedule_sync_target["id"],
        sync_type="on_call",
        rotation_id="eu")
    # Keep a manager in the Slack user group regardless of who is on call.
    # Omit permanent_member_user_ids to leave existing members unchanged on update;
    # set it to [] to clear them.
    platform_oncall_with_manager = incident.ScheduleSyncRule("platform_oncall_with_manager",
        schedule_id=platform["id"],
        schedule_sync_target_id=platform_oncall.id,
        sync_type="on_call",
        permanent_member_user_ids=[platform_manager["id"]])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/incident/v6/incident"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create a sync target (Slack user group)
    		platformOncall, err := incident.NewScheduleSyncTarget(ctx, "platform_oncall", &incident.ScheduleSyncTargetArgs{
    			AddBotToGroup: pulumi.Bool(true),
    			NewSlackUserGroup: &incident.ScheduleSyncTargetNewSlackUserGroupArgs{
    				Name:        pulumi.String("Platform On-Call"),
    				Handle:      pulumi.String("platform-oncall"),
    				Description: pulumi.String("Current on-call engineers for the Platform team"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Link a schedule to the sync target
    		// Only the current on-call engineer(s) will be synced to the user group
    		_, err = incident.NewScheduleSyncRule(ctx, "platform_oncall", &incident.ScheduleSyncRuleArgs{
    			ScheduleId:           pulumi.Any(platform.Id),
    			ScheduleSyncTargetId: platformOncall.ID(),
    			SyncType:             pulumi.String("on_call"),
    		})
    		if err != nil {
    			return err
    		}
    		// Alternatively, sync all users in the rotation (not just who's on call)
    		_, err = incident.NewScheduleSyncRule(ctx, "platform_all_users", &incident.ScheduleSyncRuleArgs{
    			ScheduleId:           pulumi.Any(platform.Id),
    			ScheduleSyncTargetId: pulumi.Any(platformTeam.Id),
    			SyncType:             pulumi.String("all_users"),
    		})
    		if err != nil {
    			return err
    		}
    		// Scope a rule to a single rotation. Without rotation_id a rule covers every
    		// rotation on the schedule; set it to sync only one. To feed a group from
    		// several rotations, create one rule per rotation pointing at the same target.
    		_, err = incident.NewScheduleSyncRule(ctx, "platform_eu_oncall", &incident.ScheduleSyncRuleArgs{
    			ScheduleId:           pulumi.Any(platform.Id),
    			ScheduleSyncTargetId: pulumi.Any(platformEuOncallIncidentScheduleSyncTarget.Id),
    			SyncType:             pulumi.String("on_call"),
    			RotationId:           pulumi.String("eu"),
    		})
    		if err != nil {
    			return err
    		}
    		// Keep a manager in the Slack user group regardless of who is on call.
    		// Omit permanent_member_user_ids to leave existing members unchanged on update;
    		// set it to [] to clear them.
    		_, err = incident.NewScheduleSyncRule(ctx, "platform_oncall_with_manager", &incident.ScheduleSyncRuleArgs{
    			ScheduleId:           pulumi.Any(platform.Id),
    			ScheduleSyncTargetId: platformOncall.ID(),
    			SyncType:             pulumi.String("on_call"),
    			PermanentMemberUserIds: pulumi.StringArray{
    				platformManager.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(() => 
    {
        // Create a sync target (Slack user group)
        var platformOncall = new Incident.ScheduleSyncTarget("platform_oncall", new()
        {
            AddBotToGroup = true,
            NewSlackUserGroup = new Incident.Inputs.ScheduleSyncTargetNewSlackUserGroupArgs
            {
                Name = "Platform On-Call",
                Handle = "platform-oncall",
                Description = "Current on-call engineers for the Platform team",
            },
        });
    
        // Link a schedule to the sync target
        // Only the current on-call engineer(s) will be synced to the user group
        var platformOncallScheduleSyncRule = new Incident.ScheduleSyncRule("platform_oncall", new()
        {
            ScheduleId = platform.Id,
            ScheduleSyncTargetId = platformOncall.Id,
            SyncType = "on_call",
        });
    
        // Alternatively, sync all users in the rotation (not just who's on call)
        var platformAllUsers = new Incident.ScheduleSyncRule("platform_all_users", new()
        {
            ScheduleId = platform.Id,
            ScheduleSyncTargetId = platformTeam.Id,
            SyncType = "all_users",
        });
    
        // Scope a rule to a single rotation. Without rotation_id a rule covers every
        // rotation on the schedule; set it to sync only one. To feed a group from
        // several rotations, create one rule per rotation pointing at the same target.
        var platformEuOncall = new Incident.ScheduleSyncRule("platform_eu_oncall", new()
        {
            ScheduleId = platform.Id,
            ScheduleSyncTargetId = platformEuOncallIncidentScheduleSyncTarget.Id,
            SyncType = "on_call",
            RotationId = "eu",
        });
    
        // Keep a manager in the Slack user group regardless of who is on call.
        // Omit permanent_member_user_ids to leave existing members unchanged on update;
        // set it to [] to clear them.
        var platformOncallWithManager = new Incident.ScheduleSyncRule("platform_oncall_with_manager", new()
        {
            ScheduleId = platform.Id,
            ScheduleSyncTargetId = platformOncall.Id,
            SyncType = "on_call",
            PermanentMemberUserIds = new[]
            {
                platformManager.Id,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.ScheduleSyncTarget;
    import com.pulumi.incident.ScheduleSyncTargetArgs;
    import com.pulumi.incident.inputs.ScheduleSyncTargetNewSlackUserGroupArgs;
    import com.pulumi.incident.ScheduleSyncRule;
    import com.pulumi.incident.ScheduleSyncRuleArgs;
    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 sync target (Slack user group)
            var platformOncall = new ScheduleSyncTarget("platformOncall", ScheduleSyncTargetArgs.builder()
                .addBotToGroup(true)
                .newSlackUserGroup(ScheduleSyncTargetNewSlackUserGroupArgs.builder()
                    .name("Platform On-Call")
                    .handle("platform-oncall")
                    .description("Current on-call engineers for the Platform team")
                    .build())
                .build());
    
            // Link a schedule to the sync target
            // Only the current on-call engineer(s) will be synced to the user group
            var platformOncallScheduleSyncRule = new ScheduleSyncRule("platformOncallScheduleSyncRule", ScheduleSyncRuleArgs.builder()
                .scheduleId(platform.id())
                .scheduleSyncTargetId(platformOncall.id())
                .syncType("on_call")
                .build());
    
            // Alternatively, sync all users in the rotation (not just who's on call)
            var platformAllUsers = new ScheduleSyncRule("platformAllUsers", ScheduleSyncRuleArgs.builder()
                .scheduleId(platform.id())
                .scheduleSyncTargetId(platformTeam.id())
                .syncType("all_users")
                .build());
    
            // Scope a rule to a single rotation. Without rotation_id a rule covers every
            // rotation on the schedule; set it to sync only one. To feed a group from
            // several rotations, create one rule per rotation pointing at the same target.
            var platformEuOncall = new ScheduleSyncRule("platformEuOncall", ScheduleSyncRuleArgs.builder()
                .scheduleId(platform.id())
                .scheduleSyncTargetId(platformEuOncallIncidentScheduleSyncTarget.id())
                .syncType("on_call")
                .rotationId("eu")
                .build());
    
            // Keep a manager in the Slack user group regardless of who is on call.
            // Omit permanent_member_user_ids to leave existing members unchanged on update;
            // set it to [] to clear them.
            var platformOncallWithManager = new ScheduleSyncRule("platformOncallWithManager", ScheduleSyncRuleArgs.builder()
                .scheduleId(platform.id())
                .scheduleSyncTargetId(platformOncall.id())
                .syncType("on_call")
                .permanentMemberUserIds(platformManager.id())
                .build());
    
        }
    }
    
    resources:
      # Create a sync target (Slack user group)
      platformOncall:
        type: incident:ScheduleSyncTarget
        name: platform_oncall
        properties:
          addBotToGroup: true
          newSlackUserGroup:
            name: Platform On-Call
            handle: platform-oncall
            description: Current on-call engineers for the Platform team
      # Link a schedule to the sync target
      # Only the current on-call engineer(s) will be synced to the user group
      platformOncallScheduleSyncRule:
        type: incident:ScheduleSyncRule
        name: platform_oncall
        properties:
          scheduleId: ${platform.id}
          scheduleSyncTargetId: ${platformOncall.id}
          syncType: on_call
      # Alternatively, sync all users in the rotation (not just who's on call)
      platformAllUsers:
        type: incident:ScheduleSyncRule
        name: platform_all_users
        properties:
          scheduleId: ${platform.id}
          scheduleSyncTargetId: ${platformTeam.id}
          syncType: all_users
      # Scope a rule to a single rotation. Without rotation_id a rule covers every
      # rotation on the schedule; set it to sync only one. To feed a group from
      # several rotations, create one rule per rotation pointing at the same target.
      platformEuOncall:
        type: incident:ScheduleSyncRule
        name: platform_eu_oncall
        properties:
          scheduleId: ${platform.id}
          scheduleSyncTargetId: ${platformEuOncallIncidentScheduleSyncTarget.id}
          syncType: on_call
          rotationId: eu
      # Keep a manager in the Slack user group regardless of who is on call.
      # Omit permanent_member_user_ids to leave existing members unchanged on update;
      # set it to [] to clear them.
      platformOncallWithManager:
        type: incident:ScheduleSyncRule
        name: platform_oncall_with_manager
        properties:
          scheduleId: ${platform.id}
          scheduleSyncTargetId: ${platformOncall.id}
          syncType: on_call
          permanentMemberUserIds:
            - ${platformManager.id}
    
    Example coming soon!
    

    Create ScheduleSyncRule Resource

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

    Constructor syntax

    new ScheduleSyncRule(name: string, args: ScheduleSyncRuleArgs, opts?: CustomResourceOptions);
    @overload
    def ScheduleSyncRule(resource_name: str,
                         args: ScheduleSyncRuleArgs,
                         opts: Optional[ResourceOptions] = None)
    
    @overload
    def ScheduleSyncRule(resource_name: str,
                         opts: Optional[ResourceOptions] = None,
                         schedule_id: Optional[str] = None,
                         schedule_sync_target_id: Optional[str] = None,
                         sync_type: Optional[str] = None,
                         permanent_member_user_ids: Optional[Sequence[str]] = None,
                         rotation_id: Optional[str] = None)
    func NewScheduleSyncRule(ctx *Context, name string, args ScheduleSyncRuleArgs, opts ...ResourceOption) (*ScheduleSyncRule, error)
    public ScheduleSyncRule(string name, ScheduleSyncRuleArgs args, CustomResourceOptions? opts = null)
    public ScheduleSyncRule(String name, ScheduleSyncRuleArgs args)
    public ScheduleSyncRule(String name, ScheduleSyncRuleArgs args, CustomResourceOptions options)
    
    type: incident:ScheduleSyncRule
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "incident_schedule_sync_rule" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ScheduleSyncRuleArgs
    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 ScheduleSyncRuleArgs
    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 ScheduleSyncRuleArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ScheduleSyncRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ScheduleSyncRuleArgs
    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 scheduleSyncRuleResource = new Incident.ScheduleSyncRule("scheduleSyncRuleResource", new()
    {
        ScheduleId = "string",
        ScheduleSyncTargetId = "string",
        SyncType = "string",
        PermanentMemberUserIds = new[]
        {
            "string",
        },
        RotationId = "string",
    });
    
    example, err := incident.NewScheduleSyncRule(ctx, "scheduleSyncRuleResource", &incident.ScheduleSyncRuleArgs{
    	ScheduleId:           pulumi.String("string"),
    	ScheduleSyncTargetId: pulumi.String("string"),
    	SyncType:             pulumi.String("string"),
    	PermanentMemberUserIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	RotationId: pulumi.String("string"),
    })
    
    resource "incident_schedule_sync_rule" "scheduleSyncRuleResource" {
      lifecycle {
        create_before_destroy = true
      }
      schedule_id               = "string"
      schedule_sync_target_id   = "string"
      sync_type                 = "string"
      permanent_member_user_ids = ["string"]
      rotation_id               = "string"
    }
    
    var scheduleSyncRuleResource = new ScheduleSyncRule("scheduleSyncRuleResource", ScheduleSyncRuleArgs.builder()
        .scheduleId("string")
        .scheduleSyncTargetId("string")
        .syncType("string")
        .permanentMemberUserIds("string")
        .rotationId("string")
        .build());
    
    schedule_sync_rule_resource = incident.ScheduleSyncRule("scheduleSyncRuleResource",
        schedule_id="string",
        schedule_sync_target_id="string",
        sync_type="string",
        permanent_member_user_ids=["string"],
        rotation_id="string")
    
    const scheduleSyncRuleResource = new incident.ScheduleSyncRule("scheduleSyncRuleResource", {
        scheduleId: "string",
        scheduleSyncTargetId: "string",
        syncType: "string",
        permanentMemberUserIds: ["string"],
        rotationId: "string",
    });
    
    type: incident:ScheduleSyncRule
    properties:
        permanentMemberUserIds:
            - string
        rotationId: string
        scheduleId: string
        scheduleSyncTargetId: string
        syncType: string
    

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

    ScheduleId string
    The schedule this rule belongs to
    ScheduleSyncTargetId string
    The sync target ID this rule links to
    SyncType string
    Which schedule members sync to the user group
    PermanentMemberUserIds List<string>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    RotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    ScheduleId string
    The schedule this rule belongs to
    ScheduleSyncTargetId string
    The sync target ID this rule links to
    SyncType string
    Which schedule members sync to the user group
    PermanentMemberUserIds []string

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    RotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    schedule_id string
    The schedule this rule belongs to
    schedule_sync_target_id string
    The sync target ID this rule links to
    sync_type string
    Which schedule members sync to the user group
    permanent_member_user_ids list(string)

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotation_id string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId String
    The schedule this rule belongs to
    scheduleSyncTargetId String
    The sync target ID this rule links to
    syncType String
    Which schedule members sync to the user group
    permanentMemberUserIds List<String>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId String
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId string
    The schedule this rule belongs to
    scheduleSyncTargetId string
    The sync target ID this rule links to
    syncType string
    Which schedule members sync to the user group
    permanentMemberUserIds string[]

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    schedule_id str
    The schedule this rule belongs to
    schedule_sync_target_id str
    The sync target ID this rule links to
    sync_type str
    Which schedule members sync to the user group
    permanent_member_user_ids Sequence[str]

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotation_id str
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId String
    The schedule this rule belongs to
    scheduleSyncTargetId String
    The sync target ID this rule links to
    syncType String
    Which schedule members sync to the user group
    permanentMemberUserIds List<String>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId String
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.

    Outputs

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

    Get an existing ScheduleSyncRule 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?: ScheduleSyncRuleState, opts?: CustomResourceOptions): ScheduleSyncRule
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            permanent_member_user_ids: Optional[Sequence[str]] = None,
            rotation_id: Optional[str] = None,
            schedule_id: Optional[str] = None,
            schedule_sync_target_id: Optional[str] = None,
            sync_type: Optional[str] = None) -> ScheduleSyncRule
    func GetScheduleSyncRule(ctx *Context, name string, id IDInput, state *ScheduleSyncRuleState, opts ...ResourceOption) (*ScheduleSyncRule, error)
    public static ScheduleSyncRule Get(string name, Input<string> id, ScheduleSyncRuleState? state, CustomResourceOptions? opts = null)
    public static ScheduleSyncRule get(String name, Output<String> id, ScheduleSyncRuleState state, CustomResourceOptions options)
    resources:  _:    type: incident:ScheduleSyncRule    get:      id: ${id}
    import {
      to = incident_schedule_sync_rule.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:
    PermanentMemberUserIds List<string>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    RotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    ScheduleId string
    The schedule this rule belongs to
    ScheduleSyncTargetId string
    The sync target ID this rule links to
    SyncType string
    Which schedule members sync to the user group
    PermanentMemberUserIds []string

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    RotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    ScheduleId string
    The schedule this rule belongs to
    ScheduleSyncTargetId string
    The sync target ID this rule links to
    SyncType string
    Which schedule members sync to the user group
    permanent_member_user_ids list(string)

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotation_id string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    schedule_id string
    The schedule this rule belongs to
    schedule_sync_target_id string
    The sync target ID this rule links to
    sync_type string
    Which schedule members sync to the user group
    permanentMemberUserIds List<String>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId String
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId String
    The schedule this rule belongs to
    scheduleSyncTargetId String
    The sync target ID this rule links to
    syncType String
    Which schedule members sync to the user group
    permanentMemberUserIds string[]

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId string
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId string
    The schedule this rule belongs to
    scheduleSyncTargetId string
    The sync target ID this rule links to
    syncType string
    Which schedule members sync to the user group
    permanent_member_user_ids Sequence[str]

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotation_id str
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    schedule_id str
    The schedule this rule belongs to
    schedule_sync_target_id str
    The sync target ID this rule links to
    sync_type str
    Which schedule members sync to the user group
    permanentMemberUserIds List<String>

    IDs of users always kept in the Slack user group, regardless of who is on call. Useful for keeping e.g. a manager in the group so they see mentions without being paged. Scoped to this rule: when several rules feed the same group, we sync the union of their permanent members.

    Omitting the attribute leaves existing permanent members unchanged on update. Set to [] to clear them.

    rotationId String
    If set, only members of this rotation sync to the user group. When unset, all rotations on the schedule are synced.
    scheduleId String
    The schedule this rule belongs to
    scheduleSyncTargetId String
    The sync target ID this rule links to
    syncType String
    Which schedule members sync to the user group

    Import

    The pulumi import command can be used, for example:

    #!/bin/bash

    Import a schedule sync rule using the format schedule_id:rule_id

    Sync rules belong to a schedule, so both IDs are required: use the

    ListScheduleSyncRules API endpoint for a schedule to find its rules’ IDs

    Replace the IDs with real IDs from your incident.io organization

    $ pulumi import incident:index/scheduleSyncRule:ScheduleSyncRule example 01ABC123DEF456GHI789JKL:01MNO456PQR789STU012VWX
    

    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.
    Viewing docs for incident 6.0.0
    published on Monday, Aug 3, 2026 by incident-io

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial