published on Thursday, May 7, 2026 by rootlyhq
published on Thursday, May 7, 2026 by rootlyhq
Example Usage
data "rootly_user" "john" {
email = "demo@rootly.com"
}
data "rootly_user" "jane" {
email = "demo1@rootly.com"
}
data "rootly_alert_urgency" "low" {
name = "Low"
}
resource "rootly_team" "sre" {
name = "SREs On-Call"
user_ids = [data.rootly_user.john.id, data.rootly_user.jane.id]
}
resource "rootly_schedule" "primary" {
name = "Primary On-Call Schedule"
owner_user_id = data.rootly_user.john.id
all_time_coverage = false
}
resource "rootly_schedule_rotation" "weekdays" {
schedule_id = rootly_schedule.primary.id
name = "weekdays"
active_all_week = false
active_days = [
"M",
"T",
"W",
"R",
"F",
]
active_time_type = "custom"
position = 1
schedule_rotationable_attributes = {
handoff_time = "10:00"
}
schedule_rotationable_type = "ScheduleDailyRotation"
time_zone = "America/Toronto"
}
# Define active days for the weekday rotation
# Monday
resource "rootly_schedule_rotation_active_day" "m1-weekday" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
day_name = "M"
active_time_attributes {
start_time = "10:00"
end_time = "18:00"
}
}
# Tuesday
resource "rootly_schedule_rotation_active_day" "t1-weekday" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
day_name = "T"
active_time_attributes {
start_time = "10:00"
end_time = "18:00"
}
}
# Wednesday
resource "rootly_schedule_rotation_active_day" "w1-weekday" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
day_name = "W"
active_time_attributes {
start_time = "10:00"
end_time = "18:00"
}
}
# Thursday
resource "rootly_schedule_rotation_active_day" "th1-weekday" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
day_name = "R"
active_time_attributes {
start_time = "10:00"
end_time = "18:00"
}
}
# Friday
resource "rootly_schedule_rotation_active_day" "f1-weekday" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
day_name = "F"
active_time_attributes {
start_time = "10:00"
end_time = "18:00"
}
}
resource "rootly_schedule_rotation_user" "john" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
position = 1
user_id = data.rootly_user.john.id
}
resource "rootly_schedule_rotation_user" "jane" {
schedule_rotation_id = rootly_schedule_rotation.weekdays.id
position = 2
user_id = data.rootly_user.jane.id
}
resource "rootly_escalation_policy" "primary" {
name = "Primary"
group_ids = [rootly_team.sre.id]
}
resource "rootly_escalation_path" "default" {
name = "Default"
default = true
escalation_policy_id = rootly_escalation_policy.primary.id
}
resource "rootly_escalation_path" "ignore" {
name = "Ignore"
default = false
escalation_policy_id = rootly_escalation_policy.primary.id
rules {
rule_type = "alert_urgency"
urgency_ids = [data.rootly_alert_urgency.low.id]
}
}
resource "rootly_escalation_level" "first" {
escalation_policy_path_id = rootly_escalation_path.default.id
escalation_policy_id = rootly_escalation_policy.primary.id
position = 1
notification_target_params {
team_members = "all"
type = "slack_channel"
id = "C06D4QHLAUE"
}
notification_target_params {
type = "schedule"
id = rootly_schedule.primary.id
team_members = "all"
}
}
# cycle-based round-robin everyone on the schedule
resource "rootly_escalation_level" "second" {
escalation_policy_path_id = rootly_escalation_path.default.id
escalation_policy_id = rootly_escalation_policy.primary.id
position = 2
delay = 5
paging_strategy_configuration_strategy = "cycle"
paging_strategy_configuration_schedule_strategy = "everyone"
notification_target_params {
type = "schedule"
id = rootly_schedule.primary.id
team_members = "all"
}
}
Create EscalationLevel Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new EscalationLevel(name: string, args: EscalationLevelArgs, opts?: CustomResourceOptions);@overload
def EscalationLevel(resource_name: str,
args: EscalationLevelArgs,
opts: Optional[ResourceOptions] = None)
@overload
def EscalationLevel(resource_name: str,
opts: Optional[ResourceOptions] = None,
notification_target_params: Optional[Sequence[EscalationLevelNotificationTargetParamArgs]] = None,
position: Optional[int] = None,
delay: Optional[int] = None,
escalation_policy_id: Optional[str] = None,
escalation_policy_path_id: Optional[str] = None,
paging_strategy_configuration_schedule_strategy: Optional[str] = None,
paging_strategy_configuration_strategy: Optional[str] = None)func NewEscalationLevel(ctx *Context, name string, args EscalationLevelArgs, opts ...ResourceOption) (*EscalationLevel, error)public EscalationLevel(string name, EscalationLevelArgs args, CustomResourceOptions? opts = null)
public EscalationLevel(String name, EscalationLevelArgs args)
public EscalationLevel(String name, EscalationLevelArgs args, CustomResourceOptions options)
type: rootly:EscalationLevel
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args EscalationLevelArgs
- 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 EscalationLevelArgs
- 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 EscalationLevelArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args EscalationLevelArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args EscalationLevelArgs
- 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 escalationLevelResource = new Rootly.EscalationLevel("escalationLevelResource", new()
{
NotificationTargetParams = new[]
{
new Rootly.Inputs.EscalationLevelNotificationTargetParamArgs
{
Id = "string",
TeamMembers = "string",
Type = "string",
},
},
Position = 0,
Delay = 0,
EscalationPolicyId = "string",
EscalationPolicyPathId = "string",
PagingStrategyConfigurationScheduleStrategy = "string",
PagingStrategyConfigurationStrategy = "string",
});
example, err := rootly.NewEscalationLevel(ctx, "escalationLevelResource", &rootly.EscalationLevelArgs{
NotificationTargetParams: rootly.EscalationLevelNotificationTargetParamArray{
&rootly.EscalationLevelNotificationTargetParamArgs{
Id: pulumi.String("string"),
TeamMembers: pulumi.String("string"),
Type: pulumi.String("string"),
},
},
Position: pulumi.Int(0),
Delay: pulumi.Int(0),
EscalationPolicyId: pulumi.String("string"),
EscalationPolicyPathId: pulumi.String("string"),
PagingStrategyConfigurationScheduleStrategy: pulumi.String("string"),
PagingStrategyConfigurationStrategy: pulumi.String("string"),
})
var escalationLevelResource = new EscalationLevel("escalationLevelResource", EscalationLevelArgs.builder()
.notificationTargetParams(EscalationLevelNotificationTargetParamArgs.builder()
.id("string")
.teamMembers("string")
.type("string")
.build())
.position(0)
.delay(0)
.escalationPolicyId("string")
.escalationPolicyPathId("string")
.pagingStrategyConfigurationScheduleStrategy("string")
.pagingStrategyConfigurationStrategy("string")
.build());
escalation_level_resource = rootly.EscalationLevel("escalationLevelResource",
notification_target_params=[{
"id": "string",
"team_members": "string",
"type": "string",
}],
position=0,
delay=0,
escalation_policy_id="string",
escalation_policy_path_id="string",
paging_strategy_configuration_schedule_strategy="string",
paging_strategy_configuration_strategy="string")
const escalationLevelResource = new rootly.EscalationLevel("escalationLevelResource", {
notificationTargetParams: [{
id: "string",
teamMembers: "string",
type: "string",
}],
position: 0,
delay: 0,
escalationPolicyId: "string",
escalationPolicyPathId: "string",
pagingStrategyConfigurationScheduleStrategy: "string",
pagingStrategyConfigurationStrategy: "string",
});
type: rootly:EscalationLevel
properties:
delay: 0
escalationPolicyId: string
escalationPolicyPathId: string
notificationTargetParams:
- id: string
teamMembers: string
type: string
pagingStrategyConfigurationScheduleStrategy: string
pagingStrategyConfigurationStrategy: string
position: 0
EscalationLevel 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 EscalationLevel resource accepts the following input properties:
- Notification
Target List<EscalationParams Level Notification Target Param> - Escalation level's notification targets
- Position int
- Position of the escalation policy level
- Delay int
- Delay before notifying targets in the next Escalation Level.
- Escalation
Policy stringId - The ID of the escalation policy
- Escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- Paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - Paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert.
- Notification
Target []EscalationParams Level Notification Target Param Args - Escalation level's notification targets
- Position int
- Position of the escalation policy level
- Delay int
- Delay before notifying targets in the next Escalation Level.
- Escalation
Policy stringId - The ID of the escalation policy
- Escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- Paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - Paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert.
- notification
Target List<EscalationParams Level Notification Target Param> - Escalation level's notification targets
- position Integer
- Position of the escalation policy level
- delay Integer
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy StringId - The ID of the escalation policy
- escalation
Policy StringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- paging
Strategy StringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy StringConfiguration Strategy - Value must be one of
default,random,cycle,alert.
- notification
Target EscalationParams Level Notification Target Param[] - Escalation level's notification targets
- position number
- Position of the escalation policy level
- delay number
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy stringId - The ID of the escalation policy
- escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert.
- notification_
target_ Sequence[Escalationparams Level Notification Target Param Args] - Escalation level's notification targets
- position int
- Position of the escalation policy level
- delay int
- Delay before notifying targets in the next Escalation Level.
- escalation_
policy_ strid - The ID of the escalation policy
- escalation_
policy_ strpath_ id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- paging_
strategy_ strconfiguration_ schedule_ strategy - Value must be one of
onCallOnly,everyone. - paging_
strategy_ strconfiguration_ strategy - Value must be one of
default,random,cycle,alert.
- notification
Target List<Property Map>Params - Escalation level's notification targets
- position Number
- Position of the escalation policy level
- delay Number
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy StringId - The ID of the escalation policy
- escalation
Policy StringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- paging
Strategy StringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy StringConfiguration Strategy - Value must be one of
default,random,cycle,alert.
Outputs
All input properties are implicitly available as output properties. Additionally, the EscalationLevel resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing EscalationLevel Resource
Get an existing EscalationLevel 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?: EscalationLevelState, opts?: CustomResourceOptions): EscalationLevel@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
delay: Optional[int] = None,
escalation_policy_id: Optional[str] = None,
escalation_policy_path_id: Optional[str] = None,
notification_target_params: Optional[Sequence[EscalationLevelNotificationTargetParamArgs]] = None,
paging_strategy_configuration_schedule_strategy: Optional[str] = None,
paging_strategy_configuration_strategy: Optional[str] = None,
position: Optional[int] = None) -> EscalationLevelfunc GetEscalationLevel(ctx *Context, name string, id IDInput, state *EscalationLevelState, opts ...ResourceOption) (*EscalationLevel, error)public static EscalationLevel Get(string name, Input<string> id, EscalationLevelState? state, CustomResourceOptions? opts = null)public static EscalationLevel get(String name, Output<String> id, EscalationLevelState state, CustomResourceOptions options)resources: _: type: rootly:EscalationLevel get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Delay int
- Delay before notifying targets in the next Escalation Level.
- Escalation
Policy stringId - The ID of the escalation policy
- Escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- Notification
Target List<EscalationParams Level Notification Target Param> - Escalation level's notification targets
- Paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - Paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert. - Position int
- Position of the escalation policy level
- Delay int
- Delay before notifying targets in the next Escalation Level.
- Escalation
Policy stringId - The ID of the escalation policy
- Escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- Notification
Target []EscalationParams Level Notification Target Param Args - Escalation level's notification targets
- Paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - Paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert. - Position int
- Position of the escalation policy level
- delay Integer
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy StringId - The ID of the escalation policy
- escalation
Policy StringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- notification
Target List<EscalationParams Level Notification Target Param> - Escalation level's notification targets
- paging
Strategy StringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy StringConfiguration Strategy - Value must be one of
default,random,cycle,alert. - position Integer
- Position of the escalation policy level
- delay number
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy stringId - The ID of the escalation policy
- escalation
Policy stringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- notification
Target EscalationParams Level Notification Target Param[] - Escalation level's notification targets
- paging
Strategy stringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy stringConfiguration Strategy - Value must be one of
default,random,cycle,alert. - position number
- Position of the escalation policy level
- delay int
- Delay before notifying targets in the next Escalation Level.
- escalation_
policy_ strid - The ID of the escalation policy
- escalation_
policy_ strpath_ id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- notification_
target_ Sequence[Escalationparams Level Notification Target Param Args] - Escalation level's notification targets
- paging_
strategy_ strconfiguration_ schedule_ strategy - Value must be one of
onCallOnly,everyone. - paging_
strategy_ strconfiguration_ strategy - Value must be one of
default,random,cycle,alert. - position int
- Position of the escalation policy level
- delay Number
- Delay before notifying targets in the next Escalation Level.
- escalation
Policy StringId - The ID of the escalation policy
- escalation
Policy StringPath Id - The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path.
- notification
Target List<Property Map>Params - Escalation level's notification targets
- paging
Strategy StringConfiguration Schedule Strategy - Value must be one of
onCallOnly,everyone. - paging
Strategy StringConfiguration Strategy - Value must be one of
default,random,cycle,alert. - position Number
- Position of the escalation policy level
Supporting Types
EscalationLevelNotificationTargetParam, EscalationLevelNotificationTargetParamArgs
- Id string
- The ID of notification target
- Team
Members string - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - Type string
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
- Id string
- The ID of notification target
- Team
Members string - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - Type string
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
- id String
- The ID of notification target
- team
Members String - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - type String
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
- id string
- The ID of notification target
- team
Members string - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - type string
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
- id str
- The ID of notification target
- team_
members str - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - type str
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
- id String
- The ID of notification target
- team
Members String - For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP.. Value must be one of
all,admins,escalate. - type String
- The type of the notification target. Value must be one of
team,user,schedule,slackChannel,service.
Import
rootly.EscalationLevel can be imported using the import command.
$ pulumi import rootly:index/escalationLevel:EscalationLevel primary a816421c-6ceb-481a-87c4-585e47451f24
Or using an import block.
Locate the resource id in the web app, or retrieve it by listing resources through the API if it’s not visible in the web app.
HCL can be generated from the import block using the -generate-config-out flag.
pulumi preview -generate-config-out=generated.tf
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- rootly rootlyhq/pulumi-rootly
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
rootlyTerraform Provider.
published on Thursday, May 7, 2026 by rootlyhq
