@incident-io/pulumi 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +69 -0
- package/alertAttribute.d.ts +230 -0
- package/alertAttribute.d.ts.map +1 -0
- package/alertAttribute.js +219 -0
- package/alertAttribute.js.map +1 -0
- package/alertRoute.d.ts +511 -0
- package/alertRoute.d.ts.map +1 -0
- package/alertRoute.js +432 -0
- package/alertRoute.js.map +1 -0
- package/alertSource.d.ts +347 -0
- package/alertSource.d.ts.map +1 -0
- package/alertSource.js +241 -0
- package/alertSource.js.map +1 -0
- package/alertSourceAttribute.d.ts +180 -0
- package/alertSourceAttribute.d.ts.map +1 -0
- package/alertSourceAttribute.js +107 -0
- package/alertSourceAttribute.js.map +1 -0
- package/alertSourceAttributeBeta.d.ts +188 -0
- package/alertSourceAttributeBeta.d.ts.map +1 -0
- package/alertSourceAttributeBeta.js +115 -0
- package/alertSourceAttributeBeta.js.map +1 -0
- package/alertSourceBeta.d.ts +244 -0
- package/alertSourceBeta.d.ts.map +1 -0
- package/alertSourceBeta.js +138 -0
- package/alertSourceBeta.js.map +1 -0
- package/apiKey.d.ts +276 -0
- package/apiKey.d.ts.map +1 -0
- package/apiKey.js +211 -0
- package/apiKey.js.map +1 -0
- package/catalogEntries.d.ts +241 -0
- package/catalogEntries.d.ts.map +1 -0
- package/catalogEntries.js +242 -0
- package/catalogEntries.js.map +1 -0
- package/catalogEntry.d.ts +183 -0
- package/catalogEntry.d.ts.map +1 -0
- package/catalogEntry.js +159 -0
- package/catalogEntry.js.map +1 -0
- package/catalogType.d.ts +169 -0
- package/catalogType.d.ts.map +1 -0
- package/catalogType.js +132 -0
- package/catalogType.js.map +1 -0
- package/catalogTypeAttribute.d.ts +190 -0
- package/catalogTypeAttribute.d.ts.map +1 -0
- package/catalogTypeAttribute.js +153 -0
- package/catalogTypeAttribute.js.map +1 -0
- package/config/index.d.ts +2 -0
- package/config/index.d.ts.map +1 -0
- package/config/index.js +21 -0
- package/config/index.js.map +1 -0
- package/config/vars.d.ts +13 -0
- package/config/vars.d.ts.map +1 -0
- package/config/vars.js +49 -0
- package/config/vars.js.map +1 -0
- package/customField.d.ts +260 -0
- package/customField.d.ts.map +1 -0
- package/customField.js +226 -0
- package/customField.js.map +1 -0
- package/customFieldOption.d.ts +107 -0
- package/customFieldOption.d.ts.map +1 -0
- package/customFieldOption.js +116 -0
- package/customFieldOption.js.map +1 -0
- package/escalationPath.d.ts +257 -0
- package/escalationPath.d.ts.map +1 -0
- package/escalationPath.js +228 -0
- package/escalationPath.js.map +1 -0
- package/escalationPathBeta.d.ts +134 -0
- package/escalationPathBeta.d.ts.map +1 -0
- package/escalationPathBeta.js +105 -0
- package/escalationPathBeta.js.map +1 -0
- package/getAlertAttribute.d.ts +81 -0
- package/getAlertAttribute.d.ts.map +1 -0
- package/getAlertAttribute.js +75 -0
- package/getAlertAttribute.js.map +1 -0
- package/getAlertSource.d.ts +169 -0
- package/getAlertSource.d.ts.map +1 -0
- package/getAlertSource.js +103 -0
- package/getAlertSource.js.map +1 -0
- package/getAlertSourceAttribute.d.ts +131 -0
- package/getAlertSourceAttribute.d.ts.map +1 -0
- package/getAlertSourceAttribute.js +85 -0
- package/getAlertSourceAttribute.js.map +1 -0
- package/getAlertSourceAttributeBeta.d.ts +131 -0
- package/getAlertSourceAttributeBeta.d.ts.map +1 -0
- package/getAlertSourceAttributeBeta.js +85 -0
- package/getAlertSourceAttributeBeta.js.map +1 -0
- package/getApiKey.d.ts +167 -0
- package/getApiKey.d.ts.map +1 -0
- package/getApiKey.js +145 -0
- package/getApiKey.js.map +1 -0
- package/getCatalogEntry.d.ts +77 -0
- package/getCatalogEntry.d.ts.map +1 -0
- package/getCatalogEntry.js +59 -0
- package/getCatalogEntry.js.map +1 -0
- package/getCatalogType.d.ts +163 -0
- package/getCatalogType.d.ts.map +1 -0
- package/getCatalogType.js +135 -0
- package/getCatalogType.js.map +1 -0
- package/getCatalogTypeAttribute.d.ts +73 -0
- package/getCatalogTypeAttribute.d.ts.map +1 -0
- package/getCatalogTypeAttribute.js +53 -0
- package/getCatalogTypeAttribute.js.map +1 -0
- package/getCustomField.d.ts +67 -0
- package/getCustomField.d.ts.map +1 -0
- package/getCustomField.js +51 -0
- package/getCustomField.js.map +1 -0
- package/getCustomFieldOption.d.ts +65 -0
- package/getCustomFieldOption.d.ts.map +1 -0
- package/getCustomFieldOption.js +55 -0
- package/getCustomFieldOption.js.map +1 -0
- package/getEscalationPath.d.ts +100 -0
- package/getEscalationPath.d.ts.map +1 -0
- package/getEscalationPath.js +83 -0
- package/getEscalationPath.js.map +1 -0
- package/getEscalationPathBeta.d.ts +100 -0
- package/getEscalationPathBeta.d.ts.map +1 -0
- package/getEscalationPathBeta.js +83 -0
- package/getEscalationPathBeta.js.map +1 -0
- package/getIncidentRole.d.ts +111 -0
- package/getIncidentRole.d.ts.map +1 -0
- package/getIncidentRole.js +105 -0
- package/getIncidentRole.js.map +1 -0
- package/getIncidentTemplate.d.ts +98 -0
- package/getIncidentTemplate.d.ts.map +1 -0
- package/getIncidentTemplate.js +95 -0
- package/getIncidentTemplate.js.map +1 -0
- package/getIncidentTimestamp.d.ts +107 -0
- package/getIncidentTimestamp.d.ts.map +1 -0
- package/getIncidentTimestamp.js +109 -0
- package/getIncidentTimestamp.js.map +1 -0
- package/getIncidentType.d.ts +121 -0
- package/getIncidentType.d.ts.map +1 -0
- package/getIncidentType.js +107 -0
- package/getIncidentType.js.map +1 -0
- package/getIpAllowlist.d.ts +62 -0
- package/getIpAllowlist.d.ts.map +1 -0
- package/getIpAllowlist.js +77 -0
- package/getIpAllowlist.js.map +1 -0
- package/getPolicy.d.ts +97 -0
- package/getPolicy.d.ts.map +1 -0
- package/getPolicy.js +91 -0
- package/getPolicy.js.map +1 -0
- package/getRichText.d.ts +111 -0
- package/getRichText.d.ts.map +1 -0
- package/getRichText.js +107 -0
- package/getRichText.js.map +1 -0
- package/getSchedule.d.ts +89 -0
- package/getSchedule.d.ts.map +1 -0
- package/getSchedule.js +87 -0
- package/getSchedule.js.map +1 -0
- package/getScheduleBeta.d.ts +85 -0
- package/getScheduleBeta.d.ts.map +1 -0
- package/getScheduleBeta.js +83 -0
- package/getScheduleBeta.js.map +1 -0
- package/getScheduleReplica.d.ts +116 -0
- package/getScheduleReplica.d.ts.map +1 -0
- package/getScheduleReplica.js +79 -0
- package/getScheduleReplica.js.map +1 -0
- package/getScheduleRotation.d.ts +166 -0
- package/getScheduleRotation.d.ts.map +1 -0
- package/getScheduleRotation.js +127 -0
- package/getScheduleRotation.js.map +1 -0
- package/getScheduleRotationBeta.d.ts +122 -0
- package/getScheduleRotationBeta.d.ts.map +1 -0
- package/getScheduleRotationBeta.js +83 -0
- package/getScheduleRotationBeta.js.map +1 -0
- package/getScheduleSyncRule.d.ts +91 -0
- package/getScheduleSyncRule.d.ts.map +1 -0
- package/getScheduleSyncRule.js +79 -0
- package/getScheduleSyncRule.js.map +1 -0
- package/getScheduleSyncTarget.d.ts +100 -0
- package/getScheduleSyncTarget.d.ts.map +1 -0
- package/getScheduleSyncTarget.js +93 -0
- package/getScheduleSyncTarget.js.map +1 -0
- package/getSecret.d.ts +115 -0
- package/getSecret.d.ts.map +1 -0
- package/getSecret.js +97 -0
- package/getSecret.js.map +1 -0
- package/getSeverity.d.ts +117 -0
- package/getSeverity.d.ts.map +1 -0
- package/getSeverity.js +115 -0
- package/getSeverity.js.map +1 -0
- package/getStatus.d.ts +125 -0
- package/getStatus.d.ts.map +1 -0
- package/getStatus.js +119 -0
- package/getStatus.js.map +1 -0
- package/getUser.d.ts +52 -0
- package/getUser.d.ts.map +1 -0
- package/getUser.js +61 -0
- package/getUser.js.map +1 -0
- package/getWorkflow.d.ts +103 -0
- package/getWorkflow.d.ts.map +1 -0
- package/getWorkflow.js +77 -0
- package/getWorkflow.js.map +1 -0
- package/incidentRole.d.ts +109 -0
- package/incidentRole.d.ts.map +1 -0
- package/incidentRole.js +111 -0
- package/incidentRole.js.map +1 -0
- package/incidentTemplate.d.ts +200 -0
- package/incidentTemplate.d.ts.map +1 -0
- package/incidentTemplate.js +207 -0
- package/incidentTemplate.js.map +1 -0
- package/index.d.ts +188 -0
- package/index.d.ts.map +1 -0
- package/index.js +303 -0
- package/index.js.map +1 -0
- package/maintenanceWindow.d.ts +255 -0
- package/maintenanceWindow.d.ts.map +1 -0
- package/maintenanceWindow.js +148 -0
- package/maintenanceWindow.js.map +1 -0
- package/package.json +33 -0
- package/policy.d.ts +476 -0
- package/policy.d.ts.map +1 -0
- package/policy.js +387 -0
- package/policy.js.map +1 -0
- package/provider.d.ts +62 -0
- package/provider.d.ts.map +1 -0
- package/provider.js +80 -0
- package/provider.js.map +1 -0
- package/schedule.d.ts +120 -0
- package/schedule.d.ts.map +1 -0
- package/schedule.js +114 -0
- package/schedule.js.map +1 -0
- package/scheduleBeta.d.ts +104 -0
- package/scheduleBeta.d.ts.map +1 -0
- package/scheduleBeta.js +98 -0
- package/scheduleBeta.js.map +1 -0
- package/scheduleReplica.d.ts +178 -0
- package/scheduleReplica.d.ts.map +1 -0
- package/scheduleReplica.js +134 -0
- package/scheduleReplica.js.map +1 -0
- package/scheduleRotation.d.ts +287 -0
- package/scheduleRotation.d.ts.map +1 -0
- package/scheduleRotation.js +224 -0
- package/scheduleRotation.js.map +1 -0
- package/scheduleRotationBeta.d.ts +184 -0
- package/scheduleRotationBeta.d.ts.map +1 -0
- package/scheduleRotationBeta.js +121 -0
- package/scheduleRotationBeta.js.map +1 -0
- package/scheduleSyncRule.d.ts +154 -0
- package/scheduleSyncRule.d.ts.map +1 -0
- package/scheduleSyncRule.js +146 -0
- package/scheduleSyncRule.js.map +1 -0
- package/scheduleSyncTarget.d.ts +108 -0
- package/scheduleSyncTarget.d.ts.map +1 -0
- package/scheduleSyncTarget.js +106 -0
- package/scheduleSyncTarget.js.map +1 -0
- package/secret.d.ts +276 -0
- package/secret.d.ts.map +1 -0
- package/secret.js +234 -0
- package/secret.js.map +1 -0
- package/severity.d.ts +96 -0
- package/severity.d.ts.map +1 -0
- package/severity.js +102 -0
- package/severity.js.map +1 -0
- package/status.d.ts +121 -0
- package/status.d.ts.map +1 -0
- package/status.js +120 -0
- package/status.js.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +34 -0
- package/types/index.js.map +1 -0
- package/types/input.d.ts +23630 -0
- package/types/input.d.ts.map +1 -0
- package/types/input.js +5 -0
- package/types/input.js.map +1 -0
- package/types/output.d.ts +19726 -0
- package/types/output.d.ts.map +1 -0
- package/types/output.js +5 -0
- package/types/output.js.map +1 -0
- package/utilities.d.ts +5 -0
- package/utilities.d.ts.map +1 -0
- package/utilities.js +114 -0
- package/utilities.js.map +1 -0
- package/workflow.d.ts +736 -0
- package/workflow.d.ts.map +1 -0
- package/workflow.js +608 -0
- package/workflow.js.map +1 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "./types/input";
|
|
3
|
+
import * as outputs from "./types/output";
|
|
4
|
+
/**
|
|
5
|
+
* Create and manage escalation paths, written as a flat map of named node sequences.
|
|
6
|
+
*
|
|
7
|
+
* Each sequence runs its nodes in order and either ends with a `branch`, which names the sequences to continue down, or falls off the end of the escalation path.
|
|
8
|
+
*
|
|
9
|
+
* We'd generally recommend building escalation paths in our [web dashboard](https://app.incident.io/~/on-call/escalation-paths) and using the 'Export' flow to generate your Terraform.
|
|
10
|
+
*
|
|
11
|
+
* ## Upgrading from v6
|
|
12
|
+
*
|
|
13
|
+
* Before v7 this resource nested a branch's nodes inside it, as `if_else.then_path` and
|
|
14
|
+
* `if_else.else_path`. Terraform schemas can't recurse indefinitely, so it stopped at five
|
|
15
|
+
* levels of branching, and a path that branched more than that couldn't be written at all.
|
|
16
|
+
*
|
|
17
|
+
* It now names its sequences instead. A `branch` says which sequence to continue down rather
|
|
18
|
+
* than holding its nodes, so every sequence sits at the same depth in the config and there's no
|
|
19
|
+
* nesting limit. It also swaps `repeat` for `loop`, which names the node to go back to, and
|
|
20
|
+
* replaces the raw engine `conditions` on a branch with a `branch.if` block holding one
|
|
21
|
+
* attribute per thing an escalation can be tested on.
|
|
22
|
+
*
|
|
23
|
+
* Your escalation path's state carries over: the `path` it holds is dropped and the rest is
|
|
24
|
+
* read back from the API. Rewrite the `path` as `sequences` in your configuration, and note
|
|
25
|
+
* that this resource names the sequences itself when it reads them back - the one the path
|
|
26
|
+
* starts with is `main`, and the sequences a branch leads to are `mainThen` and
|
|
27
|
+
* `mainElse`, after the sequence the branch sits in. A configuration that calls them
|
|
28
|
+
* something else plans a change, so run `pulumi preview` before you apply.
|
|
29
|
+
*
|
|
30
|
+
* Write out each level's `ackMode` while you are there. This resource defaults it to
|
|
31
|
+
* `first` where v6 defaulted it to `all`, and a default applies wherever the configuration
|
|
32
|
+
* is silent - so a level that never set `ackMode` plans a change from `all` to `first`,
|
|
33
|
+
* and applying it changes how the level pages: with `first`, the first person to acknowledge
|
|
34
|
+
* cancels everyone else's escalation on that level. Set `ackMode = "all"` on every level
|
|
35
|
+
* whose behaviour you mean to keep.
|
|
36
|
+
*
|
|
37
|
+
* If you were already using `incident.EscalationPathBeta`, none of this applies: that name
|
|
38
|
+
* still works in v7, and renaming it to this one is a `moved` block whenever you want to make
|
|
39
|
+
* it.
|
|
40
|
+
*
|
|
41
|
+
* ## Example Usage
|
|
42
|
+
*
|
|
43
|
+
* ```typescript
|
|
44
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
45
|
+
* import * as incident from "@incident-io/pulumi";
|
|
46
|
+
*
|
|
47
|
+
* // Look up a user to page. Escalation path targets can also be schedules or
|
|
48
|
+
* // Slack/Teams channels; see the `type` attribute on each target.
|
|
49
|
+
* const onCall = incident.getUser({
|
|
50
|
+
* email: "on-call@example.com",
|
|
51
|
+
* });
|
|
52
|
+
* // A last resort path, which the path below hands over to out of hours.
|
|
53
|
+
* const fallback = new incident.EscalationPath("fallback", {
|
|
54
|
+
* name: "Fallback",
|
|
55
|
+
* path: [{
|
|
56
|
+
* type: "level",
|
|
57
|
+
* level: {
|
|
58
|
+
* targets: [{
|
|
59
|
+
* type: "user",
|
|
60
|
+
* id: onCall.then(onCall => onCall.id),
|
|
61
|
+
* urgency: "high",
|
|
62
|
+
* }],
|
|
63
|
+
* timeToAckSeconds: 300,
|
|
64
|
+
* },
|
|
65
|
+
* }],
|
|
66
|
+
* });
|
|
67
|
+
* // The same escalation path as the incident_escalation_path example, written as a
|
|
68
|
+
* // flat map of sequences: if in working hours, page with high urgency; otherwise
|
|
69
|
+
* // page with low urgency.
|
|
70
|
+
* const urgentSupport = new incident.EscalationPath("urgent_support", {
|
|
71
|
+
* name: "Urgent support",
|
|
72
|
+
* start: "main",
|
|
73
|
+
* sequences: {
|
|
74
|
+
* main: {
|
|
75
|
+
* nodes: [{
|
|
76
|
+
* id: "start",
|
|
77
|
+
* branch: {
|
|
78
|
+
* "if": {
|
|
79
|
+
* workingHoursActive: "UK",
|
|
80
|
+
* },
|
|
81
|
+
* then: "in_hours",
|
|
82
|
+
* "else": "out_of_hours",
|
|
83
|
+
* },
|
|
84
|
+
* }],
|
|
85
|
+
* },
|
|
86
|
+
* in_hours: {
|
|
87
|
+
* nodes: [
|
|
88
|
+
* {
|
|
89
|
+
* level: {
|
|
90
|
+
* targets: [{
|
|
91
|
+
* type: "user",
|
|
92
|
+
* id: onCall.then(onCall => onCall.id),
|
|
93
|
+
* urgency: "high",
|
|
94
|
+
* }],
|
|
95
|
+
* timeToAckSeconds: 300,
|
|
96
|
+
* },
|
|
97
|
+
* },
|
|
98
|
+
* {
|
|
99
|
+
* delay: {
|
|
100
|
+
* delaySeconds: 120,
|
|
101
|
+
* },
|
|
102
|
+
* },
|
|
103
|
+
* {
|
|
104
|
+
* loop: {
|
|
105
|
+
* backTo: "start",
|
|
106
|
+
* times: 3,
|
|
107
|
+
* },
|
|
108
|
+
* },
|
|
109
|
+
* ],
|
|
110
|
+
* },
|
|
111
|
+
* out_of_hours: {
|
|
112
|
+
* nodes: [
|
|
113
|
+
* {
|
|
114
|
+
* level: {
|
|
115
|
+
* targets: [{
|
|
116
|
+
* type: "user",
|
|
117
|
+
* id: onCall.then(onCall => onCall.id),
|
|
118
|
+
* urgency: "low",
|
|
119
|
+
* }],
|
|
120
|
+
* timeToAckSeconds: 300,
|
|
121
|
+
* },
|
|
122
|
+
* },
|
|
123
|
+
* {
|
|
124
|
+
* escalationPath: {
|
|
125
|
+
* escalationPathId: fallback.id,
|
|
126
|
+
* },
|
|
127
|
+
* },
|
|
128
|
+
* ],
|
|
129
|
+
* },
|
|
130
|
+
* },
|
|
131
|
+
* workingHours: [{
|
|
132
|
+
* id: "UK",
|
|
133
|
+
* name: "UK",
|
|
134
|
+
* timezone: "Europe/London",
|
|
135
|
+
* weekdayIntervals: [{
|
|
136
|
+
* weekday: "monday",
|
|
137
|
+
* startTime: "09:00",
|
|
138
|
+
* endTime: "17:00",
|
|
139
|
+
* }],
|
|
140
|
+
* }],
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare class EscalationPath extends pulumi.CustomResource {
|
|
145
|
+
/**
|
|
146
|
+
* Get an existing EscalationPath resource's state with the given name, ID, and optional extra
|
|
147
|
+
* properties used to qualify the lookup.
|
|
148
|
+
*
|
|
149
|
+
* @param name The _unique_ name of the resulting resource.
|
|
150
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
151
|
+
* @param state Any extra arguments used during the lookup.
|
|
152
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
153
|
+
*/
|
|
154
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EscalationPathState, opts?: pulumi.CustomResourceOptions): EscalationPath;
|
|
155
|
+
/**
|
|
156
|
+
* Returns true if the given object is an instance of EscalationPath. This is designed to work even
|
|
157
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
158
|
+
*/
|
|
159
|
+
static isInstance(obj: any): obj is EscalationPath;
|
|
160
|
+
/**
|
|
161
|
+
* The name of this escalation path, for the user's reference.
|
|
162
|
+
*/
|
|
163
|
+
readonly name: pulumi.Output<string>;
|
|
164
|
+
/**
|
|
165
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
166
|
+
*/
|
|
167
|
+
readonly repeatConfig: pulumi.Output<outputs.EscalationPathRepeatConfig | undefined>;
|
|
168
|
+
/**
|
|
169
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
170
|
+
*/
|
|
171
|
+
readonly sequences: pulumi.Output<{
|
|
172
|
+
[key: string]: outputs.EscalationPathSequences;
|
|
173
|
+
}>;
|
|
174
|
+
/**
|
|
175
|
+
* The key of the sequence this escalation path begins with.
|
|
176
|
+
*/
|
|
177
|
+
readonly start: pulumi.Output<string>;
|
|
178
|
+
/**
|
|
179
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
180
|
+
*/
|
|
181
|
+
readonly teamIds: pulumi.Output<string[] | undefined>;
|
|
182
|
+
/**
|
|
183
|
+
* The working hours for this escalation path.
|
|
184
|
+
*/
|
|
185
|
+
readonly workingHours: pulumi.Output<outputs.EscalationPathWorkingHour[] | undefined>;
|
|
186
|
+
/**
|
|
187
|
+
* Create a EscalationPath resource with the given unique name, arguments, and options.
|
|
188
|
+
*
|
|
189
|
+
* @param name The _unique_ name of the resource.
|
|
190
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
191
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
192
|
+
*/
|
|
193
|
+
constructor(name: string, args: EscalationPathArgs, opts?: pulumi.CustomResourceOptions);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Input properties used for looking up and filtering EscalationPath resources.
|
|
197
|
+
*/
|
|
198
|
+
export interface EscalationPathState {
|
|
199
|
+
/**
|
|
200
|
+
* The name of this escalation path, for the user's reference.
|
|
201
|
+
*/
|
|
202
|
+
name?: pulumi.Input<string | undefined>;
|
|
203
|
+
/**
|
|
204
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
205
|
+
*/
|
|
206
|
+
repeatConfig?: pulumi.Input<inputs.EscalationPathRepeatConfig | undefined>;
|
|
207
|
+
/**
|
|
208
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
209
|
+
*/
|
|
210
|
+
sequences?: pulumi.Input<{
|
|
211
|
+
[key: string]: pulumi.Input<inputs.EscalationPathSequences>;
|
|
212
|
+
} | undefined>;
|
|
213
|
+
/**
|
|
214
|
+
* The key of the sequence this escalation path begins with.
|
|
215
|
+
*/
|
|
216
|
+
start?: pulumi.Input<string | undefined>;
|
|
217
|
+
/**
|
|
218
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
219
|
+
*/
|
|
220
|
+
teamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
|
|
221
|
+
/**
|
|
222
|
+
* The working hours for this escalation path.
|
|
223
|
+
*/
|
|
224
|
+
workingHours?: pulumi.Input<pulumi.Input<inputs.EscalationPathWorkingHour>[] | undefined>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* The set of arguments for constructing a EscalationPath resource.
|
|
228
|
+
*/
|
|
229
|
+
export interface EscalationPathArgs {
|
|
230
|
+
/**
|
|
231
|
+
* The name of this escalation path, for the user's reference.
|
|
232
|
+
*/
|
|
233
|
+
name?: pulumi.Input<string | undefined>;
|
|
234
|
+
/**
|
|
235
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
236
|
+
*/
|
|
237
|
+
repeatConfig?: pulumi.Input<inputs.EscalationPathRepeatConfig | undefined>;
|
|
238
|
+
/**
|
|
239
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
240
|
+
*/
|
|
241
|
+
sequences: pulumi.Input<{
|
|
242
|
+
[key: string]: pulumi.Input<inputs.EscalationPathSequences>;
|
|
243
|
+
}>;
|
|
244
|
+
/**
|
|
245
|
+
* The key of the sequence this escalation path begins with.
|
|
246
|
+
*/
|
|
247
|
+
start: pulumi.Input<string>;
|
|
248
|
+
/**
|
|
249
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
250
|
+
*/
|
|
251
|
+
teamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
|
|
252
|
+
/**
|
|
253
|
+
* The working hours for this escalation path.
|
|
254
|
+
*/
|
|
255
|
+
workingHours?: pulumi.Input<pulumi.Input<inputs.EscalationPathWorkingHour>[] | undefined>;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=escalationPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalationPath.d.ts","sourceRoot":"","sources":["../escalationPath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.EscalationPath = void 0;
|
|
29
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
30
|
+
const utilities = __importStar(require("./utilities"));
|
|
31
|
+
/**
|
|
32
|
+
* Create and manage escalation paths, written as a flat map of named node sequences.
|
|
33
|
+
*
|
|
34
|
+
* Each sequence runs its nodes in order and either ends with a `branch`, which names the sequences to continue down, or falls off the end of the escalation path.
|
|
35
|
+
*
|
|
36
|
+
* We'd generally recommend building escalation paths in our [web dashboard](https://app.incident.io/~/on-call/escalation-paths) and using the 'Export' flow to generate your Terraform.
|
|
37
|
+
*
|
|
38
|
+
* ## Upgrading from v6
|
|
39
|
+
*
|
|
40
|
+
* Before v7 this resource nested a branch's nodes inside it, as `if_else.then_path` and
|
|
41
|
+
* `if_else.else_path`. Terraform schemas can't recurse indefinitely, so it stopped at five
|
|
42
|
+
* levels of branching, and a path that branched more than that couldn't be written at all.
|
|
43
|
+
*
|
|
44
|
+
* It now names its sequences instead. A `branch` says which sequence to continue down rather
|
|
45
|
+
* than holding its nodes, so every sequence sits at the same depth in the config and there's no
|
|
46
|
+
* nesting limit. It also swaps `repeat` for `loop`, which names the node to go back to, and
|
|
47
|
+
* replaces the raw engine `conditions` on a branch with a `branch.if` block holding one
|
|
48
|
+
* attribute per thing an escalation can be tested on.
|
|
49
|
+
*
|
|
50
|
+
* Your escalation path's state carries over: the `path` it holds is dropped and the rest is
|
|
51
|
+
* read back from the API. Rewrite the `path` as `sequences` in your configuration, and note
|
|
52
|
+
* that this resource names the sequences itself when it reads them back - the one the path
|
|
53
|
+
* starts with is `main`, and the sequences a branch leads to are `mainThen` and
|
|
54
|
+
* `mainElse`, after the sequence the branch sits in. A configuration that calls them
|
|
55
|
+
* something else plans a change, so run `pulumi preview` before you apply.
|
|
56
|
+
*
|
|
57
|
+
* Write out each level's `ackMode` while you are there. This resource defaults it to
|
|
58
|
+
* `first` where v6 defaulted it to `all`, and a default applies wherever the configuration
|
|
59
|
+
* is silent - so a level that never set `ackMode` plans a change from `all` to `first`,
|
|
60
|
+
* and applying it changes how the level pages: with `first`, the first person to acknowledge
|
|
61
|
+
* cancels everyone else's escalation on that level. Set `ackMode = "all"` on every level
|
|
62
|
+
* whose behaviour you mean to keep.
|
|
63
|
+
*
|
|
64
|
+
* If you were already using `incident.EscalationPathBeta`, none of this applies: that name
|
|
65
|
+
* still works in v7, and renaming it to this one is a `moved` block whenever you want to make
|
|
66
|
+
* it.
|
|
67
|
+
*
|
|
68
|
+
* ## Example Usage
|
|
69
|
+
*
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
72
|
+
* import * as incident from "@incident-io/pulumi";
|
|
73
|
+
*
|
|
74
|
+
* // Look up a user to page. Escalation path targets can also be schedules or
|
|
75
|
+
* // Slack/Teams channels; see the `type` attribute on each target.
|
|
76
|
+
* const onCall = incident.getUser({
|
|
77
|
+
* email: "on-call@example.com",
|
|
78
|
+
* });
|
|
79
|
+
* // A last resort path, which the path below hands over to out of hours.
|
|
80
|
+
* const fallback = new incident.EscalationPath("fallback", {
|
|
81
|
+
* name: "Fallback",
|
|
82
|
+
* path: [{
|
|
83
|
+
* type: "level",
|
|
84
|
+
* level: {
|
|
85
|
+
* targets: [{
|
|
86
|
+
* type: "user",
|
|
87
|
+
* id: onCall.then(onCall => onCall.id),
|
|
88
|
+
* urgency: "high",
|
|
89
|
+
* }],
|
|
90
|
+
* timeToAckSeconds: 300,
|
|
91
|
+
* },
|
|
92
|
+
* }],
|
|
93
|
+
* });
|
|
94
|
+
* // The same escalation path as the incident_escalation_path example, written as a
|
|
95
|
+
* // flat map of sequences: if in working hours, page with high urgency; otherwise
|
|
96
|
+
* // page with low urgency.
|
|
97
|
+
* const urgentSupport = new incident.EscalationPath("urgent_support", {
|
|
98
|
+
* name: "Urgent support",
|
|
99
|
+
* start: "main",
|
|
100
|
+
* sequences: {
|
|
101
|
+
* main: {
|
|
102
|
+
* nodes: [{
|
|
103
|
+
* id: "start",
|
|
104
|
+
* branch: {
|
|
105
|
+
* "if": {
|
|
106
|
+
* workingHoursActive: "UK",
|
|
107
|
+
* },
|
|
108
|
+
* then: "in_hours",
|
|
109
|
+
* "else": "out_of_hours",
|
|
110
|
+
* },
|
|
111
|
+
* }],
|
|
112
|
+
* },
|
|
113
|
+
* in_hours: {
|
|
114
|
+
* nodes: [
|
|
115
|
+
* {
|
|
116
|
+
* level: {
|
|
117
|
+
* targets: [{
|
|
118
|
+
* type: "user",
|
|
119
|
+
* id: onCall.then(onCall => onCall.id),
|
|
120
|
+
* urgency: "high",
|
|
121
|
+
* }],
|
|
122
|
+
* timeToAckSeconds: 300,
|
|
123
|
+
* },
|
|
124
|
+
* },
|
|
125
|
+
* {
|
|
126
|
+
* delay: {
|
|
127
|
+
* delaySeconds: 120,
|
|
128
|
+
* },
|
|
129
|
+
* },
|
|
130
|
+
* {
|
|
131
|
+
* loop: {
|
|
132
|
+
* backTo: "start",
|
|
133
|
+
* times: 3,
|
|
134
|
+
* },
|
|
135
|
+
* },
|
|
136
|
+
* ],
|
|
137
|
+
* },
|
|
138
|
+
* out_of_hours: {
|
|
139
|
+
* nodes: [
|
|
140
|
+
* {
|
|
141
|
+
* level: {
|
|
142
|
+
* targets: [{
|
|
143
|
+
* type: "user",
|
|
144
|
+
* id: onCall.then(onCall => onCall.id),
|
|
145
|
+
* urgency: "low",
|
|
146
|
+
* }],
|
|
147
|
+
* timeToAckSeconds: 300,
|
|
148
|
+
* },
|
|
149
|
+
* },
|
|
150
|
+
* {
|
|
151
|
+
* escalationPath: {
|
|
152
|
+
* escalationPathId: fallback.id,
|
|
153
|
+
* },
|
|
154
|
+
* },
|
|
155
|
+
* ],
|
|
156
|
+
* },
|
|
157
|
+
* },
|
|
158
|
+
* workingHours: [{
|
|
159
|
+
* id: "UK",
|
|
160
|
+
* name: "UK",
|
|
161
|
+
* timezone: "Europe/London",
|
|
162
|
+
* weekdayIntervals: [{
|
|
163
|
+
* weekday: "monday",
|
|
164
|
+
* startTime: "09:00",
|
|
165
|
+
* endTime: "17:00",
|
|
166
|
+
* }],
|
|
167
|
+
* }],
|
|
168
|
+
* });
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
class EscalationPath extends pulumi.CustomResource {
|
|
172
|
+
/**
|
|
173
|
+
* Get an existing EscalationPath resource's state with the given name, ID, and optional extra
|
|
174
|
+
* properties used to qualify the lookup.
|
|
175
|
+
*
|
|
176
|
+
* @param name The _unique_ name of the resulting resource.
|
|
177
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
178
|
+
* @param state Any extra arguments used during the lookup.
|
|
179
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
180
|
+
*/
|
|
181
|
+
static get(name, id, state, opts) {
|
|
182
|
+
return new EscalationPath(name, state, { ...opts, id: id });
|
|
183
|
+
}
|
|
184
|
+
/** @internal */
|
|
185
|
+
static __pulumiType = 'incident:index/escalationPath:EscalationPath';
|
|
186
|
+
/**
|
|
187
|
+
* Returns true if the given object is an instance of EscalationPath. This is designed to work even
|
|
188
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
189
|
+
*/
|
|
190
|
+
static isInstance(obj) {
|
|
191
|
+
if (obj === undefined || obj === null) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return obj['__pulumiType'] === EscalationPath.__pulumiType;
|
|
195
|
+
}
|
|
196
|
+
constructor(name, argsOrState, opts) {
|
|
197
|
+
let resourceInputs = {};
|
|
198
|
+
opts = opts || {};
|
|
199
|
+
if (opts.id) {
|
|
200
|
+
const state = argsOrState;
|
|
201
|
+
resourceInputs["name"] = state?.name;
|
|
202
|
+
resourceInputs["repeatConfig"] = state?.repeatConfig;
|
|
203
|
+
resourceInputs["sequences"] = state?.sequences;
|
|
204
|
+
resourceInputs["start"] = state?.start;
|
|
205
|
+
resourceInputs["teamIds"] = state?.teamIds;
|
|
206
|
+
resourceInputs["workingHours"] = state?.workingHours;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
const args = argsOrState;
|
|
210
|
+
if (args?.sequences === undefined && !opts.urn) {
|
|
211
|
+
throw new Error("Missing required property 'sequences'");
|
|
212
|
+
}
|
|
213
|
+
if (args?.start === undefined && !opts.urn) {
|
|
214
|
+
throw new Error("Missing required property 'start'");
|
|
215
|
+
}
|
|
216
|
+
resourceInputs["name"] = args?.name;
|
|
217
|
+
resourceInputs["repeatConfig"] = args?.repeatConfig;
|
|
218
|
+
resourceInputs["sequences"] = args?.sequences;
|
|
219
|
+
resourceInputs["start"] = args?.start;
|
|
220
|
+
resourceInputs["teamIds"] = args?.teamIds;
|
|
221
|
+
resourceInputs["workingHours"] = args?.workingHours;
|
|
222
|
+
}
|
|
223
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
224
|
+
super(EscalationPath.__pulumiType, name, resourceInputs, opts);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.EscalationPath = EscalationPath;
|
|
228
|
+
//# sourceMappingURL=escalationPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalationPath.js","sourceRoot":"","sources":["../escalationPath.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AAGzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2IG;AACH,MAAa,cAAe,SAAQ,MAAM,CAAC,cAAc;IACrD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2B,EAAE,IAAmC;QACzH,OAAO,IAAI,cAAc,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;IACT,MAAM,CAAU,YAAY,GAAG,8CAA8C,CAAC;IAErF;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,YAAY,CAAC;IAC/D,CAAC;IAmCD,YAAY,IAAY,EAAE,WAAsD,EAAE,IAAmC;QACjH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA8C,CAAC;YAC7D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC;YACrD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC;SACxD;aAAM;YACH,MAAM,IAAI,GAAG,WAA6C,CAAC;YAC3D,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC;YACpD,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC;SACvD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;;AAzFL,wCA0FC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "./types/input";
|
|
3
|
+
import * as outputs from "./types/output";
|
|
4
|
+
/**
|
|
5
|
+
* `incident.EscalationPathBeta` was renamed to `incident.EscalationPath` in v7.0.
|
|
6
|
+
*
|
|
7
|
+
* This name still works and still manages the same thing, so upgrading to v7 needs no change
|
|
8
|
+
* to a configuration that uses it. It is deprecated: every plan naming it warns, and it will
|
|
9
|
+
* be removed in v8.0.
|
|
10
|
+
*
|
|
11
|
+
* To move onto the new name:
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Both names are the same resource, backed by the same schema and the same API, so the move
|
|
18
|
+
* carries your state across and the plan after it is empty. See `incident.EscalationPath` for the
|
|
19
|
+
* documentation.
|
|
20
|
+
*/
|
|
21
|
+
export declare class EscalationPathBeta extends pulumi.CustomResource {
|
|
22
|
+
/**
|
|
23
|
+
* Get an existing EscalationPathBeta resource's state with the given name, ID, and optional extra
|
|
24
|
+
* properties used to qualify the lookup.
|
|
25
|
+
*
|
|
26
|
+
* @param name The _unique_ name of the resulting resource.
|
|
27
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
28
|
+
* @param state Any extra arguments used during the lookup.
|
|
29
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
30
|
+
*/
|
|
31
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EscalationPathBetaState, opts?: pulumi.CustomResourceOptions): EscalationPathBeta;
|
|
32
|
+
/**
|
|
33
|
+
* Returns true if the given object is an instance of EscalationPathBeta. This is designed to work even
|
|
34
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
35
|
+
*/
|
|
36
|
+
static isInstance(obj: any): obj is EscalationPathBeta;
|
|
37
|
+
/**
|
|
38
|
+
* The name of this escalation path, for the user's reference.
|
|
39
|
+
*/
|
|
40
|
+
readonly name: pulumi.Output<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
43
|
+
*/
|
|
44
|
+
readonly repeatConfig: pulumi.Output<outputs.EscalationPathBetaRepeatConfig | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
47
|
+
*/
|
|
48
|
+
readonly sequences: pulumi.Output<{
|
|
49
|
+
[key: string]: outputs.EscalationPathBetaSequences;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* The key of the sequence this escalation path begins with.
|
|
53
|
+
*/
|
|
54
|
+
readonly start: pulumi.Output<string>;
|
|
55
|
+
/**
|
|
56
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
57
|
+
*/
|
|
58
|
+
readonly teamIds: pulumi.Output<string[] | undefined>;
|
|
59
|
+
/**
|
|
60
|
+
* The working hours for this escalation path.
|
|
61
|
+
*/
|
|
62
|
+
readonly workingHours: pulumi.Output<outputs.EscalationPathBetaWorkingHour[] | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Create a EscalationPathBeta resource with the given unique name, arguments, and options.
|
|
65
|
+
*
|
|
66
|
+
* @param name The _unique_ name of the resource.
|
|
67
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
68
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
69
|
+
*/
|
|
70
|
+
constructor(name: string, args: EscalationPathBetaArgs, opts?: pulumi.CustomResourceOptions);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Input properties used for looking up and filtering EscalationPathBeta resources.
|
|
74
|
+
*/
|
|
75
|
+
export interface EscalationPathBetaState {
|
|
76
|
+
/**
|
|
77
|
+
* The name of this escalation path, for the user's reference.
|
|
78
|
+
*/
|
|
79
|
+
name?: pulumi.Input<string | undefined>;
|
|
80
|
+
/**
|
|
81
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
82
|
+
*/
|
|
83
|
+
repeatConfig?: pulumi.Input<inputs.EscalationPathBetaRepeatConfig | undefined>;
|
|
84
|
+
/**
|
|
85
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
86
|
+
*/
|
|
87
|
+
sequences?: pulumi.Input<{
|
|
88
|
+
[key: string]: pulumi.Input<inputs.EscalationPathBetaSequences>;
|
|
89
|
+
} | undefined>;
|
|
90
|
+
/**
|
|
91
|
+
* The key of the sequence this escalation path begins with.
|
|
92
|
+
*/
|
|
93
|
+
start?: pulumi.Input<string | undefined>;
|
|
94
|
+
/**
|
|
95
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
96
|
+
*/
|
|
97
|
+
teamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
|
|
98
|
+
/**
|
|
99
|
+
* The working hours for this escalation path.
|
|
100
|
+
*/
|
|
101
|
+
workingHours?: pulumi.Input<pulumi.Input<inputs.EscalationPathBetaWorkingHour>[] | undefined>;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The set of arguments for constructing a EscalationPathBeta resource.
|
|
105
|
+
*/
|
|
106
|
+
export interface EscalationPathBetaArgs {
|
|
107
|
+
/**
|
|
108
|
+
* The name of this escalation path, for the user's reference.
|
|
109
|
+
*/
|
|
110
|
+
name?: pulumi.Input<string | undefined>;
|
|
111
|
+
/**
|
|
112
|
+
* Controls if an escalation will repeat after acknowledgement, when the alert is unresolved. When configured, it will repeat after the specified delay.
|
|
113
|
+
*/
|
|
114
|
+
repeatConfig?: pulumi.Input<inputs.EscalationPathBetaRepeatConfig | undefined>;
|
|
115
|
+
/**
|
|
116
|
+
* Named sequences of nodes, keyed by a name you choose. Each sequence either ends with a `branch` node or runs off the end of the escalation path. Branches reference other sequences by key.
|
|
117
|
+
*/
|
|
118
|
+
sequences: pulumi.Input<{
|
|
119
|
+
[key: string]: pulumi.Input<inputs.EscalationPathBetaSequences>;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* The key of the sequence this escalation path begins with.
|
|
123
|
+
*/
|
|
124
|
+
start: pulumi.Input<string>;
|
|
125
|
+
/**
|
|
126
|
+
* IDs of the teams that own this escalation path. This will automatically sync escalation paths with the right teams in Catalog. If you have an escalation paths attribute on your Teams, this attribute is required.
|
|
127
|
+
*/
|
|
128
|
+
teamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
|
|
129
|
+
/**
|
|
130
|
+
* The working hours for this escalation path.
|
|
131
|
+
*/
|
|
132
|
+
workingHours?: pulumi.Input<pulumi.Input<inputs.EscalationPathBetaWorkingHour>[] | undefined>;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=escalationPathBeta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalationPathBeta.d.ts","sourceRoot":"","sources":["../escalationPathBeta.ts"],"names":[],"mappings":"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"}
|