Skip to content

Check levels before they are saved, such as a level being added in the dashboard.

POST
/escalation_policy/readiness
curl --request POST \
--url https://api.siteqwality.com/escalation_policy/readiness \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "levels": [ { "level_number": 1, "timeout_minutes": 1, "target_user_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "target_schedule_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] } ] }'
Media type application/json

Levels to check before they are saved, in order.

object
levels
required
Array<object>
object
level_number

Position to insert at, 1 to the level count plus one; later levels move down. Default: last.

integer | null format: int32
timeout_minutes
required
integer format: int32
target_user_ids
array | null
target_schedule_ids
array | null
Example generated
{
"levels": [
{
"level_number": 1,
"timeout_minutes": 1,
"target_user_ids": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"target_schedule_ids": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
]
}
]
}

Readiness of every level

Media type application/json

Whether every level of a policy reaches someone, per urgency.

object
policy_id

The saved policy, or null for levels checked before they are saved.

string | null format: uuid
ready
required

True when every level reaches someone before its timeout at both urgencies.

boolean
levels
required
Array<object>
object
level_id

Null for a level that is not saved yet.

string | null format: uuid
level_number
required
integer format: int32
timeout_minutes
required
integer format: int32
high
required

The best any target reaches for critical and major incidents.

string
Allowed values: reachable delayed fallback_email unreachable
low
required

The best any target reaches for minor incidents.

string
Allowed values: reachable delayed fallback_email unreachable
targets
required
Array<object>
object
kind
required
string
Allowed values: user schedule
user_id

The user paged: the target user, or whoever is on call now for a schedule.

string | null format: uuid
schedule_id
string | null format: uuid
name

The user’s name (or email), or the schedule’s name.

string | null
on_call_name

For a schedule, the on-call user’s name (or email).

string | null
problem

Why nobody can be paged at all: user_removed, schedule_removed or nobody_on_call.

string | null
high
required
object
status
required

How well a page at one urgency reaches a target, best first.

string
Allowed values: reachable delayed fallback_email unreachable
channels
required

The user’s rules for this urgency, in paging order.

Array<object>
object
rule_id
required
string format: uuid
contact_method_id
required
string format: uuid
type
required
string
Allowed values: email sms phone_call slack_dm mobile_push
delay_minutes
required
integer format: int32
verified
required
boolean
unreachable_reason

Why this channel cannot page, or null when it can: phone_call_not_delivered, channel_unknown, contact_method_invalid, contact_unverified, recipient_suppressed or sms_quota.

string | null
after_timeout
required

The rule waits as long as the level or longer, so it fires after the level moved on.

boolean
low
required
object
status
required

How well a page at one urgency reaches a target, best first.

string
Allowed values: reachable delayed fallback_email unreachable
channels
required

The user’s rules for this urgency, in paging order.

Array<object>
object
rule_id
required
string format: uuid
contact_method_id
required
string format: uuid
type
required
string
Allowed values: email sms phone_call slack_dm mobile_push
delay_minutes
required
integer format: int32
verified
required
boolean
unreachable_reason

Why this channel cannot page, or null when it can: phone_call_not_delivered, channel_unknown, contact_method_invalid, contact_unverified, recipient_suppressed or sms_quota.

string | null
after_timeout
required

The rule waits as long as the level or longer, so it fires after the level moved on.

boolean
warnings
required

Every problem found, in level order.

Array<object>
object
code
required

no_targets, nobody_reachable, target_removed, nobody_on_call, user_unreachable, fallback_only or delayed_past_timeout.

string
level_number
required
integer format: int32
urgency
One of:

Set when the warning is about one urgency.

string
Allowed values: high low
user_id
string | null format: uuid
schedule_id
string | null format: uuid
message
required

One sentence for the dashboard.

string
Example
{
"levels": [
{
"high": "reachable",
"low": "reachable",
"targets": [
{
"kind": "user",
"high": {
"status": "reachable",
"channels": [
{
"type": "email"
}
]
},
"low": {
"status": "reachable",
"channels": [
{
"type": "email"
}
]
}
}
]
}
],
"warnings": [
{
"urgency": "high"
}
]
}

Invalid request body, or a target user or schedule is not in this account

Missing or invalid authentication

Internal server error