1. Packages
  2. Packages
  3. Incident Provider
  4. API Docs
  5. ScheduleRotationBeta
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 a rotation on an on-call schedule.

    A rotation is a group of people who take turns being on call, and the cadence they hand over on. A schedule can hold several, and each is managed independently — so changing one never rewrites the others.

    Editing a rotation takes effect straight away, unless rollout says otherwise.

    Changing when shifts hand over

    first_interval_starts_at is the point intervals are counted from. With handovers it fixes the time of day and day of week that shifts change hands — the dashboard calls it the handover time.

    It can’t change in the same apply as rollout. Whenever rollout is set the rotation keeps the interval start it already runs: an immediate rollout copies that across so the cadence doesn’t move, and a phased one works backwards from the next handover so the new line-up slots into the rhythm people are already working. Either way a new first_interval_starts_at is discarded, so the provider stops the apply rather than storing a value that won’t be kept.

    To change both, take it in two applies:

    1. Change first_interval_starts_at on its own, with rollout unset. The new cadence takes effect straight away.
    2. Then make the line-up change, with rollout set.

    Choosing a scheduling mode

    scheduling_mode decides who takes the next shift.

    fair shares time on call out evenly, tracking how much each person has already done and giving the next shift to whoever is behind. Someone newly added has done none, so fair tends to bring them on call sooner rather than adding them to the back of the queue.

    sequential goes around the list in order, so the next person on call is always the one after the last.

    For an even rotation — everyone on for the same length of time, no working hours, nobody joining or leaving — the two behave identically. They only diverge once shifts differ in length, working_intervals is set, or the list of users changes. Reach for sequential when it matters that the running order is obvious to the people in it.

    Beta, and what happens next

    This resource is in beta. Its schema may still change in ways that are not backwards compatible, so pin the provider version if that matters to you.

    The plan is for these resources to become the only way to manage schedules. In v7.0 they lose the _beta suffix and incident.Schedule, which declares its rotations inline, is removed. Until then both work and neither is deprecated. See incident.ScheduleBeta for how the two differ and how to migrate.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incident from "@pulumi/incident";
    
    // A rotation is a group of people who take turns being on call. Each one is managed
    // on its own, so editing this rotation doesn't touch the others on the schedule.
    const primary = new incident.ScheduleRotationBeta("primary", {
        scheduleId: platform.id,
        name: "Primary",
        users: [
            alice.id,
            bob.id,
        ],
        firstIntervalStartsAt: "2024-01-08T09:00:00Z",
        handovers: [{
            interval: 1,
            intervalType: "weekly",
        }],
    });
    // A rotation that only covers weekday working hours, with two people on call at
    // once and a place in the schedule's running order.
    const businessHours = new incident.ScheduleRotationBeta("business_hours", {
        scheduleId: platform.id,
        name: "Business hours",
        rank: 2,
        users: [
            alice.id,
            bob.id,
            carol.id,
        ],
        firstIntervalStartsAt: "2024-01-08T09:00:00Z",
        handovers: [{
            interval: 1,
            intervalType: "daily",
        }],
        concurrentShifts: 2,
        workingIntervals: [
            {
                weekday: "monday",
                startTime: "09:00",
                endTime: "17:00",
            },
            {
                weekday: "tuesday",
                startTime: "09:00",
                endTime: "17:00",
            },
            {
                weekday: "wednesday",
                startTime: "09:00",
                endTime: "17:00",
            },
            {
                weekday: "thursday",
                startTime: "09:00",
                endTime: "17:00",
            },
            {
                weekday: "friday",
                startTime: "09:00",
                endTime: "17:00",
            },
        ],
    });
    
    import pulumi
    import pulumi_incident as incident
    
    # A rotation is a group of people who take turns being on call. Each one is managed
    # on its own, so editing this rotation doesn't touch the others on the schedule.
    primary = incident.ScheduleRotationBeta("primary",
        schedule_id=platform["id"],
        name="Primary",
        users=[
            alice["id"],
            bob["id"],
        ],
        first_interval_starts_at="2024-01-08T09:00:00Z",
        handovers=[{
            "interval": 1,
            "interval_type": "weekly",
        }])
    # A rotation that only covers weekday working hours, with two people on call at
    # once and a place in the schedule's running order.
    business_hours = incident.ScheduleRotationBeta("business_hours",
        schedule_id=platform["id"],
        name="Business hours",
        rank=2,
        users=[
            alice["id"],
            bob["id"],
            carol["id"],
        ],
        first_interval_starts_at="2024-01-08T09:00:00Z",
        handovers=[{
            "interval": 1,
            "interval_type": "daily",
        }],
        concurrent_shifts=2,
        working_intervals=[
            {
                "weekday": "monday",
                "start_time": "09:00",
                "end_time": "17:00",
            },
            {
                "weekday": "tuesday",
                "start_time": "09:00",
                "end_time": "17:00",
            },
            {
                "weekday": "wednesday",
                "start_time": "09:00",
                "end_time": "17:00",
            },
            {
                "weekday": "thursday",
                "start_time": "09:00",
                "end_time": "17:00",
            },
            {
                "weekday": "friday",
                "start_time": "09:00",
                "end_time": "17:00",
            },
        ])
    
    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 {
    		// A rotation is a group of people who take turns being on call. Each one is managed
    		// on its own, so editing this rotation doesn't touch the others on the schedule.
    		_, err := incident.NewScheduleRotationBeta(ctx, "primary", &incident.ScheduleRotationBetaArgs{
    			ScheduleId: pulumi.Any(platform.Id),
    			Name:       pulumi.String("Primary"),
    			Users: pulumi.StringArray{
    				alice.Id,
    				bob.Id,
    			},
    			FirstIntervalStartsAt: pulumi.String("2024-01-08T09:00:00Z"),
    			Handovers: incident.ScheduleRotationBetaHandoverArray{
    				&incident.ScheduleRotationBetaHandoverArgs{
    					Interval:     pulumi.Float64(1),
    					IntervalType: pulumi.String("weekly"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// A rotation that only covers weekday working hours, with two people on call at
    		// once and a place in the schedule's running order.
    		_, err = incident.NewScheduleRotationBeta(ctx, "business_hours", &incident.ScheduleRotationBetaArgs{
    			ScheduleId: pulumi.Any(platform.Id),
    			Name:       pulumi.String("Business hours"),
    			Rank:       pulumi.Float64(2),
    			Users: pulumi.StringArray{
    				alice.Id,
    				bob.Id,
    				carol.Id,
    			},
    			FirstIntervalStartsAt: pulumi.String("2024-01-08T09:00:00Z"),
    			Handovers: incident.ScheduleRotationBetaHandoverArray{
    				&incident.ScheduleRotationBetaHandoverArgs{
    					Interval:     pulumi.Float64(1),
    					IntervalType: pulumi.String("daily"),
    				},
    			},
    			ConcurrentShifts: pulumi.Float64(2),
    			WorkingIntervals: incident.ScheduleRotationBetaWorkingIntervalArray{
    				&incident.ScheduleRotationBetaWorkingIntervalArgs{
    					Weekday:   pulumi.String("monday"),
    					StartTime: pulumi.String("09:00"),
    					EndTime:   pulumi.String("17:00"),
    				},
    				&incident.ScheduleRotationBetaWorkingIntervalArgs{
    					Weekday:   pulumi.String("tuesday"),
    					StartTime: pulumi.String("09:00"),
    					EndTime:   pulumi.String("17:00"),
    				},
    				&incident.ScheduleRotationBetaWorkingIntervalArgs{
    					Weekday:   pulumi.String("wednesday"),
    					StartTime: pulumi.String("09:00"),
    					EndTime:   pulumi.String("17:00"),
    				},
    				&incident.ScheduleRotationBetaWorkingIntervalArgs{
    					Weekday:   pulumi.String("thursday"),
    					StartTime: pulumi.String("09:00"),
    					EndTime:   pulumi.String("17:00"),
    				},
    				&incident.ScheduleRotationBetaWorkingIntervalArgs{
    					Weekday:   pulumi.String("friday"),
    					StartTime: pulumi.String("09:00"),
    					EndTime:   pulumi.String("17:00"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incident = Pulumi.Incident;
    
    return await Deployment.RunAsync(() => 
    {
        // A rotation is a group of people who take turns being on call. Each one is managed
        // on its own, so editing this rotation doesn't touch the others on the schedule.
        var primary = new Incident.ScheduleRotationBeta("primary", new()
        {
            ScheduleId = platform.Id,
            Name = "Primary",
            Users = new[]
            {
                alice.Id,
                bob.Id,
            },
            FirstIntervalStartsAt = "2024-01-08T09:00:00Z",
            Handovers = new[]
            {
                new Incident.Inputs.ScheduleRotationBetaHandoverArgs
                {
                    Interval = 1,
                    IntervalType = "weekly",
                },
            },
        });
    
        // A rotation that only covers weekday working hours, with two people on call at
        // once and a place in the schedule's running order.
        var businessHours = new Incident.ScheduleRotationBeta("business_hours", new()
        {
            ScheduleId = platform.Id,
            Name = "Business hours",
            Rank = 2,
            Users = new[]
            {
                alice.Id,
                bob.Id,
                carol.Id,
            },
            FirstIntervalStartsAt = "2024-01-08T09:00:00Z",
            Handovers = new[]
            {
                new Incident.Inputs.ScheduleRotationBetaHandoverArgs
                {
                    Interval = 1,
                    IntervalType = "daily",
                },
            },
            ConcurrentShifts = 2,
            WorkingIntervals = new[]
            {
                new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
                {
                    Weekday = "monday",
                    StartTime = "09:00",
                    EndTime = "17:00",
                },
                new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
                {
                    Weekday = "tuesday",
                    StartTime = "09:00",
                    EndTime = "17:00",
                },
                new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
                {
                    Weekday = "wednesday",
                    StartTime = "09:00",
                    EndTime = "17:00",
                },
                new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
                {
                    Weekday = "thursday",
                    StartTime = "09:00",
                    EndTime = "17:00",
                },
                new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
                {
                    Weekday = "friday",
                    StartTime = "09:00",
                    EndTime = "17:00",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incident.ScheduleRotationBeta;
    import com.pulumi.incident.ScheduleRotationBetaArgs;
    import com.pulumi.incident.inputs.ScheduleRotationBetaHandoverArgs;
    import com.pulumi.incident.inputs.ScheduleRotationBetaWorkingIntervalArgs;
    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) {
            // A rotation is a group of people who take turns being on call. Each one is managed
            // on its own, so editing this rotation doesn't touch the others on the schedule.
            var primary = new ScheduleRotationBeta("primary", ScheduleRotationBetaArgs.builder()
                .scheduleId(platform.id())
                .name("Primary")
                .users(            
                    alice.id(),
                    bob.id())
                .firstIntervalStartsAt("2024-01-08T09:00:00Z")
                .handovers(ScheduleRotationBetaHandoverArgs.builder()
                    .interval(1.0)
                    .intervalType("weekly")
                    .build())
                .build());
    
            // A rotation that only covers weekday working hours, with two people on call at
            // once and a place in the schedule's running order.
            var businessHours = new ScheduleRotationBeta("businessHours", ScheduleRotationBetaArgs.builder()
                .scheduleId(platform.id())
                .name("Business hours")
                .rank(2.0)
                .users(            
                    alice.id(),
                    bob.id(),
                    carol.id())
                .firstIntervalStartsAt("2024-01-08T09:00:00Z")
                .handovers(ScheduleRotationBetaHandoverArgs.builder()
                    .interval(1.0)
                    .intervalType("daily")
                    .build())
                .concurrentShifts(2.0)
                .workingIntervals(            
                    ScheduleRotationBetaWorkingIntervalArgs.builder()
                        .weekday("monday")
                        .startTime("09:00")
                        .endTime("17:00")
                        .build(),
                    ScheduleRotationBetaWorkingIntervalArgs.builder()
                        .weekday("tuesday")
                        .startTime("09:00")
                        .endTime("17:00")
                        .build(),
                    ScheduleRotationBetaWorkingIntervalArgs.builder()
                        .weekday("wednesday")
                        .startTime("09:00")
                        .endTime("17:00")
                        .build(),
                    ScheduleRotationBetaWorkingIntervalArgs.builder()
                        .weekday("thursday")
                        .startTime("09:00")
                        .endTime("17:00")
                        .build(),
                    ScheduleRotationBetaWorkingIntervalArgs.builder()
                        .weekday("friday")
                        .startTime("09:00")
                        .endTime("17:00")
                        .build())
                .build());
    
        }
    }
    
    resources:
      # A rotation is a group of people who take turns being on call. Each one is managed
      # on its own, so editing this rotation doesn't touch the others on the schedule.
      primary:
        type: incident:ScheduleRotationBeta
        properties:
          scheduleId: ${platform.id}
          name: Primary
          users:
            - ${alice.id}
            - ${bob.id}
          firstIntervalStartsAt: 2024-01-08T09:00:00Z
          handovers: # concurrent_shifts is omitted, so one person is on call at a time.
            - interval: 1
              intervalType: weekly
      # A rotation that only covers weekday working hours, with two people on call at
      # once and a place in the schedule's running order.
      businessHours:
        type: incident:ScheduleRotationBeta
        name: business_hours
        properties:
          scheduleId: ${platform.id}
          name: Business hours
          rank: 2
          users:
            - ${alice.id}
            - ${bob.id}
            - ${carol.id}
          firstIntervalStartsAt: 2024-01-08T09:00:00Z
          handovers:
            - interval: 1
              intervalType: daily
          concurrentShifts: 2 # Omit this to keep the rotation on call around the clock. An empty list isn't a
          #   # way to say that.
          workingIntervals:
            - weekday: monday
              startTime: 09:00
              endTime: 17:00
            - weekday: tuesday
              startTime: 09:00
              endTime: 17:00
            - weekday: wednesday
              startTime: 09:00
              endTime: 17:00
            - weekday: thursday
              startTime: 09:00
              endTime: 17:00
            - weekday: friday
              startTime: 09:00
              endTime: 17:00
    
    Example coming soon!
    

    Create ScheduleRotationBeta Resource

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

    Constructor syntax

    new ScheduleRotationBeta(name: string, args: ScheduleRotationBetaArgs, opts?: CustomResourceOptions);
    @overload
    def ScheduleRotationBeta(resource_name: str,
                             args: ScheduleRotationBetaArgs,
                             opts: Optional[ResourceOptions] = None)
    
    @overload
    def ScheduleRotationBeta(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             first_interval_starts_at: Optional[str] = None,
                             handovers: Optional[Sequence[ScheduleRotationBetaHandoverArgs]] = None,
                             schedule_id: Optional[str] = None,
                             users: Optional[Sequence[str]] = None,
                             concurrent_shifts: Optional[float] = None,
                             name: Optional[str] = None,
                             rank: Optional[float] = None,
                             rollout: Optional[str] = None,
                             scheduling_mode: Optional[str] = None,
                             working_intervals: Optional[Sequence[ScheduleRotationBetaWorkingIntervalArgs]] = None)
    func NewScheduleRotationBeta(ctx *Context, name string, args ScheduleRotationBetaArgs, opts ...ResourceOption) (*ScheduleRotationBeta, error)
    public ScheduleRotationBeta(string name, ScheduleRotationBetaArgs args, CustomResourceOptions? opts = null)
    public ScheduleRotationBeta(String name, ScheduleRotationBetaArgs args)
    public ScheduleRotationBeta(String name, ScheduleRotationBetaArgs args, CustomResourceOptions options)
    
    type: incident:ScheduleRotationBeta
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "incident_schedule_rotation_beta" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ScheduleRotationBetaArgs
    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 ScheduleRotationBetaArgs
    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 ScheduleRotationBetaArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ScheduleRotationBetaArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ScheduleRotationBetaArgs
    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 scheduleRotationBetaResource = new Incident.ScheduleRotationBeta("scheduleRotationBetaResource", new()
    {
        FirstIntervalStartsAt = "string",
        Handovers = new[]
        {
            new Incident.Inputs.ScheduleRotationBetaHandoverArgs
            {
                Interval = 0,
                IntervalType = "string",
            },
        },
        ScheduleId = "string",
        Users = new[]
        {
            "string",
        },
        ConcurrentShifts = 0,
        Name = "string",
        Rank = 0,
        Rollout = "string",
        SchedulingMode = "string",
        WorkingIntervals = new[]
        {
            new Incident.Inputs.ScheduleRotationBetaWorkingIntervalArgs
            {
                EndTime = "string",
                StartTime = "string",
                Weekday = "string",
            },
        },
    });
    
    example, err := incident.NewScheduleRotationBeta(ctx, "scheduleRotationBetaResource", &incident.ScheduleRotationBetaArgs{
    	FirstIntervalStartsAt: pulumi.String("string"),
    	Handovers: incident.ScheduleRotationBetaHandoverArray{
    		&incident.ScheduleRotationBetaHandoverArgs{
    			Interval:     pulumi.Float64(0),
    			IntervalType: pulumi.String("string"),
    		},
    	},
    	ScheduleId: pulumi.String("string"),
    	Users: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	ConcurrentShifts: pulumi.Float64(0),
    	Name:             pulumi.String("string"),
    	Rank:             pulumi.Float64(0),
    	Rollout:          pulumi.String("string"),
    	SchedulingMode:   pulumi.String("string"),
    	WorkingIntervals: incident.ScheduleRotationBetaWorkingIntervalArray{
    		&incident.ScheduleRotationBetaWorkingIntervalArgs{
    			EndTime:   pulumi.String("string"),
    			StartTime: pulumi.String("string"),
    			Weekday:   pulumi.String("string"),
    		},
    	},
    })
    
    resource "incident_schedule_rotation_beta" "scheduleRotationBetaResource" {
      lifecycle {
        create_before_destroy = true
      }
      first_interval_starts_at = "string"
      handovers {
        interval      = 0
        interval_type = "string"
      }
      schedule_id       = "string"
      users             = ["string"]
      concurrent_shifts = 0
      name              = "string"
      rank              = 0
      rollout           = "string"
      scheduling_mode   = "string"
      working_intervals {
        end_time   = "string"
        start_time = "string"
        weekday    = "string"
      }
    }
    
    var scheduleRotationBetaResource = new ScheduleRotationBeta("scheduleRotationBetaResource", ScheduleRotationBetaArgs.builder()
        .firstIntervalStartsAt("string")
        .handovers(ScheduleRotationBetaHandoverArgs.builder()
            .interval(0.0)
            .intervalType("string")
            .build())
        .scheduleId("string")
        .users("string")
        .concurrentShifts(0.0)
        .name("string")
        .rank(0.0)
        .rollout("string")
        .schedulingMode("string")
        .workingIntervals(ScheduleRotationBetaWorkingIntervalArgs.builder()
            .endTime("string")
            .startTime("string")
            .weekday("string")
            .build())
        .build());
    
    schedule_rotation_beta_resource = incident.ScheduleRotationBeta("scheduleRotationBetaResource",
        first_interval_starts_at="string",
        handovers=[{
            "interval": float(0),
            "interval_type": "string",
        }],
        schedule_id="string",
        users=["string"],
        concurrent_shifts=float(0),
        name="string",
        rank=float(0),
        rollout="string",
        scheduling_mode="string",
        working_intervals=[{
            "end_time": "string",
            "start_time": "string",
            "weekday": "string",
        }])
    
    const scheduleRotationBetaResource = new incident.ScheduleRotationBeta("scheduleRotationBetaResource", {
        firstIntervalStartsAt: "string",
        handovers: [{
            interval: 0,
            intervalType: "string",
        }],
        scheduleId: "string",
        users: ["string"],
        concurrentShifts: 0,
        name: "string",
        rank: 0,
        rollout: "string",
        schedulingMode: "string",
        workingIntervals: [{
            endTime: "string",
            startTime: "string",
            weekday: "string",
        }],
    });
    
    type: incident:ScheduleRotationBeta
    properties:
        concurrentShifts: 0
        firstIntervalStartsAt: string
        handovers:
            - interval: 0
              intervalType: string
        name: string
        rank: 0
        rollout: string
        scheduleId: string
        schedulingMode: string
        users:
            - string
        workingIntervals:
            - endTime: string
              startTime: string
              weekday: string
    

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

    FirstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    Handovers List<ScheduleRotationBetaHandover>
    The cadence shifts hand over on, applied in turn
    ScheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    Users List<string>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    ConcurrentShifts double
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    Name string
    Human readable name for the rotation, unique within the schedule
    Rank double
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    Rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    SchedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    WorkingIntervals List<ScheduleRotationBetaWorkingInterval>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    FirstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    Handovers []ScheduleRotationBetaHandoverArgs
    The cadence shifts hand over on, applied in turn
    ScheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    Users []string
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    ConcurrentShifts float64
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    Name string
    Human readable name for the rotation, unique within the schedule
    Rank float64
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    Rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    SchedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    WorkingIntervals []ScheduleRotationBetaWorkingIntervalArgs
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    first_interval_starts_at string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers list(object)
    The cadence shifts hand over on, applied in turn
    schedule_id string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    users list(string)
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    concurrent_shifts number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    name string
    Human readable name for the rotation, unique within the schedule
    rank number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    scheduling_mode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    working_intervals list(object)
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    firstIntervalStartsAt String
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers List<ScheduleRotationBetaHandover>
    The cadence shifts hand over on, applied in turn
    scheduleId String
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    users List<String>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    concurrentShifts Double
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    name String
    Human readable name for the rotation, unique within the schedule
    rank Double
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout String
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    schedulingMode String
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    workingIntervals List<ScheduleRotationBetaWorkingInterval>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    firstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers ScheduleRotationBetaHandover[]
    The cadence shifts hand over on, applied in turn
    scheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    users string[]
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    concurrentShifts number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    name string
    Human readable name for the rotation, unique within the schedule
    rank number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    schedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    workingIntervals ScheduleRotationBetaWorkingInterval[]
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    first_interval_starts_at str
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers Sequence[ScheduleRotationBetaHandoverArgs]
    The cadence shifts hand over on, applied in turn
    schedule_id str
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    users Sequence[str]
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    concurrent_shifts float
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    name str
    Human readable name for the rotation, unique within the schedule
    rank float
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout str
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    scheduling_mode str
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    working_intervals Sequence[ScheduleRotationBetaWorkingIntervalArgs]
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    firstIntervalStartsAt String
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers List<Property Map>
    The cadence shifts hand over on, applied in turn
    scheduleId String
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    users List<String>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    concurrentShifts Number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    name String
    Human readable name for the rotation, unique within the schedule
    rank Number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout String
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    schedulingMode String
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    workingIntervals List<Property Map>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ScheduleRotationBeta resource produces the following output properties:

    EffectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    Id string
    The provider-assigned unique ID for this managed resource.
    EffectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    Id string
    The provider-assigned unique ID for this managed resource.
    effective_from string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    id string
    The provider-assigned unique ID for this managed resource.
    effectiveFrom String
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    id String
    The provider-assigned unique ID for this managed resource.
    effectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    id string
    The provider-assigned unique ID for this managed resource.
    effective_from str
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    id str
    The provider-assigned unique ID for this managed resource.
    effectiveFrom String
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ScheduleRotationBeta Resource

    Get an existing ScheduleRotationBeta 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?: ScheduleRotationBetaState, opts?: CustomResourceOptions): ScheduleRotationBeta
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            concurrent_shifts: Optional[float] = None,
            effective_from: Optional[str] = None,
            first_interval_starts_at: Optional[str] = None,
            handovers: Optional[Sequence[ScheduleRotationBetaHandoverArgs]] = None,
            name: Optional[str] = None,
            rank: Optional[float] = None,
            rollout: Optional[str] = None,
            schedule_id: Optional[str] = None,
            scheduling_mode: Optional[str] = None,
            users: Optional[Sequence[str]] = None,
            working_intervals: Optional[Sequence[ScheduleRotationBetaWorkingIntervalArgs]] = None) -> ScheduleRotationBeta
    func GetScheduleRotationBeta(ctx *Context, name string, id IDInput, state *ScheduleRotationBetaState, opts ...ResourceOption) (*ScheduleRotationBeta, error)
    public static ScheduleRotationBeta Get(string name, Input<string> id, ScheduleRotationBetaState? state, CustomResourceOptions? opts = null)
    public static ScheduleRotationBeta get(String name, Output<String> id, ScheduleRotationBetaState state, CustomResourceOptions options)
    resources:  _:    type: incident:ScheduleRotationBeta    get:      id: ${id}
    import {
      to = incident_schedule_rotation_beta.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:
    ConcurrentShifts double
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    EffectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    FirstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    Handovers List<ScheduleRotationBetaHandover>
    The cadence shifts hand over on, applied in turn
    Name string
    Human readable name for the rotation, unique within the schedule
    Rank double
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    Rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    ScheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    SchedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    Users List<string>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    WorkingIntervals List<ScheduleRotationBetaWorkingInterval>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    ConcurrentShifts float64
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    EffectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    FirstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    Handovers []ScheduleRotationBetaHandoverArgs
    The cadence shifts hand over on, applied in turn
    Name string
    Human readable name for the rotation, unique within the schedule
    Rank float64
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    Rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    ScheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    SchedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    Users []string
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    WorkingIntervals []ScheduleRotationBetaWorkingIntervalArgs
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    concurrent_shifts number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    effective_from string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    first_interval_starts_at string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers list(object)
    The cadence shifts hand over on, applied in turn
    name string
    Human readable name for the rotation, unique within the schedule
    rank number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    schedule_id string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    scheduling_mode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    users list(string)
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    working_intervals list(object)
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    concurrentShifts Double
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    effectiveFrom String
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    firstIntervalStartsAt String
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers List<ScheduleRotationBetaHandover>
    The cadence shifts hand over on, applied in turn
    name String
    Human readable name for the rotation, unique within the schedule
    rank Double
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout String
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    scheduleId String
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    schedulingMode String
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    users List<String>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    workingIntervals List<ScheduleRotationBetaWorkingInterval>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    concurrentShifts number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    effectiveFrom string
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    firstIntervalStartsAt string
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers ScheduleRotationBetaHandover[]
    The cadence shifts hand over on, applied in turn
    name string
    Human readable name for the rotation, unique within the schedule
    rank number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout string
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    scheduleId string
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    schedulingMode string
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    users string[]
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    workingIntervals ScheduleRotationBetaWorkingInterval[]
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    concurrent_shifts float
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    effective_from str
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    first_interval_starts_at str
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers Sequence[ScheduleRotationBetaHandoverArgs]
    The cadence shifts hand over on, applied in turn
    name str
    Human readable name for the rotation, unique within the schedule
    rank float
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout str
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    schedule_id str
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    scheduling_mode str
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    users Sequence[str]
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    working_intervals Sequence[ScheduleRotationBetaWorkingIntervalArgs]
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.
    concurrentShifts Number
    How many shifts run at the same time, which is how many people are on call at once. Defaults to 1, one person on call at a time. Reducing this stops scheduling the last of them, and stops any overrides on those shifts from applying.
    effectiveFrom String
    When this shape of the rotation took over. Unset when the rotation has only ever had one.
    firstIntervalStartsAt String
    When the first handover interval starts being counted from, which fixes the time of day and day of week shifts change hands. The dashboard calls this the handover time.. Can't be changed in the same apply as rollout — see the resource description for why, and what to do instead.
    handovers List<Property Map>
    The cadence shifts hand over on, applied in turn
    name String
    Human readable name for the rotation, unique within the schedule
    rank Number
    Where this rotation sits in the schedule's running order, lowest first. Unset when it has never been ordered.
    rollout String
    How a change to this rotation is introduced: immediate replaces the line-up now and can change who is on call this minute, after_current_shift lets the shift on call finish first, and after_full_rotation waits for everyone to have taken a turn. Leave it out to replace the line-up straight away. Creating a rotation ignores it, as there's no shift to protect yet.
    scheduleId String
    ID of the schedule this rotation belongs to. Changing this replaces the rotation, as a rotation can't move between schedules.
    schedulingMode String
    How users are allocated across shifts of differing length. One of fair, sequential. Omit it to leave us to pick. For an even rotation the two behave identically — see the resource description for when they diverge.
    users List<String>
    IDs of the people in the rotation, in the order they take shifts. Use the special ID NOBODY for a slot with nobody in it, which schedules the shift without putting anyone on call until an override covers it.
    workingIntervals List<Property Map>
    If set, restricts on-call to these weekday intervals. Omit it to keep the rotation on call around the clock. An empty list is not valid, and is rejected at plan time — it would leave a rotation nobody is ever on call for.

    Supporting Types

    ScheduleRotationBetaHandover, ScheduleRotationBetaHandoverArgs

    Interval double
    How many of the interval type to wait between handovers.
    IntervalType string
    One of hourly, daily or weekly.
    Interval float64
    How many of the interval type to wait between handovers.
    IntervalType string
    One of hourly, daily or weekly.
    interval number
    How many of the interval type to wait between handovers.
    interval_type string
    One of hourly, daily or weekly.
    interval Double
    How many of the interval type to wait between handovers.
    intervalType String
    One of hourly, daily or weekly.
    interval number
    How many of the interval type to wait between handovers.
    intervalType string
    One of hourly, daily or weekly.
    interval float
    How many of the interval type to wait between handovers.
    interval_type str
    One of hourly, daily or weekly.
    interval Number
    How many of the interval type to wait between handovers.
    intervalType String
    One of hourly, daily or weekly.

    ScheduleRotationBetaWorkingInterval, ScheduleRotationBetaWorkingIntervalArgs

    EndTime string
    Time of day this window closes, as HH:MM.
    StartTime string
    Time of day this window opens, as HH:MM.
    Weekday string
    Day of the week, lowercase, e.g. monday.
    EndTime string
    Time of day this window closes, as HH:MM.
    StartTime string
    Time of day this window opens, as HH:MM.
    Weekday string
    Day of the week, lowercase, e.g. monday.
    end_time string
    Time of day this window closes, as HH:MM.
    start_time string
    Time of day this window opens, as HH:MM.
    weekday string
    Day of the week, lowercase, e.g. monday.
    endTime String
    Time of day this window closes, as HH:MM.
    startTime String
    Time of day this window opens, as HH:MM.
    weekday String
    Day of the week, lowercase, e.g. monday.
    endTime string
    Time of day this window closes, as HH:MM.
    startTime string
    Time of day this window opens, as HH:MM.
    weekday string
    Day of the week, lowercase, e.g. monday.
    end_time str
    Time of day this window closes, as HH:MM.
    start_time str
    Time of day this window opens, as HH:MM.
    weekday str
    Day of the week, lowercase, e.g. monday.
    endTime String
    Time of day this window closes, as HH:MM.
    startTime String
    Time of day this window opens, as HH:MM.
    weekday String
    Day of the week, lowercase, e.g. monday.

    Import

    The pulumi import command can be used, for example:

    #!/bin/bash

    Import a rotation using its schedule’s ID and its own ID, separated by a colon.

    A rotation is only addressable through the schedule that holds it.

    Replace both IDs with real ones from your incident.io organization.

    $ pulumi import incident:index/scheduleRotationBeta:ScheduleRotationBeta 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