@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,241 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * This resource manages all entries for a given catalog type and should be used when
6
+ * loading many (>100) catalog entries to ensure fast and reliable plans.
7
+ *
8
+ * Please note that this resource is authoritative, in that it will delete _all_ entries from
9
+ * the catalog type that it doesn't manage, even those created outside of Terraform.
10
+ *
11
+ * If you have a catalog source such as Backstage or some custom catalog you'd like to sync
12
+ * into incident.io, this is the recommended way of achieving that.
13
+ *
14
+ * ## External IDs
15
+ *
16
+ * As this resource loads content from an existing catalog source into the incident.io
17
+ * catalog, it requires that each entry is given a stable identifier that can uniquely
18
+ * identify it in the upstream system.
19
+ *
20
+ * We call this the 'external ID' and it might be something like:
21
+ *
22
+ * - The ID of the entry in a custom catalog, often the primary key of the entry
23
+ * - Any stable human identifier (often called a slug) that uniquely reference the entry
24
+ *
25
+ * This external ID is what we use as a map key for the entries attribute, and how we map
26
+ * changes to one entry to an update to that same entry when the upstream changes.
27
+ *
28
+ * ## Example Usage
29
+ *
30
+ * ```typescript
31
+ * import * as pulumi from "@pulumi/pulumi";
32
+ * import * as incident from "@incident-io/pulumi";
33
+ * import * as std from "@pulumi/std";
34
+ *
35
+ * function tryOutput_(
36
+ * ...fns: Array<() => pulumi.Input<any>>
37
+ * ): pulumi.Output<any> {
38
+ * if (fns.length === 0) {
39
+ * throw new Error("try: all parameters failed");
40
+ * }
41
+ * const [fn, ...rest] = fns;
42
+ * try {
43
+ * return pulumi.output(fn()).apply(result => result !== undefined ? result : tryOutput_(...rest));
44
+ * } catch {
45
+ * return tryOutput_(...rest);
46
+ * }
47
+ * throw new Error("try: all parameters failed");
48
+ * }
49
+ *
50
+ *
51
+ * function try_(
52
+ * ...fns: Array<() => any>
53
+ * ): any {
54
+ * for (const fn of fns) {
55
+ * try {
56
+ * const result = fn();
57
+ * if (result === undefined) {
58
+ * continue;
59
+ * }
60
+ * return result;
61
+ * } catch (e) {
62
+ * continue;
63
+ * }
64
+ * }
65
+ * throw new Error("try: all parameters failed");
66
+ * }
67
+ *
68
+ *
69
+ * //###############################################################################
70
+ * // Simple Example
71
+ * //###############################################################################
72
+ * const simpleExample = new incident.CatalogType("simple_example", {
73
+ * name: "Simple Example",
74
+ * description: "A simple example catalog type",
75
+ * sourceRepoUrl: "https://example.com/myrepo",
76
+ * });
77
+ * const exampleUrl = new incident.CatalogTypeAttribute("example_url", {
78
+ * catalogTypeId: simpleExample.id,
79
+ * name: "url",
80
+ * type: "String",
81
+ * });
82
+ * const simpleExampleCatalogEntries = new incident.CatalogEntries("simple_example", {
83
+ * catalogEntriesId: simpleExample.id,
84
+ * entries: {
85
+ * foo: {
86
+ * name: "Foo",
87
+ * attributeValues: exampleUrl.id.apply(id => {
88
+ * [id]: {
89
+ * value: "https://example.com/foo",
90
+ * },
91
+ * }),
92
+ * },
93
+ * bar: {
94
+ * name: "Bar",
95
+ * attributeValues: exampleUrl.id.apply(id => {
96
+ * [id]: {
97
+ * value: "https://example.com/bar",
98
+ * },
99
+ * }),
100
+ * },
101
+ * },
102
+ * });
103
+ * const catalog = .reduce((__obj, entry) => ({ ...__obj, [String(entry.uid)]: entry }), {});
104
+ * // Define the catalog type, creating attributes that map to the values in the
105
+ * // catalog data source.
106
+ * const service = new incident.CatalogType("service", {
107
+ * name: "Service",
108
+ * description: "All services that we run at Example Org",
109
+ * sourceRepoUrl: "",
110
+ * });
111
+ * const serviceOwner = new incident.CatalogTypeAttribute("service_owner", {
112
+ * catalogTypeId: service.id,
113
+ * name: "Owner",
114
+ * type: "String",
115
+ * });
116
+ * const serviceDescription = new incident.CatalogTypeAttribute("service_description", {
117
+ * catalogTypeId: service.id,
118
+ * name: "Description",
119
+ * type: "String",
120
+ * });
121
+ * const serviceTags = new incident.CatalogTypeAttribute("service_tags", {
122
+ * catalogTypeId: service.id,
123
+ * name: "Tags",
124
+ * type: "String",
125
+ * array: true,
126
+ * });
127
+ * //###############################################################################
128
+ * // Provision the entries
129
+ * //###############################################################################
130
+ * // This is where we create all the entries. If we have any entries in Service
131
+ * // that are not defined in this resource, we will delete them.
132
+ * const services = new incident.CatalogEntries("services", {
133
+ * catalogEntriesId: service.id,
134
+ * entries: Object.entries(catalog).sort().reduce((__obj, [externalId, entry]) => ({ ...__obj, [externalId]: {
135
+ * name: entry.metadata.name,
136
+ * aliases: [entry.metadata.name],
137
+ * attributeValues: pulumi.all([serviceOwner.id, tryOutput_(
138
+ * () => entry.spec.owner,
139
+ * () => null
140
+ * ), serviceDescription.id, tryOutput_(
141
+ * () => entry.metadata.description,
142
+ * () => null
143
+ * ), serviceTags.id, tryOutput_(
144
+ * () => entry.metadata.tags,
145
+ * () => null
146
+ * )]).apply(([serviceOwnerId, _try, serviceDescriptionId, _try1, serviceTagsId, _try2]) => Object.entries({
147
+ * [serviceOwnerId]: {
148
+ * value: _try,
149
+ * },
150
+ * [serviceDescriptionId]: {
151
+ * value: _try1,
152
+ * },
153
+ * [serviceTagsId]: {
154
+ * arrayValue: _try2,
155
+ * },
156
+ * }).sort().filter(([attribute, binding]) => try_(
157
+ * () => binding.value,
158
+ * () => binding.arrayValue
159
+ * ) != null).reduce((__obj, [attribute, binding]) => ({ ...__obj, [attribute]: binding }), {})),
160
+ * } }), {}),
161
+ * });
162
+ * ```
163
+ */
164
+ export declare class CatalogEntries extends pulumi.CustomResource {
165
+ /**
166
+ * Get an existing CatalogEntries resource's state with the given name, ID, and optional extra
167
+ * properties used to qualify the lookup.
168
+ *
169
+ * @param name The _unique_ name of the resulting resource.
170
+ * @param id The _unique_ provider ID of the resource to lookup.
171
+ * @param state Any extra arguments used during the lookup.
172
+ * @param opts Optional settings to control the behavior of the CustomResource.
173
+ */
174
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CatalogEntriesState, opts?: pulumi.CustomResourceOptions): CatalogEntries;
175
+ /**
176
+ * Returns true if the given object is an instance of CatalogEntries. This is designed to work even
177
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
178
+ */
179
+ static isInstance(obj: any): obj is CatalogEntries;
180
+ /**
181
+ * ID of this catalog type
182
+ */
183
+ readonly catalogEntriesId: pulumi.Output<string>;
184
+ /**
185
+ * Map of external ID to entry in the catalog.
186
+ */
187
+ readonly entries: pulumi.Output<{
188
+ [key: string]: outputs.CatalogEntriesEntries;
189
+ }>;
190
+ /**
191
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
192
+ */
193
+ readonly managedAttributes: pulumi.Output<string[] | undefined>;
194
+ /**
195
+ * Create a CatalogEntries resource with the given unique name, arguments, and options.
196
+ *
197
+ * @param name The _unique_ name of the resource.
198
+ * @param args The arguments to use to populate this resource's properties.
199
+ * @param opts A bag of options that control this resource's behavior.
200
+ */
201
+ constructor(name: string, args: CatalogEntriesArgs, opts?: pulumi.CustomResourceOptions);
202
+ }
203
+ /**
204
+ * Input properties used for looking up and filtering CatalogEntries resources.
205
+ */
206
+ export interface CatalogEntriesState {
207
+ /**
208
+ * ID of this catalog type
209
+ */
210
+ catalogEntriesId?: pulumi.Input<string | undefined>;
211
+ /**
212
+ * Map of external ID to entry in the catalog.
213
+ */
214
+ entries?: pulumi.Input<{
215
+ [key: string]: pulumi.Input<inputs.CatalogEntriesEntries>;
216
+ } | undefined>;
217
+ /**
218
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
219
+ */
220
+ managedAttributes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
221
+ }
222
+ /**
223
+ * The set of arguments for constructing a CatalogEntries resource.
224
+ */
225
+ export interface CatalogEntriesArgs {
226
+ /**
227
+ * ID of this catalog type
228
+ */
229
+ catalogEntriesId: pulumi.Input<string>;
230
+ /**
231
+ * Map of external ID to entry in the catalog.
232
+ */
233
+ entries: pulumi.Input<{
234
+ [key: string]: pulumi.Input<inputs.CatalogEntriesEntries>;
235
+ }>;
236
+ /**
237
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
238
+ */
239
+ managedAttributes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
240
+ }
241
+ //# sourceMappingURL=catalogEntries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogEntries.d.ts","sourceRoot":"","sources":["../catalogEntries.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+JG;AACH,qBAAa,cAAe,SAAQ,MAAM,CAAC,cAAc;IACrD;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,cAAc;IAO9I;;;OAGG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc;IAOzD;;OAEG;IACH,SAAwB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChE;;OAEG;IACH,SAAwB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAA;KAAC,CAAC,CAAC;IAC/F;;OAEG;IACH,SAAwB,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAE/E;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB;CAwB1F;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;KAAC,GAAG,SAAS,CAAC,CAAC;IAChG;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;KAAC,CAAC,CAAC;IACnF;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;CACxE"}
@@ -0,0 +1,242 @@
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.CatalogEntries = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("./utilities"));
31
+ /**
32
+ * This resource manages all entries for a given catalog type and should be used when
33
+ * loading many (>100) catalog entries to ensure fast and reliable plans.
34
+ *
35
+ * Please note that this resource is authoritative, in that it will delete _all_ entries from
36
+ * the catalog type that it doesn't manage, even those created outside of Terraform.
37
+ *
38
+ * If you have a catalog source such as Backstage or some custom catalog you'd like to sync
39
+ * into incident.io, this is the recommended way of achieving that.
40
+ *
41
+ * ## External IDs
42
+ *
43
+ * As this resource loads content from an existing catalog source into the incident.io
44
+ * catalog, it requires that each entry is given a stable identifier that can uniquely
45
+ * identify it in the upstream system.
46
+ *
47
+ * We call this the 'external ID' and it might be something like:
48
+ *
49
+ * - The ID of the entry in a custom catalog, often the primary key of the entry
50
+ * - Any stable human identifier (often called a slug) that uniquely reference the entry
51
+ *
52
+ * This external ID is what we use as a map key for the entries attribute, and how we map
53
+ * changes to one entry to an update to that same entry when the upstream changes.
54
+ *
55
+ * ## Example Usage
56
+ *
57
+ * ```typescript
58
+ * import * as pulumi from "@pulumi/pulumi";
59
+ * import * as incident from "@incident-io/pulumi";
60
+ * import * as std from "@pulumi/std";
61
+ *
62
+ * function tryOutput_(
63
+ * ...fns: Array<() => pulumi.Input<any>>
64
+ * ): pulumi.Output<any> {
65
+ * if (fns.length === 0) {
66
+ * throw new Error("try: all parameters failed");
67
+ * }
68
+ * const [fn, ...rest] = fns;
69
+ * try {
70
+ * return pulumi.output(fn()).apply(result => result !== undefined ? result : tryOutput_(...rest));
71
+ * } catch {
72
+ * return tryOutput_(...rest);
73
+ * }
74
+ * throw new Error("try: all parameters failed");
75
+ * }
76
+ *
77
+ *
78
+ * function try_(
79
+ * ...fns: Array<() => any>
80
+ * ): any {
81
+ * for (const fn of fns) {
82
+ * try {
83
+ * const result = fn();
84
+ * if (result === undefined) {
85
+ * continue;
86
+ * }
87
+ * return result;
88
+ * } catch (e) {
89
+ * continue;
90
+ * }
91
+ * }
92
+ * throw new Error("try: all parameters failed");
93
+ * }
94
+ *
95
+ *
96
+ * //###############################################################################
97
+ * // Simple Example
98
+ * //###############################################################################
99
+ * const simpleExample = new incident.CatalogType("simple_example", {
100
+ * name: "Simple Example",
101
+ * description: "A simple example catalog type",
102
+ * sourceRepoUrl: "https://example.com/myrepo",
103
+ * });
104
+ * const exampleUrl = new incident.CatalogTypeAttribute("example_url", {
105
+ * catalogTypeId: simpleExample.id,
106
+ * name: "url",
107
+ * type: "String",
108
+ * });
109
+ * const simpleExampleCatalogEntries = new incident.CatalogEntries("simple_example", {
110
+ * catalogEntriesId: simpleExample.id,
111
+ * entries: {
112
+ * foo: {
113
+ * name: "Foo",
114
+ * attributeValues: exampleUrl.id.apply(id => {
115
+ * [id]: {
116
+ * value: "https://example.com/foo",
117
+ * },
118
+ * }),
119
+ * },
120
+ * bar: {
121
+ * name: "Bar",
122
+ * attributeValues: exampleUrl.id.apply(id => {
123
+ * [id]: {
124
+ * value: "https://example.com/bar",
125
+ * },
126
+ * }),
127
+ * },
128
+ * },
129
+ * });
130
+ * const catalog = .reduce((__obj, entry) => ({ ...__obj, [String(entry.uid)]: entry }), {});
131
+ * // Define the catalog type, creating attributes that map to the values in the
132
+ * // catalog data source.
133
+ * const service = new incident.CatalogType("service", {
134
+ * name: "Service",
135
+ * description: "All services that we run at Example Org",
136
+ * sourceRepoUrl: "",
137
+ * });
138
+ * const serviceOwner = new incident.CatalogTypeAttribute("service_owner", {
139
+ * catalogTypeId: service.id,
140
+ * name: "Owner",
141
+ * type: "String",
142
+ * });
143
+ * const serviceDescription = new incident.CatalogTypeAttribute("service_description", {
144
+ * catalogTypeId: service.id,
145
+ * name: "Description",
146
+ * type: "String",
147
+ * });
148
+ * const serviceTags = new incident.CatalogTypeAttribute("service_tags", {
149
+ * catalogTypeId: service.id,
150
+ * name: "Tags",
151
+ * type: "String",
152
+ * array: true,
153
+ * });
154
+ * //###############################################################################
155
+ * // Provision the entries
156
+ * //###############################################################################
157
+ * // This is where we create all the entries. If we have any entries in Service
158
+ * // that are not defined in this resource, we will delete them.
159
+ * const services = new incident.CatalogEntries("services", {
160
+ * catalogEntriesId: service.id,
161
+ * entries: Object.entries(catalog).sort().reduce((__obj, [externalId, entry]) => ({ ...__obj, [externalId]: {
162
+ * name: entry.metadata.name,
163
+ * aliases: [entry.metadata.name],
164
+ * attributeValues: pulumi.all([serviceOwner.id, tryOutput_(
165
+ * () => entry.spec.owner,
166
+ * () => null
167
+ * ), serviceDescription.id, tryOutput_(
168
+ * () => entry.metadata.description,
169
+ * () => null
170
+ * ), serviceTags.id, tryOutput_(
171
+ * () => entry.metadata.tags,
172
+ * () => null
173
+ * )]).apply(([serviceOwnerId, _try, serviceDescriptionId, _try1, serviceTagsId, _try2]) => Object.entries({
174
+ * [serviceOwnerId]: {
175
+ * value: _try,
176
+ * },
177
+ * [serviceDescriptionId]: {
178
+ * value: _try1,
179
+ * },
180
+ * [serviceTagsId]: {
181
+ * arrayValue: _try2,
182
+ * },
183
+ * }).sort().filter(([attribute, binding]) => try_(
184
+ * () => binding.value,
185
+ * () => binding.arrayValue
186
+ * ) != null).reduce((__obj, [attribute, binding]) => ({ ...__obj, [attribute]: binding }), {})),
187
+ * } }), {}),
188
+ * });
189
+ * ```
190
+ */
191
+ class CatalogEntries extends pulumi.CustomResource {
192
+ /**
193
+ * Get an existing CatalogEntries resource's state with the given name, ID, and optional extra
194
+ * properties used to qualify the lookup.
195
+ *
196
+ * @param name The _unique_ name of the resulting resource.
197
+ * @param id The _unique_ provider ID of the resource to lookup.
198
+ * @param state Any extra arguments used during the lookup.
199
+ * @param opts Optional settings to control the behavior of the CustomResource.
200
+ */
201
+ static get(name, id, state, opts) {
202
+ return new CatalogEntries(name, state, { ...opts, id: id });
203
+ }
204
+ /** @internal */
205
+ static __pulumiType = 'incident:index/catalogEntries:CatalogEntries';
206
+ /**
207
+ * Returns true if the given object is an instance of CatalogEntries. This is designed to work even
208
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
209
+ */
210
+ static isInstance(obj) {
211
+ if (obj === undefined || obj === null) {
212
+ return false;
213
+ }
214
+ return obj['__pulumiType'] === CatalogEntries.__pulumiType;
215
+ }
216
+ constructor(name, argsOrState, opts) {
217
+ let resourceInputs = {};
218
+ opts = opts || {};
219
+ if (opts.id) {
220
+ const state = argsOrState;
221
+ resourceInputs["catalogEntriesId"] = state?.catalogEntriesId;
222
+ resourceInputs["entries"] = state?.entries;
223
+ resourceInputs["managedAttributes"] = state?.managedAttributes;
224
+ }
225
+ else {
226
+ const args = argsOrState;
227
+ if (args?.catalogEntriesId === undefined && !opts.urn) {
228
+ throw new Error("Missing required property 'catalogEntriesId'");
229
+ }
230
+ if (args?.entries === undefined && !opts.urn) {
231
+ throw new Error("Missing required property 'entries'");
232
+ }
233
+ resourceInputs["catalogEntriesId"] = args?.catalogEntriesId;
234
+ resourceInputs["entries"] = args?.entries;
235
+ resourceInputs["managedAttributes"] = args?.managedAttributes;
236
+ }
237
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
238
+ super(CatalogEntries.__pulumiType, name, resourceInputs, opts);
239
+ }
240
+ }
241
+ exports.CatalogEntries = CatalogEntries;
242
+ //# sourceMappingURL=catalogEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogEntries.js","sourceRoot":"","sources":["../catalogEntries.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AAGzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+JG;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;IAuBD,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,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;SAClE;aAAM;YACH,MAAM,IAAI,GAAG,WAA6C,CAAC;YAC3D,IAAI,IAAI,EAAE,gBAAgB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;aACnE;YACD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;SACjE;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;;AAvEL,wCAwEC"}
@@ -0,0 +1,183 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * This resource manages a single entry for a given catalog type. It should be used when
6
+ * you're loading a small number (<100) of catalog entries and want to do so with a Terraform
7
+ * for_each, or you don't want terraform to remove any entries that it is not managing.
8
+ *
9
+ * If you're working with a large number of entries (>100) or want to be authoritative
10
+ * (remove anything Terraform does not manage) then prefer `incident.CatalogEntries`.
11
+ *
12
+ * ## Managing attributes on internal catalog types
13
+ *
14
+ * Some catalog types like Schedule are managed internally by incident.io - their entries are
15
+ * created and maintained by the product (e.g., the on-call system). You can't create or delete
16
+ * these entries via Terraform, but you can extend them with custom attributes.
17
+ *
18
+ * To do this:
19
+ * 1. Add a custom attribute to the catalog type via the incident.io web UI
20
+ * 2. Use data sources to look up the existing type, attribute, and entry
21
+ * 3. Set `managedAttributes` to manage only your custom attribute
22
+ *
23
+ * When you run `terraform destroy`, Terraform will clear the managed attributes rather than
24
+ * attempting to delete the entry.
25
+ *
26
+ * ## Example Usage
27
+ *
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as incident from "@incident-io/pulumi";
31
+ *
32
+ * const serviceTiers = [
33
+ * {
34
+ * name: "tier_1",
35
+ * description: "Critical customer-facing services",
36
+ * externalId: "service-tier-1",
37
+ * },
38
+ * {
39
+ * name: "tier_2",
40
+ * description: "Either customers or internal user processes are impacted if this service fails",
41
+ * externalId: "service-tier-2",
42
+ * },
43
+ * {
44
+ * name: "tier_3",
45
+ * description: "Non-essential services",
46
+ * externalId: "service-tier-3",
47
+ * },
48
+ * ];
49
+ * const serviceTier = new incident.CatalogType("service_tier", {
50
+ * name: "Service Tier",
51
+ * description: "Level of importance for each service",
52
+ * sourceRepoUrl: "",
53
+ * });
54
+ * const serviceTierDescription = new incident.CatalogTypeAttribute("service_tier_description", {
55
+ * catalogTypeId: serviceTier.id,
56
+ * name: "Description",
57
+ * type: "Text",
58
+ * });
59
+ * const serviceTierCatalogEntry: {[key: string]: incident.CatalogEntry} = {};
60
+ * for (const range of Object.entries(serviceTiers.reduce((__obj, tier) => ({ ...__obj, [tier.name]: tier }), {})).sort().map(([k, v]) => ({key: k, value: v}))) {
61
+ * serviceTierCatalogEntry[range.key] = new incident.CatalogEntry(`service_tier-${range.key}`, {
62
+ * catalogTypeId: serviceTier.id,
63
+ * name: range.value.name,
64
+ * externalId: range.value.externalId,
65
+ * attributeValues: [{
66
+ * attribute: serviceTierDescription.id,
67
+ * value: range.value.description,
68
+ * }],
69
+ * });
70
+ * }
71
+ * ```
72
+ */
73
+ export declare class CatalogEntry extends pulumi.CustomResource {
74
+ /**
75
+ * Get an existing CatalogEntry resource's state with the given name, ID, and optional extra
76
+ * properties used to qualify the lookup.
77
+ *
78
+ * @param name The _unique_ name of the resulting resource.
79
+ * @param id The _unique_ provider ID of the resource to lookup.
80
+ * @param state Any extra arguments used during the lookup.
81
+ * @param opts Optional settings to control the behavior of the CustomResource.
82
+ */
83
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CatalogEntryState, opts?: pulumi.CustomResourceOptions): CatalogEntry;
84
+ /**
85
+ * Returns true if the given object is an instance of CatalogEntry. This is designed to work even
86
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
87
+ */
88
+ static isInstance(obj: any): obj is CatalogEntry;
89
+ /**
90
+ * Optional aliases that can be used to reference this entry
91
+ */
92
+ readonly aliases: pulumi.Output<string[]>;
93
+ readonly attributeValues: pulumi.Output<outputs.CatalogEntryAttributeValue[]>;
94
+ /**
95
+ * ID of this catalog type
96
+ */
97
+ readonly catalogTypeId: pulumi.Output<string>;
98
+ /**
99
+ * An optional alternative ID for this entry, which is ensured to be unique for the type
100
+ */
101
+ readonly externalId: pulumi.Output<string>;
102
+ /**
103
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
104
+ */
105
+ readonly managedAttributes: pulumi.Output<string[] | undefined>;
106
+ /**
107
+ * Name is the human readable name of this entry
108
+ */
109
+ readonly name: pulumi.Output<string>;
110
+ /**
111
+ * When catalog type is ranked, this is used to help order things
112
+ */
113
+ readonly rank: pulumi.Output<number>;
114
+ /**
115
+ * Create a CatalogEntry resource with the given unique name, arguments, and options.
116
+ *
117
+ * @param name The _unique_ name of the resource.
118
+ * @param args The arguments to use to populate this resource's properties.
119
+ * @param opts A bag of options that control this resource's behavior.
120
+ */
121
+ constructor(name: string, args: CatalogEntryArgs, opts?: pulumi.CustomResourceOptions);
122
+ }
123
+ /**
124
+ * Input properties used for looking up and filtering CatalogEntry resources.
125
+ */
126
+ export interface CatalogEntryState {
127
+ /**
128
+ * Optional aliases that can be used to reference this entry
129
+ */
130
+ aliases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
131
+ attributeValues?: pulumi.Input<pulumi.Input<inputs.CatalogEntryAttributeValue>[] | undefined>;
132
+ /**
133
+ * ID of this catalog type
134
+ */
135
+ catalogTypeId?: pulumi.Input<string | undefined>;
136
+ /**
137
+ * An optional alternative ID for this entry, which is ensured to be unique for the type
138
+ */
139
+ externalId?: pulumi.Input<string | undefined>;
140
+ /**
141
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
142
+ */
143
+ managedAttributes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
144
+ /**
145
+ * Name is the human readable name of this entry
146
+ */
147
+ name?: pulumi.Input<string | undefined>;
148
+ /**
149
+ * When catalog type is ranked, this is used to help order things
150
+ */
151
+ rank?: pulumi.Input<number | undefined>;
152
+ }
153
+ /**
154
+ * The set of arguments for constructing a CatalogEntry resource.
155
+ */
156
+ export interface CatalogEntryArgs {
157
+ /**
158
+ * Optional aliases that can be used to reference this entry
159
+ */
160
+ aliases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
161
+ attributeValues: pulumi.Input<pulumi.Input<inputs.CatalogEntryAttributeValue>[]>;
162
+ /**
163
+ * ID of this catalog type
164
+ */
165
+ catalogTypeId: pulumi.Input<string>;
166
+ /**
167
+ * An optional alternative ID for this entry, which is ensured to be unique for the type
168
+ */
169
+ externalId?: pulumi.Input<string | undefined>;
170
+ /**
171
+ * The set of attributes that are managed by this resource. By default, all attributes are managed by this resource.
172
+ */
173
+ managedAttributes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
174
+ /**
175
+ * Name is the human readable name of this entry
176
+ */
177
+ name?: pulumi.Input<string | undefined>;
178
+ /**
179
+ * When catalog type is ranked, this is used to help order things
180
+ */
181
+ rank?: pulumi.Input<number | undefined>;
182
+ }
183
+ //# sourceMappingURL=catalogEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogEntry.d.ts","sourceRoot":"","sources":["../catalogEntry.ts"],"names":[],"mappings":"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"}