diff --git a/DEVELOPING.md b/DEVELOPING.md index 909345e..7b2153d 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -33,6 +33,15 @@ openapi3.json openapi3.yaml ``` +``` +# If your core repository is one level up, this would be: +cp ../core/server/api/public/gen/http/openapi.json internal/apischema +cp ../core/server/api/public/gen/http/openapi.yaml internal/apischema +cp ../core/server/api/public/gen/http/openapi3-secret.json internal/apischema +cp ../core/server/api/public/gen/http/openapi3.json internal/apischema +cp ../core/server/api/public/gen/http/openapi3.yaml internal/apischema +``` + And then run `make internal/client/client.gen.go` ## Running tests diff --git a/docs/resources/escalation_path.md b/docs/resources/escalation_path.md index a8a76e1..ff9388c 100644 --- a/docs/resources/escalation_path.md +++ b/docs/resources/escalation_path.md @@ -147,6 +147,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--repeat)) @@ -210,6 +211,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat)) @@ -273,6 +275,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat)) @@ -335,6 +338,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--repeat)) @@ -378,6 +382,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat` @@ -399,6 +431,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--repeat)) @@ -442,6 +475,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.else_path.repeat` @@ -494,6 +555,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--then_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat.time_to_ack_weekday_interval_config_id` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.then_path.repeat` @@ -516,6 +605,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat)) @@ -578,6 +668,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--repeat)) @@ -621,6 +712,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat` @@ -642,6 +761,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--repeat)) @@ -685,6 +805,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.else_path.repeat` @@ -737,6 +885,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat.time_to_ack_weekday_interval_config_id` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat.else_path.repeat` @@ -789,6 +965,34 @@ Optional: + +### Nested Schema for `path.if_else.then_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--then_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.then_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.then_path.repeat` @@ -811,6 +1015,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat)) @@ -874,6 +1079,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat)) @@ -936,6 +1142,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--repeat)) @@ -979,6 +1186,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat` @@ -1000,6 +1235,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--repeat)) @@ -1043,6 +1279,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.else_path.repeat` @@ -1095,6 +1359,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--then_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat.time_to_ack_weekday_interval_config_id` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.then_path.repeat` @@ -1117,6 +1409,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `if_else` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--if_else)) - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat)) @@ -1179,6 +1472,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--repeat)) @@ -1222,6 +1516,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat` @@ -1243,6 +1565,7 @@ Optional: - `id` (String) Unique internal ID of the escalation path node - `level` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--level)) +- `notify_channel` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--notify_channel)) - `repeat` (Attributes) (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--repeat)) @@ -1286,6 +1609,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.else_path.repeat` @@ -1338,6 +1689,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat.time_to_ack_weekday_interval_config_id` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat.else_path.repeat` @@ -1390,6 +1769,34 @@ Optional: + +### Nested Schema for `path.if_else.else_path.repeat` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--if_else--else_path--repeat--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.if_else.else_path.repeat.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.if_else.else_path.repeat` @@ -1442,6 +1849,34 @@ Optional: + +### Nested Schema for `path.notify_channel` + +Required: + +- `targets` (Attributes List) The targets for this level (see [below for nested schema](#nestedatt--path--notify_channel--targets)) + +Optional: + +- `time_to_ack_interval_condition` (String) If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +- `time_to_ack_seconds` (Number) How long should we wait for this level to acknowledge before escalating? +- `time_to_ack_weekday_interval_config_id` (String) If the time to ack is relative to a time window, this identifies which window it is relative to + + +### Nested Schema for `path.notify_channel.targets` + +Required: + +- `id` (String) Uniquely identifies an entity of this type +- `type` (String) Controls what type of entity this target identifies, such as EscalationPolicy or User +- `urgency` (String) The urgency of this escalation path target + +Optional: + +- `schedule_mode` (String) Only set for schedule targets, and either currently_on_call, all_users or all_users_for_rota and specifies which users to fetch from the schedule + + + ### Nested Schema for `path.repeat` diff --git a/docs/resources/schedule.md b/docs/resources/schedule.md index 29dc792..53cbe8a 100644 --- a/docs/resources/schedule.md +++ b/docs/resources/schedule.md @@ -3,14 +3,12 @@ page_title: "incident_schedule Resource - terraform-provider-incident" subcategory: "" description: |- - Beta: View and manage schedules. Manage your full schedule of on-call rotations, including the users and rotation configuration. --- # incident_schedule (Resource) -Beta: View and manage schedules. Manage your full schedule of on-call rotations, including the users and rotation configuration. diff --git a/go.mod b/go.mod index fafcdaa..e4091ef 100644 --- a/go.mod +++ b/go.mod @@ -7,15 +7,14 @@ require ( github.com/davecgh/go-spew v1.1.1 github.com/deepmap/oapi-codegen v1.12.4 github.com/getkin/kin-openapi v0.114.0 - github.com/google/uuid v1.3.0 - github.com/hashicorp/go-cleanhttp v0.5.2 + github.com/google/uuid v1.5.0 github.com/hashicorp/go-retryablehttp v0.7.7 github.com/hashicorp/terraform-plugin-docs v0.14.1 github.com/hashicorp/terraform-plugin-framework v1.2.0 github.com/hashicorp/terraform-plugin-go v0.15.0 github.com/hashicorp/terraform-plugin-log v0.8.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.25.0 - github.com/motemen/go-loghttp v0.0.0-20170804080138-974ac5ceac27 + github.com/oapi-codegen/runtime v1.1.1 github.com/oklog/ulid/v2 v2.1.0 github.com/pkg/errors v0.9.1 github.com/samber/lo v1.37.0 @@ -39,6 +38,7 @@ require ( github.com/google/go-cmp v0.5.9 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -57,8 +57,8 @@ require ( github.com/imdario/mergo v0.3.13 // indirect github.com/invopop/yaml v0.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/labstack/echo/v4 v4.9.1 // indirect - github.com/labstack/gommon v0.4.0 // indirect + github.com/labstack/echo/v4 v4.11.4 // indirect + github.com/labstack/gommon v0.4.2 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -69,7 +69,6 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/motemen/go-nuts v0.0.0-20220604134737-2658d0104f31 // indirect github.com/oklog/run v1.0.0 // indirect github.com/perimeterx/marshmallow v1.1.4 // indirect github.com/posener/complete v1.2.3 // indirect @@ -82,17 +81,17 @@ require ( github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/zclconf/go-cty v1.13.0 // indirect - golang.org/x/crypto v0.6.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.8.0 // indirect + golang.org/x/net v0.19.0 // indirect golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect google.golang.org/grpc v1.54.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index fdc0f31..02816db 100644 --- a/go.sum +++ b/go.sum @@ -1,38 +1,3 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -68,12 +33,6 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -82,10 +41,6 @@ github.com/deepmap/oapi-codegen v1.12.4 h1:pPmn6qI9MuOtCz82WY2Xaw46EQjgvxednXXrP github.com/deepmap/oapi-codegen v1.12.4/go.mod h1:3lgHGMu6myQ2vqbbTXH2H1o4eXFTGnFiDaOaKKl5yas= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= @@ -104,9 +59,6 @@ github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= github.com/go-git/go-git/v5 v5.4.2 h1:BXyZu9t0VkbiHtqrsvdq39UDhGJTl1h55VW6CSC4aY4= github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= @@ -114,65 +66,23 @@ github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrK github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219 h1:utua3L2IbQJmauC5IXdEA547bcoU5dozgQAfc8Onsg4= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= @@ -198,8 +108,6 @@ github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/C github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hc-install v0.5.0 h1:D9bl4KayIYKEeJ4vUDe9L5huqxZXczKaykSRcmQ0xY0= github.com/hashicorp/hc-install v0.5.0/go.mod h1:JyzMfbzfSBSjoDCRPna1vi/24BEDxFaCPfdHtM5SCdo= github.com/hashicorp/hcl/v2 v2.16.1 h1:BwuxEMD/tsYgbhIW7UuI3crjovf3MzuFWiVgiv57iHg= @@ -227,7 +135,6 @@ github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKe github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= @@ -243,12 +150,9 @@ github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZ github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -261,10 +165,10 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.9.1 h1:GliPYSpzGKlyOhqIbG8nmHBo3i1saKWFOgh41AN3b+Y= -github.com/labstack/echo/v4 v4.9.1/go.mod h1:Pop5HLc+xoc4qhTZ1ip6C0RtP7Z+4VzRLWZZFKqbbjo= -github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= -github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= +github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= @@ -273,7 +177,6 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -301,11 +204,9 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/motemen/go-loghttp v0.0.0-20170804080138-974ac5ceac27 h1:uAI3rnOT1OSSY4PUtI/M1orb3q0ewkovwd3wr8xSno4= -github.com/motemen/go-loghttp v0.0.0-20170804080138-974ac5ceac27/go.mod h1:6eu9CfGt5kfrMVgeu9MfB9PRUnpc47I+udLswiTszI8= -github.com/motemen/go-nuts v0.0.0-20220604134737-2658d0104f31 h1:lQ+0Zt2gm+w5+9iaBWKdJXC/gMrWjHhNbw9ts/9rSZ4= -github.com/motemen/go-nuts v0.0.0-20220604134737-2658d0104f31/go.mod h1:vkBO+XDNzovo+YLBpUod2SFvuWLObXlERnfj99RP3rU= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= +github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= @@ -321,13 +222,10 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU= github.com/samber/lo v1.37.0 h1:XjVcB8g6tgUp8rsPsJ2CvhClfImrpL04YpQHXeHPhRw= github.com/samber/lo v1.37.0/go.mod h1:9vaz2O4o8oOnK23pd2TrXufcbdbJIa3b6cstBWKpopA= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= @@ -355,15 +253,16 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= @@ -377,150 +276,52 @@ github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAh github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= github.com/zclconf/go-cty v1.13.0 h1:It5dfKTTZHe9aeppbNOda3mN7Ag7sg6QkBNm6TkyFa0= github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -528,8 +329,6 @@ golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -541,156 +340,39 @@ golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -704,13 +386,3 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/internal/apischema/openapi.json b/internal/apischema/openapi.json index 6ea6235..8fdd41a 100644 --- a/internal/apischema/openapi.json +++ b/internal/apischema/openapi.json @@ -1659,6 +1659,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -3120,6 +3121,48 @@ ] } }, + "/v2/schedule_overrides": { + "post": { + "tags": [ + "Schedules V2" + ], + "summary": "CreateOverride Schedules V2", + "description": "Create a new schedule override.", + "operationId": "Schedules V2#CreateOverride", + "parameters": [ + { + "name": "CreateOverrideRequestBody", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SchedulesV2CreateOverrideRequestBody", + "required": [ + "start_at", + "end_at", + "schedule_id", + "rotation_id", + "layer_id", + "user" + ] + } + } + ], + "responses": { + "201": { + "description": "Created response.", + "schema": { + "$ref": "#/definitions/SchedulesV2CreateOverrideResponseBody", + "required": [ + "override" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, "/v2/schedules": { "get": { "tags": [ @@ -5312,6 +5355,180 @@ ] } }, + "/x-audit-logs/postmortem_section.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionCreatedV1 Audit logs", + "description": "This entry is created whenever a postmortem template section is created", + "operationId": "Audit logs#PostmortemSectionCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemSectionCreatedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, + "/x-audit-logs/postmortem_section.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionDeletedV1 Audit logs", + "description": "This entry is created whenever a postmortem template section is deleted", + "operationId": "Audit logs#PostmortemSectionDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemSectionDeletedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, + "/x-audit-logs/postmortem_section.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionUpdatedV1 Audit logs", + "description": "This entry is created whenever a postmortem template section is updated", + "operationId": "Audit logs#PostmortemSectionUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemSectionUpdatedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, + "/x-audit-logs/postmortem_template.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateCreatedV1 Audit logs", + "description": "This entry is created whenever a postmortem template is created", + "operationId": "Audit logs#PostmortemTemplateCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemTemplateCreatedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, + "/x-audit-logs/postmortem_template.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateDeletedV1 Audit logs", + "description": "This entry is created whenever a postmortem template is deleted", + "operationId": "Audit logs#PostmortemTemplateDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemTemplateDeletedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, + "/x-audit-logs/postmortem_template.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateUpdatedV1 Audit logs", + "description": "This entry is created whenever a postmortem template is updated", + "operationId": "Audit logs#PostmortemTemplateUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "schema": { + "$ref": "#/definitions/AuditLogsPostmortemTemplateUpdatedV1ResponseBody", + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + } + } + }, + "schemes": [ + "https" + ] + } + }, "/x-audit-logs/private_incident.access_attempted.1": { "get": { "tags": [ @@ -7196,8 +7413,8 @@ "deduplication_key" ] }, - "AlertRouteAlertSource": { - "title": "AlertRouteAlertSource", + "AlertRouteAlertSourcePayloadV2": { + "title": "AlertRouteAlertSourcePayloadV2", "type": "object", "properties": { "alert_source_id": { @@ -7208,112 +7425,29 @@ "condition_groups": { "type": "array", "items": { - "$ref": "#/definitions/ConditionGroup" + "$ref": "#/definitions/ConditionGroupPayloadV2" }, "description": "What conditions should alerts from this source meet to be included in this alert route?", "example": [ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -7326,105 +7460,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -8397,6 +8448,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -8409,7 +8461,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/definitions/AlertRouteAlertSource" + "$ref": "#/definitions/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -8419,105 +8471,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -8781,105 +8750,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -9806,7 +9692,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/definitions/AlertRouteAlertSource" + "$ref": "#/definitions/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -9816,105 +9702,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -10178,105 +9981,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -10569,6 +10289,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -11056,10 +10777,13 @@ "internal_status_page", "nudge", "policy", + "post_incident_task", + "postmortem_template", + "postmortem_template_section", "private_incident_membership", "rbac_role", - "schedule", "scim_group", + "schedule", "severity", "status_page", "status_page_sub_page", @@ -15709,14 +15433,14 @@ "context" ] }, - "AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody": { - "title": "AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody", + "AuditLogsPostmortemSectionCreatedV1ResponseBody": { + "title": "AuditLogsPostmortemSectionCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "private_incident.access_attempted" + "example": "postmortem_section.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -15724,8 +15448,81 @@ "context": { "$ref": "#/definitions/AuditLogEntryContextV2" }, - "metadata": { - "$ref": "#/definitions/AuditLogPrivateIncidentAccessAttemptedMetadataV2" + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "postmortem_section.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsPostmortemSectionDeletedV1ResponseBody": { + "title": "AuditLogsPostmortemSectionDeletedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "postmortem_section.deleted" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" }, "occurred_at": { "type": "string", @@ -15742,8 +15539,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ] }, @@ -15755,7 +15552,7 @@ } }, "example": { - "action": "private_incident.access_attempted", + "action": "postmortem_section.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -15769,15 +15566,88 @@ "location": "1.2.3.4", "user_agent": "Chrome/91.0.4472.114" }, - "metadata": { - "outcome": "granted" + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsPostmortemSectionUpdatedV1ResponseBody": { + "title": "AuditLogsPostmortemSectionUpdatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "postmortem_section.updated" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "postmortem_section.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" }, "occurred_at": "2021-08-17T13:28:57.801578Z", "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ], "version": 1 @@ -15788,18 +15658,17 @@ "version", "actor", "targets", - "context", - "metadata" + "context" ] }, - "AuditLogsPrivateIncidentAccessRequestedV1ResponseBody": { - "title": "AuditLogsPrivateIncidentAccessRequestedV1ResponseBody", + "AuditLogsPostmortemTemplateCreatedV1ResponseBody": { + "title": "AuditLogsPostmortemTemplateCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "private_incident.access_requested" + "example": "postmortem_template.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -15822,8 +15691,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ] }, @@ -15835,7 +15704,7 @@ } }, "example": { - "action": "private_incident.access_requested", + "action": "postmortem_template.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -15853,8 +15722,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ], "version": 1 @@ -15868,14 +15737,14 @@ "context" ] }, - "AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody": { - "title": "AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody", + "AuditLogsPostmortemTemplateDeletedV1ResponseBody": { + "title": "AuditLogsPostmortemTemplateDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "private_incident_membership.granted" + "example": "postmortem_template.deleted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -15898,13 +15767,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Bob the builder", - "type": "user" - }, - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ] }, @@ -15916,7 +15780,7 @@ } }, "example": { - "action": "private_incident_membership.granted", + "action": "postmortem_template.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -15934,13 +15798,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Bob the builder", - "type": "user" - }, - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ], "version": 1 @@ -15954,14 +15813,14 @@ "context" ] }, - "AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody": { - "title": "AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody", + "AuditLogsPostmortemTemplateUpdatedV1ResponseBody": { + "title": "AuditLogsPostmortemTemplateUpdatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "private_incident_membership.revoked" + "example": "postmortem_template.updated" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -15984,13 +15843,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Bob the builder", - "type": "user" - }, - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ] }, @@ -16002,7 +15856,7 @@ } }, "example": { - "action": "private_incident_membership.revoked", + "action": "postmortem_template.updated", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16020,13 +15874,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Bob the builder", - "type": "user" - }, - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "#INC-123 The website is slow", - "type": "incident" + "name": "Schedule a debrief", + "type": "post_incident_task" } ], "version": 1 @@ -16040,14 +15889,14 @@ "context" ] }, - "AuditLogsRbacRoleCreatedV1ResponseBody": { - "title": "AuditLogsRbacRoleCreatedV1ResponseBody", + "AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody": { + "title": "AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "rbac_role.created" + "example": "private_incident.access_attempted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16055,6 +15904,9 @@ "context": { "$ref": "#/definitions/AuditLogEntryContextV2" }, + "metadata": { + "$ref": "#/definitions/AuditLogPrivateIncidentAccessAttemptedMetadataV2" + }, "occurred_at": { "type": "string", "description": "When the entry occurred", @@ -16070,8 +15922,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" + "name": "#INC-123 The website is slow", + "type": "incident" } ] }, @@ -16083,7 +15935,7 @@ } }, "example": { - "action": "rbac_role.created", + "action": "private_incident.access_attempted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16097,12 +15949,15 @@ "location": "1.2.3.4", "user_agent": "Chrome/91.0.4472.114" }, + "metadata": { + "outcome": "granted" + }, "occurred_at": "2021-08-17T13:28:57.801578Z", "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" + "name": "#INC-123 The website is slow", + "type": "incident" } ], "version": 1 @@ -16113,17 +15968,18 @@ "version", "actor", "targets", - "context" + "context", + "metadata" ] }, - "AuditLogsRbacRoleDeletedV1ResponseBody": { - "title": "AuditLogsRbacRoleDeletedV1ResponseBody", + "AuditLogsPrivateIncidentAccessRequestedV1ResponseBody": { + "title": "AuditLogsPrivateIncidentAccessRequestedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "rbac_role.deleted" + "example": "private_incident.access_requested" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16146,8 +16002,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" + "name": "#INC-123 The website is slow", + "type": "incident" } ] }, @@ -16159,7 +16015,7 @@ } }, "example": { - "action": "rbac_role.deleted", + "action": "private_incident.access_requested", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16177,8 +16033,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" + "name": "#INC-123 The website is slow", + "type": "incident" } ], "version": 1 @@ -16192,14 +16048,14 @@ "context" ] }, - "AuditLogsRbacRoleUpdatedV1ResponseBody": { - "title": "AuditLogsRbacRoleUpdatedV1ResponseBody", + "AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody": { + "title": "AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "rbac_role.updated" + "example": "private_incident_membership.granted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16222,8 +16078,13 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" + "name": "Bob the builder", + "type": "user" + }, + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "#INC-123 The website is slow", + "type": "incident" } ] }, @@ -16235,7 +16096,7 @@ } }, "example": { - "action": "rbac_role.updated", + "action": "private_incident_membership.granted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16253,84 +16114,13 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Engineering", - "type": "rbac_role" - } - ], - "version": 1 - }, - "required": [ - "action", - "occurred_at", - "version", - "actor", - "targets", - "context" - ] - }, - "AuditLogsScheduleCreatedV1ResponseBody": { - "title": "AuditLogsScheduleCreatedV1ResponseBody", - "type": "object", - "properties": { - "action": { - "type": "string", - "description": "The type of log entry that this is", - "example": "schedule.created" - }, - "actor": { - "$ref": "#/definitions/AuditLogActorV2" - }, - "context": { - "$ref": "#/definitions/AuditLogEntryContextV2" - }, - "occurred_at": { - "type": "string", - "description": "When the entry occurred", - "example": "2021-08-17T13:28:57.801578Z", - "format": "date-time" - }, - "targets": { - "type": "array", - "items": { - "$ref": "#/definitions/AuditLogTargetV2" - }, - "description": "The custom field that was created", - "example": [ - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" - } - ] - }, - "version": { - "type": "integer", - "description": "Which version the event is", - "example": 1, - "format": "int64" - } - }, - "example": { - "action": "schedule.created", - "actor": { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "metadata": { - "user_base_role_slug": "admin", - "user_custom_role_slugs": "engineering,security" + "name": "Bob the builder", + "type": "user" }, - "name": "John Doe", - "type": "user" - }, - "context": { - "location": "1.2.3.4", - "user_agent": "Chrome/91.0.4472.114" - }, - "occurred_at": "2021-08-17T13:28:57.801578Z", - "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" + "name": "#INC-123 The website is slow", + "type": "incident" } ], "version": 1 @@ -16344,14 +16134,14 @@ "context" ] }, - "AuditLogsScheduleDeletedV1ResponseBody": { - "title": "AuditLogsScheduleDeletedV1ResponseBody", + "AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody": { + "title": "AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "schedule.deleted" + "example": "private_incident_membership.revoked" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16374,8 +16164,13 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" + "name": "Bob the builder", + "type": "user" + }, + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "#INC-123 The website is slow", + "type": "incident" } ] }, @@ -16387,7 +16182,7 @@ } }, "example": { - "action": "schedule.deleted", + "action": "private_incident_membership.revoked", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16405,8 +16200,13 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" + "name": "Bob the builder", + "type": "user" + }, + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "#INC-123 The website is slow", + "type": "incident" } ], "version": 1 @@ -16420,14 +16220,14 @@ "context" ] }, - "AuditLogsScheduleUpdatedV1ResponseBody": { - "title": "AuditLogsScheduleUpdatedV1ResponseBody", + "AuditLogsRbacRoleCreatedV1ResponseBody": { + "title": "AuditLogsRbacRoleCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "schedule.updated" + "example": "rbac_role.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16450,8 +16250,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" + "name": "Engineering", + "type": "rbac_role" } ] }, @@ -16463,7 +16263,7 @@ } }, "example": { - "action": "schedule.updated", + "action": "rbac_role.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16481,8 +16281,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "On-call", - "type": "schedule" + "name": "Engineering", + "type": "rbac_role" } ], "version": 1 @@ -16496,14 +16296,14 @@ "context" ] }, - "AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody": { - "title": "AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody", + "AuditLogsRbacRoleDeletedV1ResponseBody": { + "title": "AuditLogsRbacRoleDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "scim_group.role_mappings_updated" + "example": "rbac_role.deleted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16511,9 +16311,6 @@ "context": { "$ref": "#/definitions/AuditLogEntryContextV2" }, - "metadata": { - "$ref": "#/definitions/AuditLogUserSCIMGroupMappingChangedMetadataV2" - }, "occurred_at": { "type": "string", "description": "When the entry occurred", @@ -16529,8 +16326,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Security", - "type": "scim_group" + "name": "Engineering", + "type": "rbac_role" } ] }, @@ -16542,7 +16339,7 @@ } }, "example": { - "action": "scim_group.role_mappings_updated", + "action": "rbac_role.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16556,18 +16353,12 @@ "location": "1.2.3.4", "user_agent": "Chrome/91.0.4472.114" }, - "metadata": { - "after_base_role_slug": "owner", - "after_custom_role_slugs": "engineering,data", - "before_base_role_slug": "admin", - "before_custom_role_slugs": "engineering,security" - }, "occurred_at": "2021-08-17T13:28:57.801578Z", "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Security", - "type": "scim_group" + "name": "Engineering", + "type": "rbac_role" } ], "version": 1 @@ -16578,18 +16369,17 @@ "version", "actor", "targets", - "context", - "metadata" + "context" ] }, - "AuditLogsSeverityCreatedV1ResponseBody": { - "title": "AuditLogsSeverityCreatedV1ResponseBody", + "AuditLogsRbacRoleUpdatedV1ResponseBody": { + "title": "AuditLogsRbacRoleUpdatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "severity.created" + "example": "rbac_role.updated" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16612,8 +16402,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "Engineering", + "type": "rbac_role" } ] }, @@ -16625,7 +16415,7 @@ } }, "example": { - "action": "severity.created", + "action": "rbac_role.updated", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16643,8 +16433,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "Engineering", + "type": "rbac_role" } ], "version": 1 @@ -16658,14 +16448,14 @@ "context" ] }, - "AuditLogsSeverityDeletedV1ResponseBody": { - "title": "AuditLogsSeverityDeletedV1ResponseBody", + "AuditLogsScheduleCreatedV1ResponseBody": { + "title": "AuditLogsScheduleCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "severity.deleted" + "example": "schedule.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16688,8 +16478,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "On-call", + "type": "schedule" } ] }, @@ -16701,7 +16491,7 @@ } }, "example": { - "action": "severity.deleted", + "action": "schedule.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16719,8 +16509,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "On-call", + "type": "schedule" } ], "version": 1 @@ -16734,14 +16524,14 @@ "context" ] }, - "AuditLogsSeverityUpdatedV1ResponseBody": { - "title": "AuditLogsSeverityUpdatedV1ResponseBody", + "AuditLogsScheduleDeletedV1ResponseBody": { + "title": "AuditLogsScheduleDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "severity.updated" + "example": "schedule.deleted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16764,8 +16554,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "On-call", + "type": "schedule" } ] }, @@ -16777,7 +16567,7 @@ } }, "example": { - "action": "severity.updated", + "action": "schedule.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16795,8 +16585,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Minor", - "type": "severity" + "name": "On-call", + "type": "schedule" } ], "version": 1 @@ -16810,14 +16600,14 @@ "context" ] }, - "AuditLogsStatusPageCreatedV1ResponseBody": { - "title": "AuditLogsStatusPageCreatedV1ResponseBody", + "AuditLogsScheduleUpdatedV1ResponseBody": { + "title": "AuditLogsScheduleUpdatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page.created" + "example": "schedule.updated" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16840,8 +16630,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" + "name": "On-call", + "type": "schedule" } ] }, @@ -16853,7 +16643,7 @@ } }, "example": { - "action": "status_page.created", + "action": "schedule.updated", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -16871,8 +16661,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" + "name": "On-call", + "type": "schedule" } ], "version": 1 @@ -16886,14 +16676,14 @@ "context" ] }, - "AuditLogsStatusPageDeletedV1ResponseBody": { - "title": "AuditLogsStatusPageDeletedV1ResponseBody", + "AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody": { + "title": "AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page.deleted" + "example": "scim_group.role_mappings_updated" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -16901,81 +16691,8 @@ "context": { "$ref": "#/definitions/AuditLogEntryContextV2" }, - "occurred_at": { - "type": "string", - "description": "When the entry occurred", - "example": "2021-08-17T13:28:57.801578Z", - "format": "date-time" - }, - "targets": { - "type": "array", - "items": { - "$ref": "#/definitions/AuditLogTargetV2" - }, - "description": "The custom field that was created", - "example": [ - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" - } - ] - }, - "version": { - "type": "integer", - "description": "Which version the event is", - "example": 1, - "format": "int64" - } - }, - "example": { - "action": "status_page.deleted", - "actor": { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "metadata": { - "user_base_role_slug": "admin", - "user_custom_role_slugs": "engineering,security" - }, - "name": "John Doe", - "type": "user" - }, - "context": { - "location": "1.2.3.4", - "user_agent": "Chrome/91.0.4472.114" - }, - "occurred_at": "2021-08-17T13:28:57.801578Z", - "targets": [ - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" - } - ], - "version": 1 - }, - "required": [ - "action", - "occurred_at", - "version", - "actor", - "targets", - "context" - ] - }, - "AuditLogsStatusPageSubPageCreatedV1ResponseBody": { - "title": "AuditLogsStatusPageSubPageCreatedV1ResponseBody", - "type": "object", - "properties": { - "action": { - "type": "string", - "description": "The type of log entry that this is", - "example": "status_page_sub_page.created" - }, - "actor": { - "$ref": "#/definitions/AuditLogActorV2" - }, - "context": { - "$ref": "#/definitions/AuditLogEntryContextV2" + "metadata": { + "$ref": "#/definitions/AuditLogUserSCIMGroupMappingChangedMetadataV2" }, "occurred_at": { "type": "string", @@ -16992,8 +16709,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Security", + "type": "scim_group" } ] }, @@ -17005,7 +16722,7 @@ } }, "example": { - "action": "status_page_sub_page.created", + "action": "scim_group.role_mappings_updated", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17019,12 +16736,18 @@ "location": "1.2.3.4", "user_agent": "Chrome/91.0.4472.114" }, + "metadata": { + "after_base_role_slug": "owner", + "after_custom_role_slugs": "engineering,data", + "before_base_role_slug": "admin", + "before_custom_role_slugs": "engineering,security" + }, "occurred_at": "2021-08-17T13:28:57.801578Z", "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Security", + "type": "scim_group" } ], "version": 1 @@ -17035,17 +16758,18 @@ "version", "actor", "targets", - "context" + "context", + "metadata" ] }, - "AuditLogsStatusPageSubPageDeletedV1ResponseBody": { - "title": "AuditLogsStatusPageSubPageDeletedV1ResponseBody", + "AuditLogsSeverityCreatedV1ResponseBody": { + "title": "AuditLogsSeverityCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page_sub_page.deleted" + "example": "severity.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17068,8 +16792,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Minor", + "type": "severity" } ] }, @@ -17081,7 +16805,7 @@ } }, "example": { - "action": "status_page_sub_page.deleted", + "action": "severity.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17099,8 +16823,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Minor", + "type": "severity" } ], "version": 1 @@ -17114,14 +16838,14 @@ "context" ] }, - "AuditLogsStatusPageSubPageUpdatedV1ResponseBody": { - "title": "AuditLogsStatusPageSubPageUpdatedV1ResponseBody", + "AuditLogsSeverityDeletedV1ResponseBody": { + "title": "AuditLogsSeverityDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page_sub_page.updated" + "example": "severity.deleted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17144,8 +16868,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Minor", + "type": "severity" } ] }, @@ -17157,7 +16881,7 @@ } }, "example": { - "action": "status_page_sub_page.updated", + "action": "severity.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17175,8 +16899,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Superpayments France", - "type": "status_page_sub_page" + "name": "Minor", + "type": "severity" } ], "version": 1 @@ -17190,14 +16914,14 @@ "context" ] }, - "AuditLogsStatusPageTemplateCreatedV1ResponseBody": { - "title": "AuditLogsStatusPageTemplateCreatedV1ResponseBody", + "AuditLogsSeverityUpdatedV1ResponseBody": { + "title": "AuditLogsSeverityUpdatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page_template.created" + "example": "severity.updated" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17220,8 +16944,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Minor", + "type": "severity" } ] }, @@ -17233,7 +16957,7 @@ } }, "example": { - "action": "status_page_template.created", + "action": "severity.updated", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17251,8 +16975,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Minor", + "type": "severity" } ], "version": 1 @@ -17266,14 +16990,14 @@ "context" ] }, - "AuditLogsStatusPageTemplateDeletedV1ResponseBody": { - "title": "AuditLogsStatusPageTemplateDeletedV1ResponseBody", + "AuditLogsStatusPageCreatedV1ResponseBody": { + "title": "AuditLogsStatusPageCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page_template.deleted" + "example": "status_page.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17296,8 +17020,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Public Page", + "type": "status_page" } ] }, @@ -17309,7 +17033,7 @@ } }, "example": { - "action": "status_page_template.deleted", + "action": "status_page.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17327,8 +17051,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Public Page", + "type": "status_page" } ], "version": 1 @@ -17342,14 +17066,14 @@ "context" ] }, - "AuditLogsStatusPageTemplateUpdatedV1ResponseBody": { - "title": "AuditLogsStatusPageTemplateUpdatedV1ResponseBody", + "AuditLogsStatusPageDeletedV1ResponseBody": { + "title": "AuditLogsStatusPageDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page_template.updated" + "example": "status_page.deleted" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17372,8 +17096,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Public Page", + "type": "status_page" } ] }, @@ -17385,7 +17109,7 @@ } }, "example": { - "action": "status_page_template.updated", + "action": "status_page.deleted", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17403,8 +17127,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Investigating", - "type": "status_page_template" + "name": "Public Page", + "type": "status_page" } ], "version": 1 @@ -17418,14 +17142,14 @@ "context" ] }, - "AuditLogsStatusPageUpdatedV1ResponseBody": { - "title": "AuditLogsStatusPageUpdatedV1ResponseBody", + "AuditLogsStatusPageSubPageCreatedV1ResponseBody": { + "title": "AuditLogsStatusPageSubPageCreatedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "status_page.updated" + "example": "status_page_sub_page.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -17448,8 +17172,8 @@ "example": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" + "name": "Superpayments France", + "type": "status_page_sub_page" } ] }, @@ -17461,7 +17185,7 @@ } }, "example": { - "action": "status_page.updated", + "action": "status_page_sub_page.created", "actor": { "id": "01FCNDV6P870EA6S7TK1DSYDG0", "metadata": { @@ -17479,8 +17203,8 @@ "targets": [ { "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Public Page", - "type": "status_page" + "name": "Superpayments France", + "type": "status_page_sub_page" } ], "version": 1 @@ -17494,14 +17218,470 @@ "context" ] }, - "AuditLogsUserCreatedV1ResponseBody": { - "title": "AuditLogsUserCreatedV1ResponseBody", + "AuditLogsStatusPageSubPageDeletedV1ResponseBody": { + "title": "AuditLogsStatusPageSubPageDeletedV1ResponseBody", "type": "object", "properties": { "action": { "type": "string", "description": "The type of log entry that this is", - "example": "user.created" + "example": "status_page_sub_page.deleted" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Superpayments France", + "type": "status_page_sub_page" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page_sub_page.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Superpayments France", + "type": "status_page_sub_page" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsStatusPageSubPageUpdatedV1ResponseBody": { + "title": "AuditLogsStatusPageSubPageUpdatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "status_page_sub_page.updated" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Superpayments France", + "type": "status_page_sub_page" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page_sub_page.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Superpayments France", + "type": "status_page_sub_page" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsStatusPageTemplateCreatedV1ResponseBody": { + "title": "AuditLogsStatusPageTemplateCreatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "status_page_template.created" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page_template.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsStatusPageTemplateDeletedV1ResponseBody": { + "title": "AuditLogsStatusPageTemplateDeletedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "status_page_template.deleted" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page_template.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsStatusPageTemplateUpdatedV1ResponseBody": { + "title": "AuditLogsStatusPageTemplateUpdatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "status_page_template.updated" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page_template.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Investigating", + "type": "status_page_template" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsStatusPageUpdatedV1ResponseBody": { + "title": "AuditLogsStatusPageUpdatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "status_page.updated" + }, + "actor": { + "$ref": "#/definitions/AuditLogActorV2" + }, + "context": { + "$ref": "#/definitions/AuditLogEntryContextV2" + }, + "occurred_at": { + "type": "string", + "description": "When the entry occurred", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditLogTargetV2" + }, + "description": "The custom field that was created", + "example": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Public Page", + "type": "status_page" + } + ] + }, + "version": { + "type": "integer", + "description": "Which version the event is", + "example": 1, + "format": "int64" + } + }, + "example": { + "action": "status_page.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Public Page", + "type": "status_page" + } + ], + "version": 1 + }, + "required": [ + "action", + "occurred_at", + "version", + "actor", + "targets", + "context" + ] + }, + "AuditLogsUserCreatedV1ResponseBody": { + "title": "AuditLogsUserCreatedV1ResponseBody", + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The type of log entry that this is", + "example": "user.created" }, "actor": { "$ref": "#/definitions/AuditLogActorV2" @@ -18260,44 +18440,6 @@ "sort_key" ] }, - "CatalogEntryReference": { - "title": "CatalogEntryReference", - "type": "object", - "properties": { - "archived_at": { - "type": "string", - "description": "When this entry was archived", - "example": "2021-08-17T14:28:57.801578Z", - "format": "date-time" - }, - "catalog_entry_id": { - "type": "string", - "description": "ID of this catalog entry", - "example": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "catalog_entry_name": { - "type": "string", - "description": "The name of this entry", - "example": "Primary escalation" - }, - "catalog_type_id": { - "type": "string", - "description": "ID of this catalog type", - "example": "01FCNDV6P870EA6S7TK1DSYDG0" - } - }, - "example": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "required": [ - "catalog_type_id", - "catalog_entry_id", - "catalog_entry_name" - ] - }, "CatalogEntryReferenceV2": { "title": "CatalogEntryReferenceV2", "type": "object", @@ -20424,452 +20566,6 @@ "catalog_type" ] }, - "Condition": { - "title": "Condition", - "type": "object", - "properties": { - "operation": { - "$ref": "#/definitions/ConditionOperation" - }, - "param_bindings": { - "type": "array", - "items": { - "$ref": "#/definitions/EngineParamBinding" - }, - "description": "Bindings for the operation parameters", - "example": [ - { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - } - ] - }, - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/EngineParam" - }, - "description": "Type information for the operation parameters", - "example": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ] - }, - "subject": { - "$ref": "#/definitions/ConditionSubject" - } - }, - "example": { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, - "param_bindings": [ - { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - } - ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } - }, - "required": [ - "subject", - "operation", - "params", - "param_bindings" - ] - }, - "ConditionGroup": { - "title": "ConditionGroup", - "type": "object", - "properties": { - "conditions": { - "type": "array", - "items": { - "$ref": "#/definitions/Condition" - }, - "description": "All conditions in this list must be satisfied for the group to be satisfied", - "example": [ - { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, - "param_bindings": [ - { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - } - ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } - } - ] - } - }, - "example": { - "conditions": [ - { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, - "param_bindings": [ - { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - } - ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } - } - ] - }, - "required": [ - "conditions" - ] - }, "ConditionGroupPayloadV2": { "title": "ConditionGroupPayloadV2", "type": "object", @@ -21002,31 +20698,6 @@ "conditions" ] }, - "ConditionOperation": { - "title": "ConditionOperation", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Human readable label to be displayed for user to select", - "example": "Lawrence Jones" - }, - "value": { - "type": "string", - "description": "Unique identifier for this option", - "example": "01FCQSP07Z74QMMYPDDGQB9FTG" - } - }, - "example": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, - "required": [ - "label", - "value", - "sort_key" - ] - }, "ConditionOperationV2": { "title": "ConditionOperationV2", "type": "object", @@ -21112,116 +20783,6 @@ "param_bindings" ] }, - "ConditionSubject": { - "title": "ConditionSubject", - "type": "object", - "properties": { - "color": { - "type": "string", - "description": "String telling the UI what color to use for this field, if applicable", - "example": "yellow", - "enum": [ - "yellow", - "green", - "blue", - "violet", - "pink", - "cyan", - "orange" - ] - }, - "icon": { - "type": "string", - "description": "String telling the UI what icon to use for this field", - "example": "action", - "enum": [ - "action", - "alert", - "bolt", - "toggle-left", - "book", - "box", - "briefcase", - "browser", - "bulb", - "calendar", - "checkmark", - "clipboard", - "clock", - "close", - "cog", - "components", - "custom_field", - "database", - "delete", - "doc", - "email", - "escalate", - "escalation-path", - "exclamation", - "export", - "external-link", - "files", - "flag", - "folder", - "follow_ups", - "git-branch-new", - "globe", - "incident", - "incident_type", - "key", - "ms-teams", - "merge", - "message", - "money", - "mug", - "number-input", - "priority", - "private", - "text-align-left", - "search", - "server", - "severity", - "slack", - "slack_channel", - "slack_team", - "star", - "status", - "status-page", - "store", - "tag", - "test", - "text", - "timestamp", - "triage", - "user", - "users", - "warning" - ] - }, - "label": { - "type": "string", - "description": "Human readable identifier for the subject", - "example": "Incident Severity" - }, - "reference": { - "type": "string", - "description": "Reference into the scope for the value of the subject", - "example": "incident.severity" - } - }, - "example": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - }, - "required": [ - "label", - "icon", - "reference" - ] - }, "ConditionSubjectV2": { "title": "ConditionSubjectV2", "type": "object", @@ -23535,179 +23096,6 @@ "updated_at" ] }, - "EngineParam": { - "title": "EngineParam", - "type": "object", - "properties": { - "array": { - "type": "boolean", - "description": "Whether this parameter is an array", - "example": true - }, - "default_value": { - "$ref": "#/definitions/EngineParamBinding" - }, - "description": { - "type": "string", - "description": "A string describing the param", - "example": "What slack channel should we send the message to?" - }, - "infer_reference": { - "type": "boolean", - "description": "Whether this parameter should be inferred as a reference from the scope", - "example": true - }, - "label": { - "type": "string", - "description": "Human readable label for this parameter", - "example": "To date" - }, - "name": { - "type": "string", - "description": "The unique identifier for the parameter", - "example": "severity" - }, - "optional": { - "type": "boolean", - "description": "Whether this parameter is optional", - "example": true - }, - "type": { - "type": "string", - "description": "The type of the parameter", - "example": "IncidentSeverity" - } - }, - "example": { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - }, - "required": [ - "name", - "label", - "type", - "array", - "optional", - "infer_reference", - "description" - ] - }, - "EngineParamBinding": { - "title": "EngineParamBinding", - "type": "object", - "properties": { - "array_value": { - "type": "array", - "items": { - "$ref": "#/definitions/EngineParamBindingValue" - }, - "description": "If array_value is set, this helps render the values", - "example": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ] - }, - "value": { - "$ref": "#/definitions/EngineParamBindingValue" - } - }, - "example": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - } - }, "EngineParamBindingPayloadV2": { "title": "EngineParamBindingPayloadV2", "type": "object", @@ -23779,81 +23167,6 @@ } } }, - "EngineParamBindingValue": { - "title": "EngineParamBindingValue", - "type": "object", - "properties": { - "catalog_entry": { - "$ref": "#/definitions/CatalogEntryReference" - }, - "helptext": { - "type": "string", - "description": "Gives a description of the option to the user", - "example": "Collection of standalone automations like auto-closing incidents." - }, - "image_url": { - "type": "string", - "description": "If appropriate, URL to an image that can be displayed alongside the option", - "example": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg" - }, - "is_image_slack_icon": { - "type": "boolean", - "description": "If true, the image_url is a Slack icon and should be displayed as such", - "example": false - }, - "label": { - "type": "string", - "description": "Human readable label to be displayed for user to select", - "example": "Lawrence Jones" - }, - "literal": { - "type": "string", - "description": "If set, this is the literal value of the step parameter", - "example": "SEV123" - }, - "reference": { - "type": "string", - "description": "If set, this is the reference into the trigger scope that is the value of this parameter", - "example": "incident.severity" - }, - "sort_key": { - "type": "string", - "description": "Gives an indication of how to sort the options when displayed to the user", - "example": "000020" - }, - "unavailable": { - "type": "boolean", - "description": "Unavailable is true if we've failed to build the value for this binding", - "example": false - }, - "value": { - "type": "string", - "description": "Either the reference or the literal: this field is designed purely to make working with react-select easier", - "example": "abc123" - } - }, - "example": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - }, - "required": [ - "label", - "sort_key" - ] - }, "EngineParamBindingValuePayloadV2": { "title": "EngineParamBindingValuePayloadV2", "type": "object", @@ -24029,6 +23342,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24091,6 +23417,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24169,6 +23508,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24224,6 +23576,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24338,6 +23703,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24408,6 +23786,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24502,6 +23893,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24565,6 +23969,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24643,6 +24060,63 @@ "targets" ] }, + "EscalationPathNodeNotifyChannelV2": { + "title": "EscalationPathNodeNotifyChannelV2", + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/EscalationPathTargetV2" + }, + "description": "The targets for this level", + "example": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ] + }, + "time_to_ack_interval_condition": { + "type": "string", + "description": "If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive", + "example": "active", + "enum": [ + "active", + "inactive" + ] + }, + "time_to_ack_seconds": { + "type": "integer", + "description": "How long should we wait for this level to acknowledge before escalating?", + "example": 1800, + "format": "int64" + }, + "time_to_ack_weekday_interval_config_id": { + "type": "string", + "description": "If the time to ack is relative to a time window, this identifies which window it is relative to", + "example": "01FCNDV6P870EA6S7TK1DSYDG0" + } + }, + "example": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "required": [ + "targets" + ] + }, "EscalationPathNodePayloadV2": { "title": "EscalationPathNodePayloadV2", "type": "object", @@ -24658,6 +24132,9 @@ "level": { "$ref": "#/definitions/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/definitions/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/definitions/EscalationPathNodeRepeatV2" }, @@ -24720,6 +24197,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -24771,6 +24261,9 @@ "level": { "$ref": "#/definitions/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/definitions/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/definitions/EscalationPathNodeRepeatV2" }, @@ -24841,6 +24334,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25004,6 +24510,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25093,6 +24612,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25186,6 +24718,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25266,6 +24811,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25361,89 +24919,115 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, - "repeat": { - "repeat_times": 3, - "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "type": "if_else" - } - ], - "working_hours": [ - { - "id": "abc123", - "name": "abc123", - "timezone": "abc123", - "weekday_intervals": [ - { - "end_time": "17:00", - "start_time": "09:00", - "weekday": "abc123" - } - ] - } - ] - } - }, - "required": [ - "escalation_path" - ] - }, - "EscalationsV2ShowPathResponseBody": { - "title": "EscalationsV2ShowPathResponseBody", - "type": "object", - "properties": { - "escalation_path": { - "$ref": "#/definitions/EscalationPathV2" - } - }, - "example": { - "escalation_path": { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "name": "Urgent Support", - "path": [ - { - "id": "01FCNDV6P870EA6S7TK1DSYDG0", - "if_else": { - "conditions": [ - { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, - "param_bindings": [ - { - "array_value": [ - { - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity" - } - ], - "value": { - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity" - } - } - ], - "subject": { - "label": "Incident Severity", - "reference": "incident.severity" - } - } - ], - "else_path": [ - {} - ], - "then_path": [ - {} - ] - }, - "level": { - "round_robin_config": { - "enabled": false, - "rotate_after_seconds": 120 - }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "repeat": { + "repeat_times": 3, + "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "type": "if_else" + } + ], + "working_hours": [ + { + "id": "abc123", + "name": "abc123", + "timezone": "abc123", + "weekday_intervals": [ + { + "end_time": "17:00", + "start_time": "09:00", + "weekday": "abc123" + } + ] + } + ] + } + }, + "required": [ + "escalation_path" + ] + }, + "EscalationsV2ShowPathResponseBody": { + "title": "EscalationsV2ShowPathResponseBody", + "type": "object", + "properties": { + "escalation_path": { + "$ref": "#/definitions/EscalationPathV2" + } + }, + "example": { + "escalation_path": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Urgent Support", + "path": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "if_else": { + "conditions": [ + { + "operation": { + "label": "Lawrence Jones", + "value": "01FCQSP07Z74QMMYPDDGQB9FTG" + }, + "param_bindings": [ + { + "array_value": [ + { + "label": "Lawrence Jones", + "literal": "SEV123", + "reference": "incident.severity" + } + ], + "value": { + "label": "Lawrence Jones", + "literal": "SEV123", + "reference": "incident.severity" + } + } + ], + "subject": { + "label": "Incident Severity", + "reference": "incident.severity" + } + } + ], + "else_path": [ + {} + ], + "then_path": [ + {} + ] + }, + "level": { + "round_robin_config": { + "enabled": false, + "rotate_after_seconds": 120 + }, + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "notify_channel": { "targets": [ { "id": "lawrencejones", @@ -25546,6 +25130,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25626,6 +25223,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -25721,6 +25331,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -26428,6 +26051,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -26551,6 +26175,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -27681,6 +27306,7 @@ "incident_memberships_editor", "schedules_editor", "schedules_reader", + "schedule_overrides_editor", "workflows_editor", "private_workflows_editor", "on_call_editor" @@ -30398,6 +30024,11 @@ "external_issue_reference": { "$ref": "#/definitions/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -30621,6 +30252,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30728,6 +30360,11 @@ "incident": { "$ref": "#/definitions/IncidentV2" }, + "message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "new_status": { "$ref": "#/definitions/IncidentStatusV2" }, @@ -30806,6 +30443,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30884,6 +30522,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -31669,6 +31308,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -31892,6 +31532,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -32055,6 +31696,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -32211,6 +31853,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -32379,6 +32022,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -33414,6 +33058,86 @@ "name": "Layer 1" } }, + "ScheduleOverrideV2": { + "title": "ScheduleOverrideV2", + "type": "object", + "properties": { + "created_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "end_at": { + "type": "string", + "description": "End of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Unique internal ID of the schedule override", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "layer_id": { + "type": "string", + "description": "The layer on the rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "user": { + "$ref": "#/definitions/UserV2" + } + }, + "example": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + }, + "required": [ + "id", + "schedule_id", + "rotation_id", + "layer_id", + "user", + "start_at", + "end_at", + "created_at", + "updated_at", + "user_id" + ] + }, "ScheduleRotationCreatePayloadV2": { "title": "ScheduleRotationCreatePayloadV2", "type": "object", @@ -34131,6 +33855,93 @@ "updated_at" ] }, + "SchedulesV2CreateOverrideRequestBody": { + "title": "SchedulesV2CreateOverrideRequestBody", + "type": "object", + "properties": { + "end_at": { + "type": "string", + "description": "End time of the override", + "example": "2021-08-17T14:00:00.000000Z", + "format": "date-time" + }, + "layer_id": { + "type": "string", + "description": "The layer this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYNH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start time of the override", + "example": "2021-08-17T13:00:00.000000Z", + "format": "date-time" + }, + "user": { + "$ref": "#/definitions/UserReferencePayloadV2" + } + }, + "example": { + "end_at": "2021-08-17T14:00:00.000000Z", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:00:00.000000Z", + "user": { + "email": "bob@example.com", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "slack_user_id": "USER123" + } + }, + "required": [ + "start_at", + "end_at", + "schedule_id", + "rotation_id", + "layer_id", + "user" + ] + }, + "SchedulesV2CreateOverrideResponseBody": { + "title": "SchedulesV2CreateOverrideResponseBody", + "type": "object", + "properties": { + "override": { + "$ref": "#/definitions/ScheduleOverrideV2" + } + }, + "example": { + "override": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + } + }, + "required": [ + "override" + ] + }, "SchedulesV2CreateRequestBody": { "title": "SchedulesV2CreateRequestBody", "type": "object", @@ -36178,6 +35989,11 @@ "external_issue_reference": { "$ref": "#/definitions/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -36248,6 +36064,11 @@ "tutorial" ] }, + "most_recent_update_message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "name": { "type": "string", "description": "Explanation of the incident", @@ -36412,6 +36233,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -36467,6 +36289,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -36792,6 +36615,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -36847,6 +36671,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -36944,6 +36769,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37022,6 +36848,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -37111,6 +36938,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37166,6 +36994,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -37871,6 +37700,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37926,6 +37756,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -38061,6 +37892,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -38139,6 +37971,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -38266,6 +38099,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -38321,6 +38155,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -40746,7 +40581,7 @@ }, { "name": "Audit logs", - "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 5 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n" + "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 6 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n\n### Alerts\n\nThis is for changes triggered by a specific alert (e.g. from Datadog or Grafana).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"alert\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Staging: pod CPU high\",\n \"metadata\": {\n \"alert_source_id\": \"01HB0ZG3B0HM04RCXNSPV1EDYG\"\n }\n }\n```\n" }, { "name": "Alert Events V2", @@ -40822,7 +40657,7 @@ }, { "name": "Schedules V2", - "description": "Beta: \nView and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" + "description": "View and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" }, { "name": "Severities V1", diff --git a/internal/apischema/openapi.yaml b/internal/apischema/openapi.yaml index 2e69de0..b1a03e6 100644 --- a/internal/apischema/openapi.yaml +++ b/internal/apischema/openapi.yaml @@ -1282,6 +1282,7 @@ paths: - auto_decline_enabled - enabled - incident_enabled + - is_private - incident_condition_groups - alert_sources - auto_cancel_escalations @@ -2466,6 +2467,35 @@ paths: - schedule_entries schemes: - https + /v2/schedule_overrides: + post: + tags: + - Schedules V2 + summary: CreateOverride Schedules V2 + description: Create a new schedule override. + operationId: Schedules V2#CreateOverride + parameters: + - name: CreateOverrideRequestBody + in: body + required: true + schema: + $ref: '#/definitions/SchedulesV2CreateOverrideRequestBody' + required: + - start_at + - end_at + - schedule_id + - rotation_id + - layer_id + - user + responses: + "201": + description: Created response. + schema: + $ref: '#/definitions/SchedulesV2CreateOverrideResponseBody' + required: + - override + schemes: + - https /v2/schedules: get: tags: @@ -4039,6 +4069,132 @@ paths: - context schemes: - https + /x-audit-logs/postmortem_section.created.1: + get: + tags: + - Audit logs + summary: PostmortemSectionCreatedV1 Audit logs + description: This entry is created whenever a postmortem template section is created + operationId: Audit logs#PostmortemSectionCreatedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemSectionCreatedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https + /x-audit-logs/postmortem_section.deleted.1: + get: + tags: + - Audit logs + summary: PostmortemSectionDeletedV1 Audit logs + description: This entry is created whenever a postmortem template section is deleted + operationId: Audit logs#PostmortemSectionDeletedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemSectionDeletedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https + /x-audit-logs/postmortem_section.updated.1: + get: + tags: + - Audit logs + summary: PostmortemSectionUpdatedV1 Audit logs + description: This entry is created whenever a postmortem template section is updated + operationId: Audit logs#PostmortemSectionUpdatedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemSectionUpdatedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https + /x-audit-logs/postmortem_template.created.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateCreatedV1 Audit logs + description: This entry is created whenever a postmortem template is created + operationId: Audit logs#PostmortemTemplateCreatedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemTemplateCreatedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https + /x-audit-logs/postmortem_template.deleted.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateDeletedV1 Audit logs + description: This entry is created whenever a postmortem template is deleted + operationId: Audit logs#PostmortemTemplateDeletedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemTemplateDeletedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https + /x-audit-logs/postmortem_template.updated.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateUpdatedV1 Audit logs + description: This entry is created whenever a postmortem template is updated + operationId: Audit logs#PostmortemTemplateUpdatedV1 + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/AuditLogsPostmortemTemplateUpdatedV1ResponseBody' + required: + - action + - occurred_at + - version + - actor + - targets + - context + schemes: + - https /x-audit-logs/private_incident.access_attempted.1: get: tags: @@ -5413,8 +5569,8 @@ definitions: - status - message - deduplication_key - AlertRouteAlertSource: - title: AlertRouteAlertSource + AlertRouteAlertSourcePayloadV2: + title: AlertRouteAlertSourcePayloadV2 type: object properties: alert_source_id: @@ -5424,170 +5580,32 @@ definitions: condition_groups: type: array items: - $ref: '#/definitions/ConditionGroup' + $ref: '#/definitions/ConditionGroupPayloadV2' description: What conditions should alerts from this source meet to be included in this alert route? example: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity example: alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity required: - alert_source_id - condition_groups @@ -6191,6 +6209,7 @@ definitions: - auto_decline_enabled - enabled - incident_enabled + - is_private - incident_condition_groups - alert_sources - auto_cancel_escalations @@ -6201,90 +6220,21 @@ definitions: alert_sources: type: array items: - $ref: '#/definitions/AlertRouteAlertSource' + $ref: '#/definitions/AlertRouteAlertSourcePayloadV2' description: Which alert sources should this alert route match? example: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: type: boolean description: Should triage incidents be declined when alerts are resolved? @@ -6431,84 +6381,15 @@ definitions: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -7044,90 +6925,21 @@ definitions: alert_sources: type: array items: - $ref: '#/definitions/AlertRouteAlertSource' + $ref: '#/definitions/AlertRouteAlertSourcePayloadV2' description: Which alert sources should this alert route match? example: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: type: boolean description: Should triage incidents be declined when alerts are resolved? @@ -7274,84 +7086,15 @@ definitions: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -7510,6 +7253,7 @@ definitions: - auto_decline_enabled - enabled - incident_enabled + - is_private - incident_condition_groups - alert_sources - auto_cancel_escalations @@ -7836,10 +7580,13 @@ definitions: - internal_status_page - nudge - policy + - post_incident_task + - postmortem_template + - postmortem_template_section - private_incident_membership - rbac_role - - schedule - scim_group + - schedule - severity - status_page - status_page_sub_page @@ -11268,20 +11015,18 @@ definitions: - actor - targets - context - AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody: - title: AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody + AuditLogsPostmortemSectionCreatedV1ResponseBody: + title: AuditLogsPostmortemSectionCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: private_incident.access_attempted + example: postmortem_section.created actor: $ref: '#/definitions/AuditLogActorV2' context: $ref: '#/definitions/AuditLogEntryContextV2' - metadata: - $ref: '#/definitions/AuditLogPrivateIncidentAccessAttemptedMetadataV2' occurred_at: type: string description: When the entry occurred @@ -11294,15 +11039,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: private_incident.access_attempted + action: postmortem_section.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11313,13 +11058,11 @@ definitions: context: location: 1.2.3.4 user_agent: Chrome/91.0.4472.114 - metadata: - outcome: granted occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11328,15 +11071,14 @@ definitions: - actor - targets - context - - metadata - AuditLogsPrivateIncidentAccessRequestedV1ResponseBody: - title: AuditLogsPrivateIncidentAccessRequestedV1ResponseBody + AuditLogsPostmortemSectionDeletedV1ResponseBody: + title: AuditLogsPostmortemSectionDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: private_incident.access_requested + example: postmortem_section.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11353,15 +11095,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: private_incident.access_requested + action: postmortem_section.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11375,8 +11117,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11385,14 +11127,14 @@ definitions: - actor - targets - context - AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody: - title: AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody + AuditLogsPostmortemSectionUpdatedV1ResponseBody: + title: AuditLogsPostmortemSectionUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: private_incident_membership.granted + example: postmortem_section.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11409,18 +11151,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user - - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: private_incident_membership.granted + action: postmortem_section.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11434,11 +11173,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user - - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11447,14 +11183,14 @@ definitions: - actor - targets - context - AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody: - title: AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody + AuditLogsPostmortemTemplateCreatedV1ResponseBody: + title: AuditLogsPostmortemTemplateCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: private_incident_membership.revoked + example: postmortem_template.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11471,18 +11207,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user - - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: private_incident_membership.revoked + action: postmortem_template.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11496,11 +11229,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user - - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: '#INC-123 The website is slow' - type: incident + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11509,14 +11239,14 @@ definitions: - actor - targets - context - AuditLogsRbacRoleCreatedV1ResponseBody: - title: AuditLogsRbacRoleCreatedV1ResponseBody + AuditLogsPostmortemTemplateDeletedV1ResponseBody: + title: AuditLogsPostmortemTemplateDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: rbac_role.created + example: postmortem_template.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11533,15 +11263,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: rbac_role.created + action: postmortem_template.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11555,8 +11285,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11565,14 +11295,14 @@ definitions: - actor - targets - context - AuditLogsRbacRoleDeletedV1ResponseBody: - title: AuditLogsRbacRoleDeletedV1ResponseBody + AuditLogsPostmortemTemplateUpdatedV1ResponseBody: + title: AuditLogsPostmortemTemplateUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: rbac_role.deleted + example: postmortem_template.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11589,15 +11319,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: Schedule a debrief + type: post_incident_task version: type: integer description: Which version the event is example: 1 format: int64 example: - action: rbac_role.deleted + action: postmortem_template.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11611,8 +11341,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: Schedule a debrief + type: post_incident_task version: 1 required: - action @@ -11621,18 +11351,20 @@ definitions: - actor - targets - context - AuditLogsRbacRoleUpdatedV1ResponseBody: - title: AuditLogsRbacRoleUpdatedV1ResponseBody + AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody: + title: AuditLogsPrivateIncidentAccessAttemptedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: rbac_role.updated + example: private_incident.access_attempted actor: $ref: '#/definitions/AuditLogActorV2' context: $ref: '#/definitions/AuditLogEntryContextV2' + metadata: + $ref: '#/definitions/AuditLogPrivateIncidentAccessAttemptedMetadataV2' occurred_at: type: string description: When the entry occurred @@ -11645,15 +11377,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: '#INC-123 The website is slow' + type: incident version: type: integer description: Which version the event is example: 1 format: int64 example: - action: rbac_role.updated + action: private_incident.access_attempted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11664,11 +11396,13 @@ definitions: context: location: 1.2.3.4 user_agent: Chrome/91.0.4472.114 + metadata: + outcome: granted occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Engineering - type: rbac_role + name: '#INC-123 The website is slow' + type: incident version: 1 required: - action @@ -11677,14 +11411,15 @@ definitions: - actor - targets - context - AuditLogsScheduleCreatedV1ResponseBody: - title: AuditLogsScheduleCreatedV1ResponseBody + - metadata + AuditLogsPrivateIncidentAccessRequestedV1ResponseBody: + title: AuditLogsPrivateIncidentAccessRequestedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: schedule.created + example: private_incident.access_requested actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11701,15 +11436,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: '#INC-123 The website is slow' + type: incident version: type: integer description: Which version the event is example: 1 format: int64 example: - action: schedule.created + action: private_incident.access_requested actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11723,8 +11458,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: '#INC-123 The website is slow' + type: incident version: 1 required: - action @@ -11733,14 +11468,14 @@ definitions: - actor - targets - context - AuditLogsScheduleDeletedV1ResponseBody: - title: AuditLogsScheduleDeletedV1ResponseBody + AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody: + title: AuditLogsPrivateIncidentMembershipGrantedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: schedule.deleted + example: private_incident_membership.granted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11757,15 +11492,18 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: Bob the builder + type: user + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: '#INC-123 The website is slow' + type: incident version: type: integer description: Which version the event is example: 1 format: int64 example: - action: schedule.deleted + action: private_incident_membership.granted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11779,8 +11517,11 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: Bob the builder + type: user + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: '#INC-123 The website is slow' + type: incident version: 1 required: - action @@ -11789,14 +11530,14 @@ definitions: - actor - targets - context - AuditLogsScheduleUpdatedV1ResponseBody: - title: AuditLogsScheduleUpdatedV1ResponseBody + AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody: + title: AuditLogsPrivateIncidentMembershipRevokedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: schedule.updated + example: private_incident_membership.revoked actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11813,15 +11554,18 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: Bob the builder + type: user + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: '#INC-123 The website is slow' + type: incident version: type: integer description: Which version the event is example: 1 format: int64 example: - action: schedule.updated + action: private_incident_membership.revoked actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11835,8 +11579,11 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: On-call - type: schedule + name: Bob the builder + type: user + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: '#INC-123 The website is slow' + type: incident version: 1 required: - action @@ -11845,20 +11592,18 @@ definitions: - actor - targets - context - AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody: - title: AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody + AuditLogsRbacRoleCreatedV1ResponseBody: + title: AuditLogsRbacRoleCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: scim_group.role_mappings_updated + example: rbac_role.created actor: $ref: '#/definitions/AuditLogActorV2' context: $ref: '#/definitions/AuditLogEntryContextV2' - metadata: - $ref: '#/definitions/AuditLogUserSCIMGroupMappingChangedMetadataV2' occurred_at: type: string description: When the entry occurred @@ -11871,15 +11616,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Security - type: scim_group + name: Engineering + type: rbac_role version: type: integer description: Which version the event is example: 1 format: int64 example: - action: scim_group.role_mappings_updated + action: rbac_role.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11890,16 +11635,11 @@ definitions: context: location: 1.2.3.4 user_agent: Chrome/91.0.4472.114 - metadata: - after_base_role_slug: owner - after_custom_role_slugs: engineering,data - before_base_role_slug: admin - before_custom_role_slugs: engineering,security occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Security - type: scim_group + name: Engineering + type: rbac_role version: 1 required: - action @@ -11908,15 +11648,14 @@ definitions: - actor - targets - context - - metadata - AuditLogsSeverityCreatedV1ResponseBody: - title: AuditLogsSeverityCreatedV1ResponseBody + AuditLogsRbacRoleDeletedV1ResponseBody: + title: AuditLogsRbacRoleDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: severity.created + example: rbac_role.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11933,15 +11672,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity - version: + name: Engineering + type: rbac_role + version: type: integer description: Which version the event is example: 1 format: int64 example: - action: severity.created + action: rbac_role.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -11955,8 +11694,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity + name: Engineering + type: rbac_role version: 1 required: - action @@ -11965,14 +11704,14 @@ definitions: - actor - targets - context - AuditLogsSeverityDeletedV1ResponseBody: - title: AuditLogsSeverityDeletedV1ResponseBody + AuditLogsRbacRoleUpdatedV1ResponseBody: + title: AuditLogsRbacRoleUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: severity.deleted + example: rbac_role.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -11989,15 +11728,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity + name: Engineering + type: rbac_role version: type: integer description: Which version the event is example: 1 format: int64 example: - action: severity.deleted + action: rbac_role.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12011,8 +11750,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity + name: Engineering + type: rbac_role version: 1 required: - action @@ -12021,14 +11760,14 @@ definitions: - actor - targets - context - AuditLogsSeverityUpdatedV1ResponseBody: - title: AuditLogsSeverityUpdatedV1ResponseBody + AuditLogsScheduleCreatedV1ResponseBody: + title: AuditLogsScheduleCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: severity.updated + example: schedule.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12045,15 +11784,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity + name: On-call + type: schedule version: type: integer description: Which version the event is example: 1 format: int64 example: - action: severity.updated + action: schedule.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12067,8 +11806,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Minor - type: severity + name: On-call + type: schedule version: 1 required: - action @@ -12077,14 +11816,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageCreatedV1ResponseBody: - title: AuditLogsStatusPageCreatedV1ResponseBody + AuditLogsScheduleDeletedV1ResponseBody: + title: AuditLogsScheduleDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page.created + example: schedule.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12101,15 +11840,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: On-call + type: schedule version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page.created + action: schedule.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12123,8 +11862,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: On-call + type: schedule version: 1 required: - action @@ -12133,14 +11872,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageDeletedV1ResponseBody: - title: AuditLogsStatusPageDeletedV1ResponseBody + AuditLogsScheduleUpdatedV1ResponseBody: + title: AuditLogsScheduleUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page.deleted + example: schedule.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12157,15 +11896,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: On-call + type: schedule version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page.deleted + action: schedule.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12179,8 +11918,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: On-call + type: schedule version: 1 required: - action @@ -12189,18 +11928,20 @@ definitions: - actor - targets - context - AuditLogsStatusPageSubPageCreatedV1ResponseBody: - title: AuditLogsStatusPageSubPageCreatedV1ResponseBody + AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody: + title: AuditLogsScimGroupRoleMappingsUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_sub_page.created + example: scim_group.role_mappings_updated actor: $ref: '#/definitions/AuditLogActorV2' context: $ref: '#/definitions/AuditLogEntryContextV2' + metadata: + $ref: '#/definitions/AuditLogUserSCIMGroupMappingChangedMetadataV2' occurred_at: type: string description: When the entry occurred @@ -12213,15 +11954,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Security + type: scim_group version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_sub_page.created + action: scim_group.role_mappings_updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12232,11 +11973,16 @@ definitions: context: location: 1.2.3.4 user_agent: Chrome/91.0.4472.114 + metadata: + after_base_role_slug: owner + after_custom_role_slugs: engineering,data + before_base_role_slug: admin + before_custom_role_slugs: engineering,security occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Security + type: scim_group version: 1 required: - action @@ -12245,14 +11991,15 @@ definitions: - actor - targets - context - AuditLogsStatusPageSubPageDeletedV1ResponseBody: - title: AuditLogsStatusPageSubPageDeletedV1ResponseBody + - metadata + AuditLogsSeverityCreatedV1ResponseBody: + title: AuditLogsSeverityCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_sub_page.deleted + example: severity.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12269,15 +12016,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Minor + type: severity version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_sub_page.deleted + action: severity.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12291,8 +12038,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Minor + type: severity version: 1 required: - action @@ -12301,14 +12048,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageSubPageUpdatedV1ResponseBody: - title: AuditLogsStatusPageSubPageUpdatedV1ResponseBody + AuditLogsSeverityDeletedV1ResponseBody: + title: AuditLogsSeverityDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_sub_page.updated + example: severity.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12325,15 +12072,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Minor + type: severity version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_sub_page.updated + action: severity.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12347,8 +12094,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Superpayments France - type: status_page_sub_page + name: Minor + type: severity version: 1 required: - action @@ -12357,14 +12104,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageTemplateCreatedV1ResponseBody: - title: AuditLogsStatusPageTemplateCreatedV1ResponseBody + AuditLogsSeverityUpdatedV1ResponseBody: + title: AuditLogsSeverityUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_template.created + example: severity.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12381,15 +12128,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Minor + type: severity version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_template.created + action: severity.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12403,8 +12150,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Minor + type: severity version: 1 required: - action @@ -12413,14 +12160,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageTemplateDeletedV1ResponseBody: - title: AuditLogsStatusPageTemplateDeletedV1ResponseBody + AuditLogsStatusPageCreatedV1ResponseBody: + title: AuditLogsStatusPageCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_template.deleted + example: status_page.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12437,15 +12184,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Public Page + type: status_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_template.deleted + action: status_page.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12459,8 +12206,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Public Page + type: status_page version: 1 required: - action @@ -12469,14 +12216,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageTemplateUpdatedV1ResponseBody: - title: AuditLogsStatusPageTemplateUpdatedV1ResponseBody + AuditLogsStatusPageDeletedV1ResponseBody: + title: AuditLogsStatusPageDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page_template.updated + example: status_page.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12493,15 +12240,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Public Page + type: status_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page_template.updated + action: status_page.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12515,8 +12262,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Investigating - type: status_page_template + name: Public Page + type: status_page version: 1 required: - action @@ -12525,14 +12272,14 @@ definitions: - actor - targets - context - AuditLogsStatusPageUpdatedV1ResponseBody: - title: AuditLogsStatusPageUpdatedV1ResponseBody + AuditLogsStatusPageSubPageCreatedV1ResponseBody: + title: AuditLogsStatusPageSubPageCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: status_page.updated + example: status_page_sub_page.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12549,15 +12296,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: Superpayments France + type: status_page_sub_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: status_page.updated + action: status_page_sub_page.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12571,8 +12318,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Public Page - type: status_page + name: Superpayments France + type: status_page_sub_page version: 1 required: - action @@ -12581,14 +12328,14 @@ definitions: - actor - targets - context - AuditLogsUserCreatedV1ResponseBody: - title: AuditLogsUserCreatedV1ResponseBody + AuditLogsStatusPageSubPageDeletedV1ResponseBody: + title: AuditLogsStatusPageSubPageDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: user.created + example: status_page_sub_page.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12605,15 +12352,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Superpayments France + type: status_page_sub_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: user.created + action: status_page_sub_page.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12627,8 +12374,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Superpayments France + type: status_page_sub_page version: 1 required: - action @@ -12637,14 +12384,14 @@ definitions: - actor - targets - context - AuditLogsUserDeactivatedV1ResponseBody: - title: AuditLogsUserDeactivatedV1ResponseBody + AuditLogsStatusPageSubPageUpdatedV1ResponseBody: + title: AuditLogsStatusPageSubPageUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: user.deactivated + example: status_page_sub_page.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12661,15 +12408,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Superpayments France + type: status_page_sub_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: user.deactivated + action: status_page_sub_page.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12683,8 +12430,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Superpayments France + type: status_page_sub_page version: 1 required: - action @@ -12693,14 +12440,14 @@ definitions: - actor - targets - context - AuditLogsUserReinstatedV1ResponseBody: - title: AuditLogsUserReinstatedV1ResponseBody + AuditLogsStatusPageTemplateCreatedV1ResponseBody: + title: AuditLogsStatusPageTemplateCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: user.reinstated + example: status_page_template.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12717,15 +12464,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: type: integer description: Which version the event is example: 1 format: int64 example: - action: user.reinstated + action: status_page_template.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12739,8 +12486,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: 1 required: - action @@ -12749,20 +12496,18 @@ definitions: - actor - targets - context - AuditLogsUserRoleMembershipsUpdatedV1ResponseBody: - title: AuditLogsUserRoleMembershipsUpdatedV1ResponseBody + AuditLogsStatusPageTemplateDeletedV1ResponseBody: + title: AuditLogsStatusPageTemplateDeletedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: user.role_memberships_updated + example: status_page_template.deleted actor: $ref: '#/definitions/AuditLogActorV2' context: $ref: '#/definitions/AuditLogEntryContextV2' - metadata: - $ref: '#/definitions/AuditLogUserRoleMembershipChangedMetadataV2' occurred_at: type: string description: When the entry occurred @@ -12775,15 +12520,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: type: integer description: Which version the event is example: 1 format: int64 example: - action: user.role_memberships_updated + action: status_page_template.deleted actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12794,16 +12539,11 @@ definitions: context: location: 1.2.3.4 user_agent: Chrome/91.0.4472.114 - metadata: - after_base_role_slug: owner - after_custom_role_slugs: engineering,data - before_base_role_slug: admin - before_custom_role_slugs: engineering,security occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: 1 required: - action @@ -12812,15 +12552,14 @@ definitions: - actor - targets - context - - metadata - AuditLogsUserUpdatedV1ResponseBody: - title: AuditLogsUserUpdatedV1ResponseBody + AuditLogsStatusPageTemplateUpdatedV1ResponseBody: + title: AuditLogsStatusPageTemplateUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: user.updated + example: status_page_template.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12837,15 +12576,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: type: integer description: Which version the event is example: 1 format: int64 example: - action: user.updated + action: status_page_template.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12859,8 +12598,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Bob the builder - type: user + name: Investigating + type: status_page_template version: 1 required: - action @@ -12869,14 +12608,14 @@ definitions: - actor - targets - context - AuditLogsWorkflowCreatedV1ResponseBody: - title: AuditLogsWorkflowCreatedV1ResponseBody + AuditLogsStatusPageUpdatedV1ResponseBody: + title: AuditLogsStatusPageUpdatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: workflow.created + example: status_page.updated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12893,15 +12632,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Public Page + type: status_page version: type: integer description: Which version the event is example: 1 format: int64 example: - action: workflow.created + action: status_page.updated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12915,8 +12654,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Public Page + type: status_page version: 1 required: - action @@ -12925,14 +12664,14 @@ definitions: - actor - targets - context - AuditLogsWorkflowDeletedV1ResponseBody: - title: AuditLogsWorkflowDeletedV1ResponseBody + AuditLogsUserCreatedV1ResponseBody: + title: AuditLogsUserCreatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: workflow.deleted + example: user.created actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -12949,15 +12688,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Bob the builder + type: user version: type: integer description: Which version the event is example: 1 format: int64 example: - action: workflow.deleted + action: user.created actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -12971,8 +12710,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Bob the builder + type: user version: 1 required: - action @@ -12981,14 +12720,14 @@ definitions: - actor - targets - context - AuditLogsWorkflowUpdatedV1ResponseBody: - title: AuditLogsWorkflowUpdatedV1ResponseBody + AuditLogsUserDeactivatedV1ResponseBody: + title: AuditLogsUserDeactivatedV1ResponseBody type: object properties: action: type: string description: The type of log entry that this is - example: workflow.updated + example: user.deactivated actor: $ref: '#/definitions/AuditLogActorV2' context: @@ -13005,15 +12744,15 @@ definitions: description: The custom field that was created example: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Bob the builder + type: user version: type: integer description: Which version the event is example: 1 format: int64 example: - action: workflow.updated + action: user.deactivated actor: id: 01FCNDV6P870EA6S7TK1DSYDG0 metadata: @@ -13027,8 +12766,8 @@ definitions: occurred_at: "2021-08-17T13:28:57.801578Z" targets: - id: 01FCNDV6P870EA6S7TK1DSYDG0 - name: Nudge to write a postmortem - type: workflow + name: Bob the builder + type: user version: 1 required: - action @@ -13037,153 +12776,467 @@ definitions: - actor - targets - context - CatalogEntryEngineParamBindingV2: - title: CatalogEntryEngineParamBindingV2 + AuditLogsUserReinstatedV1ResponseBody: + title: AuditLogsUserReinstatedV1ResponseBody type: object properties: - array_value: + action: + type: string + description: The type of log entry that this is + example: user.reinstated + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + occurred_at: + type: string + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: type: array items: - $ref: '#/definitions/CatalogEntryEngineParamBindingValueV2' - description: If array_value is set, this helps render the values + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created example: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: abc123 - image_url: abc123 - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: abc123 - unavailable: false - value: abc123 - value: - $ref: '#/definitions/CatalogEntryEngineParamBindingValueV2' - example: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: abc123 - image_url: abc123 - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: abc123 - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: abc123 - image_url: abc123 - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: abc123 - unavailable: false - value: abc123 - CatalogEntryEngineParamBindingValueV2: - title: CatalogEntryEngineParamBindingValueV2 - type: object - properties: - catalog_entry: - $ref: '#/definitions/CatalogEntryReferenceV2' - helptext: - type: string - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: abc123 - image_url: - type: string - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: abc123 - is_image_slack_icon: - type: boolean - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: false - label: - type: string - description: Human readable label to be displayed for user to select - example: Lawrence Jones - literal: - type: string - description: If set, this is the literal value of the step parameter - example: SEV123 - reference: - type: string - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: incident.severity - sort_key: - type: string - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: abc123 - unavailable: - type: boolean - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: false - value: - type: string - description: This field is deprecated. It will not be present in any responses, and will be removed in a future version - example: abc123 + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: + type: integer + description: Which version the event is + example: 1 + format: int64 example: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: abc123 - image_url: abc123 - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: abc123 - unavailable: false - value: abc123 + action: user.reinstated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: 1 required: - - label - - sort_key - CatalogEntryReference: - title: CatalogEntryReference + - action + - occurred_at + - version + - actor + - targets + - context + AuditLogsUserRoleMembershipsUpdatedV1ResponseBody: + title: AuditLogsUserRoleMembershipsUpdatedV1ResponseBody type: object properties: - archived_at: - type: string - description: When this entry was archived - example: "2021-08-17T14:28:57.801578Z" - format: date-time - catalog_entry_id: + action: type: string - description: ID of this catalog entry - example: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: + description: The type of log entry that this is + example: user.role_memberships_updated + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + metadata: + $ref: '#/definitions/AuditLogUserRoleMembershipChangedMetadataV2' + occurred_at: type: string - description: The name of this entry - example: Primary escalation - catalog_type_id: + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: + type: array + items: + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created + example: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: + type: integer + description: Which version the event is + example: 1 + format: int64 + example: + action: user.role_memberships_updated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + metadata: + after_base_role_slug: owner + after_custom_role_slugs: engineering,data + before_base_role_slug: admin + before_custom_role_slugs: engineering,security + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: 1 + required: + - action + - occurred_at + - version + - actor + - targets + - context + - metadata + AuditLogsUserUpdatedV1ResponseBody: + title: AuditLogsUserUpdatedV1ResponseBody + type: object + properties: + action: type: string - description: ID of this catalog type - example: 01FCNDV6P870EA6S7TK1DSYDG0 + description: The type of log entry that this is + example: user.updated + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + occurred_at: + type: string + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: + type: array + items: + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created + example: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: + type: integer + description: Which version the event is + example: 1 + format: int64 example: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 + action: user.updated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Bob the builder + type: user + version: 1 + required: + - action + - occurred_at + - version + - actor + - targets + - context + AuditLogsWorkflowCreatedV1ResponseBody: + title: AuditLogsWorkflowCreatedV1ResponseBody + type: object + properties: + action: + type: string + description: The type of log entry that this is + example: workflow.created + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + occurred_at: + type: string + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: + type: array + items: + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created + example: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: + type: integer + description: Which version the event is + example: 1 + format: int64 + example: + action: workflow.created + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: 1 + required: + - action + - occurred_at + - version + - actor + - targets + - context + AuditLogsWorkflowDeletedV1ResponseBody: + title: AuditLogsWorkflowDeletedV1ResponseBody + type: object + properties: + action: + type: string + description: The type of log entry that this is + example: workflow.deleted + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + occurred_at: + type: string + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: + type: array + items: + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created + example: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: + type: integer + description: Which version the event is + example: 1 + format: int64 + example: + action: workflow.deleted + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: 1 + required: + - action + - occurred_at + - version + - actor + - targets + - context + AuditLogsWorkflowUpdatedV1ResponseBody: + title: AuditLogsWorkflowUpdatedV1ResponseBody + type: object + properties: + action: + type: string + description: The type of log entry that this is + example: workflow.updated + actor: + $ref: '#/definitions/AuditLogActorV2' + context: + $ref: '#/definitions/AuditLogEntryContextV2' + occurred_at: + type: string + description: When the entry occurred + example: "2021-08-17T13:28:57.801578Z" + format: date-time + targets: + type: array + items: + $ref: '#/definitions/AuditLogTargetV2' + description: The custom field that was created + example: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: + type: integer + description: Which version the event is + example: 1 + format: int64 + example: + action: workflow.updated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Nudge to write a postmortem + type: workflow + version: 1 + required: + - action + - occurred_at + - version + - actor + - targets + - context + CatalogEntryEngineParamBindingV2: + title: CatalogEntryEngineParamBindingV2 + type: object + properties: + array_value: + type: array + items: + $ref: '#/definitions/CatalogEntryEngineParamBindingValueV2' + description: If array_value is set, this helps render the values + example: + - catalog_entry: + archived_at: "2021-08-17T14:28:57.801578Z" + catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 + catalog_entry_name: Primary escalation + catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 + helptext: abc123 + image_url: abc123 + is_image_slack_icon: false + label: Lawrence Jones + literal: SEV123 + reference: incident.severity + sort_key: abc123 + unavailable: false + value: abc123 + value: + $ref: '#/definitions/CatalogEntryEngineParamBindingValueV2' + example: + array_value: + - catalog_entry: + archived_at: "2021-08-17T14:28:57.801578Z" + catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 + catalog_entry_name: Primary escalation + catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 + helptext: abc123 + image_url: abc123 + is_image_slack_icon: false + label: Lawrence Jones + literal: SEV123 + reference: incident.severity + sort_key: abc123 + unavailable: false + value: abc123 + value: + catalog_entry: + archived_at: "2021-08-17T14:28:57.801578Z" + catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 + catalog_entry_name: Primary escalation + catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 + helptext: abc123 + image_url: abc123 + is_image_slack_icon: false + label: Lawrence Jones + literal: SEV123 + reference: incident.severity + sort_key: abc123 + unavailable: false + value: abc123 + CatalogEntryEngineParamBindingValueV2: + title: CatalogEntryEngineParamBindingValueV2 + type: object + properties: + catalog_entry: + $ref: '#/definitions/CatalogEntryReferenceV2' + helptext: + type: string + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: abc123 + image_url: + type: string + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: abc123 + is_image_slack_icon: + type: boolean + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: false + label: + type: string + description: Human readable label to be displayed for user to select + example: Lawrence Jones + literal: + type: string + description: If set, this is the literal value of the step parameter + example: SEV123 + reference: + type: string + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: incident.severity + sort_key: + type: string + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: abc123 + unavailable: + type: boolean + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: false + value: + type: string + description: This field is deprecated. It will not be present in any responses, and will be removed in a future version + example: abc123 + example: + catalog_entry: + archived_at: "2021-08-17T14:28:57.801578Z" + catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 + catalog_entry_name: Primary escalation + catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 + helptext: abc123 + image_url: abc123 + is_image_slack_icon: false + label: Lawrence Jones + literal: SEV123 + reference: incident.severity + sort_key: abc123 + unavailable: false + value: abc123 required: - - catalog_type_id - - catalog_entry_id - - catalog_entry_name + - label + - sort_key CatalogEntryReferenceV2: title: CatalogEntryReferenceV2 type: object @@ -14692,469 +14745,127 @@ definitions: dynamic_resource_parameter: abc123 estimated_count: 7 icon: alert - id: 01FCNDV6P870EA6S7TK1DSYDG0 - is_editable: false - last_synced_at: "2021-08-17T13:28:57.801578Z" - name: Kubernetes Cluster - ranked: true - registry_type: PagerDutyService - required_integrations: - - pager_duty - schema: - attributes: - - array: false - backlink_attribute: abc123 - id: 01GW2G3V0S59R238FAHPDS1R66 - mode: manual - name: tier - path: - - attribute_id: abc123 - attribute_name: abc123 - type: Custom["Service"] - version: 1 - semantic_type: custom - source_repo_url: https://github.com/my-company/incident-io-catalog - type_name: Custom["BackstageGroup"] - updated_at: "2021-08-17T13:28:57.801578Z" - required: - - catalog_type - CatalogV2UpdateTypeSchemaRequestBody: - title: CatalogV2UpdateTypeSchemaRequestBody - type: object - properties: - attributes: - type: array - items: - $ref: '#/definitions/CatalogTypeAttributePayloadV2' - example: - - array: false - backlink_attribute: abc123 - id: 01GW2G3V0S59R238FAHPDS1R66 - mode: manual - name: tier - path: - - attribute_id: abc123 - type: Custom["Service"] - version: - type: integer - example: 1 - format: int64 - example: - attributes: - - array: false - backlink_attribute: abc123 - id: 01GW2G3V0S59R238FAHPDS1R66 - mode: manual - name: tier - path: - - attribute_id: abc123 - type: Custom["Service"] - version: 1 - required: - - attributes - - version - - name - - description - - type_name - - semantic_type - - ranked - - schema - - icon - - categories - - color - - is_editable - - annotations - - created_at - - updated_at - - engine_resource_type - - mode - - use_name_as_identifier - CatalogV2UpdateTypeSchemaResponseBody: - title: CatalogV2UpdateTypeSchemaResponseBody - type: object - properties: - catalog_type: - $ref: '#/definitions/CatalogTypeV2' - example: - catalog_type: - annotations: - incident.io/catalog-importer/id: id-of-config - categories: - - issue-tracker - color: yellow - created_at: "2021-08-17T13:28:57.801578Z" - description: Represents Kubernetes clusters that we run inside of GKE. - dynamic_resource_parameter: abc123 - estimated_count: 7 - icon: alert - id: 01FCNDV6P870EA6S7TK1DSYDG0 - is_editable: false - last_synced_at: "2021-08-17T13:28:57.801578Z" - name: Kubernetes Cluster - ranked: true - registry_type: PagerDutyService - required_integrations: - - pager_duty - schema: - attributes: - - array: false - backlink_attribute: abc123 - id: 01GW2G3V0S59R238FAHPDS1R66 - mode: manual - name: tier - path: - - attribute_id: abc123 - attribute_name: abc123 - type: Custom["Service"] - version: 1 - semantic_type: custom - source_repo_url: https://github.com/my-company/incident-io-catalog - type_name: Custom["BackstageGroup"] - updated_at: "2021-08-17T13:28:57.801578Z" - required: - - catalog_type - Condition: - title: Condition - type: object - properties: - operation: - $ref: '#/definitions/ConditionOperation' - param_bindings: - type: array - items: - $ref: '#/definitions/EngineParamBinding' - description: Bindings for the operation parameters - example: - - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - type: array - items: - $ref: '#/definitions/EngineParam' - description: Type information for the operation parameters - example: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - $ref: '#/definitions/ConditionSubject' - example: - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG - param_bindings: - - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + id: 01FCNDV6P870EA6S7TK1DSYDG0 + is_editable: false + last_synced_at: "2021-08-17T13:28:57.801578Z" + name: Kubernetes Cluster + ranked: true + registry_type: PagerDutyService + required_integrations: + - pager_duty + schema: + attributes: + - array: false + backlink_attribute: abc123 + id: 01GW2G3V0S59R238FAHPDS1R66 + mode: manual + name: tier + path: + - attribute_id: abc123 + attribute_name: abc123 + type: Custom["Service"] + version: 1 + semantic_type: custom + source_repo_url: https://github.com/my-company/incident-io-catalog + type_name: Custom["BackstageGroup"] + updated_at: "2021-08-17T13:28:57.801578Z" required: - - subject - - operation - - params - - param_bindings - ConditionGroup: - title: ConditionGroup + - catalog_type + CatalogV2UpdateTypeSchemaRequestBody: + title: CatalogV2UpdateTypeSchemaRequestBody type: object properties: - conditions: + attributes: type: array items: - $ref: '#/definitions/Condition' - description: All conditions in this list must be satisfied for the group to be satisfied + $ref: '#/definitions/CatalogTypeAttributePayloadV2' example: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG - param_bindings: - - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + - array: false + backlink_attribute: abc123 + id: 01GW2G3V0S59R238FAHPDS1R66 + mode: manual + name: tier + path: + - attribute_id: abc123 + type: Custom["Service"] + version: + type: integer + example: 1 + format: int64 example: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG - param_bindings: - - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + attributes: + - array: false + backlink_attribute: abc123 + id: 01GW2G3V0S59R238FAHPDS1R66 + mode: manual + name: tier + path: + - attribute_id: abc123 + type: Custom["Service"] + version: 1 required: - - conditions + - attributes + - version + - name + - description + - type_name + - semantic_type + - ranked + - schema + - icon + - categories + - color + - is_editable + - annotations + - created_at + - updated_at + - engine_resource_type + - mode + - use_name_as_identifier + CatalogV2UpdateTypeSchemaResponseBody: + title: CatalogV2UpdateTypeSchemaResponseBody + type: object + properties: + catalog_type: + $ref: '#/definitions/CatalogTypeV2' + example: + catalog_type: + annotations: + incident.io/catalog-importer/id: id-of-config + categories: + - issue-tracker + color: yellow + created_at: "2021-08-17T13:28:57.801578Z" + description: Represents Kubernetes clusters that we run inside of GKE. + dynamic_resource_parameter: abc123 + estimated_count: 7 + icon: alert + id: 01FCNDV6P870EA6S7TK1DSYDG0 + is_editable: false + last_synced_at: "2021-08-17T13:28:57.801578Z" + name: Kubernetes Cluster + ranked: true + registry_type: PagerDutyService + required_integrations: + - pager_duty + schema: + attributes: + - array: false + backlink_attribute: abc123 + id: 01GW2G3V0S59R238FAHPDS1R66 + mode: manual + name: tier + path: + - attribute_id: abc123 + attribute_name: abc123 + type: Custom["Service"] + version: 1 + semantic_type: custom + source_repo_url: https://github.com/my-company/incident-io-catalog + type_name: Custom["BackstageGroup"] + updated_at: "2021-08-17T13:28:57.801578Z" + required: + - catalog_type ConditionGroupPayloadV2: title: ConditionGroupPayloadV2 type: object @@ -15221,35 +14932,16 @@ definitions: - array_value: - label: Lawrence Jones literal: SEV123 - reference: incident.severity - value: - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - subject: - label: Incident Severity - reference: incident.severity - required: - - conditions - ConditionOperation: - title: ConditionOperation - type: object - properties: - label: - type: string - description: Human readable label to be displayed for user to select - example: Lawrence Jones - value: - type: string - description: Unique identifier for this option - example: 01FCQSP07Z74QMMYPDDGQB9FTG - example: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + reference: incident.severity + value: + label: Lawrence Jones + literal: SEV123 + reference: incident.severity + subject: + label: Incident Severity + reference: incident.severity required: - - label - - value - - sort_key + - conditions ConditionOperationV2: title: ConditionOperationV2 type: object @@ -15307,106 +14999,6 @@ definitions: - subject - operation - param_bindings - ConditionSubject: - title: ConditionSubject - type: object - properties: - color: - type: string - description: String telling the UI what color to use for this field, if applicable - example: yellow - enum: - - yellow - - green - - blue - - violet - - pink - - cyan - - orange - icon: - type: string - description: String telling the UI what icon to use for this field - example: action - enum: - - action - - alert - - bolt - - toggle-left - - book - - box - - briefcase - - browser - - bulb - - calendar - - checkmark - - clipboard - - clock - - close - - cog - - components - - custom_field - - database - - delete - - doc - - email - - escalate - - escalation-path - - exclamation - - export - - external-link - - files - - flag - - folder - - follow_ups - - git-branch-new - - globe - - incident - - incident_type - - key - - ms-teams - - merge - - message - - money - - mug - - number-input - - priority - - private - - text-align-left - - search - - server - - severity - - slack - - slack_channel - - slack_team - - star - - status - - status-page - - store - - tag - - test - - text - - timestamp - - triage - - user - - users - - warning - label: - type: string - description: Human readable identifier for the subject - example: Incident Severity - reference: - type: string - description: Reference into the scope for the value of the subject - example: incident.severity - example: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity - required: - - label - - icon - - reference ConditionSubjectV2: title: ConditionSubjectV2 type: object @@ -17101,144 +16693,6 @@ definitions: - role_type - created_at - updated_at - EngineParam: - title: EngineParam - type: object - properties: - array: - type: boolean - description: Whether this parameter is an array - example: true - default_value: - $ref: '#/definitions/EngineParamBinding' - description: - type: string - description: A string describing the param - example: What slack channel should we send the message to? - infer_reference: - type: boolean - description: Whether this parameter should be inferred as a reference from the scope - example: true - label: - type: string - description: Human readable label for this parameter - example: To date - name: - type: string - description: The unique identifier for the parameter - example: severity - optional: - type: boolean - description: Whether this parameter is optional - example: true - type: - type: string - description: The type of the parameter - example: IncidentSeverity - example: - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - required: - - name - - label - - type - - array - - optional - - infer_reference - - description - EngineParamBinding: - title: EngineParamBinding - type: object - properties: - array_value: - type: array - items: - $ref: '#/definitions/EngineParamBindingValue' - description: If array_value is set, this helps render the values - example: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - $ref: '#/definitions/EngineParamBindingValue' - example: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 EngineParamBindingPayloadV2: title: EngineParamBindingPayloadV2 type: object @@ -17284,66 +16738,6 @@ definitions: label: Lawrence Jones literal: SEV123 reference: incident.severity - EngineParamBindingValue: - title: EngineParamBindingValue - type: object - properties: - catalog_entry: - $ref: '#/definitions/CatalogEntryReference' - helptext: - type: string - description: Gives a description of the option to the user - example: Collection of standalone automations like auto-closing incidents. - image_url: - type: string - description: If appropriate, URL to an image that can be displayed alongside the option - example: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: - type: boolean - description: If true, the image_url is a Slack icon and should be displayed as such - example: false - label: - type: string - description: Human readable label to be displayed for user to select - example: Lawrence Jones - literal: - type: string - description: If set, this is the literal value of the step parameter - example: SEV123 - reference: - type: string - description: If set, this is the reference into the trigger scope that is the value of this parameter - example: incident.severity - sort_key: - type: string - description: Gives an indication of how to sort the options when displayed to the user - example: "000020" - unavailable: - type: boolean - description: Unavailable is true if we've failed to build the value for this binding - example: false - value: - type: string - description: 'Either the reference or the literal: this field is designed purely to make working with react-select easier' - example: abc123 - example: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - required: - - label - - sort_key EngineParamBindingValuePayloadV2: title: EngineParamBindingValuePayloadV2 type: object @@ -17467,6 +16861,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17505,6 +16908,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17549,6 +16961,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17582,6 +17003,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17654,6 +17084,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17698,6 +17137,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17754,6 +17202,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17793,6 +17250,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17847,6 +17313,47 @@ definitions: time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 required: - targets + EscalationPathNodeNotifyChannelV2: + title: EscalationPathNodeNotifyChannelV2 + type: object + properties: + targets: + type: array + items: + $ref: '#/definitions/EscalationPathTargetV2' + description: The targets for this level + example: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: + type: string + description: If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive + example: active + enum: + - active + - inactive + time_to_ack_seconds: + type: integer + description: How long should we wait for this level to acknowledge before escalating? + example: 1800 + format: int64 + time_to_ack_weekday_interval_config_id: + type: string + description: If the time to ack is relative to a time window, this identifies which window it is relative to + example: 01FCNDV6P870EA6S7TK1DSYDG0 + example: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + required: + - targets EscalationPathNodePayloadV2: title: EscalationPathNodePayloadV2 type: object @@ -17859,6 +17366,8 @@ definitions: $ref: '#/definitions/EscalationPathNodeIfElsePayloadV2' level: $ref: '#/definitions/EscalationPathNodeLevelV2' + notify_channel: + $ref: '#/definitions/EscalationPathNodeNotifyChannelV2' repeat: $ref: '#/definitions/EscalationPathNodeRepeatV2' type: @@ -17899,6 +17408,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -17937,6 +17455,8 @@ definitions: $ref: '#/definitions/EscalationPathNodeIfElseV2' level: $ref: '#/definitions/EscalationPathNodeLevelV2' + notify_channel: + $ref: '#/definitions/EscalationPathNodeNotifyChannelV2' repeat: $ref: '#/definitions/EscalationPathNodeRepeatV2' type: @@ -17983,6 +17503,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18101,6 +17630,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18156,6 +17694,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18216,6 +17763,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18264,6 +17820,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18324,6 +17889,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18383,6 +17957,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18439,6 +18022,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18487,6 +18079,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18547,6 +18148,15 @@ definitions: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -18955,6 +18565,7 @@ definitions: - count - min - max + - sum - random - first - parse @@ -19028,6 +18639,7 @@ definitions: - count - min - max + - sum - random - first - parse @@ -19790,6 +19402,7 @@ definitions: - incident_memberships_editor - schedules_editor - schedules_reader + - schedule_overrides_editor - workflows_editor - private_workflows_editor - on_call_editor @@ -21865,6 +21478,10 @@ definitions: value_seconds: 1 external_issue_reference: $ref: '#/definitions/ExternalIssueReferenceV2' + has_debrief: + type: boolean + description: If this incident has a debrief attached + example: false id: type: string description: Unique identifier for the incident @@ -22031,6 +21648,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -22121,6 +21739,10 @@ definitions: properties: incident: $ref: '#/definitions/IncidentV2' + message: + type: string + description: Message that explains the context behind the update + example: We're working on a fix, hoping to ship in the next 30 minutes new_status: $ref: '#/definitions/IncidentStatusV2' previous_status: @@ -22175,6 +21797,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -22239,6 +21862,7 @@ definitions: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -22824,6 +22448,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -22987,6 +22612,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -23110,6 +22736,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -23226,6 +22853,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -23352,6 +22980,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -24082,6 +23711,72 @@ definitions: example: id: 01G0J1EXE7AXZ2C93K61WBPYEH name: Layer 1 + ScheduleOverrideV2: + title: ScheduleOverrideV2 + type: object + properties: + created_at: + type: string + example: "2021-08-17T13:28:57.801578Z" + format: date-time + end_at: + type: string + description: End of the override + example: "2021-08-17T13:28:57.801578Z" + format: date-time + id: + type: string + description: Unique internal ID of the schedule override + example: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: + type: string + description: The layer on the rotation on the schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: + type: string + description: The rotation on the schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: + type: string + description: The schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: + type: string + description: Start of the override + example: "2021-08-17T13:28:57.801578Z" + format: date-time + updated_at: + type: string + example: "2021-08-17T13:28:57.801578Z" + format: date-time + user: + $ref: '#/definitions/UserV2' + example: + created_at: "2021-08-17T13:28:57.801578Z" + end_at: "2021-08-17T13:28:57.801578Z" + id: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:28:57.801578Z" + updated_at: "2021-08-17T13:28:57.801578Z" + user: + email: lisa@incident.io + id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Lisa Karlin Curtis + role: viewer + slack_user_id: U02AYNF2XJM + required: + - id + - schedule_id + - rotation_id + - layer_id + - user + - start_at + - end_at + - created_at + - updated_at + - user_id ScheduleRotationCreatePayloadV2: title: ScheduleRotationCreatePayloadV2 type: object @@ -24579,6 +24274,75 @@ definitions: - external_provider_id - created_at - updated_at + SchedulesV2CreateOverrideRequestBody: + title: SchedulesV2CreateOverrideRequestBody + type: object + properties: + end_at: + type: string + description: End time of the override + example: "2021-08-17T14:00:00.000000Z" + format: date-time + layer_id: + type: string + description: The layer this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYNH + rotation_id: + type: string + description: The rotation this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: + type: string + description: The schedule this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: + type: string + description: Start time of the override + example: "2021-08-17T13:00:00.000000Z" + format: date-time + user: + $ref: '#/definitions/UserReferencePayloadV2' + example: + end_at: "2021-08-17T14:00:00.000000Z" + layer_id: 01G0J1EXE7AXZ2C93K61WBPYNH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:00:00.000000Z" + user: + email: bob@example.com + id: 01G0J1EXE7AXZ2C93K61WBPYEH + slack_user_id: USER123 + required: + - start_at + - end_at + - schedule_id + - rotation_id + - layer_id + - user + SchedulesV2CreateOverrideResponseBody: + title: SchedulesV2CreateOverrideResponseBody + type: object + properties: + override: + $ref: '#/definitions/ScheduleOverrideV2' + example: + override: + created_at: "2021-08-17T13:28:57.801578Z" + end_at: "2021-08-17T13:28:57.801578Z" + id: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:28:57.801578Z" + updated_at: "2021-08-17T13:28:57.801578Z" + user: + email: lisa@incident.io + id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Lisa Karlin Curtis + role: viewer + slack_user_id: U02AYNF2XJM + required: + - override SchedulesV2CreateRequestBody: title: SchedulesV2CreateRequestBody type: object @@ -25979,6 +25743,10 @@ definitions: value_seconds: 1 external_issue_reference: $ref: '#/definitions/ExternalIssueReferenceV2' + has_debrief: + type: boolean + description: If this incident has a debrief attached + example: false id: type: string description: Unique identifier for the incident @@ -26030,6 +25798,10 @@ definitions: - retrospective - test - tutorial + most_recent_update_message: + type: string + description: Message that explains the context behind the update + example: We're working on a fix, hoping to ship in the next 30 minutes name: type: string description: Explanation of the incident @@ -26153,6 +25925,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -26196,6 +25969,7 @@ definitions: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -26452,6 +26226,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -26495,6 +26270,7 @@ definitions: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -26568,6 +26344,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -26632,6 +26409,7 @@ definitions: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -26697,6 +26475,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -26740,6 +26519,7 @@ definitions: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -27310,6 +27090,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -27353,6 +27134,7 @@ definitions: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -27457,6 +27239,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -27521,6 +27304,7 @@ definitions: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -27617,6 +27401,7 @@ definitions: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -27660,6 +27445,7 @@ definitions: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id diff --git a/internal/apischema/openapi3-secret.json b/internal/apischema/openapi3-secret.json index c5201ff..e038ffb 100644 --- a/internal/apischema/openapi3-secret.json +++ b/internal/apischema/openapi3-secret.json @@ -2550,105 +2550,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -3658,105 +3575,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -5784,6 +5618,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -5877,6 +5724,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6023,6 +5883,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6129,6 +6002,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6222,6 +6108,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -7221,6 +7120,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7456,6 +7356,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7642,6 +7543,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7881,6 +7783,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -8138,6 +8041,69 @@ } } }, + "/v2/schedule_overrides": { + "post": { + "tags": [ + "Schedules V2" + ], + "summary": "CreateOverride Schedules V2", + "description": "Create a new schedule override.", + "operationId": "Schedules V2#CreateOverride", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScheduleOverrideCreatePayloadV2" + }, + "example": { + "end_at": "2021-08-17T14:00:00.000000Z", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:00:00.000000Z", + "user": { + "email": "bob@example.com", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "slack_user_id": "USER123" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOverrideResponseBody" + }, + "example": { + "override": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + } + } + } + } + } + } + } + }, "/v2/schedules": { "get": { "tags": [ @@ -10813,6 +10779,17 @@ "description": "The ID of this alert", "example": "01GW2G3V0S59R238FAHPDS1R66" }, + "image_urls": { + "type": "array", + "items": { + "type": "string", + "example": "abc123" + }, + "description": "URLs of images associated with this alert", + "example": [ + "abc123" + ] + }, "payload": { "type": "string", "description": "JSON payload that this alert was created from", @@ -10862,6 +10839,7 @@ "grafana", "http", "honeycomb", + "nagios", "jira", "monte_carlo", "new_relic", @@ -10869,6 +10847,7 @@ "pager_duty", "panther", "pingdom", + "prtg", "runscope", "sns", "sentry", @@ -10976,6 +10955,9 @@ "abc123": "abc123" }, "id": "01GW2G3V0S59R238FAHPDS1R66", + "image_urls": [ + "abc123" + ], "payload": "abc123", "priority": { "archived_at": "2021-08-17T13:28:57.801578Z", @@ -11293,6 +11275,78 @@ "condition_groups" ] }, + "AlertRouteAlertSourcePayloadV2": { + "type": "object", + "properties": { + "alert_source_id": { + "type": "string", + "description": "The alert source ID that will match for the route", + "example": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConditionGroupPayloadV2" + }, + "description": "What conditions should alerts from this source meet to be included in this alert route?", + "example": [ + { + "conditions": [ + { + "operation": "one_of", + "param_bindings": [ + { + "array_value": [ + { + "literal": "SEV123", + "reference": "incident.severity" + } + ], + "value": { + "literal": "SEV123", + "reference": "incident.severity" + } + } + ], + "subject": "incident.severity" + } + ] + } + ] + } + }, + "example": { + "alert_source_id": "01FCNDV6P870EA6S7TK1DSYDG0", + "condition_groups": [ + { + "conditions": [ + { + "operation": "one_of", + "param_bindings": [ + { + "array_value": [ + { + "literal": "SEV123", + "reference": "incident.severity" + } + ], + "value": { + "literal": "SEV123", + "reference": "incident.severity" + } + } + ], + "subject": "incident.severity" + } + ] + } + ] + }, + "required": [ + "alert_source_id", + "condition_groups" + ] + }, "AlertRouteDefinitionsV2": { "type": "object", "properties": { @@ -11708,9 +11762,7 @@ }, "last_fired_at": { "type": "string", - "description": "When did this alert route last create an incident?", - "example": "2021-08-17T13:28:57.801578Z", - "format": "date-time" + "example": "abc123" }, "name": { "type": "string", @@ -12064,7 +12116,7 @@ } ], "incident_enabled": false, - "last_fired_at": "2021-08-17T13:28:57.801578Z", + "last_fired_at": "abc123", "name": "Production incidents", "template": { "custom_field_priorities": { @@ -12573,7 +12625,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/components/schemas/AlertRouteAlertSource" + "$ref": "#/components/schemas/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -12583,105 +12635,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -12945,105 +12914,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -13891,6 +13777,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -13940,6 +13827,7 @@ "grafana", "http", "honeycomb", + "nagios", "jira", "monte_carlo", "new_relic", @@ -13947,6 +13835,7 @@ "pager_duty", "panther", "pingdom", + "prtg", "runscope", "sns", "sentry", @@ -14230,6 +14119,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14285,6 +14175,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -14382,6 +14273,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14460,6 +14352,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -14549,6 +14442,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14604,6 +14498,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -14901,10 +14796,13 @@ "internal_status_page", "nudge", "policy", + "post_incident_task", + "postmortem_template", + "postmortem_template_section", "private_incident_membership", "rbac_role", - "schedule", "scim_group", + "schedule", "severity", "status_page", "status_page_sub_page", @@ -17073,6 +16971,7 @@ "enum": [ "action", "alert", + "announcement", "bolt", "toggle-left", "book", @@ -17081,6 +16980,7 @@ "browser", "bulb", "calendar", + "chart", "checkmark", "clipboard", "clock", @@ -17106,12 +17006,14 @@ "incident", "incident_type", "key", + "lock", "ms-teams", "merge", "message", "money", "mug", "number-input", + "on-call", "priority", "private", "text-align-left", @@ -17119,6 +17021,7 @@ "server", "severity", "slack", + "slack-greyscale", "slack_channel", "slack_team", "star", @@ -17529,6 +17432,36 @@ "managed_resource" ] }, + "CreateOverrideResponseBody": { + "type": "object", + "properties": { + "override": { + "$ref": "#/components/schemas/ScheduleOverrideV2" + } + }, + "example": { + "override": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + } + }, + "required": [ + "override" + ] + }, "CreatePathResponseBody": { "type": "object", "properties": { @@ -17596,6 +17529,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21159,6 +21105,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21221,6 +21180,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21299,6 +21271,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21354,6 +21339,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21467,6 +21465,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21537,6 +21548,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21631,6 +21655,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21694,6 +21731,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21771,6 +21821,62 @@ "targets" ] }, + "EscalationPathNodeNotifyChannelV2": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EscalationPathTargetV2" + }, + "description": "The targets for this level", + "example": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ] + }, + "time_to_ack_interval_condition": { + "type": "string", + "description": "If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive", + "example": "active", + "enum": [ + "active", + "inactive" + ] + }, + "time_to_ack_seconds": { + "type": "integer", + "description": "How long should we wait for this level to acknowledge before escalating?", + "example": 1800, + "format": "int64" + }, + "time_to_ack_weekday_interval_config_id": { + "type": "string", + "description": "If the time to ack is relative to a time window, this identifies which window it is relative to", + "example": "01FCNDV6P870EA6S7TK1DSYDG0" + } + }, + "example": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "required": [ + "targets" + ] + }, "EscalationPathNodePayloadV2": { "type": "object", "properties": { @@ -21785,6 +21891,9 @@ "level": { "$ref": "#/components/schemas/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/components/schemas/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/components/schemas/EscalationPathNodeRepeatV2" }, @@ -21847,6 +21956,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21896,6 +22018,9 @@ "level": { "$ref": "#/components/schemas/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/components/schemas/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/components/schemas/EscalationPathNodeRepeatV2" }, @@ -21966,6 +22091,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22039,6 +22177,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22119,6 +22270,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22294,6 +22458,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22383,6 +22560,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -23365,6 +23555,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -23487,6 +23678,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -24553,6 +24745,7 @@ "incident_memberships_editor", "schedules_editor", "schedules_reader", + "schedule_overrides_editor", "workflows_editor", "private_workflows_editor", "on_call_editor" @@ -26708,6 +26901,11 @@ "external_issue_reference": { "$ref": "#/components/schemas/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -26931,6 +27129,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -27037,6 +27236,11 @@ "incident": { "$ref": "#/components/schemas/IncidentV2" }, + "message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "new_status": { "$ref": "#/components/schemas/IncidentStatusV2" }, @@ -27115,6 +27319,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -27193,6 +27398,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -28050,6 +28256,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -28206,6 +28413,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30626,6 +30834,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30681,6 +30890,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -30815,6 +31025,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30893,6 +31104,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -31019,6 +31231,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -31074,6 +31287,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -31903,6 +32117,140 @@ "name": "Layer 1" } }, + "ScheduleOverrideCreatePayloadV2": { + "type": "object", + "properties": { + "end_at": { + "type": "string", + "description": "End time of the override", + "example": "2021-08-17T14:00:00.000000Z", + "format": "date-time" + }, + "layer_id": { + "type": "string", + "description": "The layer this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYNH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start time of the override", + "example": "2021-08-17T13:00:00.000000Z", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/UserReferencePayloadV2" + } + }, + "example": { + "end_at": "2021-08-17T14:00:00.000000Z", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:00:00.000000Z", + "user": { + "email": "bob@example.com", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "slack_user_id": "USER123" + } + }, + "required": [ + "start_at", + "end_at", + "schedule_id", + "rotation_id", + "layer_id", + "user" + ] + }, + "ScheduleOverrideV2": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "end_at": { + "type": "string", + "description": "End of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Unique internal ID of the schedule override", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "layer_id": { + "type": "string", + "description": "The layer on the rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/UserV2" + } + }, + "example": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + }, + "required": [ + "id", + "schedule_id", + "rotation_id", + "layer_id", + "user", + "start_at", + "end_at", + "created_at", + "updated_at", + "user_id" + ] + }, "ScheduleRotationCreatePayloadV2": { "type": "object", "properties": { @@ -33301,6 +33649,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -34525,7 +34874,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/components/schemas/AlertRouteAlertSource" + "$ref": "#/components/schemas/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -34535,105 +34884,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -34897,105 +35163,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -35288,6 +35471,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -36691,6 +36875,11 @@ "external_issue_reference": { "$ref": "#/components/schemas/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -36761,6 +36950,11 @@ "tutorial" ] }, + "most_recent_update_message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "name": { "type": "string", "description": "Explanation of the incident", @@ -36925,6 +37119,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -36980,6 +37175,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -37287,6 +37483,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37342,6 +37539,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -37439,6 +37637,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37517,6 +37716,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -37606,6 +37806,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37661,6 +37862,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -39901,7 +40103,7 @@ }, { "name": "Schedules V2", - "description": "Beta: \nView and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" + "description": "View and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" }, { "name": "Severities V1", @@ -39925,7 +40127,7 @@ }, { "name": "Audit logs", - "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 5 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n" + "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 6 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n\n### Alerts\n\nThis is for changes triggered by a specific alert (e.g. from Datadog or Grafana).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"alert\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Staging: pod CPU high\",\n \"metadata\": {\n \"alert_source_id\": \"01HB0ZG3B0HM04RCXNSPV1EDYG\"\n }\n }\n```\n" } ], "x-webhooks": { @@ -40433,6 +40635,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40488,6 +40691,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -40610,6 +40814,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40688,6 +40893,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -40802,6 +41008,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40857,6 +41064,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -43710,6 +43918,288 @@ } } }, + "/x-audit-logs/postmortem_section.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionCreatedV1", + "description": "This entry is created whenever a postmortem template section is created", + "operationId": "Audit logs#PostmortemSectionCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_section.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionDeletedV1", + "description": "This entry is created whenever a postmortem template section is deleted", + "operationId": "Audit logs#PostmortemSectionDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_section.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionUpdatedV1", + "description": "This entry is created whenever a postmortem template section is updated", + "operationId": "Audit logs#PostmortemSectionUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateCreatedV1", + "description": "This entry is created whenever a postmortem template is created", + "operationId": "Audit logs#PostmortemTemplateCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateDeletedV1", + "description": "This entry is created whenever a postmortem template is deleted", + "operationId": "Audit logs#PostmortemTemplateDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateUpdatedV1", + "description": "This entry is created whenever a postmortem template is updated", + "operationId": "Audit logs#PostmortemTemplateUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, "/x-audit-logs/private_incident.access_attempted.1": { "get": { "tags": [ diff --git a/internal/apischema/openapi3.json b/internal/apischema/openapi3.json index 556c027..511f264 100644 --- a/internal/apischema/openapi3.json +++ b/internal/apischema/openapi3.json @@ -2550,105 +2550,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -3658,105 +3575,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -5784,6 +5618,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -5877,6 +5724,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6023,6 +5883,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6129,6 +6002,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -6222,6 +6108,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -7221,6 +7120,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7456,6 +7356,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7642,6 +7543,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -7881,6 +7783,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -8088,6 +7991,69 @@ } } }, + "/v2/schedule_overrides": { + "post": { + "tags": [ + "Schedules V2" + ], + "summary": "CreateOverride Schedules V2", + "description": "Create a new schedule override.", + "operationId": "Schedules V2#CreateOverride", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScheduleOverrideCreatePayloadV2" + }, + "example": { + "end_at": "2021-08-17T14:00:00.000000Z", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:00:00.000000Z", + "user": { + "email": "bob@example.com", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "slack_user_id": "USER123" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOverrideResponseBody" + }, + "example": { + "override": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + } + } + } + } + } + } + } + }, "/v2/schedules": { "get": { "tags": [ @@ -10763,6 +10729,17 @@ "description": "The ID of this alert", "example": "01GW2G3V0S59R238FAHPDS1R66" }, + "image_urls": { + "type": "array", + "items": { + "type": "string", + "example": "abc123" + }, + "description": "URLs of images associated with this alert", + "example": [ + "abc123" + ] + }, "payload": { "type": "string", "description": "JSON payload that this alert was created from", @@ -10812,6 +10789,7 @@ "grafana", "http", "honeycomb", + "nagios", "jira", "monte_carlo", "new_relic", @@ -10819,6 +10797,7 @@ "pager_duty", "panther", "pingdom", + "prtg", "runscope", "sns", "sentry", @@ -10926,6 +10905,9 @@ "abc123": "abc123" }, "id": "01GW2G3V0S59R238FAHPDS1R66", + "image_urls": [ + "abc123" + ], "payload": "abc123", "priority": { "archived_at": "2021-08-17T13:28:57.801578Z", @@ -11243,6 +11225,78 @@ "condition_groups" ] }, + "AlertRouteAlertSourcePayloadV2": { + "type": "object", + "properties": { + "alert_source_id": { + "type": "string", + "description": "The alert source ID that will match for the route", + "example": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConditionGroupPayloadV2" + }, + "description": "What conditions should alerts from this source meet to be included in this alert route?", + "example": [ + { + "conditions": [ + { + "operation": "one_of", + "param_bindings": [ + { + "array_value": [ + { + "literal": "SEV123", + "reference": "incident.severity" + } + ], + "value": { + "literal": "SEV123", + "reference": "incident.severity" + } + } + ], + "subject": "incident.severity" + } + ] + } + ] + } + }, + "example": { + "alert_source_id": "01FCNDV6P870EA6S7TK1DSYDG0", + "condition_groups": [ + { + "conditions": [ + { + "operation": "one_of", + "param_bindings": [ + { + "array_value": [ + { + "literal": "SEV123", + "reference": "incident.severity" + } + ], + "value": { + "literal": "SEV123", + "reference": "incident.severity" + } + } + ], + "subject": "incident.severity" + } + ] + } + ] + }, + "required": [ + "alert_source_id", + "condition_groups" + ] + }, "AlertRouteDefinitionsV2": { "type": "object", "properties": { @@ -11658,9 +11712,7 @@ }, "last_fired_at": { "type": "string", - "description": "When did this alert route last create an incident?", - "example": "2021-08-17T13:28:57.801578Z", - "format": "date-time" + "example": "abc123" }, "name": { "type": "string", @@ -12014,7 +12066,7 @@ } ], "incident_enabled": false, - "last_fired_at": "2021-08-17T13:28:57.801578Z", + "last_fired_at": "abc123", "name": "Production incidents", "template": { "custom_field_priorities": { @@ -12523,7 +12575,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/components/schemas/AlertRouteAlertSource" + "$ref": "#/components/schemas/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -12533,105 +12585,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -12895,105 +12864,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -13841,6 +13727,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -13890,6 +13777,7 @@ "grafana", "http", "honeycomb", + "nagios", "jira", "monte_carlo", "new_relic", @@ -13897,6 +13785,7 @@ "pager_duty", "panther", "pingdom", + "prtg", "runscope", "sns", "sentry", @@ -14180,6 +14069,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14235,6 +14125,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -14332,6 +14223,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14410,6 +14302,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -14499,6 +14392,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -14554,6 +14448,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -14851,10 +14746,13 @@ "internal_status_page", "nudge", "policy", + "post_incident_task", + "postmortem_template", + "postmortem_template_section", "private_incident_membership", "rbac_role", - "schedule", "scim_group", + "schedule", "severity", "status_page", "status_page_sub_page", @@ -17023,6 +16921,7 @@ "enum": [ "action", "alert", + "announcement", "bolt", "toggle-left", "book", @@ -17031,6 +16930,7 @@ "browser", "bulb", "calendar", + "chart", "checkmark", "clipboard", "clock", @@ -17056,12 +16956,14 @@ "incident", "incident_type", "key", + "lock", "ms-teams", "merge", "message", "money", "mug", "number-input", + "on-call", "priority", "private", "text-align-left", @@ -17069,6 +16971,7 @@ "server", "severity", "slack", + "slack-greyscale", "slack_channel", "slack_team", "star", @@ -17479,6 +17382,36 @@ "managed_resource" ] }, + "CreateOverrideResponseBody": { + "type": "object", + "properties": { + "override": { + "$ref": "#/components/schemas/ScheduleOverrideV2" + } + }, + "example": { + "override": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + } + }, + "required": [ + "override" + ] + }, "CreatePathResponseBody": { "type": "object", "properties": { @@ -17546,6 +17479,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "user", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21109,6 +21055,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21171,6 +21130,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21249,6 +21221,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21304,6 +21289,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21417,6 +21415,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21487,6 +21498,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21581,6 +21605,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21644,6 +21681,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21721,6 +21771,62 @@ "targets" ] }, + "EscalationPathNodeNotifyChannelV2": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EscalationPathTargetV2" + }, + "description": "The targets for this level", + "example": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ] + }, + "time_to_ack_interval_condition": { + "type": "string", + "description": "If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive", + "example": "active", + "enum": [ + "active", + "inactive" + ] + }, + "time_to_ack_seconds": { + "type": "integer", + "description": "How long should we wait for this level to acknowledge before escalating?", + "example": 1800, + "format": "int64" + }, + "time_to_ack_weekday_interval_config_id": { + "type": "string", + "description": "If the time to ack is relative to a time window, this identifies which window it is relative to", + "example": "01FCNDV6P870EA6S7TK1DSYDG0" + } + }, + "example": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, + "required": [ + "targets" + ] + }, "EscalationPathNodePayloadV2": { "type": "object", "properties": { @@ -21735,6 +21841,9 @@ "level": { "$ref": "#/components/schemas/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/components/schemas/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/components/schemas/EscalationPathNodeRepeatV2" }, @@ -21797,6 +21906,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21846,6 +21968,9 @@ "level": { "$ref": "#/components/schemas/EscalationPathNodeLevelV2" }, + "notify_channel": { + "$ref": "#/components/schemas/EscalationPathNodeNotifyChannelV2" + }, "repeat": { "$ref": "#/components/schemas/EscalationPathNodeRepeatV2" }, @@ -21916,6 +22041,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -21989,6 +22127,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22069,6 +22220,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22244,6 +22408,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -22333,6 +22510,19 @@ "time_to_ack_seconds": 1800, "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" }, + "notify_channel": { + "targets": [ + { + "id": "lawrencejones", + "schedule_mode": "currently_on_call", + "type": "schedule", + "urgency": "high" + } + ], + "time_to_ack_interval_condition": "active", + "time_to_ack_seconds": 1800, + "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0" + }, "repeat": { "repeat_times": 3, "to_node": "01FCNDV6P870EA6S7TK1DSYDG0" @@ -23315,6 +23505,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -23437,6 +23628,7 @@ "count", "min", "max", + "sum", "random", "first", "parse", @@ -24503,6 +24695,7 @@ "incident_memberships_editor", "schedules_editor", "schedules_reader", + "schedule_overrides_editor", "workflows_editor", "private_workflows_editor", "on_call_editor" @@ -26658,6 +26851,11 @@ "external_issue_reference": { "$ref": "#/components/schemas/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -26881,6 +27079,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -26987,6 +27186,11 @@ "incident": { "$ref": "#/components/schemas/IncidentV2" }, + "message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "new_status": { "$ref": "#/components/schemas/IncidentStatusV2" }, @@ -27065,6 +27269,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -27143,6 +27348,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -28000,6 +28206,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -28156,6 +28363,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30576,6 +30784,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30631,6 +30840,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -30765,6 +30975,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -30843,6 +31054,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -30969,6 +31181,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -31024,6 +31237,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -31853,6 +32067,140 @@ "name": "Layer 1" } }, + "ScheduleOverrideCreatePayloadV2": { + "type": "object", + "properties": { + "end_at": { + "type": "string", + "description": "End time of the override", + "example": "2021-08-17T14:00:00.000000Z", + "format": "date-time" + }, + "layer_id": { + "type": "string", + "description": "The layer this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYNH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start time of the override", + "example": "2021-08-17T13:00:00.000000Z", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/UserReferencePayloadV2" + } + }, + "example": { + "end_at": "2021-08-17T14:00:00.000000Z", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:00:00.000000Z", + "user": { + "email": "bob@example.com", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "slack_user_id": "USER123" + } + }, + "required": [ + "start_at", + "end_at", + "schedule_id", + "rotation_id", + "layer_id", + "user" + ] + }, + "ScheduleOverrideV2": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "end_at": { + "type": "string", + "description": "End of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Unique internal ID of the schedule override", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "layer_id": { + "type": "string", + "description": "The layer on the rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "rotation_id": { + "type": "string", + "description": "The rotation on the schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "schedule_id": { + "type": "string", + "description": "The schedule that this override applies to", + "example": "01G0J1EXE7AXZ2C93K61WBPYEH" + }, + "start_at": { + "type": "string", + "description": "Start of the override", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "example": "2021-08-17T13:28:57.801578Z", + "format": "date-time" + }, + "user": { + "$ref": "#/components/schemas/UserV2" + } + }, + "example": { + "created_at": "2021-08-17T13:28:57.801578Z", + "end_at": "2021-08-17T13:28:57.801578Z", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "layer_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "schedule_id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "start_at": "2021-08-17T13:28:57.801578Z", + "updated_at": "2021-08-17T13:28:57.801578Z", + "user": { + "email": "lisa@incident.io", + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Lisa Karlin Curtis", + "role": "viewer", + "slack_user_id": "U02AYNF2XJM" + } + }, + "required": [ + "id", + "schedule_id", + "rotation_id", + "layer_id", + "user", + "start_at", + "end_at", + "created_at", + "updated_at", + "user_id" + ] + }, "ScheduleRotationCreatePayloadV2": { "type": "object", "properties": { @@ -33251,6 +33599,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -34475,7 +34824,7 @@ "alert_sources": { "type": "array", "items": { - "$ref": "#/components/schemas/AlertRouteAlertSource" + "$ref": "#/components/schemas/AlertRouteAlertSourcePayloadV2" }, "description": "Which alert sources should this alert route match?", "example": [ @@ -34485,105 +34834,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -34847,105 +35113,22 @@ { "conditions": [ { - "operation": { - "label": "Lawrence Jones", - "value": "01FCQSP07Z74QMMYPDDGQB9FTG" - }, + "operation": "one_of", "param_bindings": [ { "array_value": [ { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } ], "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" + "reference": "incident.severity" } } ], - "params": [ - { - "array": true, - "default_value": { - "array_value": [ - { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - ], - "value": { - "catalog_entry": { - "archived_at": "2021-08-17T14:28:57.801578Z", - "catalog_entry_id": "01FCNDV6P870EA6S7TK1DSYDG0", - "catalog_entry_name": "Primary escalation", - "catalog_type_id": "01FCNDV6P870EA6S7TK1DSYDG0" - }, - "helptext": "Collection of standalone automations like auto-closing incidents.", - "image_url": "https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg", - "is_image_slack_icon": false, - "label": "Lawrence Jones", - "literal": "SEV123", - "reference": "incident.severity", - "sort_key": "000020", - "unavailable": false, - "value": "abc123" - } - }, - "description": "What slack channel should we send the message to?", - "infer_reference": true, - "label": "To date", - "name": "severity", - "optional": true, - "type": "IncidentSeverity" - } - ], - "subject": { - "color": "yellow", - "icon": "action", - "label": "Incident Severity", - "reference": "incident.severity" - } + "subject": "incident.severity" } ] } @@ -35238,6 +35421,7 @@ "auto_decline_enabled", "enabled", "incident_enabled", + "is_private", "incident_condition_groups", "alert_sources", "auto_cancel_escalations" @@ -36641,6 +36825,11 @@ "external_issue_reference": { "$ref": "#/components/schemas/ExternalIssueReferenceV2" }, + "has_debrief": { + "type": "boolean", + "description": "If this incident has a debrief attached", + "example": false + }, "id": { "type": "string", "description": "Unique identifier for the incident", @@ -36711,6 +36900,11 @@ "tutorial" ] }, + "most_recent_update_message": { + "type": "string", + "description": "Message that explains the context behind the update", + "example": "We're working on a fix, hoping to ship in the next 30 minutes" + }, "name": { "type": "string", "description": "Explanation of the incident", @@ -36875,6 +37069,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -36930,6 +37125,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -37237,6 +37433,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37292,6 +37489,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -37389,6 +37587,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37467,6 +37666,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -37556,6 +37756,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -37611,6 +37812,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -39847,7 +40049,7 @@ }, { "name": "Schedules V2", - "description": "Beta: \nView and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" + "description": "View and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" }, { "name": "Severities V1", @@ -39871,7 +40073,7 @@ }, { "name": "Audit logs", - "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 5 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n" + "description": "To give you visibility over the changes that are made within your incident.io account, we use an audit log. Our audit log is powered by WorkOS. The log is available for customers on our [Enterprise plan](https://incident.io/pricing).\n\nThe audit log contains information about any configuration changes, as well as changes to a user's permissions (e.g. being given a new role, or access to a private incident).\n\nEach entry will have an actor (the person or system that made the change) and one or more targets (a thing that was modified by this change). It will also include the Location and User Agent of the actor, where applicable.\n\nEach entry will conform to a schema, which is documented here. Each entry also has a version, so that if our schema changes over time you’ll still be able to parse old events.\n\nWe’ll retain these entries for one year.\n\nAudit log entries start from 18 April, 2023 (there are no entries available from before that date).\n\n## Viewing your audit log\n\nYou can view your audit log via our [security settings](https://app.incident.io/settings/security) page.\n\nFrom there, you'll be able to:\n\n- View the entries via a web interface (filterable by target, event type, actor and date)\n- Export the entries for a given time period to a CSV\n- Set up a log stream to a provider of your choice (e.g. Splunk or an Amazon S3 bucket)\n\n## Understanding actors\n\nEach entry will have an actor associated with it, which is one of 6 types:\n\n### Users\n\nThis is for changes triggered by the actions of a particular user in your account.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"user\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Kelsey Mills\",\n \"metadata\": {\n \"user_base_role_slug\": \"admin\",\n \"user_custom_role_slugs\": \"engineering,security\"\n }\n }\n```\n\n### API Keys\n\nThis is for changes triggered by an API key.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"api_key\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Lisa's development key\",\n \"metadata\": {\n \"api_key_roles\": \"incident_creator,global_access\"\n }\n }\n```\n\n### Integrations\n\nThis is for changes triggered by a system. Sometimes that will be a third party system (e.g. a user might be created\nvia Slack) or sometimes it might be something triggered from inside incident.io (e.g. a severity created as part of setup).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"system\",\n \"id\": \"incident_setup\",\n \"name\": \"incident.io (setup)\",\n \"metadata\": {}\n }\n```\n\n### Workflows\n\nThis is for changes triggered by a workflow: for example, a workflow that invites users to a private incident.\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"workflow\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Auto-invite security team to private incidents\",\n \"metadata\": {}\n }\n```\n\n### External resources\n\nThis is for changes triggered by a specific [external resource](https://api-docs.incident.io/tag/Incident-Attachments-V1) (also known as an attachment).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"external_resource\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"#1234 Increased API latency\",\n \"metadata\": {\n \"external_resource_type\": \"pager_duty_incident\",\n \"external_resource_external_id\": \"q1234\"\n }\n }\n```\n\n### Alerts\n\nThis is for changes triggered by a specific alert (e.g. from Datadog or Grafana).\n\nAs an example:\n\n```\n\"actor\": {\n \"type\": \"alert\",\n \"id\": \"01G0J1EXE7AXZ2C93K61WBPYEH\",\n \"name\": \"Staging: pod CPU high\",\n \"metadata\": {\n \"alert_source_id\": \"01HB0ZG3B0HM04RCXNSPV1EDYG\"\n }\n }\n```\n" } ], "x-webhooks": { @@ -40379,6 +40581,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40434,6 +40637,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -40556,6 +40760,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40634,6 +40839,7 @@ "workload_minutes_total": 60.7, "workload_minutes_working": 20 }, + "message": "We're working on a fix, hoping to ship in the next 30 minutes", "new_status": { "category": "triage", "created_at": "2021-08-17T13:28:57.801578Z", @@ -40748,6 +40954,7 @@ "issue_permalink": "https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up", "provider": "asana" }, + "has_debrief": false, "id": "01FDAG4SAP5TYPT98WGR2N7W91", "incident_role_assignments": [ { @@ -40803,6 +41010,7 @@ "updated_at": "2021-08-17T13:28:57.801578Z" }, "mode": "standard", + "most_recent_update_message": "We're working on a fix, hoping to ship in the next 30 minutes", "name": "Our database is sad", "permalink": "https://app.incident.io/incidents/123", "postmortem_document_url": "https://docs.google.com/my_doc_id", @@ -43656,6 +43864,288 @@ } } }, + "/x-audit-logs/postmortem_section.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionCreatedV1", + "description": "This entry is created whenever a postmortem template section is created", + "operationId": "Audit logs#PostmortemSectionCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_section.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionDeletedV1", + "description": "This entry is created whenever a postmortem template section is deleted", + "operationId": "Audit logs#PostmortemSectionDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_section.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemSectionUpdatedV1", + "description": "This entry is created whenever a postmortem template section is updated", + "operationId": "Audit logs#PostmortemSectionUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_section.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.created.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateCreatedV1", + "description": "This entry is created whenever a postmortem template is created", + "operationId": "Audit logs#PostmortemTemplateCreatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.created", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.deleted.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateDeletedV1", + "description": "This entry is created whenever a postmortem template is deleted", + "operationId": "Audit logs#PostmortemTemplateDeletedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.deleted", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, + "/x-audit-logs/postmortem_template.updated.1": { + "get": { + "tags": [ + "Audit logs" + ], + "summary": "PostmortemTemplateUpdatedV1", + "description": "This entry is created whenever a postmortem template is updated", + "operationId": "Audit logs#PostmortemTemplateUpdatedV1", + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuditLogEntryBaseV2" + }, + "example": { + "action": "postmortem_template.updated", + "actor": { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "metadata": { + "user_base_role_slug": "admin", + "user_custom_role_slugs": "engineering,security" + }, + "name": "John Doe", + "type": "user" + }, + "context": { + "location": "1.2.3.4", + "user_agent": "Chrome/91.0.4472.114" + }, + "occurred_at": "2021-08-17T13:28:57.801578Z", + "targets": [ + { + "id": "01FCNDV6P870EA6S7TK1DSYDG0", + "name": "Schedule a debrief", + "type": "post_incident_task" + } + ], + "version": 1 + } + } + } + } + } + } + }, "/x-audit-logs/private_incident.access_attempted.1": { "get": { "tags": [ diff --git a/internal/apischema/openapi3.yaml b/internal/apischema/openapi3.yaml index d3e4112..d6dbc3c 100644 --- a/internal/apischema/openapi3.yaml +++ b/internal/apischema/openapi3.yaml @@ -1936,84 +1936,15 @@ paths: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -2615,84 +2546,15 @@ paths: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -4072,6 +3934,15 @@ paths: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -4130,6 +4001,15 @@ paths: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -4232,6 +4112,15 @@ paths: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -4301,6 +4190,15 @@ paths: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -4359,6 +4257,15 @@ paths: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -5179,6 +5086,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -5354,6 +5262,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -5499,6 +5408,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -5677,6 +5587,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -5863,6 +5774,52 @@ paths: name: Lisa Karlin Curtis role: viewer slack_user_id: U02AYNF2XJM + /v2/schedule_overrides: + post: + tags: + - Schedules V2 + summary: CreateOverride Schedules V2 + description: Create a new schedule override. + operationId: Schedules V2#CreateOverride + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleOverrideCreatePayloadV2' + example: + end_at: "2021-08-17T14:00:00.000000Z" + layer_id: 01G0J1EXE7AXZ2C93K61WBPYNH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:00:00.000000Z" + user: + email: bob@example.com + id: 01G0J1EXE7AXZ2C93K61WBPYEH + slack_user_id: USER123 + responses: + "201": + description: Created response. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateOverrideResponseBody' + example: + override: + created_at: "2021-08-17T13:28:57.801578Z" + end_at: "2021-08-17T13:28:57.801578Z" + id: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:28:57.801578Z" + updated_at: "2021-08-17T13:28:57.801578Z" + user: + email: lisa@incident.io + id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Lisa Karlin Curtis + role: viewer + slack_user_id: U02AYNF2XJM /v2/schedules: get: tags: @@ -9127,6 +9084,198 @@ paths: name: Schedule a debrief type: post_incident_task version: 1 + /x-audit-logs/postmortem_section.created.1: + get: + tags: + - Audit logs + summary: PostmortemSectionCreatedV1 Audit logs + description: This entry is created whenever a postmortem template section is created + operationId: Audit logs#PostmortemSectionCreatedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_section.created + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 + /x-audit-logs/postmortem_section.deleted.1: + get: + tags: + - Audit logs + summary: PostmortemSectionDeletedV1 Audit logs + description: This entry is created whenever a postmortem template section is deleted + operationId: Audit logs#PostmortemSectionDeletedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_section.deleted + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 + /x-audit-logs/postmortem_section.updated.1: + get: + tags: + - Audit logs + summary: PostmortemSectionUpdatedV1 Audit logs + description: This entry is created whenever a postmortem template section is updated + operationId: Audit logs#PostmortemSectionUpdatedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_section.updated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 + /x-audit-logs/postmortem_template.created.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateCreatedV1 Audit logs + description: This entry is created whenever a postmortem template is created + operationId: Audit logs#PostmortemTemplateCreatedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_template.created + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 + /x-audit-logs/postmortem_template.deleted.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateDeletedV1 Audit logs + description: This entry is created whenever a postmortem template is deleted + operationId: Audit logs#PostmortemTemplateDeletedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_template.deleted + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 + /x-audit-logs/postmortem_template.updated.1: + get: + tags: + - Audit logs + summary: PostmortemTemplateUpdatedV1 Audit logs + description: This entry is created whenever a postmortem template is updated + operationId: Audit logs#PostmortemTemplateUpdatedV1 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditLogEntryBaseV2' + example: + action: postmortem_template.updated + actor: + id: 01FCNDV6P870EA6S7TK1DSYDG0 + metadata: + user_base_role_slug: admin + user_custom_role_slugs: engineering,security + name: John Doe + type: user + context: + location: 1.2.3.4 + user_agent: Chrome/91.0.4472.114 + occurred_at: "2021-08-17T13:28:57.801578Z" + targets: + - id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Schedule a debrief + type: post_incident_task + version: 1 /x-audit-logs/private_incident.access_attempted.1: get: tags: @@ -10298,6 +10447,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -10341,6 +10491,7 @@ paths: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -10414,6 +10565,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -10478,6 +10630,7 @@ paths: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -10543,6 +10696,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -10586,6 +10740,7 @@ paths: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -10962,6 +11117,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -11005,6 +11161,7 @@ paths: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -11094,6 +11251,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -11158,6 +11316,7 @@ paths: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -11239,6 +11398,7 @@ paths: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -11282,6 +11442,7 @@ paths: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -11689,6 +11850,14 @@ components: type: string description: The ID of this alert example: 01GW2G3V0S59R238FAHPDS1R66 + image_urls: + type: array + items: + type: string + example: abc123 + description: URLs of images associated with this alert + example: + - abc123 payload: type: string description: JSON payload that this alert was created from @@ -11733,6 +11902,7 @@ components: - grafana - http - honeycomb + - nagios - jira - monte_carlo - new_relic @@ -11740,6 +11910,7 @@ components: - pager_duty - panther - pingdom + - prtg - runscope - sns - sentry @@ -11821,6 +11992,8 @@ components: evaluation_failures: abc123: abc123 id: 01GW2G3V0S59R238FAHPDS1R66 + image_urls: + - abc123 payload: abc123 priority: archived_at: "2021-08-17T13:28:57.801578Z" @@ -12056,6 +12229,45 @@ components: required: - alert_source_id - condition_groups + AlertRouteAlertSourcePayloadV2: + type: object + properties: + alert_source_id: + type: string + description: The alert source ID that will match for the route + example: 01FCNDV6P870EA6S7TK1DSYDG0 + condition_groups: + type: array + items: + $ref: '#/components/schemas/ConditionGroupPayloadV2' + description: What conditions should alerts from this source meet to be included in this alert route? + example: + - conditions: + - operation: one_of + param_bindings: + - array_value: + - literal: SEV123 + reference: incident.severity + value: + literal: SEV123 + reference: incident.severity + subject: incident.severity + example: + alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 + condition_groups: + - conditions: + - operation: one_of + param_bindings: + - array_value: + - literal: SEV123 + reference: incident.severity + value: + literal: SEV123 + reference: incident.severity + subject: incident.severity + required: + - alert_source_id + - condition_groups AlertRouteDefinitionsV2: type: object properties: @@ -12324,9 +12536,7 @@ components: example: false last_fired_at: type: string - description: When did this alert route last create an incident? - example: "2021-08-17T13:28:57.801578Z" - format: date-time + example: abc123 name: type: string description: The name of this alert route config, for the user's reference @@ -12547,7 +12757,7 @@ components: label: Incident Severity reference: incident.severity incident_enabled: false - last_fired_at: "2021-08-17T13:28:57.801578Z" + last_fired_at: abc123 name: Production incidents template: custom_field_priorities: @@ -12875,90 +13085,21 @@ components: alert_sources: type: array items: - $ref: '#/components/schemas/AlertRouteAlertSource' + $ref: '#/components/schemas/AlertRouteAlertSourcePayloadV2' description: Which alert sources should this alert route match? example: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + - literal: SEV123 + reference: incident.severity + value: + literal: SEV123 + reference: incident.severity + subject: incident.severity auto_decline_enabled: type: boolean description: Should triage incidents be declined when alerts are resolved? @@ -13105,84 +13246,15 @@ components: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -13674,6 +13746,7 @@ components: - auto_decline_enabled - enabled - incident_enabled + - is_private - incident_condition_groups - alert_sources - auto_cancel_escalations @@ -13718,6 +13791,7 @@ components: - grafana - http - honeycomb + - nagios - jira - monte_carlo - new_relic @@ -13725,6 +13799,7 @@ components: - pager_duty - panther - pingdom + - prtg - runscope - sns - sentry @@ -13943,6 +14018,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -13986,6 +14062,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -14059,6 +14136,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -14123,6 +14201,7 @@ components: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -14188,6 +14267,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -14231,6 +14311,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -14462,10 +14543,13 @@ components: - internal_status_page - nudge - policy + - post_incident_task + - postmortem_template + - postmortem_template_section - private_incident_membership - rbac_role - - schedule - scim_group + - schedule - severity - status_page - status_page_sub_page @@ -16133,6 +16217,7 @@ components: enum: - action - alert + - announcement - bolt - toggle-left - book @@ -16141,6 +16226,7 @@ components: - browser - bulb - calendar + - chart - checkmark - clipboard - clock @@ -16166,12 +16252,14 @@ components: - incident - incident_type - key + - lock - ms-teams - merge - message - money - mug - number-input + - on-call - priority - private - text-align-left @@ -16179,6 +16267,7 @@ components: - server - severity - slack + - slack-greyscale - slack_channel - slack_team - star @@ -16477,6 +16566,29 @@ components: source_url: https://github.com/my-company/infrastructure required: - managed_resource + CreateOverrideResponseBody: + type: object + properties: + override: + $ref: '#/components/schemas/ScheduleOverrideV2' + example: + override: + created_at: "2021-08-17T13:28:57.801578Z" + end_at: "2021-08-17T13:28:57.801578Z" + id: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:28:57.801578Z" + updated_at: "2021-08-17T13:28:57.801578Z" + user: + email: lisa@incident.io + id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Lisa Karlin Curtis + role: viewer + slack_user_id: U02AYNF2XJM + required: + - override CreatePathResponseBody: type: object properties: @@ -16521,6 +16633,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: user + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19114,6 +19235,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19152,6 +19282,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19196,6 +19335,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19229,6 +19377,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19300,6 +19457,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19344,6 +19510,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19400,6 +19575,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19439,6 +19623,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19492,6 +19685,46 @@ components: time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 required: - targets + EscalationPathNodeNotifyChannelV2: + type: object + properties: + targets: + type: array + items: + $ref: '#/components/schemas/EscalationPathTargetV2' + description: The targets for this level + example: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: + type: string + description: If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive + example: active + enum: + - active + - inactive + time_to_ack_seconds: + type: integer + description: How long should we wait for this level to acknowledge before escalating? + example: 1800 + format: int64 + time_to_ack_weekday_interval_config_id: + type: string + description: If the time to ack is relative to a time window, this identifies which window it is relative to + example: 01FCNDV6P870EA6S7TK1DSYDG0 + example: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + required: + - targets EscalationPathNodePayloadV2: type: object properties: @@ -19503,6 +19736,8 @@ components: $ref: '#/components/schemas/EscalationPathNodeIfElsePayloadV2' level: $ref: '#/components/schemas/EscalationPathNodeLevelV2' + notify_channel: + $ref: '#/components/schemas/EscalationPathNodeNotifyChannelV2' repeat: $ref: '#/components/schemas/EscalationPathNodeRepeatV2' type: @@ -19543,6 +19778,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19579,6 +19823,8 @@ components: $ref: '#/components/schemas/EscalationPathNodeIfElseV2' level: $ref: '#/components/schemas/EscalationPathNodeLevelV2' + notify_channel: + $ref: '#/components/schemas/EscalationPathNodeNotifyChannelV2' repeat: $ref: '#/components/schemas/EscalationPathNodeRepeatV2' type: @@ -19625,6 +19871,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19673,6 +19928,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19721,6 +19985,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19843,6 +20116,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -19898,6 +20180,15 @@ components: time_to_ack_interval_condition: active time_to_ack_seconds: 1800 time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 + notify_channel: + targets: + - id: lawrencejones + schedule_mode: currently_on_call + type: schedule + urgency: high + time_to_ack_interval_condition: active + time_to_ack_seconds: 1800 + time_to_ack_weekday_interval_config_id: 01FCNDV6P870EA6S7TK1DSYDG0 repeat: repeat_times: 3 to_node: 01FCNDV6P870EA6S7TK1DSYDG0 @@ -20468,6 +20759,7 @@ components: - count - min - max + - sum - random - first - parse @@ -20540,6 +20832,7 @@ components: - count - min - max + - sum - random - first - parse @@ -21250,6 +21543,7 @@ components: - incident_memberships_editor - schedules_editor - schedules_reader + - schedule_overrides_editor - workflows_editor - private_workflows_editor - on_call_editor @@ -22875,6 +23169,10 @@ components: value_seconds: 1 external_issue_reference: $ref: '#/components/schemas/ExternalIssueReferenceV2' + has_debrief: + type: boolean + description: If this incident has a debrief attached + example: false id: type: string description: Unique identifier for the incident @@ -23041,6 +23339,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -23130,6 +23429,10 @@ components: properties: incident: $ref: '#/components/schemas/IncidentV2' + message: + type: string + description: Message that explains the context behind the update + example: We're working on a fix, hoping to ship in the next 30 minutes new_status: $ref: '#/components/schemas/IncidentStatusV2' previous_status: @@ -23184,6 +23487,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -23248,6 +23552,7 @@ components: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -24159,6 +24464,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -24275,6 +24581,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -25735,6 +26042,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -25778,6 +26086,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -25881,6 +26190,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -25945,6 +26255,7 @@ components: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -26040,6 +26351,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -26083,6 +26395,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -26654,6 +26967,115 @@ components: example: id: 01G0J1EXE7AXZ2C93K61WBPYEH name: Layer 1 + ScheduleOverrideCreatePayloadV2: + type: object + properties: + end_at: + type: string + description: End time of the override + example: "2021-08-17T14:00:00.000000Z" + format: date-time + layer_id: + type: string + description: The layer this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYNH + rotation_id: + type: string + description: The rotation this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: + type: string + description: The schedule this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: + type: string + description: Start time of the override + example: "2021-08-17T13:00:00.000000Z" + format: date-time + user: + $ref: '#/components/schemas/UserReferencePayloadV2' + example: + end_at: "2021-08-17T14:00:00.000000Z" + layer_id: 01G0J1EXE7AXZ2C93K61WBPYNH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:00:00.000000Z" + user: + email: bob@example.com + id: 01G0J1EXE7AXZ2C93K61WBPYEH + slack_user_id: USER123 + required: + - start_at + - end_at + - schedule_id + - rotation_id + - layer_id + - user + ScheduleOverrideV2: + type: object + properties: + created_at: + type: string + example: "2021-08-17T13:28:57.801578Z" + format: date-time + end_at: + type: string + description: End of the override + example: "2021-08-17T13:28:57.801578Z" + format: date-time + id: + type: string + description: Unique internal ID of the schedule override + example: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: + type: string + description: The layer on the rotation on the schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: + type: string + description: The rotation on the schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: + type: string + description: The schedule that this override applies to + example: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: + type: string + description: Start of the override + example: "2021-08-17T13:28:57.801578Z" + format: date-time + updated_at: + type: string + example: "2021-08-17T13:28:57.801578Z" + format: date-time + user: + $ref: '#/components/schemas/UserV2' + example: + created_at: "2021-08-17T13:28:57.801578Z" + end_at: "2021-08-17T13:28:57.801578Z" + id: 01G0J1EXE7AXZ2C93K61WBPYEH + layer_id: 01G0J1EXE7AXZ2C93K61WBPYEH + rotation_id: 01G0J1EXE7AXZ2C93K61WBPYEH + schedule_id: 01G0J1EXE7AXZ2C93K61WBPYEH + start_at: "2021-08-17T13:28:57.801578Z" + updated_at: "2021-08-17T13:28:57.801578Z" + user: + email: lisa@incident.io + id: 01FCNDV6P870EA6S7TK1DSYDG0 + name: Lisa Karlin Curtis + role: viewer + slack_user_id: U02AYNF2XJM + required: + - id + - schedule_id + - rotation_id + - layer_id + - user + - start_at + - end_at + - created_at + - updated_at + - user_id ScheduleRotationCreatePayloadV2: type: object properties: @@ -27831,6 +28253,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -28510,90 +28933,21 @@ components: alert_sources: type: array items: - $ref: '#/components/schemas/AlertRouteAlertSource' + $ref: '#/components/schemas/AlertRouteAlertSourcePayloadV2' description: Which alert sources should this alert route match? example: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: type: boolean description: Should triage incidents be declined when alerts are resolved? @@ -28740,84 +29094,15 @@ components: - alert_source_id: 01FCNDV6P870EA6S7TK1DSYDG0 condition_groups: - conditions: - - operation: - label: Lawrence Jones - value: 01FCQSP07Z74QMMYPDDGQB9FTG + - operation: one_of param_bindings: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 + - literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones literal: SEV123 reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - params: - - array: true - default_value: - array_value: - - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - value: - catalog_entry: - archived_at: "2021-08-17T14:28:57.801578Z" - catalog_entry_id: 01FCNDV6P870EA6S7TK1DSYDG0 - catalog_entry_name: Primary escalation - catalog_type_id: 01FCNDV6P870EA6S7TK1DSYDG0 - helptext: Collection of standalone automations like auto-closing incidents. - image_url: https://avatars.slack-edge.com/2021-08-09/2372763167857_6f65d94928b0a0ac590b_192.jpg - is_image_slack_icon: false - label: Lawrence Jones - literal: SEV123 - reference: incident.severity - sort_key: "000020" - unavailable: false - value: abc123 - description: What slack channel should we send the message to? - infer_reference: true - label: To date - name: severity - optional: true - type: IncidentSeverity - subject: - color: yellow - icon: action - label: Incident Severity - reference: incident.severity + subject: incident.severity auto_decline_enabled: false condition_groups: - conditions: @@ -28976,6 +29261,7 @@ components: - auto_decline_enabled - enabled - incident_enabled + - is_private - incident_condition_groups - alert_sources - auto_cancel_escalations @@ -29973,6 +30259,10 @@ components: value_seconds: 1 external_issue_reference: $ref: '#/components/schemas/ExternalIssueReferenceV2' + has_debrief: + type: boolean + description: If this incident has a debrief attached + example: false id: type: string description: Unique identifier for the incident @@ -30024,6 +30314,10 @@ components: - retrospective - test - tutorial + most_recent_update_message: + type: string + description: Message that explains the context behind the update + example: We're working on a fix, hoping to ship in the next 30 minutes name: type: string description: Explanation of the incident @@ -30147,6 +30441,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -30190,6 +30485,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -30433,6 +30729,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -30476,6 +30773,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -30549,6 +30847,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -30613,6 +30912,7 @@ components: workload_minutes_sleeping: 0 workload_minutes_total: 60.7 workload_minutes_working: 20 + message: We're working on a fix, hoping to ship in the next 30 minutes new_status: category: triage created_at: "2021-08-17T13:28:57.801578Z" @@ -30678,6 +30978,7 @@ components: issue_name: INC-123 issue_permalink: https://linear.app/incident-io/issue/INC-1609/find-copywriter-to-write-up provider: asana + has_debrief: false id: 01FDAG4SAP5TYPT98WGR2N7W91 incident_role_assignments: - assignee: @@ -30721,6 +31022,7 @@ components: private_incidents_only: false updated_at: "2021-08-17T13:28:57.801578Z" mode: standard + most_recent_update_message: We're working on a fix, hoping to ship in the next 30 minutes name: Our database is sad permalink: https://app.incident.io/incidents/123 postmortem_document_url: https://docs.google.com/my_doc_id @@ -32141,7 +32443,7 @@ tags: ## Understanding actors - Each entry will have an actor associated with it, which is one of 5 types: + Each entry will have an actor associated with it, which is one of 6 types: ### Users @@ -32226,6 +32528,23 @@ tags: } } ``` + + ### Alerts + + This is for changes triggered by a specific alert (e.g. from Datadog or Grafana). + + As an example: + + ``` + "actor": { + "type": "alert", + "id": "01G0J1EXE7AXZ2C93K61WBPYEH", + "name": "Staging: pod CPU high", + "metadata": { + "alert_source_id": "01HB0ZG3B0HM04RCXNSPV1EDYG" + } + } + ``` - name: Alert Events V2 description: | Create alerts within incident.io. @@ -32379,7 +32698,9 @@ tags: Allows callers to set whether a resource is being managed externally, and where the source configuration is. - name: Schedules V2 - description: "Beta: \nView and manage schedules.\nManage your full schedule of on-call rotations, including the users and rotation configuration.\n" + description: | + View and manage schedules. + Manage your full schedule of on-call rotations, including the users and rotation configuration. - name: Severities V1 description: | Manage incident severities. diff --git a/internal/client/client.gen.go b/internal/client/client.gen.go index 261be5a..f828eb6 100644 --- a/internal/client/client.gen.go +++ b/internal/client/client.gen.go @@ -1,6 +1,6 @@ // Package client provides primitives to interact with the openapi HTTP API. // -// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT. +// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.3.0 DO NOT EDIT. package client import ( @@ -14,7 +14,7 @@ import ( "strings" "time" - "github.com/deepmap/oapi-codegen/pkg/runtime" + "github.com/oapi-codegen/runtime" ) // Defines values for ActionV1Status. @@ -149,83 +149,6 @@ const ( CatalogTypeV2IconUsers CatalogTypeV2Icon = "users" ) -// Defines values for ConditionSubjectColor. -const ( - ConditionSubjectColorBlue ConditionSubjectColor = "blue" - ConditionSubjectColorCyan ConditionSubjectColor = "cyan" - ConditionSubjectColorGreen ConditionSubjectColor = "green" - ConditionSubjectColorOrange ConditionSubjectColor = "orange" - ConditionSubjectColorPink ConditionSubjectColor = "pink" - ConditionSubjectColorViolet ConditionSubjectColor = "violet" - ConditionSubjectColorYellow ConditionSubjectColor = "yellow" -) - -// Defines values for ConditionSubjectIcon. -const ( - ConditionSubjectIconAction ConditionSubjectIcon = "action" - ConditionSubjectIconAlert ConditionSubjectIcon = "alert" - ConditionSubjectIconBolt ConditionSubjectIcon = "bolt" - ConditionSubjectIconBook ConditionSubjectIcon = "book" - ConditionSubjectIconBox ConditionSubjectIcon = "box" - ConditionSubjectIconBriefcase ConditionSubjectIcon = "briefcase" - ConditionSubjectIconBrowser ConditionSubjectIcon = "browser" - ConditionSubjectIconBulb ConditionSubjectIcon = "bulb" - ConditionSubjectIconCalendar ConditionSubjectIcon = "calendar" - ConditionSubjectIconCheckmark ConditionSubjectIcon = "checkmark" - ConditionSubjectIconClipboard ConditionSubjectIcon = "clipboard" - ConditionSubjectIconClock ConditionSubjectIcon = "clock" - ConditionSubjectIconClose ConditionSubjectIcon = "close" - ConditionSubjectIconCog ConditionSubjectIcon = "cog" - ConditionSubjectIconComponents ConditionSubjectIcon = "components" - ConditionSubjectIconCustomField ConditionSubjectIcon = "custom_field" - ConditionSubjectIconDatabase ConditionSubjectIcon = "database" - ConditionSubjectIconDelete ConditionSubjectIcon = "delete" - ConditionSubjectIconDoc ConditionSubjectIcon = "doc" - ConditionSubjectIconEmail ConditionSubjectIcon = "email" - ConditionSubjectIconEscalate ConditionSubjectIcon = "escalate" - ConditionSubjectIconEscalationPath ConditionSubjectIcon = "escalation-path" - ConditionSubjectIconExclamation ConditionSubjectIcon = "exclamation" - ConditionSubjectIconExport ConditionSubjectIcon = "export" - ConditionSubjectIconExternalLink ConditionSubjectIcon = "external-link" - ConditionSubjectIconFiles ConditionSubjectIcon = "files" - ConditionSubjectIconFlag ConditionSubjectIcon = "flag" - ConditionSubjectIconFolder ConditionSubjectIcon = "folder" - ConditionSubjectIconFollowUps ConditionSubjectIcon = "follow_ups" - ConditionSubjectIconGitBranchNew ConditionSubjectIcon = "git-branch-new" - ConditionSubjectIconGlobe ConditionSubjectIcon = "globe" - ConditionSubjectIconIncident ConditionSubjectIcon = "incident" - ConditionSubjectIconIncidentType ConditionSubjectIcon = "incident_type" - ConditionSubjectIconKey ConditionSubjectIcon = "key" - ConditionSubjectIconMerge ConditionSubjectIcon = "merge" - ConditionSubjectIconMessage ConditionSubjectIcon = "message" - ConditionSubjectIconMoney ConditionSubjectIcon = "money" - ConditionSubjectIconMsTeams ConditionSubjectIcon = "ms-teams" - ConditionSubjectIconMug ConditionSubjectIcon = "mug" - ConditionSubjectIconNumberInput ConditionSubjectIcon = "number-input" - ConditionSubjectIconPriority ConditionSubjectIcon = "priority" - ConditionSubjectIconPrivate ConditionSubjectIcon = "private" - ConditionSubjectIconSearch ConditionSubjectIcon = "search" - ConditionSubjectIconServer ConditionSubjectIcon = "server" - ConditionSubjectIconSeverity ConditionSubjectIcon = "severity" - ConditionSubjectIconSlack ConditionSubjectIcon = "slack" - ConditionSubjectIconSlackChannel ConditionSubjectIcon = "slack_channel" - ConditionSubjectIconSlackTeam ConditionSubjectIcon = "slack_team" - ConditionSubjectIconStar ConditionSubjectIcon = "star" - ConditionSubjectIconStatus ConditionSubjectIcon = "status" - ConditionSubjectIconStatusPage ConditionSubjectIcon = "status-page" - ConditionSubjectIconStore ConditionSubjectIcon = "store" - ConditionSubjectIconTag ConditionSubjectIcon = "tag" - ConditionSubjectIconTest ConditionSubjectIcon = "test" - ConditionSubjectIconText ConditionSubjectIcon = "text" - ConditionSubjectIconTextAlignLeft ConditionSubjectIcon = "text-align-left" - ConditionSubjectIconTimestamp ConditionSubjectIcon = "timestamp" - ConditionSubjectIconToggleLeft ConditionSubjectIcon = "toggle-left" - ConditionSubjectIconTriage ConditionSubjectIcon = "triage" - ConditionSubjectIconUser ConditionSubjectIcon = "user" - ConditionSubjectIconUsers ConditionSubjectIcon = "users" - ConditionSubjectIconWarning ConditionSubjectIcon = "warning" -) - // Defines values for CreateHTTPRequestBodyStatus. const ( Firing CreateHTTPRequestBodyStatus = "firing" @@ -410,11 +333,11 @@ const ( // Defines values for CustomFieldV2FieldType. const ( - Link CustomFieldV2FieldType = "link" - MultiSelect CustomFieldV2FieldType = "multi_select" - Numeric CustomFieldV2FieldType = "numeric" - SingleSelect CustomFieldV2FieldType = "single_select" - Text CustomFieldV2FieldType = "text" + CustomFieldV2FieldTypeLink CustomFieldV2FieldType = "link" + CustomFieldV2FieldTypeMultiSelect CustomFieldV2FieldType = "multi_select" + CustomFieldV2FieldTypeNumeric CustomFieldV2FieldType = "numeric" + CustomFieldV2FieldTypeSingleSelect CustomFieldV2FieldType = "single_select" + CustomFieldV2FieldTypeText CustomFieldV2FieldType = "text" ) // Defines values for EmbeddedIncidentRoleV2RoleType. @@ -430,6 +353,12 @@ const ( EscalationPathNodeLevelV2TimeToAckIntervalConditionInactive EscalationPathNodeLevelV2TimeToAckIntervalCondition = "inactive" ) +// Defines values for EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition. +const ( + EscalationPathNodeNotifyChannelV2TimeToAckIntervalConditionActive EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition = "active" + EscalationPathNodeNotifyChannelV2TimeToAckIntervalConditionInactive EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition = "inactive" +) + // Defines values for EscalationPathNodePayloadV2Type. const ( EscalationPathNodePayloadV2TypeIfElse EscalationPathNodePayloadV2Type = "if_else" @@ -478,6 +407,7 @@ const ( ExpressionOperationPayloadV2OperationTypeNavigate ExpressionOperationPayloadV2OperationType = "navigate" ExpressionOperationPayloadV2OperationTypeParse ExpressionOperationPayloadV2OperationType = "parse" ExpressionOperationPayloadV2OperationTypeRandom ExpressionOperationPayloadV2OperationType = "random" + ExpressionOperationPayloadV2OperationTypeSum ExpressionOperationPayloadV2OperationType = "sum" ) // Defines values for ExpressionOperationV2OperationType. @@ -491,6 +421,7 @@ const ( ExpressionOperationV2OperationTypeNavigate ExpressionOperationV2OperationType = "navigate" ExpressionOperationV2OperationTypeParse ExpressionOperationV2OperationType = "parse" ExpressionOperationV2OperationTypeRandom ExpressionOperationV2OperationType = "random" + ExpressionOperationV2OperationTypeSum ExpressionOperationV2OperationType = "sum" ) // Defines values for ExternalIssueReferenceV1Provider. @@ -552,6 +483,7 @@ const ( IdentityV1RolesManageSettings IdentityV1Roles = "manage_settings" IdentityV1RolesOnCallEditor IdentityV1Roles = "on_call_editor" IdentityV1RolesPrivateWorkflowsEditor IdentityV1Roles = "private_workflows_editor" + IdentityV1RolesScheduleOverridesEditor IdentityV1Roles = "schedule_overrides_editor" IdentityV1RolesSchedulesEditor IdentityV1Roles = "schedules_editor" IdentityV1RolesSchedulesReader IdentityV1Roles = "schedules_reader" IdentityV1RolesViewer IdentityV1Roles = "viewer" @@ -768,13 +700,13 @@ const ( // Defines values for UpdateTypeRequestBodyColor. const ( - UpdateTypeRequestBodyColorBlue UpdateTypeRequestBodyColor = "blue" - UpdateTypeRequestBodyColorCyan UpdateTypeRequestBodyColor = "cyan" - UpdateTypeRequestBodyColorGreen UpdateTypeRequestBodyColor = "green" - UpdateTypeRequestBodyColorOrange UpdateTypeRequestBodyColor = "orange" - UpdateTypeRequestBodyColorPink UpdateTypeRequestBodyColor = "pink" - UpdateTypeRequestBodyColorViolet UpdateTypeRequestBodyColor = "violet" - UpdateTypeRequestBodyColorYellow UpdateTypeRequestBodyColor = "yellow" + Blue UpdateTypeRequestBodyColor = "blue" + Cyan UpdateTypeRequestBodyColor = "cyan" + Green UpdateTypeRequestBodyColor = "green" + Orange UpdateTypeRequestBodyColor = "orange" + Pink UpdateTypeRequestBodyColor = "pink" + Violet UpdateTypeRequestBodyColor = "violet" + Yellow UpdateTypeRequestBodyColor = "yellow" ) // Defines values for UpdateTypeRequestBodyIcon. @@ -892,10 +824,10 @@ const ( // Defines values for WorkflowSlimState. const ( - Active WorkflowSlimState = "active" - Disabled WorkflowSlimState = "disabled" - Draft WorkflowSlimState = "draft" - Error WorkflowSlimState = "error" + WorkflowSlimStateActive WorkflowSlimState = "active" + WorkflowSlimStateDisabled WorkflowSlimState = "disabled" + WorkflowSlimStateDraft WorkflowSlimState = "draft" + WorkflowSlimStateError WorkflowSlimState = "error" ) // Defines values for ActionsV1ListParamsIncidentMode. @@ -1061,13 +993,13 @@ type AlertResultMessage string // AlertResultStatus Status of the event type AlertResultStatus string -// AlertRouteAlertSource defines model for AlertRouteAlertSource. -type AlertRouteAlertSource struct { +// AlertRouteAlertSourcePayloadV2 defines model for AlertRouteAlertSourcePayloadV2. +type AlertRouteAlertSourcePayloadV2 struct { // AlertSourceId The alert source ID that will match for the route AlertSourceId string `json:"alert_source_id"` // ConditionGroups What conditions should alerts from this source meet to be included in this alert route? - ConditionGroups []ConditionGroup `json:"condition_groups"` + ConditionGroups []ConditionGroupPayloadV2 `json:"condition_groups"` } // AlertRouteEscalationBindingPayloadV2 defines model for AlertRouteEscalationBindingPayloadV2. @@ -1128,7 +1060,7 @@ type AlertRouteIncidentTemplateV2PrioritySeverity string // AlertRoutePayloadV2 defines model for AlertRoutePayloadV2. type AlertRoutePayloadV2 struct { // AlertSources Which alert sources should this alert route match? - AlertSources *[]AlertRouteAlertSource `json:"alert_sources,omitempty"` + AlertSources *[]AlertRouteAlertSourcePayloadV2 `json:"alert_sources,omitempty"` // AutoDeclineEnabled Should triage incidents be declined when alerts are resolved? AutoDeclineEnabled *bool `json:"auto_decline_enabled,omitempty"` @@ -1232,21 +1164,6 @@ type CatalogEntryEngineParamBindingValueV2 struct { Value *string `json:"value,omitempty"` } -// CatalogEntryReference defines model for CatalogEntryReference. -type CatalogEntryReference struct { - // ArchivedAt When this entry was archived - ArchivedAt *time.Time `json:"archived_at,omitempty"` - - // CatalogEntryId ID of this catalog entry - CatalogEntryId string `json:"catalog_entry_id"` - - // CatalogEntryName The name of this entry - CatalogEntryName string `json:"catalog_entry_name"` - - // CatalogTypeId ID of this catalog type - CatalogTypeId string `json:"catalog_type_id"` -} - // CatalogEntryReferenceV2 defines model for CatalogEntryReferenceV2. type CatalogEntryReferenceV2 struct { // ArchivedAt When this entry was archived @@ -1464,24 +1381,6 @@ type CatalogTypeV2Color string // CatalogTypeV2Icon Sets the display icon of this type in the dashboard type CatalogTypeV2Icon string -// Condition defines model for Condition. -type Condition struct { - Operation ConditionOperation `json:"operation"` - - // ParamBindings Bindings for the operation parameters - ParamBindings []EngineParamBinding `json:"param_bindings"` - - // Params Type information for the operation parameters - Params []EngineParam `json:"params"` - Subject ConditionSubject `json:"subject"` -} - -// ConditionGroup defines model for ConditionGroup. -type ConditionGroup struct { - // Conditions All conditions in this list must be satisfied for the group to be satisfied - Conditions []Condition `json:"conditions"` -} - // ConditionGroupPayloadV2 defines model for ConditionGroupPayloadV2. type ConditionGroupPayloadV2 struct { // Conditions All conditions in this list must be satisfied for the group to be satisfied @@ -1494,15 +1393,6 @@ type ConditionGroupV2 struct { Conditions []ConditionV2 `json:"conditions"` } -// ConditionOperation defines model for ConditionOperation. -type ConditionOperation struct { - // Label Human readable label to be displayed for user to select - Label string `json:"label"` - - // Value Unique identifier for this option - Value string `json:"value"` -} - // ConditionOperationV2 defines model for ConditionOperationV2. type ConditionOperationV2 struct { // Label Human readable label to be displayed for user to select @@ -1524,27 +1414,6 @@ type ConditionPayloadV2 struct { Subject string `json:"subject"` } -// ConditionSubject defines model for ConditionSubject. -type ConditionSubject struct { - // Color String telling the UI what color to use for this field, if applicable - Color *ConditionSubjectColor `json:"color,omitempty"` - - // Icon String telling the UI what icon to use for this field - Icon ConditionSubjectIcon `json:"icon"` - - // Label Human readable identifier for the subject - Label string `json:"label"` - - // Reference Reference into the scope for the value of the subject - Reference string `json:"reference"` -} - -// ConditionSubjectColor String telling the UI what color to use for this field, if applicable -type ConditionSubjectColor string - -// ConditionSubjectIcon String telling the UI what icon to use for this field -type ConditionSubjectIcon string - // ConditionSubjectV2 defines model for ConditionSubjectV2. type ConditionSubjectV2 struct { // Label Human readable identifier for the subject @@ -1633,6 +1502,11 @@ type CreateManagedResourceResponseBody struct { ManagedResource ManagedResourceV2 `json:"managed_resource"` } +// CreateOverrideResponseBody defines model for CreateOverrideResponseBody. +type CreateOverrideResponseBody struct { + Override ScheduleOverrideV2 `json:"override"` +} + // CreatePathResponseBody defines model for CreatePathResponseBody. type CreatePathResponseBody struct { EscalationPath EscalationPathV2 `json:"escalation_path"` @@ -2241,38 +2115,6 @@ type EmbeddedIncidentRoleV2 struct { // EmbeddedIncidentRoleV2RoleType Type of incident role type EmbeddedIncidentRoleV2RoleType string -// EngineParam defines model for EngineParam. -type EngineParam struct { - // Array Whether this parameter is an array - Array bool `json:"array"` - DefaultValue *EngineParamBinding `json:"default_value,omitempty"` - - // Description A string describing the param - Description string `json:"description"` - - // InferReference Whether this parameter should be inferred as a reference from the scope - InferReference bool `json:"infer_reference"` - - // Label Human readable label for this parameter - Label string `json:"label"` - - // Name The unique identifier for the parameter - Name string `json:"name"` - - // Optional Whether this parameter is optional - Optional bool `json:"optional"` - - // Type The type of the parameter - Type string `json:"type"` -} - -// EngineParamBinding defines model for EngineParamBinding. -type EngineParamBinding struct { - // ArrayValue If array_value is set, this helps render the values - ArrayValue *[]EngineParamBindingValue `json:"array_value,omitempty"` - Value *EngineParamBindingValue `json:"value,omitempty"` -} - // EngineParamBindingPayloadV2 defines model for EngineParamBindingPayloadV2. type EngineParamBindingPayloadV2 struct { // ArrayValue If set, this is the array value of the step parameter @@ -2287,38 +2129,6 @@ type EngineParamBindingV2 struct { Value *EngineParamBindingValueV2 `json:"value,omitempty"` } -// EngineParamBindingValue defines model for EngineParamBindingValue. -type EngineParamBindingValue struct { - CatalogEntry *CatalogEntryReference `json:"catalog_entry,omitempty"` - - // Helptext Gives a description of the option to the user - Helptext *string `json:"helptext,omitempty"` - - // ImageUrl If appropriate, URL to an image that can be displayed alongside the option - ImageUrl *string `json:"image_url,omitempty"` - - // IsImageSlackIcon If true, the image_url is a Slack icon and should be displayed as such - IsImageSlackIcon *bool `json:"is_image_slack_icon,omitempty"` - - // Label Human readable label to be displayed for user to select - Label string `json:"label"` - - // Literal If set, this is the literal value of the step parameter - Literal *string `json:"literal,omitempty"` - - // Reference If set, this is the reference into the trigger scope that is the value of this parameter - Reference *string `json:"reference,omitempty"` - - // SortKey Gives an indication of how to sort the options when displayed to the user - SortKey string `json:"sort_key"` - - // Unavailable Unavailable is true if we've failed to build the value for this binding - Unavailable *bool `json:"unavailable,omitempty"` - - // Value Either the reference or the literal: this field is designed purely to make working with react-select easier - Value *string `json:"value,omitempty"` -} - // EngineParamBindingValuePayloadV2 defines model for EngineParamBindingValuePayloadV2. type EngineParamBindingValuePayloadV2 struct { // Literal If set, this is the literal value of the step parameter @@ -2399,13 +2209,32 @@ type EscalationPathNodeLevelV2 struct { // EscalationPathNodeLevelV2TimeToAckIntervalCondition If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive type EscalationPathNodeLevelV2TimeToAckIntervalCondition string +// EscalationPathNodeNotifyChannelV2 defines model for EscalationPathNodeNotifyChannelV2. +type EscalationPathNodeNotifyChannelV2 struct { + // Targets The targets for this level + Targets []EscalationPathTargetV2 `json:"targets"` + + // TimeToAckIntervalCondition If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive + TimeToAckIntervalCondition *EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition `json:"time_to_ack_interval_condition,omitempty"` + + // TimeToAckSeconds How long should we wait for this level to acknowledge before escalating? + TimeToAckSeconds *int64 `json:"time_to_ack_seconds,omitempty"` + + // TimeToAckWeekdayIntervalConfigId If the time to ack is relative to a time window, this identifies which window it is relative to + TimeToAckWeekdayIntervalConfigId *string `json:"time_to_ack_weekday_interval_config_id,omitempty"` +} + +// EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition If the time to ack is relative to a time window, this defines whether we move when the window is active or inactive +type EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition string + // EscalationPathNodePayloadV2 defines model for EscalationPathNodePayloadV2. type EscalationPathNodePayloadV2 struct { // Id Unique internal ID of the escalation path node - Id string `json:"id"` - IfElse *EscalationPathNodeIfElsePayloadV2 `json:"if_else,omitempty"` - Level *EscalationPathNodeLevelV2 `json:"level,omitempty"` - Repeat *EscalationPathNodeRepeatV2 `json:"repeat,omitempty"` + Id string `json:"id"` + IfElse *EscalationPathNodeIfElsePayloadV2 `json:"if_else,omitempty"` + Level *EscalationPathNodeLevelV2 `json:"level,omitempty"` + NotifyChannel *EscalationPathNodeNotifyChannelV2 `json:"notify_channel,omitempty"` + Repeat *EscalationPathNodeRepeatV2 `json:"repeat,omitempty"` // Type The type of this node: level or branch Type EscalationPathNodePayloadV2Type `json:"type"` @@ -2426,10 +2255,11 @@ type EscalationPathNodeRepeatV2 struct { // EscalationPathNodeV2 defines model for EscalationPathNodeV2. type EscalationPathNodeV2 struct { // Id Unique internal ID of the escalation path node - Id string `json:"id"` - IfElse *EscalationPathNodeIfElseV2 `json:"if_else,omitempty"` - Level *EscalationPathNodeLevelV2 `json:"level,omitempty"` - Repeat *EscalationPathNodeRepeatV2 `json:"repeat,omitempty"` + Id string `json:"id"` + IfElse *EscalationPathNodeIfElseV2 `json:"if_else,omitempty"` + Level *EscalationPathNodeLevelV2 `json:"level,omitempty"` + NotifyChannel *EscalationPathNodeNotifyChannelV2 `json:"notify_channel,omitempty"` + Repeat *EscalationPathNodeRepeatV2 `json:"repeat,omitempty"` // Type The type of this node: level or branch Type EscalationPathNodeV2Type `json:"type"` @@ -3281,6 +3111,9 @@ type IncidentV2 struct { DurationMetrics *[]IncidentDurationMetricWithValueV2 `json:"duration_metrics,omitempty"` ExternalIssueReference *ExternalIssueReferenceV2 `json:"external_issue_reference,omitempty"` + // HasDebrief If this incident has a debrief attached + HasDebrief *bool `json:"has_debrief,omitempty"` + // Id Unique identifier for the incident Id string `json:"id"` @@ -3655,6 +3488,50 @@ type ScheduleLayerV2 struct { Name *string `json:"name,omitempty"` } +// ScheduleOverrideCreatePayloadV2 defines model for ScheduleOverrideCreatePayloadV2. +type ScheduleOverrideCreatePayloadV2 struct { + // EndAt End time of the override + EndAt time.Time `json:"end_at"` + + // LayerId The layer this override applies to + LayerId string `json:"layer_id"` + + // RotationId The rotation this override applies to + RotationId string `json:"rotation_id"` + + // ScheduleId The schedule this override applies to + ScheduleId string `json:"schedule_id"` + + // StartAt Start time of the override + StartAt time.Time `json:"start_at"` + User UserReferencePayloadV2 `json:"user"` +} + +// ScheduleOverrideV2 defines model for ScheduleOverrideV2. +type ScheduleOverrideV2 struct { + CreatedAt time.Time `json:"created_at"` + + // EndAt End of the override + EndAt time.Time `json:"end_at"` + + // Id Unique internal ID of the schedule override + Id string `json:"id"` + + // LayerId The layer on the rotation on the schedule that this override applies to + LayerId string `json:"layer_id"` + + // RotationId The rotation on the schedule that this override applies to + RotationId string `json:"rotation_id"` + + // ScheduleId The schedule that this override applies to + ScheduleId string `json:"schedule_id"` + + // StartAt Start of the override + StartAt time.Time `json:"start_at"` + UpdatedAt time.Time `json:"updated_at"` + User UserV2 `json:"user"` +} + // ScheduleRotationCreatePayloadV2 defines model for ScheduleRotationCreatePayloadV2. type ScheduleRotationCreatePayloadV2 struct { EffectiveFrom *time.Time `json:"effective_from,omitempty"` @@ -4035,7 +3912,7 @@ type UpdateEntryRequestBody struct { // UpdateRequestBody defines model for UpdateRequestBody. type UpdateRequestBody struct { // AlertSources Which alert sources should this alert route match? - AlertSources []AlertRouteAlertSource `json:"alert_sources"` + AlertSources []AlertRouteAlertSourcePayloadV2 `json:"alert_sources"` // AutoDeclineEnabled Should triage incidents be declined when alerts are resolved? AutoDeclineEnabled bool `json:"auto_decline_enabled"` @@ -4777,6 +4654,9 @@ type IncidentsV2EditJSONRequestBody = EditRequestBody // ManagedResourcesV2CreateManagedResourceJSONRequestBody defines body for ManagedResourcesV2CreateManagedResource for application/json ContentType. type ManagedResourcesV2CreateManagedResourceJSONRequestBody = CreateManagedResourceRequestBody +// SchedulesV2CreateOverrideJSONRequestBody defines body for SchedulesV2CreateOverride for application/json ContentType. +type SchedulesV2CreateOverrideJSONRequestBody = ScheduleOverrideCreatePayloadV2 + // SchedulesV2CreateJSONRequestBody defines body for SchedulesV2Create for application/json ContentType. type SchedulesV2CreateJSONRequestBody = CreateRequestBody9 @@ -4871,7 +4751,7 @@ type ClientInterface interface { // CustomFieldOptionsV1List request CustomFieldOptionsV1List(ctx context.Context, params *CustomFieldOptionsV1ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldOptionsV1Create request with any body + // CustomFieldOptionsV1CreateWithBody request with any body CustomFieldOptionsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldOptionsV1Create(ctx context.Context, body CustomFieldOptionsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4882,7 +4762,7 @@ type ClientInterface interface { // CustomFieldOptionsV1Show request CustomFieldOptionsV1Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldOptionsV1Update request with any body + // CustomFieldOptionsV1UpdateWithBody request with any body CustomFieldOptionsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldOptionsV1Update(ctx context.Context, id string, body CustomFieldOptionsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4890,7 +4770,7 @@ type ClientInterface interface { // CustomFieldsV1List request CustomFieldsV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldsV1Create request with any body + // CustomFieldsV1CreateWithBody request with any body CustomFieldsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldsV1Create(ctx context.Context, body CustomFieldsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4901,7 +4781,7 @@ type ClientInterface interface { // CustomFieldsV1Show request CustomFieldsV1Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldsV1Update request with any body + // CustomFieldsV1UpdateWithBody request with any body CustomFieldsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldsV1Update(ctx context.Context, id string, body CustomFieldsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4912,7 +4792,7 @@ type ClientInterface interface { // IncidentAttachmentsV1List request IncidentAttachmentsV1List(ctx context.Context, params *IncidentAttachmentsV1ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentAttachmentsV1Create request with any body + // IncidentAttachmentsV1CreateWithBody request with any body IncidentAttachmentsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentAttachmentsV1Create(ctx context.Context, body IncidentAttachmentsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4920,12 +4800,12 @@ type ClientInterface interface { // IncidentAttachmentsV1Delete request IncidentAttachmentsV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentMembershipsV1Create request with any body + // IncidentMembershipsV1CreateWithBody request with any body IncidentMembershipsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentMembershipsV1Create(ctx context.Context, body IncidentMembershipsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentMembershipsV1Revoke request with any body + // IncidentMembershipsV1RevokeWithBody request with any body IncidentMembershipsV1RevokeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentMembershipsV1Revoke(ctx context.Context, body IncidentMembershipsV1RevokeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4933,7 +4813,7 @@ type ClientInterface interface { // IncidentRolesV1List request IncidentRolesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentRolesV1Create request with any body + // IncidentRolesV1CreateWithBody request with any body IncidentRolesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentRolesV1Create(ctx context.Context, body IncidentRolesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4944,7 +4824,7 @@ type ClientInterface interface { // IncidentRolesV1Show request IncidentRolesV1Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentRolesV1Update request with any body + // IncidentRolesV1UpdateWithBody request with any body IncidentRolesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentRolesV1Update(ctx context.Context, id string, body IncidentRolesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4952,7 +4832,7 @@ type ClientInterface interface { // IncidentStatusesV1List request IncidentStatusesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentStatusesV1Create request with any body + // IncidentStatusesV1CreateWithBody request with any body IncidentStatusesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentStatusesV1Create(ctx context.Context, body IncidentStatusesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4963,7 +4843,7 @@ type ClientInterface interface { // IncidentStatusesV1Show request IncidentStatusesV1Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentStatusesV1Update request with any body + // IncidentStatusesV1UpdateWithBody request with any body IncidentStatusesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentStatusesV1Update(ctx context.Context, id string, body IncidentStatusesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4977,7 +4857,7 @@ type ClientInterface interface { // IncidentsV1List request IncidentsV1List(ctx context.Context, params *IncidentsV1ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentsV1Create request with any body + // IncidentsV1CreateWithBody request with any body IncidentsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentsV1Create(ctx context.Context, body IncidentsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -4994,7 +4874,7 @@ type ClientInterface interface { // SeveritiesV1List request SeveritiesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // SeveritiesV1Create request with any body + // SeveritiesV1CreateWithBody request with any body SeveritiesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) SeveritiesV1Create(ctx context.Context, body SeveritiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5005,7 +4885,7 @@ type ClientInterface interface { // SeveritiesV1Show request SeveritiesV1Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // SeveritiesV1Update request with any body + // SeveritiesV1UpdateWithBody request with any body SeveritiesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) SeveritiesV1Update(ctx context.Context, id string, body SeveritiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5016,12 +4896,12 @@ type ClientInterface interface { // ActionsV2Show request ActionsV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // AlertEventsV2CreateHTTP request with any body + // AlertEventsV2CreateHTTPWithBody request with any body AlertEventsV2CreateHTTPWithBody(ctx context.Context, alertSourceConfigId string, params *AlertEventsV2CreateHTTPParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) AlertEventsV2CreateHTTP(ctx context.Context, alertSourceConfigId string, params *AlertEventsV2CreateHTTPParams, body AlertEventsV2CreateHTTPJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // AlertRoutesV2Create request with any body + // AlertRoutesV2CreateWithBody request with any body AlertRoutesV2CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) AlertRoutesV2Create(ctx context.Context, body AlertRoutesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5032,7 +4912,7 @@ type ClientInterface interface { // AlertRoutesV2Show request AlertRoutesV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // AlertRoutesV2Update request with any body + // AlertRoutesV2UpdateWithBody request with any body AlertRoutesV2UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) AlertRoutesV2Update(ctx context.Context, id string, body AlertRoutesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5040,7 +4920,7 @@ type ClientInterface interface { // CatalogV2ListEntries request CatalogV2ListEntries(ctx context.Context, params *CatalogV2ListEntriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // CatalogV2CreateEntry request with any body + // CatalogV2CreateEntryWithBody request with any body CatalogV2CreateEntryWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CatalogV2CreateEntry(ctx context.Context, body CatalogV2CreateEntryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5051,7 +4931,7 @@ type ClientInterface interface { // CatalogV2ShowEntry request CatalogV2ShowEntry(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // CatalogV2UpdateEntry request with any body + // CatalogV2UpdateEntryWithBody request with any body CatalogV2UpdateEntryWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CatalogV2UpdateEntry(ctx context.Context, id string, body CatalogV2UpdateEntryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5062,7 +4942,7 @@ type ClientInterface interface { // CatalogV2ListTypes request CatalogV2ListTypes(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // CatalogV2CreateType request with any body + // CatalogV2CreateTypeWithBody request with any body CatalogV2CreateTypeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CatalogV2CreateType(ctx context.Context, body CatalogV2CreateTypeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5073,12 +4953,12 @@ type ClientInterface interface { // CatalogV2ShowType request CatalogV2ShowType(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // CatalogV2UpdateType request with any body + // CatalogV2UpdateTypeWithBody request with any body CatalogV2UpdateTypeWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CatalogV2UpdateType(ctx context.Context, id string, body CatalogV2UpdateTypeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // CatalogV2UpdateTypeSchema request with any body + // CatalogV2UpdateTypeSchemaWithBody request with any body CatalogV2UpdateTypeSchemaWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CatalogV2UpdateTypeSchema(ctx context.Context, id string, body CatalogV2UpdateTypeSchemaJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5086,7 +4966,7 @@ type ClientInterface interface { // CustomFieldsV2List request CustomFieldsV2List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldsV2Create request with any body + // CustomFieldsV2CreateWithBody request with any body CustomFieldsV2CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldsV2Create(ctx context.Context, body CustomFieldsV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5097,12 +4977,12 @@ type ClientInterface interface { // CustomFieldsV2Show request CustomFieldsV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // CustomFieldsV2Update request with any body + // CustomFieldsV2UpdateWithBody request with any body CustomFieldsV2UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) CustomFieldsV2Update(ctx context.Context, id string, body CustomFieldsV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // EscalationsV2CreatePath request with any body + // EscalationsV2CreatePathWithBody request with any body EscalationsV2CreatePathWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) EscalationsV2CreatePath(ctx context.Context, body EscalationsV2CreatePathJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5113,7 +4993,7 @@ type ClientInterface interface { // EscalationsV2ShowPath request EscalationsV2ShowPath(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // EscalationsV2UpdatePath request with any body + // EscalationsV2UpdatePathWithBody request with any body EscalationsV2UpdatePathWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) EscalationsV2UpdatePath(ctx context.Context, id string, body EscalationsV2UpdatePathJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5127,7 +5007,7 @@ type ClientInterface interface { // IncidentRolesV2List request IncidentRolesV2List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentRolesV2Create request with any body + // IncidentRolesV2CreateWithBody request with any body IncidentRolesV2CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentRolesV2Create(ctx context.Context, body IncidentRolesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5138,7 +5018,7 @@ type ClientInterface interface { // IncidentRolesV2Show request IncidentRolesV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentRolesV2Update request with any body + // IncidentRolesV2UpdateWithBody request with any body IncidentRolesV2UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentRolesV2Update(ctx context.Context, id string, body IncidentRolesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5155,7 +5035,7 @@ type ClientInterface interface { // IncidentsV2List request IncidentsV2List(ctx context.Context, params *IncidentsV2ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentsV2Create request with any body + // IncidentsV2CreateWithBody request with any body IncidentsV2CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentsV2Create(ctx context.Context, body IncidentsV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5163,12 +5043,12 @@ type ClientInterface interface { // IncidentsV2Show request IncidentsV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // IncidentsV2Edit request with any body + // IncidentsV2EditWithBody request with any body IncidentsV2EditWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) IncidentsV2Edit(ctx context.Context, id string, body IncidentsV2EditJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // ManagedResourcesV2CreateManagedResource request with any body + // ManagedResourcesV2CreateManagedResourceWithBody request with any body ManagedResourcesV2CreateManagedResourceWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) ManagedResourcesV2CreateManagedResource(ctx context.Context, body ManagedResourcesV2CreateManagedResourceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5176,10 +5056,15 @@ type ClientInterface interface { // SchedulesV2ListScheduleEntries request SchedulesV2ListScheduleEntries(ctx context.Context, params *SchedulesV2ListScheduleEntriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // SchedulesV2CreateOverrideWithBody request with any body + SchedulesV2CreateOverrideWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SchedulesV2CreateOverride(ctx context.Context, body SchedulesV2CreateOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // SchedulesV2List request SchedulesV2List(ctx context.Context, params *SchedulesV2ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) - // SchedulesV2Create request with any body + // SchedulesV2CreateWithBody request with any body SchedulesV2CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) SchedulesV2Create(ctx context.Context, body SchedulesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5190,7 +5075,7 @@ type ClientInterface interface { // SchedulesV2Show request SchedulesV2Show(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // SchedulesV2Update request with any body + // SchedulesV2UpdateWithBody request with any body SchedulesV2UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) SchedulesV2Update(ctx context.Context, id string, body SchedulesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5204,7 +5089,7 @@ type ClientInterface interface { // WorkflowsV2ListWorkflows request WorkflowsV2ListWorkflows(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - // WorkflowsV2CreateWorkflow request with any body + // WorkflowsV2CreateWorkflowWithBody request with any body WorkflowsV2CreateWorkflowWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) WorkflowsV2CreateWorkflow(ctx context.Context, body WorkflowsV2CreateWorkflowJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -5215,7 +5100,7 @@ type ClientInterface interface { // WorkflowsV2ShowWorkflow request WorkflowsV2ShowWorkflow(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) - // WorkflowsV2UpdateWorkflow request with any body + // WorkflowsV2UpdateWorkflowWithBody request with any body WorkflowsV2UpdateWorkflowWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) WorkflowsV2UpdateWorkflow(ctx context.Context, id string, body WorkflowsV2UpdateWorkflowJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -6601,6 +6486,30 @@ func (c *Client) SchedulesV2ListScheduleEntries(ctx context.Context, params *Sch return c.Client.Do(req) } +func (c *Client) SchedulesV2CreateOverrideWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSchedulesV2CreateOverrideRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SchedulesV2CreateOverride(ctx context.Context, body SchedulesV2CreateOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSchedulesV2CreateOverrideRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) SchedulesV2List(ctx context.Context, params *SchedulesV2ListParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewSchedulesV2ListRequest(c.Server, params) if err != nil { @@ -6812,58 +6721,60 @@ func NewActionsV1ListRequest(server string, params *ActionsV1ListParams) (*http. return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.IncidentId != nil { + if params.IncidentId != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.IsFollowUp != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "is_follow_up", runtime.ParamLocationQuery, *params.IsFollowUp); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IsFollowUp != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "is_follow_up", runtime.ParamLocationQuery, *params.IsFollowUp); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.IncidentMode != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IncidentMode != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -6925,27 +6836,42 @@ func NewCustomFieldOptionsV1ListRequest(server string, params *CustomFieldOption return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.PageSize != nil { + if params.PageSize != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } - } + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "custom_field_id", runtime.ParamLocationQuery, params.CustomFieldId); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -6957,22 +6883,9 @@ func NewCustomFieldOptionsV1ListRequest(server string, params *CustomFieldOption } } + queryURL.RawQuery = queryValues.Encode() } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "custom_field_id", runtime.ParamLocationQuery, params.CustomFieldId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } - - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -7364,58 +7277,60 @@ func NewIncidentAttachmentsV1ListRequest(server string, params *IncidentAttachme return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.IncidentId != nil { + if params.IncidentId != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.ExternalId != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "external_id", runtime.ParamLocationQuery, *params.ExternalId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.ExternalId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "external_id", runtime.ParamLocationQuery, *params.ExternalId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.ResourceType != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "resource_type", runtime.ParamLocationQuery, *params.ResourceType); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.ResourceType != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "resource_type", runtime.ParamLocationQuery, *params.ResourceType); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -8022,62 +7937,64 @@ func NewIncidentsV1ListRequest(server string, params *IncidentsV1ListParams) (*h return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.PageSize != nil { + if params.PageSize != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } - } + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.Status != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status", runtime.ParamLocationQuery, *params.Status); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - if params.Status != nil { - - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status", runtime.ParamLocationQuery, *params.Status); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } - - } - - queryURL.RawQuery = queryValues.Encode() - - req, err := http.NewRequest("GET", queryURL.String(), nil) - if err != nil { - return nil, err - } + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } return req, nil } @@ -8411,42 +8328,44 @@ func NewActionsV2ListRequest(server string, params *ActionsV2ListParams) (*http. return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.IncidentId != nil { + if params.IncidentId != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.IncidentMode != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IncidentMode != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -8526,26 +8445,28 @@ func NewAlertEventsV2CreateHTTPRequestWithBody(server string, alertSourceConfigI return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.Token != nil { + if params.Token != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "token", runtime.ParamLocationQuery, *params.Token); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "token", runtime.ParamLocationQuery, *params.Token); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("POST", queryURL.String(), body) if err != nil { return nil, err @@ -8730,23 +8651,10 @@ func NewCatalogV2ListEntriesRequest(server string, params *CatalogV2ListEntriesP return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "catalog_type_id", runtime.ParamLocationQuery, params.CatalogTypeId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } - - if params.PageSize != nil { - - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "catalog_type_id", runtime.ParamLocationQuery, params.CatalogTypeId); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -8758,26 +8666,41 @@ func NewCatalogV2ListEntriesRequest(server string, params *CatalogV2ListEntriesP } } - } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -9553,42 +9476,44 @@ func NewFollowUpsV2ListRequest(server string, params *FollowUpsV2ListParams) (*h return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.IncidentId != nil { + if params.IncidentId != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.IncidentMode != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IncidentMode != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_mode", runtime.ParamLocationQuery, *params.IncidentMode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -9893,58 +9818,60 @@ func NewIncidentUpdatesV2ListRequest(server string, params *IncidentUpdatesV2Lis return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.IncidentId != nil { + if params.IncidentId != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_id", runtime.ParamLocationQuery, *params.IncidentId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.PageSize != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -9972,186 +9899,188 @@ func NewIncidentsV2ListRequest(server string, params *IncidentsV2ListParams) (*h return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.PageSize != nil { + if params.PageSize != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.Status != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status", runtime.ParamLocationQuery, *params.Status); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.Status != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status", runtime.ParamLocationQuery, *params.Status); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.StatusCategory != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status_category", runtime.ParamLocationQuery, *params.StatusCategory); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.StatusCategory != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "status_category", runtime.ParamLocationQuery, *params.StatusCategory); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.CreatedAt != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_at", runtime.ParamLocationQuery, *params.CreatedAt); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.CreatedAt != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_at", runtime.ParamLocationQuery, *params.CreatedAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.UpdatedAt != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_at", runtime.ParamLocationQuery, *params.UpdatedAt); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.UpdatedAt != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_at", runtime.ParamLocationQuery, *params.UpdatedAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.Severity != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "severity", runtime.ParamLocationQuery, *params.Severity); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.Severity != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "severity", runtime.ParamLocationQuery, *params.Severity); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.IncidentType != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_type", runtime.ParamLocationQuery, *params.IncidentType); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IncidentType != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_type", runtime.ParamLocationQuery, *params.IncidentType); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.IncidentRole != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_role", runtime.ParamLocationQuery, *params.IncidentRole); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.IncidentRole != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "incident_role", runtime.ParamLocationQuery, *params.IncidentRole); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.CustomField != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "custom_field", runtime.ParamLocationQuery, *params.CustomField); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.CustomField != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "custom_field", runtime.ParamLocationQuery, *params.CustomField); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.Mode != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, *params.Mode); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.Mode != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, *params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -10340,23 +10269,10 @@ func NewSchedulesV2ListScheduleEntriesRequest(server string, params *SchedulesV2 return nil, err } - queryValues := queryURL.Query() - - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "schedule_id", runtime.ParamLocationQuery, params.ScheduleId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) - } - } - } + if params != nil { + queryValues := queryURL.Query() - if params.EntryWindowStart != nil { - - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entry_window_start", runtime.ParamLocationQuery, *params.EntryWindowStart); err != nil { + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "schedule_id", runtime.ParamLocationQuery, params.ScheduleId); err != nil { return nil, err } else if parsed, err := url.ParseQuery(queryFrag); err != nil { return nil, err @@ -10368,26 +10284,41 @@ func NewSchedulesV2ListScheduleEntriesRequest(server string, params *SchedulesV2 } } - } + if params.EntryWindowStart != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entry_window_start", runtime.ParamLocationQuery, *params.EntryWindowStart); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } - if params.EntryWindowEnd != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entry_window_end", runtime.ParamLocationQuery, *params.EntryWindowEnd); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.EntryWindowEnd != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entry_window_end", runtime.ParamLocationQuery, *params.EntryWindowEnd); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -10396,6 +10327,46 @@ func NewSchedulesV2ListScheduleEntriesRequest(server string, params *SchedulesV2 return req, nil } +// NewSchedulesV2CreateOverrideRequest calls the generic SchedulesV2CreateOverride builder with application/json body +func NewSchedulesV2CreateOverrideRequest(server string, body SchedulesV2CreateOverrideJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSchedulesV2CreateOverrideRequestWithBody(server, "application/json", bodyReader) +} + +// NewSchedulesV2CreateOverrideRequestWithBody generates requests for SchedulesV2CreateOverride with any type of body +func NewSchedulesV2CreateOverrideRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v2/schedule_overrides") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + // NewSchedulesV2ListRequest generates requests for SchedulesV2List func NewSchedulesV2ListRequest(server string, params *SchedulesV2ListParams) (*http.Request, error) { var err error @@ -10415,42 +10386,44 @@ func NewSchedulesV2ListRequest(server string, params *SchedulesV2ListParams) (*h return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.PageSize != nil { + if params.PageSize != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - - } - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -10633,74 +10606,76 @@ func NewUsersV2ListRequest(server string, params *UsersV2ListParams) (*http.Requ return nil, err } - queryValues := queryURL.Query() + if params != nil { + queryValues := queryURL.Query() - if params.Email != nil { + if params.Email != nil { - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "email", runtime.ParamLocationQuery, *params.Email); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "email", runtime.ParamLocationQuery, *params.Email); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.SlackUserId != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "slack_user_id", runtime.ParamLocationQuery, *params.SlackUserId); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.SlackUserId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "slack_user_id", runtime.ParamLocationQuery, *params.SlackUserId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.PageSize != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page_size", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } - } - } - - if params.After != nil { + } - if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { - return nil, err - } else if parsed, err := url.ParseQuery(queryFrag); err != nil { - return nil, err - } else { - for k, v := range parsed { - for _, v2 := range v { - queryValues.Add(k, v2) + if params.After != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } } } + } + queryURL.RawQuery = queryValues.Encode() } - queryURL.RawQuery = queryValues.Encode() - req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -10968,360 +10943,365 @@ func WithBaseURL(baseURL string) ClientOption { // ClientWithResponsesInterface is the interface specification for the client with responses above. type ClientWithResponsesInterface interface { - // ActionsV1List request + // ActionsV1ListWithResponse request ActionsV1ListWithResponse(ctx context.Context, params *ActionsV1ListParams, reqEditors ...RequestEditorFn) (*ActionsV1ListResponse, error) - // ActionsV1Show request + // ActionsV1ShowWithResponse request ActionsV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*ActionsV1ShowResponse, error) - // CustomFieldOptionsV1List request + // CustomFieldOptionsV1ListWithResponse request CustomFieldOptionsV1ListWithResponse(ctx context.Context, params *CustomFieldOptionsV1ListParams, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1ListResponse, error) - // CustomFieldOptionsV1Create request with any body + // CustomFieldOptionsV1CreateWithBodyWithResponse request with any body CustomFieldOptionsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1CreateResponse, error) CustomFieldOptionsV1CreateWithResponse(ctx context.Context, body CustomFieldOptionsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1CreateResponse, error) - // CustomFieldOptionsV1Delete request + // CustomFieldOptionsV1DeleteWithResponse request CustomFieldOptionsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1DeleteResponse, error) - // CustomFieldOptionsV1Show request + // CustomFieldOptionsV1ShowWithResponse request CustomFieldOptionsV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1ShowResponse, error) - // CustomFieldOptionsV1Update request with any body + // CustomFieldOptionsV1UpdateWithBodyWithResponse request with any body CustomFieldOptionsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1UpdateResponse, error) CustomFieldOptionsV1UpdateWithResponse(ctx context.Context, id string, body CustomFieldOptionsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldOptionsV1UpdateResponse, error) - // CustomFieldsV1List request + // CustomFieldsV1ListWithResponse request CustomFieldsV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CustomFieldsV1ListResponse, error) - // CustomFieldsV1Create request with any body + // CustomFieldsV1CreateWithBodyWithResponse request with any body CustomFieldsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldsV1CreateResponse, error) CustomFieldsV1CreateWithResponse(ctx context.Context, body CustomFieldsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldsV1CreateResponse, error) - // CustomFieldsV1Delete request + // CustomFieldsV1DeleteWithResponse request CustomFieldsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldsV1DeleteResponse, error) - // CustomFieldsV1Show request + // CustomFieldsV1ShowWithResponse request CustomFieldsV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldsV1ShowResponse, error) - // CustomFieldsV1Update request with any body + // CustomFieldsV1UpdateWithBodyWithResponse request with any body CustomFieldsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldsV1UpdateResponse, error) CustomFieldsV1UpdateWithResponse(ctx context.Context, id string, body CustomFieldsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldsV1UpdateResponse, error) - // UtilitiesV1Identity request + // UtilitiesV1IdentityWithResponse request UtilitiesV1IdentityWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*UtilitiesV1IdentityResponse, error) - // IncidentAttachmentsV1List request + // IncidentAttachmentsV1ListWithResponse request IncidentAttachmentsV1ListWithResponse(ctx context.Context, params *IncidentAttachmentsV1ListParams, reqEditors ...RequestEditorFn) (*IncidentAttachmentsV1ListResponse, error) - // IncidentAttachmentsV1Create request with any body + // IncidentAttachmentsV1CreateWithBodyWithResponse request with any body IncidentAttachmentsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentAttachmentsV1CreateResponse, error) IncidentAttachmentsV1CreateWithResponse(ctx context.Context, body IncidentAttachmentsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentAttachmentsV1CreateResponse, error) - // IncidentAttachmentsV1Delete request + // IncidentAttachmentsV1DeleteWithResponse request IncidentAttachmentsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentAttachmentsV1DeleteResponse, error) - // IncidentMembershipsV1Create request with any body + // IncidentMembershipsV1CreateWithBodyWithResponse request with any body IncidentMembershipsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentMembershipsV1CreateResponse, error) IncidentMembershipsV1CreateWithResponse(ctx context.Context, body IncidentMembershipsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentMembershipsV1CreateResponse, error) - // IncidentMembershipsV1Revoke request with any body + // IncidentMembershipsV1RevokeWithBodyWithResponse request with any body IncidentMembershipsV1RevokeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentMembershipsV1RevokeResponse, error) IncidentMembershipsV1RevokeWithResponse(ctx context.Context, body IncidentMembershipsV1RevokeJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentMembershipsV1RevokeResponse, error) - // IncidentRolesV1List request + // IncidentRolesV1ListWithResponse request IncidentRolesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IncidentRolesV1ListResponse, error) - // IncidentRolesV1Create request with any body + // IncidentRolesV1CreateWithBodyWithResponse request with any body IncidentRolesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentRolesV1CreateResponse, error) IncidentRolesV1CreateWithResponse(ctx context.Context, body IncidentRolesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentRolesV1CreateResponse, error) - // IncidentRolesV1Delete request + // IncidentRolesV1DeleteWithResponse request IncidentRolesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentRolesV1DeleteResponse, error) - // IncidentRolesV1Show request + // IncidentRolesV1ShowWithResponse request IncidentRolesV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentRolesV1ShowResponse, error) - // IncidentRolesV1Update request with any body + // IncidentRolesV1UpdateWithBodyWithResponse request with any body IncidentRolesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentRolesV1UpdateResponse, error) IncidentRolesV1UpdateWithResponse(ctx context.Context, id string, body IncidentRolesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentRolesV1UpdateResponse, error) - // IncidentStatusesV1List request + // IncidentStatusesV1ListWithResponse request IncidentStatusesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IncidentStatusesV1ListResponse, error) - // IncidentStatusesV1Create request with any body + // IncidentStatusesV1CreateWithBodyWithResponse request with any body IncidentStatusesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentStatusesV1CreateResponse, error) IncidentStatusesV1CreateWithResponse(ctx context.Context, body IncidentStatusesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentStatusesV1CreateResponse, error) - // IncidentStatusesV1Delete request + // IncidentStatusesV1DeleteWithResponse request IncidentStatusesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentStatusesV1DeleteResponse, error) - // IncidentStatusesV1Show request + // IncidentStatusesV1ShowWithResponse request IncidentStatusesV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentStatusesV1ShowResponse, error) - // IncidentStatusesV1Update request with any body + // IncidentStatusesV1UpdateWithBodyWithResponse request with any body IncidentStatusesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentStatusesV1UpdateResponse, error) IncidentStatusesV1UpdateWithResponse(ctx context.Context, id string, body IncidentStatusesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentStatusesV1UpdateResponse, error) - // IncidentTypesV1List request + // IncidentTypesV1ListWithResponse request IncidentTypesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IncidentTypesV1ListResponse, error) - // IncidentTypesV1Show request + // IncidentTypesV1ShowWithResponse request IncidentTypesV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentTypesV1ShowResponse, error) - // IncidentsV1List request + // IncidentsV1ListWithResponse request IncidentsV1ListWithResponse(ctx context.Context, params *IncidentsV1ListParams, reqEditors ...RequestEditorFn) (*IncidentsV1ListResponse, error) - // IncidentsV1Create request with any body + // IncidentsV1CreateWithBodyWithResponse request with any body IncidentsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentsV1CreateResponse, error) IncidentsV1CreateWithResponse(ctx context.Context, body IncidentsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentsV1CreateResponse, error) - // IncidentsV1Show request + // IncidentsV1ShowWithResponse request IncidentsV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentsV1ShowResponse, error) - // UtilitiesV1OpenAPI request + // UtilitiesV1OpenAPIWithResponse request UtilitiesV1OpenAPIWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*UtilitiesV1OpenAPIResponse, error) - // UtilitiesV1OpenAPIV3 request + // UtilitiesV1OpenAPIV3WithResponse request UtilitiesV1OpenAPIV3WithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*UtilitiesV1OpenAPIV3Response, error) - // SeveritiesV1List request + // SeveritiesV1ListWithResponse request SeveritiesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*SeveritiesV1ListResponse, error) - // SeveritiesV1Create request with any body + // SeveritiesV1CreateWithBodyWithResponse request with any body SeveritiesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SeveritiesV1CreateResponse, error) SeveritiesV1CreateWithResponse(ctx context.Context, body SeveritiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SeveritiesV1CreateResponse, error) - // SeveritiesV1Delete request + // SeveritiesV1DeleteWithResponse request SeveritiesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SeveritiesV1DeleteResponse, error) - // SeveritiesV1Show request + // SeveritiesV1ShowWithResponse request SeveritiesV1ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SeveritiesV1ShowResponse, error) - // SeveritiesV1Update request with any body + // SeveritiesV1UpdateWithBodyWithResponse request with any body SeveritiesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SeveritiesV1UpdateResponse, error) SeveritiesV1UpdateWithResponse(ctx context.Context, id string, body SeveritiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SeveritiesV1UpdateResponse, error) - // ActionsV2List request + // ActionsV2ListWithResponse request ActionsV2ListWithResponse(ctx context.Context, params *ActionsV2ListParams, reqEditors ...RequestEditorFn) (*ActionsV2ListResponse, error) - // ActionsV2Show request + // ActionsV2ShowWithResponse request ActionsV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*ActionsV2ShowResponse, error) - // AlertEventsV2CreateHTTP request with any body + // AlertEventsV2CreateHTTPWithBodyWithResponse request with any body AlertEventsV2CreateHTTPWithBodyWithResponse(ctx context.Context, alertSourceConfigId string, params *AlertEventsV2CreateHTTPParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AlertEventsV2CreateHTTPResponse, error) AlertEventsV2CreateHTTPWithResponse(ctx context.Context, alertSourceConfigId string, params *AlertEventsV2CreateHTTPParams, body AlertEventsV2CreateHTTPJSONRequestBody, reqEditors ...RequestEditorFn) (*AlertEventsV2CreateHTTPResponse, error) - // AlertRoutesV2Create request with any body + // AlertRoutesV2CreateWithBodyWithResponse request with any body AlertRoutesV2CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AlertRoutesV2CreateResponse, error) AlertRoutesV2CreateWithResponse(ctx context.Context, body AlertRoutesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*AlertRoutesV2CreateResponse, error) - // AlertRoutesV2Destroy request + // AlertRoutesV2DestroyWithResponse request AlertRoutesV2DestroyWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*AlertRoutesV2DestroyResponse, error) - // AlertRoutesV2Show request + // AlertRoutesV2ShowWithResponse request AlertRoutesV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*AlertRoutesV2ShowResponse, error) - // AlertRoutesV2Update request with any body + // AlertRoutesV2UpdateWithBodyWithResponse request with any body AlertRoutesV2UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AlertRoutesV2UpdateResponse, error) AlertRoutesV2UpdateWithResponse(ctx context.Context, id string, body AlertRoutesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*AlertRoutesV2UpdateResponse, error) - // CatalogV2ListEntries request + // CatalogV2ListEntriesWithResponse request CatalogV2ListEntriesWithResponse(ctx context.Context, params *CatalogV2ListEntriesParams, reqEditors ...RequestEditorFn) (*CatalogV2ListEntriesResponse, error) - // CatalogV2CreateEntry request with any body + // CatalogV2CreateEntryWithBodyWithResponse request with any body CatalogV2CreateEntryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CatalogV2CreateEntryResponse, error) CatalogV2CreateEntryWithResponse(ctx context.Context, body CatalogV2CreateEntryJSONRequestBody, reqEditors ...RequestEditorFn) (*CatalogV2CreateEntryResponse, error) - // CatalogV2DestroyEntry request + // CatalogV2DestroyEntryWithResponse request CatalogV2DestroyEntryWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CatalogV2DestroyEntryResponse, error) - // CatalogV2ShowEntry request + // CatalogV2ShowEntryWithResponse request CatalogV2ShowEntryWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CatalogV2ShowEntryResponse, error) - // CatalogV2UpdateEntry request with any body + // CatalogV2UpdateEntryWithBodyWithResponse request with any body CatalogV2UpdateEntryWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CatalogV2UpdateEntryResponse, error) CatalogV2UpdateEntryWithResponse(ctx context.Context, id string, body CatalogV2UpdateEntryJSONRequestBody, reqEditors ...RequestEditorFn) (*CatalogV2UpdateEntryResponse, error) - // CatalogV2ListResources request + // CatalogV2ListResourcesWithResponse request CatalogV2ListResourcesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CatalogV2ListResourcesResponse, error) - // CatalogV2ListTypes request + // CatalogV2ListTypesWithResponse request CatalogV2ListTypesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CatalogV2ListTypesResponse, error) - // CatalogV2CreateType request with any body + // CatalogV2CreateTypeWithBodyWithResponse request with any body CatalogV2CreateTypeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CatalogV2CreateTypeResponse, error) CatalogV2CreateTypeWithResponse(ctx context.Context, body CatalogV2CreateTypeJSONRequestBody, reqEditors ...RequestEditorFn) (*CatalogV2CreateTypeResponse, error) - // CatalogV2DestroyType request + // CatalogV2DestroyTypeWithResponse request CatalogV2DestroyTypeWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CatalogV2DestroyTypeResponse, error) - // CatalogV2ShowType request + // CatalogV2ShowTypeWithResponse request CatalogV2ShowTypeWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CatalogV2ShowTypeResponse, error) - // CatalogV2UpdateType request with any body + // CatalogV2UpdateTypeWithBodyWithResponse request with any body CatalogV2UpdateTypeWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CatalogV2UpdateTypeResponse, error) CatalogV2UpdateTypeWithResponse(ctx context.Context, id string, body CatalogV2UpdateTypeJSONRequestBody, reqEditors ...RequestEditorFn) (*CatalogV2UpdateTypeResponse, error) - // CatalogV2UpdateTypeSchema request with any body + // CatalogV2UpdateTypeSchemaWithBodyWithResponse request with any body CatalogV2UpdateTypeSchemaWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CatalogV2UpdateTypeSchemaResponse, error) CatalogV2UpdateTypeSchemaWithResponse(ctx context.Context, id string, body CatalogV2UpdateTypeSchemaJSONRequestBody, reqEditors ...RequestEditorFn) (*CatalogV2UpdateTypeSchemaResponse, error) - // CustomFieldsV2List request + // CustomFieldsV2ListWithResponse request CustomFieldsV2ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CustomFieldsV2ListResponse, error) - // CustomFieldsV2Create request with any body + // CustomFieldsV2CreateWithBodyWithResponse request with any body CustomFieldsV2CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldsV2CreateResponse, error) CustomFieldsV2CreateWithResponse(ctx context.Context, body CustomFieldsV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldsV2CreateResponse, error) - // CustomFieldsV2Delete request + // CustomFieldsV2DeleteWithResponse request CustomFieldsV2DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldsV2DeleteResponse, error) - // CustomFieldsV2Show request + // CustomFieldsV2ShowWithResponse request CustomFieldsV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CustomFieldsV2ShowResponse, error) - // CustomFieldsV2Update request with any body + // CustomFieldsV2UpdateWithBodyWithResponse request with any body CustomFieldsV2UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CustomFieldsV2UpdateResponse, error) CustomFieldsV2UpdateWithResponse(ctx context.Context, id string, body CustomFieldsV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*CustomFieldsV2UpdateResponse, error) - // EscalationsV2CreatePath request with any body + // EscalationsV2CreatePathWithBodyWithResponse request with any body EscalationsV2CreatePathWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*EscalationsV2CreatePathResponse, error) EscalationsV2CreatePathWithResponse(ctx context.Context, body EscalationsV2CreatePathJSONRequestBody, reqEditors ...RequestEditorFn) (*EscalationsV2CreatePathResponse, error) - // EscalationsV2DestroyPath request + // EscalationsV2DestroyPathWithResponse request EscalationsV2DestroyPathWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*EscalationsV2DestroyPathResponse, error) - // EscalationsV2ShowPath request + // EscalationsV2ShowPathWithResponse request EscalationsV2ShowPathWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*EscalationsV2ShowPathResponse, error) - // EscalationsV2UpdatePath request with any body + // EscalationsV2UpdatePathWithBodyWithResponse request with any body EscalationsV2UpdatePathWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*EscalationsV2UpdatePathResponse, error) EscalationsV2UpdatePathWithResponse(ctx context.Context, id string, body EscalationsV2UpdatePathJSONRequestBody, reqEditors ...RequestEditorFn) (*EscalationsV2UpdatePathResponse, error) - // FollowUpsV2List request + // FollowUpsV2ListWithResponse request FollowUpsV2ListWithResponse(ctx context.Context, params *FollowUpsV2ListParams, reqEditors ...RequestEditorFn) (*FollowUpsV2ListResponse, error) - // FollowUpsV2Show request + // FollowUpsV2ShowWithResponse request FollowUpsV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*FollowUpsV2ShowResponse, error) - // IncidentRolesV2List request + // IncidentRolesV2ListWithResponse request IncidentRolesV2ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IncidentRolesV2ListResponse, error) - // IncidentRolesV2Create request with any body + // IncidentRolesV2CreateWithBodyWithResponse request with any body IncidentRolesV2CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentRolesV2CreateResponse, error) IncidentRolesV2CreateWithResponse(ctx context.Context, body IncidentRolesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentRolesV2CreateResponse, error) - // IncidentRolesV2Delete request + // IncidentRolesV2DeleteWithResponse request IncidentRolesV2DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentRolesV2DeleteResponse, error) - // IncidentRolesV2Show request + // IncidentRolesV2ShowWithResponse request IncidentRolesV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentRolesV2ShowResponse, error) - // IncidentRolesV2Update request with any body + // IncidentRolesV2UpdateWithBodyWithResponse request with any body IncidentRolesV2UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentRolesV2UpdateResponse, error) IncidentRolesV2UpdateWithResponse(ctx context.Context, id string, body IncidentRolesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentRolesV2UpdateResponse, error) - // IncidentTimestampsV2List request + // IncidentTimestampsV2ListWithResponse request IncidentTimestampsV2ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IncidentTimestampsV2ListResponse, error) - // IncidentTimestampsV2Show request + // IncidentTimestampsV2ShowWithResponse request IncidentTimestampsV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentTimestampsV2ShowResponse, error) - // IncidentUpdatesV2List request + // IncidentUpdatesV2ListWithResponse request IncidentUpdatesV2ListWithResponse(ctx context.Context, params *IncidentUpdatesV2ListParams, reqEditors ...RequestEditorFn) (*IncidentUpdatesV2ListResponse, error) - // IncidentsV2List request + // IncidentsV2ListWithResponse request IncidentsV2ListWithResponse(ctx context.Context, params *IncidentsV2ListParams, reqEditors ...RequestEditorFn) (*IncidentsV2ListResponse, error) - // IncidentsV2Create request with any body + // IncidentsV2CreateWithBodyWithResponse request with any body IncidentsV2CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentsV2CreateResponse, error) IncidentsV2CreateWithResponse(ctx context.Context, body IncidentsV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentsV2CreateResponse, error) - // IncidentsV2Show request + // IncidentsV2ShowWithResponse request IncidentsV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*IncidentsV2ShowResponse, error) - // IncidentsV2Edit request with any body + // IncidentsV2EditWithBodyWithResponse request with any body IncidentsV2EditWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*IncidentsV2EditResponse, error) IncidentsV2EditWithResponse(ctx context.Context, id string, body IncidentsV2EditJSONRequestBody, reqEditors ...RequestEditorFn) (*IncidentsV2EditResponse, error) - // ManagedResourcesV2CreateManagedResource request with any body + // ManagedResourcesV2CreateManagedResourceWithBodyWithResponse request with any body ManagedResourcesV2CreateManagedResourceWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ManagedResourcesV2CreateManagedResourceResponse, error) ManagedResourcesV2CreateManagedResourceWithResponse(ctx context.Context, body ManagedResourcesV2CreateManagedResourceJSONRequestBody, reqEditors ...RequestEditorFn) (*ManagedResourcesV2CreateManagedResourceResponse, error) - // SchedulesV2ListScheduleEntries request + // SchedulesV2ListScheduleEntriesWithResponse request SchedulesV2ListScheduleEntriesWithResponse(ctx context.Context, params *SchedulesV2ListScheduleEntriesParams, reqEditors ...RequestEditorFn) (*SchedulesV2ListScheduleEntriesResponse, error) - // SchedulesV2List request + // SchedulesV2CreateOverrideWithBodyWithResponse request with any body + SchedulesV2CreateOverrideWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SchedulesV2CreateOverrideResponse, error) + + SchedulesV2CreateOverrideWithResponse(ctx context.Context, body SchedulesV2CreateOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*SchedulesV2CreateOverrideResponse, error) + + // SchedulesV2ListWithResponse request SchedulesV2ListWithResponse(ctx context.Context, params *SchedulesV2ListParams, reqEditors ...RequestEditorFn) (*SchedulesV2ListResponse, error) - // SchedulesV2Create request with any body + // SchedulesV2CreateWithBodyWithResponse request with any body SchedulesV2CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SchedulesV2CreateResponse, error) SchedulesV2CreateWithResponse(ctx context.Context, body SchedulesV2CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SchedulesV2CreateResponse, error) - // SchedulesV2Destroy request + // SchedulesV2DestroyWithResponse request SchedulesV2DestroyWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SchedulesV2DestroyResponse, error) - // SchedulesV2Show request + // SchedulesV2ShowWithResponse request SchedulesV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SchedulesV2ShowResponse, error) - // SchedulesV2Update request with any body + // SchedulesV2UpdateWithBodyWithResponse request with any body SchedulesV2UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SchedulesV2UpdateResponse, error) SchedulesV2UpdateWithResponse(ctx context.Context, id string, body SchedulesV2UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SchedulesV2UpdateResponse, error) - // UsersV2List request + // UsersV2ListWithResponse request UsersV2ListWithResponse(ctx context.Context, params *UsersV2ListParams, reqEditors ...RequestEditorFn) (*UsersV2ListResponse, error) - // UsersV2Show request + // UsersV2ShowWithResponse request UsersV2ShowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*UsersV2ShowResponse, error) - // WorkflowsV2ListWorkflows request + // WorkflowsV2ListWorkflowsWithResponse request WorkflowsV2ListWorkflowsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*WorkflowsV2ListWorkflowsResponse, error) - // WorkflowsV2CreateWorkflow request with any body + // WorkflowsV2CreateWorkflowWithBodyWithResponse request with any body WorkflowsV2CreateWorkflowWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*WorkflowsV2CreateWorkflowResponse, error) WorkflowsV2CreateWorkflowWithResponse(ctx context.Context, body WorkflowsV2CreateWorkflowJSONRequestBody, reqEditors ...RequestEditorFn) (*WorkflowsV2CreateWorkflowResponse, error) - // WorkflowsV2DestroyWorkflow request + // WorkflowsV2DestroyWorkflowWithResponse request WorkflowsV2DestroyWorkflowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*WorkflowsV2DestroyWorkflowResponse, error) - // WorkflowsV2ShowWorkflow request + // WorkflowsV2ShowWorkflowWithResponse request WorkflowsV2ShowWorkflowWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*WorkflowsV2ShowWorkflowResponse, error) - // WorkflowsV2UpdateWorkflow request with any body + // WorkflowsV2UpdateWorkflowWithBodyWithResponse request with any body WorkflowsV2UpdateWorkflowWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*WorkflowsV2UpdateWorkflowResponse, error) WorkflowsV2UpdateWorkflowWithResponse(ctx context.Context, id string, body WorkflowsV2UpdateWorkflowJSONRequestBody, reqEditors ...RequestEditorFn) (*WorkflowsV2UpdateWorkflowResponse, error) @@ -13162,6 +13142,28 @@ func (r SchedulesV2ListScheduleEntriesResponse) StatusCode() int { return 0 } +type SchedulesV2CreateOverrideResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *CreateOverrideResponseBody +} + +// Status returns HTTPResponse.Status +func (r SchedulesV2CreateOverrideResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SchedulesV2CreateOverrideResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + type SchedulesV2ListResponse struct { Body []byte HTTPResponse *http.Response @@ -14428,6 +14430,23 @@ func (c *ClientWithResponses) SchedulesV2ListScheduleEntriesWithResponse(ctx con return ParseSchedulesV2ListScheduleEntriesResponse(rsp) } +// SchedulesV2CreateOverrideWithBodyWithResponse request with arbitrary body returning *SchedulesV2CreateOverrideResponse +func (c *ClientWithResponses) SchedulesV2CreateOverrideWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SchedulesV2CreateOverrideResponse, error) { + rsp, err := c.SchedulesV2CreateOverrideWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSchedulesV2CreateOverrideResponse(rsp) +} + +func (c *ClientWithResponses) SchedulesV2CreateOverrideWithResponse(ctx context.Context, body SchedulesV2CreateOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*SchedulesV2CreateOverrideResponse, error) { + rsp, err := c.SchedulesV2CreateOverride(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSchedulesV2CreateOverrideResponse(rsp) +} + // SchedulesV2ListWithResponse request returning *SchedulesV2ListResponse func (c *ClientWithResponses) SchedulesV2ListWithResponse(ctx context.Context, params *SchedulesV2ListParams, reqEditors ...RequestEditorFn) (*SchedulesV2ListResponse, error) { rsp, err := c.SchedulesV2List(ctx, params, reqEditors...) @@ -16622,6 +16641,32 @@ func ParseSchedulesV2ListScheduleEntriesResponse(rsp *http.Response) (*Schedules return response, nil } +// ParseSchedulesV2CreateOverrideResponse parses an HTTP response from a SchedulesV2CreateOverrideWithResponse call +func ParseSchedulesV2CreateOverrideResponse(rsp *http.Response) (*SchedulesV2CreateOverrideResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SchedulesV2CreateOverrideResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest CreateOverrideResponseBody + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + // ParseSchedulesV2ListResponse parses an HTTP response from a SchedulesV2ListWithResponse call func ParseSchedulesV2ListResponse(rsp *http.Response) (*SchedulesV2ListResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) diff --git a/internal/provider/incident_escalation_path_resource.go b/internal/provider/incident_escalation_path_resource.go index 64a1b1a..d4f4354 100644 --- a/internal/provider/incident_escalation_path_resource.go +++ b/internal/provider/incident_escalation_path_resource.go @@ -39,11 +39,12 @@ type IncidentEscalationPathResourceModel struct { } type IncidentEscalationPathNode struct { - ID types.String `tfsdk:"id"` - Type types.String `tfsdk:"type"` - IfElse *IncidentEscalationPathNodeIfElse `tfsdk:"if_else"` - Level *IncidentEscalationPathNodeLevel `tfsdk:"level"` - Repeat *IncidentEscalationPathNodeRepeat `tfsdk:"repeat"` + ID types.String `tfsdk:"id"` + Type types.String `tfsdk:"type"` + IfElse *IncidentEscalationPathNodeIfElse `tfsdk:"if_else"` + Level *IncidentEscalationPathNodeLevel `tfsdk:"level"` + Repeat *IncidentEscalationPathNodeRepeat `tfsdk:"repeat"` + NotifyChannel *IncidentEscalationPathNodeNotifyChannel `tfsdk:"notify_channel"` } type IncidentEscalationPathNodeIfElse struct { @@ -60,6 +61,13 @@ type IncidentEscalationPathNodeLevel struct { TimeToAckWeekdayIntervalConfigID types.String `tfsdk:"time_to_ack_weekday_interval_config_id"` } +type IncidentEscalationPathNodeNotifyChannel struct { + Targets []IncidentEscalationPathTarget `tfsdk:"targets"` + TimeToAckIntervalCondition types.String `tfsdk:"time_to_ack_interval_condition"` + TimeToAckSeconds types.Int64 `tfsdk:"time_to_ack_seconds"` + TimeToAckWeekdayIntervalConfigID types.String `tfsdk:"time_to_ack_weekday_interval_config_id"` +} + type IncidentEscalationPathNodeRepeat struct { RepeatTimes types.Int64 `tfsdk:"repeat_times"` ToNode types.String `tfsdk:"to_node"` @@ -203,6 +211,51 @@ func (r *IncidentEscalationPathResource) getPathSchema(depth int) schema.NestedA }, }, }, + "notify_channel": schema.SingleNestedAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathNodeV2", "notify_channel"), + Optional: true, + Attributes: map[string]schema.Attribute{ + "targets": schema.ListNestedAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathNodeNotifyChannelV2", "targets"), + Required: true, + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "id": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathTargetV2", "id"), + Required: true, + }, + "type": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathTargetV2", "type"), + Required: true, + }, + "urgency": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathTargetV2", "urgency"), + Required: true, + }, + "schedule_mode": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring("EscalationPathTargetV2", "schedule_mode"), + Optional: true, + Computed: true, + }, + }, + }, + }, + "time_to_ack_seconds": schema.Int64Attribute{ + MarkdownDescription: apischema.Docstring("EscalationPathNodeNotifyChannelV2", "time_to_ack_seconds"), + Optional: true, + }, + "time_to_ack_interval_condition": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring( + "EscalationPathNodeNotifyChannelV2", "time_to_ack_interval_condition"), + Optional: true, + }, + "time_to_ack_weekday_interval_config_id": schema.StringAttribute{ + MarkdownDescription: apischema.Docstring( + "EscalationPathNodeNotifyChannelV2", "time_to_ack_weekday_interval_config_id"), + Optional: true, + }, + }, + }, }, } @@ -429,6 +482,29 @@ func (r *IncidentEscalationPathResource) toPathModel(nodes []client.EscalationPa elem.Level.TimeToAckWeekdayIntervalConfigID = types.StringValue(*value) } } + if node.NotifyChannel != nil { + elem.NotifyChannel = &IncidentEscalationPathNodeNotifyChannel{ + Targets: lo.Map(node.NotifyChannel.Targets, + func(target client.EscalationPathTargetV2, _ int) IncidentEscalationPathTarget { + return IncidentEscalationPathTarget{ + ID: types.StringValue(target.Id), + Type: types.StringValue(string(target.Type)), + Urgency: types.StringValue(string(target.Urgency)), + ScheduleMode: types.StringValue(string(*target.ScheduleMode)), + } + }), + } + if value := node.NotifyChannel.TimeToAckSeconds; value != nil { + elem.NotifyChannel.TimeToAckSeconds = types.Int64Value(*value) + } + if value := node.NotifyChannel.TimeToAckIntervalCondition; value != nil { + elem.NotifyChannel.TimeToAckIntervalCondition = types.StringValue( + string(*node.Level.TimeToAckIntervalCondition)) + } + if value := node.NotifyChannel.TimeToAckWeekdayIntervalConfigId; value != nil && *value != "" { + elem.NotifyChannel.TimeToAckWeekdayIntervalConfigID = types.StringValue(*value) + } + } if node.Repeat != nil { elem.Repeat = &IncidentEscalationPathNodeRepeat{ RepeatTimes: types.Int64Value(node.Repeat.RepeatTimes), @@ -495,6 +571,33 @@ func (r *IncidentEscalationPathResource) toPathPayload(path []IncidentEscalation } } } + if !reflect.ValueOf(node.NotifyChannel).IsZero() { + var intervalCondition *client.EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition + if value := node.NotifyChannel.TimeToAckIntervalCondition.ValueStringPointer(); value != nil { + intervalCondition = lo.ToPtr(client.EscalationPathNodeNotifyChannelV2TimeToAckIntervalCondition(*value)) + } + + elem.NotifyChannel = &client.EscalationPathNodeNotifyChannelV2{ + Targets: lo.Map(node.NotifyChannel.Targets, func(target IncidentEscalationPathTarget, _ int) client.EscalationPathTargetV2 { + targetPayload := client.EscalationPathTargetV2{ + Id: target.ID.ValueString(), + Type: client.EscalationPathTargetV2Type(target.Type.ValueString()), + Urgency: client.EscalationPathTargetV2Urgency(target.Urgency.ValueString()), + } + + if target.ScheduleMode.ValueString() != "" { + targetPayload.ScheduleMode = lo.ToPtr(client.EscalationPathTargetV2ScheduleMode(target.ScheduleMode.ValueString())) + } + + return targetPayload + }), + TimeToAckIntervalCondition: intervalCondition, + TimeToAckSeconds: node.NotifyChannel. + TimeToAckSeconds.ValueInt64Pointer(), + TimeToAckWeekdayIntervalConfigId: node.NotifyChannel. + TimeToAckWeekdayIntervalConfigID.ValueStringPointer(), + } + } if !reflect.ValueOf(node.Repeat).IsZero() { elem.Repeat = &client.EscalationPathNodeRepeatV2{ RepeatTimes: node.Repeat.RepeatTimes.ValueInt64(), diff --git a/internal/provider/incident_escalation_path_resource_test.go b/internal/provider/incident_escalation_path_resource_test.go index 5303439..e01e189 100644 --- a/internal/provider/incident_escalation_path_resource_test.go +++ b/internal/provider/incident_escalation_path_resource_test.go @@ -43,13 +43,21 @@ func TestAccIncidentEscalationPathResource(t *testing.T) { resource.TestCheckResourceAttr( "incident_escalation_path.example", "path.0.if_else.then_path.1.repeat.to_node", "start"), resource.TestCheckResourceAttr( - "incident_escalation_path.example", "path.0.if_else.else_path.0.type", "level"), + "incident_escalation_path.example", "path.0.if_else.else_path.0.type", "notify_channel"), resource.TestCheckResourceAttr( - "incident_escalation_path.example", "path.0.if_else.else_path.0.level.targets.0.type", "schedule"), + "incident_escalation_path.example", "path.0.if_else.else_path.0.notify_channel.targets.0.type", "slack_channel"), resource.TestCheckResourceAttr( - "incident_escalation_path.example", "path.0.if_else.else_path.0.level.targets.0.urgency", "low"), + "incident_escalation_path.example", "path.0.if_else.else_path.0.notify_channel.targets.0.urgency", "low"), resource.TestCheckResourceAttr( - "incident_escalation_path.example", "path.0.if_else.else_path.0.level.time_to_ack_seconds", "300"), + "incident_escalation_path.example", "path.0.if_else.else_path.0.notify_channel.time_to_ack_seconds", "300"), + resource.TestCheckResourceAttr( + "incident_escalation_path.example", "path.0.if_else.else_path.1.type", "level"), + resource.TestCheckResourceAttr( + "incident_escalation_path.example", "path.0.if_else.else_path.1.level.targets.0.type", "schedule"), + resource.TestCheckResourceAttr( + "incident_escalation_path.example", "path.0.if_else.else_path.1.level.targets.0.urgency", "low"), + resource.TestCheckResourceAttr( + "incident_escalation_path.example", "path.0.if_else.else_path.1.level.time_to_ack_seconds", "300"), resource.TestCheckResourceAttr( "incident_escalation_path.example", "working_hours.0.id", "UK"), resource.TestCheckResourceAttr( @@ -141,6 +149,17 @@ resource "incident_escalation_path" "example" { } ] else_path = [ + { + type = "notify_channel" + notify_channel = { + targets = [{ + type = "slack_channel" + id = "C04U0DJSG0Z" + urgency = "low" + }] + time_to_ack_seconds = 300 + } + }, { type = "level" level = {