@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.
Files changed (279) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +69 -0
  3. package/alertAttribute.d.ts +230 -0
  4. package/alertAttribute.d.ts.map +1 -0
  5. package/alertAttribute.js +219 -0
  6. package/alertAttribute.js.map +1 -0
  7. package/alertRoute.d.ts +511 -0
  8. package/alertRoute.d.ts.map +1 -0
  9. package/alertRoute.js +432 -0
  10. package/alertRoute.js.map +1 -0
  11. package/alertSource.d.ts +347 -0
  12. package/alertSource.d.ts.map +1 -0
  13. package/alertSource.js +241 -0
  14. package/alertSource.js.map +1 -0
  15. package/alertSourceAttribute.d.ts +180 -0
  16. package/alertSourceAttribute.d.ts.map +1 -0
  17. package/alertSourceAttribute.js +107 -0
  18. package/alertSourceAttribute.js.map +1 -0
  19. package/alertSourceAttributeBeta.d.ts +188 -0
  20. package/alertSourceAttributeBeta.d.ts.map +1 -0
  21. package/alertSourceAttributeBeta.js +115 -0
  22. package/alertSourceAttributeBeta.js.map +1 -0
  23. package/alertSourceBeta.d.ts +244 -0
  24. package/alertSourceBeta.d.ts.map +1 -0
  25. package/alertSourceBeta.js +138 -0
  26. package/alertSourceBeta.js.map +1 -0
  27. package/apiKey.d.ts +276 -0
  28. package/apiKey.d.ts.map +1 -0
  29. package/apiKey.js +211 -0
  30. package/apiKey.js.map +1 -0
  31. package/catalogEntries.d.ts +241 -0
  32. package/catalogEntries.d.ts.map +1 -0
  33. package/catalogEntries.js +242 -0
  34. package/catalogEntries.js.map +1 -0
  35. package/catalogEntry.d.ts +183 -0
  36. package/catalogEntry.d.ts.map +1 -0
  37. package/catalogEntry.js +159 -0
  38. package/catalogEntry.js.map +1 -0
  39. package/catalogType.d.ts +169 -0
  40. package/catalogType.d.ts.map +1 -0
  41. package/catalogType.js +132 -0
  42. package/catalogType.js.map +1 -0
  43. package/catalogTypeAttribute.d.ts +190 -0
  44. package/catalogTypeAttribute.d.ts.map +1 -0
  45. package/catalogTypeAttribute.js +153 -0
  46. package/catalogTypeAttribute.js.map +1 -0
  47. package/config/index.d.ts +2 -0
  48. package/config/index.d.ts.map +1 -0
  49. package/config/index.js +21 -0
  50. package/config/index.js.map +1 -0
  51. package/config/vars.d.ts +13 -0
  52. package/config/vars.d.ts.map +1 -0
  53. package/config/vars.js +49 -0
  54. package/config/vars.js.map +1 -0
  55. package/customField.d.ts +260 -0
  56. package/customField.d.ts.map +1 -0
  57. package/customField.js +226 -0
  58. package/customField.js.map +1 -0
  59. package/customFieldOption.d.ts +107 -0
  60. package/customFieldOption.d.ts.map +1 -0
  61. package/customFieldOption.js +116 -0
  62. package/customFieldOption.js.map +1 -0
  63. package/escalationPath.d.ts +257 -0
  64. package/escalationPath.d.ts.map +1 -0
  65. package/escalationPath.js +228 -0
  66. package/escalationPath.js.map +1 -0
  67. package/escalationPathBeta.d.ts +134 -0
  68. package/escalationPathBeta.d.ts.map +1 -0
  69. package/escalationPathBeta.js +105 -0
  70. package/escalationPathBeta.js.map +1 -0
  71. package/getAlertAttribute.d.ts +81 -0
  72. package/getAlertAttribute.d.ts.map +1 -0
  73. package/getAlertAttribute.js +75 -0
  74. package/getAlertAttribute.js.map +1 -0
  75. package/getAlertSource.d.ts +169 -0
  76. package/getAlertSource.d.ts.map +1 -0
  77. package/getAlertSource.js +103 -0
  78. package/getAlertSource.js.map +1 -0
  79. package/getAlertSourceAttribute.d.ts +131 -0
  80. package/getAlertSourceAttribute.d.ts.map +1 -0
  81. package/getAlertSourceAttribute.js +85 -0
  82. package/getAlertSourceAttribute.js.map +1 -0
  83. package/getAlertSourceAttributeBeta.d.ts +131 -0
  84. package/getAlertSourceAttributeBeta.d.ts.map +1 -0
  85. package/getAlertSourceAttributeBeta.js +85 -0
  86. package/getAlertSourceAttributeBeta.js.map +1 -0
  87. package/getApiKey.d.ts +167 -0
  88. package/getApiKey.d.ts.map +1 -0
  89. package/getApiKey.js +145 -0
  90. package/getApiKey.js.map +1 -0
  91. package/getCatalogEntry.d.ts +77 -0
  92. package/getCatalogEntry.d.ts.map +1 -0
  93. package/getCatalogEntry.js +59 -0
  94. package/getCatalogEntry.js.map +1 -0
  95. package/getCatalogType.d.ts +163 -0
  96. package/getCatalogType.d.ts.map +1 -0
  97. package/getCatalogType.js +135 -0
  98. package/getCatalogType.js.map +1 -0
  99. package/getCatalogTypeAttribute.d.ts +73 -0
  100. package/getCatalogTypeAttribute.d.ts.map +1 -0
  101. package/getCatalogTypeAttribute.js +53 -0
  102. package/getCatalogTypeAttribute.js.map +1 -0
  103. package/getCustomField.d.ts +67 -0
  104. package/getCustomField.d.ts.map +1 -0
  105. package/getCustomField.js +51 -0
  106. package/getCustomField.js.map +1 -0
  107. package/getCustomFieldOption.d.ts +65 -0
  108. package/getCustomFieldOption.d.ts.map +1 -0
  109. package/getCustomFieldOption.js +55 -0
  110. package/getCustomFieldOption.js.map +1 -0
  111. package/getEscalationPath.d.ts +100 -0
  112. package/getEscalationPath.d.ts.map +1 -0
  113. package/getEscalationPath.js +83 -0
  114. package/getEscalationPath.js.map +1 -0
  115. package/getEscalationPathBeta.d.ts +100 -0
  116. package/getEscalationPathBeta.d.ts.map +1 -0
  117. package/getEscalationPathBeta.js +83 -0
  118. package/getEscalationPathBeta.js.map +1 -0
  119. package/getIncidentRole.d.ts +111 -0
  120. package/getIncidentRole.d.ts.map +1 -0
  121. package/getIncidentRole.js +105 -0
  122. package/getIncidentRole.js.map +1 -0
  123. package/getIncidentTemplate.d.ts +98 -0
  124. package/getIncidentTemplate.d.ts.map +1 -0
  125. package/getIncidentTemplate.js +95 -0
  126. package/getIncidentTemplate.js.map +1 -0
  127. package/getIncidentTimestamp.d.ts +107 -0
  128. package/getIncidentTimestamp.d.ts.map +1 -0
  129. package/getIncidentTimestamp.js +109 -0
  130. package/getIncidentTimestamp.js.map +1 -0
  131. package/getIncidentType.d.ts +121 -0
  132. package/getIncidentType.d.ts.map +1 -0
  133. package/getIncidentType.js +107 -0
  134. package/getIncidentType.js.map +1 -0
  135. package/getIpAllowlist.d.ts +62 -0
  136. package/getIpAllowlist.d.ts.map +1 -0
  137. package/getIpAllowlist.js +77 -0
  138. package/getIpAllowlist.js.map +1 -0
  139. package/getPolicy.d.ts +97 -0
  140. package/getPolicy.d.ts.map +1 -0
  141. package/getPolicy.js +91 -0
  142. package/getPolicy.js.map +1 -0
  143. package/getRichText.d.ts +111 -0
  144. package/getRichText.d.ts.map +1 -0
  145. package/getRichText.js +107 -0
  146. package/getRichText.js.map +1 -0
  147. package/getSchedule.d.ts +89 -0
  148. package/getSchedule.d.ts.map +1 -0
  149. package/getSchedule.js +87 -0
  150. package/getSchedule.js.map +1 -0
  151. package/getScheduleBeta.d.ts +85 -0
  152. package/getScheduleBeta.d.ts.map +1 -0
  153. package/getScheduleBeta.js +83 -0
  154. package/getScheduleBeta.js.map +1 -0
  155. package/getScheduleReplica.d.ts +116 -0
  156. package/getScheduleReplica.d.ts.map +1 -0
  157. package/getScheduleReplica.js +79 -0
  158. package/getScheduleReplica.js.map +1 -0
  159. package/getScheduleRotation.d.ts +166 -0
  160. package/getScheduleRotation.d.ts.map +1 -0
  161. package/getScheduleRotation.js +127 -0
  162. package/getScheduleRotation.js.map +1 -0
  163. package/getScheduleRotationBeta.d.ts +122 -0
  164. package/getScheduleRotationBeta.d.ts.map +1 -0
  165. package/getScheduleRotationBeta.js +83 -0
  166. package/getScheduleRotationBeta.js.map +1 -0
  167. package/getScheduleSyncRule.d.ts +91 -0
  168. package/getScheduleSyncRule.d.ts.map +1 -0
  169. package/getScheduleSyncRule.js +79 -0
  170. package/getScheduleSyncRule.js.map +1 -0
  171. package/getScheduleSyncTarget.d.ts +100 -0
  172. package/getScheduleSyncTarget.d.ts.map +1 -0
  173. package/getScheduleSyncTarget.js +93 -0
  174. package/getScheduleSyncTarget.js.map +1 -0
  175. package/getSecret.d.ts +115 -0
  176. package/getSecret.d.ts.map +1 -0
  177. package/getSecret.js +97 -0
  178. package/getSecret.js.map +1 -0
  179. package/getSeverity.d.ts +117 -0
  180. package/getSeverity.d.ts.map +1 -0
  181. package/getSeverity.js +115 -0
  182. package/getSeverity.js.map +1 -0
  183. package/getStatus.d.ts +125 -0
  184. package/getStatus.d.ts.map +1 -0
  185. package/getStatus.js +119 -0
  186. package/getStatus.js.map +1 -0
  187. package/getUser.d.ts +52 -0
  188. package/getUser.d.ts.map +1 -0
  189. package/getUser.js +61 -0
  190. package/getUser.js.map +1 -0
  191. package/getWorkflow.d.ts +103 -0
  192. package/getWorkflow.d.ts.map +1 -0
  193. package/getWorkflow.js +77 -0
  194. package/getWorkflow.js.map +1 -0
  195. package/incidentRole.d.ts +109 -0
  196. package/incidentRole.d.ts.map +1 -0
  197. package/incidentRole.js +111 -0
  198. package/incidentRole.js.map +1 -0
  199. package/incidentTemplate.d.ts +200 -0
  200. package/incidentTemplate.d.ts.map +1 -0
  201. package/incidentTemplate.js +207 -0
  202. package/incidentTemplate.js.map +1 -0
  203. package/index.d.ts +188 -0
  204. package/index.d.ts.map +1 -0
  205. package/index.js +303 -0
  206. package/index.js.map +1 -0
  207. package/maintenanceWindow.d.ts +255 -0
  208. package/maintenanceWindow.d.ts.map +1 -0
  209. package/maintenanceWindow.js +148 -0
  210. package/maintenanceWindow.js.map +1 -0
  211. package/package.json +33 -0
  212. package/policy.d.ts +476 -0
  213. package/policy.d.ts.map +1 -0
  214. package/policy.js +387 -0
  215. package/policy.js.map +1 -0
  216. package/provider.d.ts +62 -0
  217. package/provider.d.ts.map +1 -0
  218. package/provider.js +80 -0
  219. package/provider.js.map +1 -0
  220. package/schedule.d.ts +120 -0
  221. package/schedule.d.ts.map +1 -0
  222. package/schedule.js +114 -0
  223. package/schedule.js.map +1 -0
  224. package/scheduleBeta.d.ts +104 -0
  225. package/scheduleBeta.d.ts.map +1 -0
  226. package/scheduleBeta.js +98 -0
  227. package/scheduleBeta.js.map +1 -0
  228. package/scheduleReplica.d.ts +178 -0
  229. package/scheduleReplica.d.ts.map +1 -0
  230. package/scheduleReplica.js +134 -0
  231. package/scheduleReplica.js.map +1 -0
  232. package/scheduleRotation.d.ts +287 -0
  233. package/scheduleRotation.d.ts.map +1 -0
  234. package/scheduleRotation.js +224 -0
  235. package/scheduleRotation.js.map +1 -0
  236. package/scheduleRotationBeta.d.ts +184 -0
  237. package/scheduleRotationBeta.d.ts.map +1 -0
  238. package/scheduleRotationBeta.js +121 -0
  239. package/scheduleRotationBeta.js.map +1 -0
  240. package/scheduleSyncRule.d.ts +154 -0
  241. package/scheduleSyncRule.d.ts.map +1 -0
  242. package/scheduleSyncRule.js +146 -0
  243. package/scheduleSyncRule.js.map +1 -0
  244. package/scheduleSyncTarget.d.ts +108 -0
  245. package/scheduleSyncTarget.d.ts.map +1 -0
  246. package/scheduleSyncTarget.js +106 -0
  247. package/scheduleSyncTarget.js.map +1 -0
  248. package/secret.d.ts +276 -0
  249. package/secret.d.ts.map +1 -0
  250. package/secret.js +234 -0
  251. package/secret.js.map +1 -0
  252. package/severity.d.ts +96 -0
  253. package/severity.d.ts.map +1 -0
  254. package/severity.js +102 -0
  255. package/severity.js.map +1 -0
  256. package/status.d.ts +121 -0
  257. package/status.d.ts.map +1 -0
  258. package/status.js +120 -0
  259. package/status.js.map +1 -0
  260. package/types/index.d.ts +4 -0
  261. package/types/index.d.ts.map +1 -0
  262. package/types/index.js +34 -0
  263. package/types/index.js.map +1 -0
  264. package/types/input.d.ts +23630 -0
  265. package/types/input.d.ts.map +1 -0
  266. package/types/input.js +5 -0
  267. package/types/input.js.map +1 -0
  268. package/types/output.d.ts +19726 -0
  269. package/types/output.d.ts.map +1 -0
  270. package/types/output.js +5 -0
  271. package/types/output.js.map +1 -0
  272. package/utilities.d.ts +5 -0
  273. package/utilities.d.ts.map +1 -0
  274. package/utilities.js +114 -0
  275. package/utilities.js.map +1 -0
  276. package/workflow.d.ts +736 -0
  277. package/workflow.d.ts.map +1 -0
  278. package/workflow.js +608 -0
  279. 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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"}