@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,108 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * Manage schedule sync targets (Slack user groups that schedules can sync to).
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as incident from "@incident-io/pulumi";
12
+ *
13
+ * // Create a new Slack user group as a sync target
14
+ * const platformOncall = new incident.ScheduleSyncTarget("platform_oncall", {
15
+ * addBotToGroup: true,
16
+ * newSlackUserGroup: {
17
+ * name: "Platform On-Call",
18
+ * handle: "platform-oncall",
19
+ * description: "Current on-call engineers for the Platform team",
20
+ * },
21
+ * });
22
+ * // Or use an existing Slack user group
23
+ * const existingGroup = new incident.ScheduleSyncTarget("existing_group", {
24
+ * addBotToGroup: true,
25
+ * slackUserGroupId: "S0123456789",
26
+ * });
27
+ * ```
28
+ */
29
+ export declare class ScheduleSyncTarget extends pulumi.CustomResource {
30
+ /**
31
+ * Get an existing ScheduleSyncTarget resource's state with the given name, ID, and optional extra
32
+ * properties used to qualify the lookup.
33
+ *
34
+ * @param name The _unique_ name of the resulting resource.
35
+ * @param id The _unique_ provider ID of the resource to lookup.
36
+ * @param state Any extra arguments used during the lookup.
37
+ * @param opts Optional settings to control the behavior of the CustomResource.
38
+ */
39
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ScheduleSyncTargetState, opts?: pulumi.CustomResourceOptions): ScheduleSyncTarget;
40
+ /**
41
+ * Returns true if the given object is an instance of ScheduleSyncTarget. This is designed to work even
42
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
43
+ */
44
+ static isInstance(obj: any): obj is ScheduleSyncTarget;
45
+ /**
46
+ * Whether the incident.io bot should be added to the group as a member. This is needed for some Slack configurations to let us manage the group's membership.
47
+ */
48
+ readonly addBotToGroup: pulumi.Output<boolean>;
49
+ /**
50
+ * Configuration for creating a new Slack user group. Mutually exclusive with `slackUserGroupId`.
51
+ */
52
+ readonly newSlackUserGroup: pulumi.Output<outputs.ScheduleSyncTargetNewSlackUserGroup | undefined>;
53
+ /**
54
+ * Slack team (workspace) ID the user group lives in. On Enterprise Grid this identifies which workspace within the org the group belongs to.
55
+ */
56
+ readonly slackTeamId: pulumi.Output<string>;
57
+ /**
58
+ * Slack ID of the user group whose membership is kept in sync. This is the Slack-assigned group ID (starting with 'S'), not the @-handle.
59
+ */
60
+ readonly slackUserGroupId: pulumi.Output<string>;
61
+ /**
62
+ * Create a ScheduleSyncTarget resource with the given unique name, arguments, and options.
63
+ *
64
+ * @param name The _unique_ name of the resource.
65
+ * @param args The arguments to use to populate this resource's properties.
66
+ * @param opts A bag of options that control this resource's behavior.
67
+ */
68
+ constructor(name: string, args: ScheduleSyncTargetArgs, opts?: pulumi.CustomResourceOptions);
69
+ }
70
+ /**
71
+ * Input properties used for looking up and filtering ScheduleSyncTarget resources.
72
+ */
73
+ export interface ScheduleSyncTargetState {
74
+ /**
75
+ * Whether the incident.io bot should be added to the group as a member. This is needed for some Slack configurations to let us manage the group's membership.
76
+ */
77
+ addBotToGroup?: pulumi.Input<boolean | undefined>;
78
+ /**
79
+ * Configuration for creating a new Slack user group. Mutually exclusive with `slackUserGroupId`.
80
+ */
81
+ newSlackUserGroup?: pulumi.Input<inputs.ScheduleSyncTargetNewSlackUserGroup | undefined>;
82
+ /**
83
+ * Slack team (workspace) ID the user group lives in. On Enterprise Grid this identifies which workspace within the org the group belongs to.
84
+ */
85
+ slackTeamId?: pulumi.Input<string | undefined>;
86
+ /**
87
+ * Slack ID of the user group whose membership is kept in sync. This is the Slack-assigned group ID (starting with 'S'), not the @-handle.
88
+ */
89
+ slackUserGroupId?: pulumi.Input<string | undefined>;
90
+ }
91
+ /**
92
+ * The set of arguments for constructing a ScheduleSyncTarget resource.
93
+ */
94
+ export interface ScheduleSyncTargetArgs {
95
+ /**
96
+ * Whether the incident.io bot should be added to the group as a member. This is needed for some Slack configurations to let us manage the group's membership.
97
+ */
98
+ addBotToGroup: pulumi.Input<boolean>;
99
+ /**
100
+ * Configuration for creating a new Slack user group. Mutually exclusive with `slackUserGroupId`.
101
+ */
102
+ newSlackUserGroup?: pulumi.Input<inputs.ScheduleSyncTargetNewSlackUserGroup | undefined>;
103
+ /**
104
+ * Slack ID of the user group whose membership is kept in sync. This is the Slack-assigned group ID (starting with 'S'), not the @-handle.
105
+ */
106
+ slackUserGroupId?: pulumi.Input<string | undefined>;
107
+ }
108
+ //# sourceMappingURL=scheduleSyncTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduleSyncTarget.d.ts","sourceRoot":"","sources":["../scheduleSyncTarget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,cAAc;IACzD;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,kBAAkB;IAOtJ;;;OAGG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,kBAAkB;IAO7D;;OAEG;IACH,SAAwB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D;;OAEG;IACH,SAAwB,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC;IAClH;;OAEG;IACH,SAAgC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE;;OAEG;IACH,SAAwB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhE;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB;CAuB9F;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAClD;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC;IACzF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC;IACzF;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvD"}
@@ -0,0 +1,106 @@
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.ScheduleSyncTarget = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("./utilities"));
31
+ /**
32
+ * Manage schedule sync targets (Slack user groups that schedules can sync to).
33
+ *
34
+ * ## Example Usage
35
+ *
36
+ * ```typescript
37
+ * import * as pulumi from "@pulumi/pulumi";
38
+ * import * as incident from "@incident-io/pulumi";
39
+ *
40
+ * // Create a new Slack user group as a sync target
41
+ * const platformOncall = new incident.ScheduleSyncTarget("platform_oncall", {
42
+ * addBotToGroup: true,
43
+ * newSlackUserGroup: {
44
+ * name: "Platform On-Call",
45
+ * handle: "platform-oncall",
46
+ * description: "Current on-call engineers for the Platform team",
47
+ * },
48
+ * });
49
+ * // Or use an existing Slack user group
50
+ * const existingGroup = new incident.ScheduleSyncTarget("existing_group", {
51
+ * addBotToGroup: true,
52
+ * slackUserGroupId: "S0123456789",
53
+ * });
54
+ * ```
55
+ */
56
+ class ScheduleSyncTarget extends pulumi.CustomResource {
57
+ /**
58
+ * Get an existing ScheduleSyncTarget resource's state with the given name, ID, and optional extra
59
+ * properties used to qualify the lookup.
60
+ *
61
+ * @param name The _unique_ name of the resulting resource.
62
+ * @param id The _unique_ provider ID of the resource to lookup.
63
+ * @param state Any extra arguments used during the lookup.
64
+ * @param opts Optional settings to control the behavior of the CustomResource.
65
+ */
66
+ static get(name, id, state, opts) {
67
+ return new ScheduleSyncTarget(name, state, { ...opts, id: id });
68
+ }
69
+ /** @internal */
70
+ static __pulumiType = 'incident:index/scheduleSyncTarget:ScheduleSyncTarget';
71
+ /**
72
+ * Returns true if the given object is an instance of ScheduleSyncTarget. This is designed to work even
73
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
74
+ */
75
+ static isInstance(obj) {
76
+ if (obj === undefined || obj === null) {
77
+ return false;
78
+ }
79
+ return obj['__pulumiType'] === ScheduleSyncTarget.__pulumiType;
80
+ }
81
+ constructor(name, argsOrState, opts) {
82
+ let resourceInputs = {};
83
+ opts = opts || {};
84
+ if (opts.id) {
85
+ const state = argsOrState;
86
+ resourceInputs["addBotToGroup"] = state?.addBotToGroup;
87
+ resourceInputs["newSlackUserGroup"] = state?.newSlackUserGroup;
88
+ resourceInputs["slackTeamId"] = state?.slackTeamId;
89
+ resourceInputs["slackUserGroupId"] = state?.slackUserGroupId;
90
+ }
91
+ else {
92
+ const args = argsOrState;
93
+ if (args?.addBotToGroup === undefined && !opts.urn) {
94
+ throw new Error("Missing required property 'addBotToGroup'");
95
+ }
96
+ resourceInputs["addBotToGroup"] = args?.addBotToGroup;
97
+ resourceInputs["newSlackUserGroup"] = args?.newSlackUserGroup;
98
+ resourceInputs["slackUserGroupId"] = args?.slackUserGroupId;
99
+ resourceInputs["slackTeamId"] = undefined /*out*/;
100
+ }
101
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
102
+ super(ScheduleSyncTarget.__pulumiType, name, resourceInputs, opts);
103
+ }
104
+ }
105
+ exports.ScheduleSyncTarget = ScheduleSyncTarget;
106
+ //# sourceMappingURL=scheduleSyncTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduleSyncTarget.js","sourceRoot":"","sources":["../scheduleSyncTarget.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AAGzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,kBAAmB,SAAQ,MAAM,CAAC,cAAc;IACzD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA+B,EAAE,IAAmC;QAC7H,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,gBAAgB;IACT,MAAM,CAAU,YAAY,GAAG,sDAAsD,CAAC;IAE7F;;;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,kBAAkB,CAAC,YAAY,CAAC;IACnE,CAAC;IA2BD,YAAY,IAAY,EAAE,WAA8D,EAAE,IAAmC;QACzH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAkD,CAAC;YACjE,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;YAC/D,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;SAChE;aAAM;YACH,MAAM,IAAI,GAAG,WAAiD,CAAC;YAC/D,IAAI,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;aAChE;YACD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;YAC9D,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACrD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;;AA1EL,gDA2EC"}
package/secret.d.ts ADDED
@@ -0,0 +1,276 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Manage secrets: named credentials that workflows can reference. A secret's value can be set and rotated but is never returned by the API.
4
+ *
5
+ * A secret's value is write-only: incident.io stores it encrypted and never returns it, so
6
+ * Terraform cannot read it back to compare against your configuration. Set it with `valueWo`, a
7
+ * write-only attribute,
8
+ * which needs Terraform 1.11 or OpenTofu 1.11 and above. The value is never written to state or to a
9
+ * plan file.
10
+ *
11
+ * Because the value is invisible to Terraform, changing `valueWo` on its own does nothing. Rotating a
12
+ * secret means changing `valueWoVersion` as well, conventionally by incrementing it: that is the
13
+ * change Terraform can see, and it is what asks incident.io to rotate. A rotation replaces the value
14
+ * and advances `version`; the previous value is retired and cannot be recovered.
15
+ *
16
+ * Both value attributes are optional after the secret exists, so Terraform can own a secret's name,
17
+ * description and owning teams while something else rotates it. Leave them unset and the value is
18
+ * never touched.
19
+ *
20
+ * ## Example - Manage a secret
21
+ *
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as incident from "@incident-io/pulumi";
25
+ *
26
+ * const config = new pulumi.Config();
27
+ * const pagerdutyWebhookToken = config.require("pagerdutyWebhookToken");
28
+ * const pagerdutyWebhookTokenSecret = new incident.Secret("pagerduty_webhook_token", {
29
+ * name: "PagerDuty webhook token",
30
+ * description: "Auth token for the PagerDuty outgoing webhook",
31
+ * valueWo: pagerdutyWebhookToken,
32
+ * valueWoVersion: 1,
33
+ * });
34
+ * const billingApiKey = config.require("billingApiKey");
35
+ * const billingApiKeySecret = new incident.Secret("billing_api_key", {
36
+ * name: "Billing API key",
37
+ * valueWo: billingApiKey,
38
+ * valueWoVersion: 1,
39
+ * owningTeamIds: ["01G0J1EXE7AXZ2C93K61WBPYEH"],
40
+ * });
41
+ * // Terraform doesn't have to own the value. Leave both value attributes off an existing
42
+ * // secret and Terraform manages its name, description and owning teams while something
43
+ * // else - the dashboard, or a rotation job - looks after the value.
44
+ * const rotatedElsewhere = new incident.Secret("rotated_elsewhere", {
45
+ * name: "Datadog API key",
46
+ * description: "Rotated nightly by our key-rotation job",
47
+ * });
48
+ * ```
49
+ *
50
+ * ## Example - Use a secret in a workflow's webhook step
51
+ *
52
+ * ```typescript
53
+ * import * as pulumi from "@pulumi/pulumi";
54
+ * import * as incident from "@incident-io/pulumi";
55
+ *
56
+ * const config = new pulumi.Config();
57
+ * const partnerWebhookToken = config.require("partnerWebhookToken");
58
+ * const partnerWebhookTokenSecret = new incident.Secret("partner_webhook_token", {
59
+ * name: "Partner webhook token",
60
+ * description: "Bearer token for the partner's incident webhook",
61
+ * valueWo: partnerWebhookToken,
62
+ * valueWoVersion: 1,
63
+ * });
64
+ * // The first way: put the secret's value inside a field's text.
65
+ * //
66
+ * // A field whose feature set ends in `_with_secrets` - which the webhook step's headers do -
67
+ * // accepts a variable naming a secret by ID, and incident.io substitutes the value when the
68
+ * // workflow runs. Write it as `{{ <secret id> }}` and reference the secret's `id`, never its
69
+ * // value: Terraform is arranging for the value to be used, not handling it.
70
+ * const authorizationHeader = incident.getRichTextOutput({
71
+ * markdown: pulumi.interpolate`Authorization: Bearer {{ ${partnerWebhookTokenSecret.id} }}`,
72
+ * featureSet: "plain_single_line_with_secrets",
73
+ * });
74
+ * const contentTypeHeader = incident.getRichText({
75
+ * markdown: "Content-Type: application/json",
76
+ * featureSet: "plain_single_line_with_secrets",
77
+ * });
78
+ * const webhookEndpoint = incident.getRichText({
79
+ * markdown: "https://partner.example.com/hooks/incident",
80
+ * featureSet: "plain_single_line",
81
+ * });
82
+ * const webhookBody = incident.getRichText({
83
+ * markdown: "{{ incident.name }} is now {{ incident.status }} at severity {{ incident.severity }}.\n",
84
+ * featureSet: "rich",
85
+ * });
86
+ * const notifyPartner = new incident.Workflow("notify_partner", {
87
+ * name: "Notify our partner of incident updates",
88
+ * trigger: "incident.updated",
89
+ * expressions: [],
90
+ * conditionGroups: [],
91
+ * steps: [{
92
+ * id: "01K5TSNDBF7KBZY9AFDKYXJM3N",
93
+ * name: "webhook.send",
94
+ * paramBindings: [
95
+ * {
96
+ * valueLiteral: webhookEndpoint.then(webhookEndpoint => webhookEndpoint.json),
97
+ * },
98
+ * {
99
+ * valueLiteral: "POST",
100
+ * },
101
+ * {
102
+ * values: [
103
+ * authorizationHeader.json,
104
+ * contentTypeHeader.then(contentTypeHeader => contentTypeHeader.json),
105
+ * ],
106
+ * },
107
+ * {
108
+ * valueLiteral: webhookBody.then(webhookBody => webhookBody.json),
109
+ * },
110
+ * {
111
+ * valueLiteral: partnerWebhookTokenSecret.id,
112
+ * },
113
+ * {},
114
+ * {},
115
+ * ],
116
+ * }],
117
+ * onceFors: ["incident"],
118
+ * privateIncidentScope: "none",
119
+ * continueOnStepError: false,
120
+ * runsOnIncidents: "newly_created_and_active",
121
+ * runsOnIncidentModes: ["standard"],
122
+ * state: "draft",
123
+ * });
124
+ * ```
125
+ *
126
+ * ## Import
127
+ *
128
+ * Import is supported using an `import` block or the `pulumi import` command:
129
+ *
130
+ * The `pulumi import` command can be used, for example:
131
+ *
132
+ * !/bin/bash
133
+ *
134
+ * Import a secret using its ID
135
+ * Replace the ID with a real ID from your incident.io organization
136
+ *
137
+ * ```sh
138
+ * $ pulumi import incident:index/secret:Secret example 01ABC123DEF456GHI789JKL
139
+ * ```
140
+ *
141
+ * An imported secret has no value_wo_version, because the value it already holds didn't
142
+ * come from your configuration. If your config sets valueWo and value_wo_version, the
143
+ * first apply after importing will rotate the secret to that value - the plan says so.
144
+ * To adopt a secret without touching its value, leave both attributes unset.
145
+ */
146
+ export declare class Secret extends pulumi.CustomResource {
147
+ /**
148
+ * Get an existing Secret resource's state with the given name, ID, and optional extra
149
+ * properties used to qualify the lookup.
150
+ *
151
+ * @param name The _unique_ name of the resulting resource.
152
+ * @param id The _unique_ provider ID of the resource to lookup.
153
+ * @param state Any extra arguments used during the lookup.
154
+ * @param opts Optional settings to control the behavior of the CustomResource.
155
+ */
156
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SecretState, opts?: pulumi.CustomResourceOptions): Secret;
157
+ /**
158
+ * Returns true if the given object is an instance of Secret. This is designed to work even
159
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
160
+ */
161
+ static isInstance(obj: any): obj is Secret;
162
+ /**
163
+ * When this secret was created.
164
+ */
165
+ readonly createdAt: pulumi.Output<string>;
166
+ /**
167
+ * Optional description of what this secret is for
168
+ */
169
+ readonly description: pulumi.Output<string | undefined>;
170
+ /**
171
+ * The last four characters of the current value, for masked display. Absent when the value is four characters or shorter.
172
+ */
173
+ readonly lastFourChars: pulumi.Output<string>;
174
+ /**
175
+ * Human-readable name, unique within the organisation amongst unarchived secrets. At most 1024 bytes, counted in bytes rather than characters, so a name using multi-byte characters reaches the limit sooner.
176
+ */
177
+ readonly name: pulumi.Output<string>;
178
+ /**
179
+ * IDs of the teams that own this secret. Empty means the secret is owned by the whole organisation.
180
+ */
181
+ readonly owningTeamIds: pulumi.Output<string[]>;
182
+ /**
183
+ * When this secret was last changed, which includes being rotated as well as having its metadata edited.
184
+ */
185
+ readonly updatedAt: pulumi.Output<string>;
186
+ /**
187
+ * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
188
+ * The secret's plaintext value, as a [write-only attribute](https://developer.hashicorp.com/terraform/language/resources/ephemeral/write-only): it is sent to incident.io and never written to state or to a plan file. Required when creating a secret. Changing it alone has no effect, as Terraform cannot see that it changed: change `valueWoVersion` to rotate the secret.
189
+ */
190
+ readonly valueWo: pulumi.Output<string | undefined>;
191
+ /**
192
+ * The version of `valueWo` this configuration holds. Terraform stores this number, so changing it - conventionally by incrementing it - is what asks incident.io to rotate the secret to the current `valueWo`. It is your own counter, unrelated to the `version` incident.io reports.
193
+ */
194
+ readonly valueWoVersion: pulumi.Output<number | undefined>;
195
+ /**
196
+ * The current version number, incremented on each rotation
197
+ */
198
+ readonly version: pulumi.Output<number>;
199
+ /**
200
+ * Create a Secret resource with the given unique name, arguments, and options.
201
+ *
202
+ * @param name The _unique_ name of the resource.
203
+ * @param args The arguments to use to populate this resource's properties.
204
+ * @param opts A bag of options that control this resource's behavior.
205
+ */
206
+ constructor(name: string, args?: SecretArgs, opts?: pulumi.CustomResourceOptions);
207
+ }
208
+ /**
209
+ * Input properties used for looking up and filtering Secret resources.
210
+ */
211
+ export interface SecretState {
212
+ /**
213
+ * When this secret was created.
214
+ */
215
+ createdAt?: pulumi.Input<string | undefined>;
216
+ /**
217
+ * Optional description of what this secret is for
218
+ */
219
+ description?: pulumi.Input<string | undefined>;
220
+ /**
221
+ * The last four characters of the current value, for masked display. Absent when the value is four characters or shorter.
222
+ */
223
+ lastFourChars?: pulumi.Input<string | undefined>;
224
+ /**
225
+ * Human-readable name, unique within the organisation amongst unarchived secrets. At most 1024 bytes, counted in bytes rather than characters, so a name using multi-byte characters reaches the limit sooner.
226
+ */
227
+ name?: pulumi.Input<string | undefined>;
228
+ /**
229
+ * IDs of the teams that own this secret. Empty means the secret is owned by the whole organisation.
230
+ */
231
+ owningTeamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
232
+ /**
233
+ * When this secret was last changed, which includes being rotated as well as having its metadata edited.
234
+ */
235
+ updatedAt?: pulumi.Input<string | undefined>;
236
+ /**
237
+ * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
238
+ * The secret's plaintext value, as a [write-only attribute](https://developer.hashicorp.com/terraform/language/resources/ephemeral/write-only): it is sent to incident.io and never written to state or to a plan file. Required when creating a secret. Changing it alone has no effect, as Terraform cannot see that it changed: change `valueWoVersion` to rotate the secret.
239
+ */
240
+ valueWo?: pulumi.Input<string | undefined>;
241
+ /**
242
+ * The version of `valueWo` this configuration holds. Terraform stores this number, so changing it - conventionally by incrementing it - is what asks incident.io to rotate the secret to the current `valueWo`. It is your own counter, unrelated to the `version` incident.io reports.
243
+ */
244
+ valueWoVersion?: pulumi.Input<number | undefined>;
245
+ /**
246
+ * The current version number, incremented on each rotation
247
+ */
248
+ version?: pulumi.Input<number | undefined>;
249
+ }
250
+ /**
251
+ * The set of arguments for constructing a Secret resource.
252
+ */
253
+ export interface SecretArgs {
254
+ /**
255
+ * Optional description of what this secret is for
256
+ */
257
+ description?: pulumi.Input<string | undefined>;
258
+ /**
259
+ * Human-readable name, unique within the organisation amongst unarchived secrets. At most 1024 bytes, counted in bytes rather than characters, so a name using multi-byte characters reaches the limit sooner.
260
+ */
261
+ name?: pulumi.Input<string | undefined>;
262
+ /**
263
+ * IDs of the teams that own this secret. Empty means the secret is owned by the whole organisation.
264
+ */
265
+ owningTeamIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
266
+ /**
267
+ * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
268
+ * The secret's plaintext value, as a [write-only attribute](https://developer.hashicorp.com/terraform/language/resources/ephemeral/write-only): it is sent to incident.io and never written to state or to a plan file. Required when creating a secret. Changing it alone has no effect, as Terraform cannot see that it changed: change `valueWoVersion` to rotate the secret.
269
+ */
270
+ valueWo?: pulumi.Input<string | undefined>;
271
+ /**
272
+ * The version of `valueWo` this configuration holds. Terraform stores this number, so changing it - conventionally by incrementing it - is what asks incident.io to rotate the secret to the current `valueWo`. It is your own counter, unrelated to the `version` incident.io reports.
273
+ */
274
+ valueWoVersion?: pulumi.Input<number | undefined>;
275
+ }
276
+ //# sourceMappingURL=secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../secret.ts"],"names":[],"mappings":"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"}