@checkly/pulumi 0.0.1-alpha.0

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 (73) hide show
  1. package/Pulumi.yaml +0 -0
  2. package/README.md +4 -0
  3. package/alertChannel.ts +321 -0
  4. package/bin/LICENSE +21 -0
  5. package/bin/README.md +90 -0
  6. package/bin/alertChannel.d.ts +266 -0
  7. package/bin/alertChannel.js +204 -0
  8. package/bin/alertChannel.js.map +1 -0
  9. package/bin/check.d.ts +328 -0
  10. package/bin/check.js +110 -0
  11. package/bin/check.js.map +1 -0
  12. package/bin/checkGroup.d.ts +238 -0
  13. package/bin/checkGroup.js +93 -0
  14. package/bin/checkGroup.js.map +1 -0
  15. package/bin/config/index.d.ts +1 -0
  16. package/bin/config/index.js +21 -0
  17. package/bin/config/index.js.map +1 -0
  18. package/bin/config/vars.d.ts +3 -0
  19. package/bin/config/vars.js +25 -0
  20. package/bin/config/vars.js.map +1 -0
  21. package/bin/dashboard.d.ts +66 -0
  22. package/bin/dashboard.js +93 -0
  23. package/bin/dashboard.js.map +1 -0
  24. package/bin/index.d.ts +12 -0
  25. package/bin/index.js +89 -0
  26. package/bin/index.js.map +1 -0
  27. package/bin/maintenanceWindow.d.ts +157 -0
  28. package/bin/maintenanceWindow.js +115 -0
  29. package/bin/maintenanceWindow.js.map +1 -0
  30. package/bin/package.json +28 -0
  31. package/bin/package.json.bak +28 -0
  32. package/bin/provider.d.ts +33 -0
  33. package/bin/provider.js +52 -0
  34. package/bin/provider.js.map +1 -0
  35. package/bin/snippet.d.ts +60 -0
  36. package/bin/snippet.js +56 -0
  37. package/bin/snippet.js.map +1 -0
  38. package/bin/triggerCheck.d.ts +71 -0
  39. package/bin/triggerCheck.js +75 -0
  40. package/bin/triggerCheck.js.map +1 -0
  41. package/bin/triggerCheckGroup.d.ts +71 -0
  42. package/bin/triggerCheckGroup.js +75 -0
  43. package/bin/triggerCheckGroup.js.map +1 -0
  44. package/bin/types/index.d.ts +3 -0
  45. package/bin/types/index.js +11 -0
  46. package/bin/types/index.js.map +1 -0
  47. package/bin/types/input.d.ts +330 -0
  48. package/bin/types/input.js +14 -0
  49. package/bin/types/input.js.map +1 -0
  50. package/bin/types/output.d.ts +329 -0
  51. package/bin/types/output.js +14 -0
  52. package/bin/types/output.js.map +1 -0
  53. package/bin/utilities.d.ts +4 -0
  54. package/bin/utilities.js +52 -0
  55. package/bin/utilities.js.map +1 -0
  56. package/bin/yarn.lock +743 -0
  57. package/check.ts +416 -0
  58. package/checkGroup.ts +308 -0
  59. package/config/index.ts +5 -0
  60. package/config/vars.ts +33 -0
  61. package/dashboard.ts +143 -0
  62. package/index.ts +81 -0
  63. package/maintenanceWindow.ts +219 -0
  64. package/package.json +28 -0
  65. package/provider.ts +64 -0
  66. package/snippet.ts +100 -0
  67. package/triggerCheck.ts +113 -0
  68. package/triggerCheckGroup.ts +113 -0
  69. package/tsconfig.json +33 -0
  70. package/types/index.ts +11 -0
  71. package/types/input.ts +352 -0
  72. package/types/output.ts +353 -0
  73. package/utilities.ts +49 -0
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AlertChannel = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## # checkly.AlertChannel
10
+ *
11
+ * The `checkly.AlertChannel` resource allows users to manage Checkly alert channels.
12
+ *
13
+ * Checkly's Alert Channels feature allows you to define global alerting channels for the checks in your account:
14
+ *
15
+ * ## Example Usage
16
+ *
17
+ * *An Email alert channel*
18
+ * ```typescript
19
+ * import * as pulumi from "@pulumi/pulumi";
20
+ * import * as checkly from "@pulumi/checkly";
21
+ *
22
+ * const emailAc = new checkly.AlertChannel("email_ac", {
23
+ * email: {
24
+ * address: "john@example.com",
25
+ * },
26
+ * sendDegraded: true,
27
+ * sendFailure: false,
28
+ * sendRecovery: true,
29
+ * sslExpiry: true,
30
+ * sslExpiryThreshold: 22,
31
+ * });
32
+ * ```
33
+ *
34
+ * *A SMS alert channel*
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as checkly from "@pulumi/checkly";
38
+ *
39
+ * const smsAc = new checkly.AlertChannel("sms_ac", {
40
+ * sendFailure: true,
41
+ * sendRecovery: true,
42
+ * sms: {
43
+ * name: "john",
44
+ * number: "0123456789",
45
+ * },
46
+ * });
47
+ * ```
48
+ *
49
+ * *A Slack alert channel*
50
+ * ```typescript
51
+ * import * as pulumi from "@pulumi/pulumi";
52
+ * import * as checkly from "@pulumi/checkly";
53
+ *
54
+ * const slackAc = new checkly.AlertChannel("slack_ac", {
55
+ * slack: {
56
+ * channel: "#checkly-notifications",
57
+ * url: "https://slack.com/webhook",
58
+ * },
59
+ * });
60
+ * ```
61
+ *
62
+ * *An Opsgenie alert channel*
63
+ * ```typescript
64
+ * import * as pulumi from "@pulumi/pulumi";
65
+ * import * as checkly from "@pulumi/checkly";
66
+ *
67
+ * const opsgenieAc = new checkly.AlertChannel("opsgenie_ac", {
68
+ * opsgenie: {
69
+ * apiKey: "fookey",
70
+ * name: "opsalerts",
71
+ * priority: "foopriority",
72
+ * region: "fooregion",
73
+ * },
74
+ * });
75
+ * ```
76
+ *
77
+ * *An Pagerduty alert channel*
78
+ * ```typescript
79
+ * import * as pulumi from "@pulumi/pulumi";
80
+ * import * as checkly from "@pulumi/checkly";
81
+ *
82
+ * const pagerdutyAc = new checkly.AlertChannel("pagerduty_ac", {
83
+ * pagerduty: {
84
+ * account: "checkly",
85
+ * serviceKey: "key1",
86
+ * serviceName: "pdalert",
87
+ * },
88
+ * });
89
+ * ```
90
+ *
91
+ * *An Webhook alert channel*
92
+ * ```typescript
93
+ * import * as pulumi from "@pulumi/pulumi";
94
+ * import * as checkly from "@pulumi/checkly";
95
+ *
96
+ * const webhookAc = new checkly.AlertChannel("webhook_ac", {
97
+ * webhook: {
98
+ * method: "get",
99
+ * name: "foo",
100
+ * template: "footemplate",
101
+ * url: "http://example.com/foo",
102
+ * webhookSecret: "foosecret",
103
+ * },
104
+ * });
105
+ * ```
106
+ *
107
+ * *Connecting the alert channel to a check
108
+ * ```typescript
109
+ * import * as pulumi from "@pulumi/pulumi";
110
+ * import * as checkly from "@pulumi/checkly";
111
+ *
112
+ * const example_check = new checkly.Check("example-check", {alertChannelSubscriptions: [
113
+ * {
114
+ * channelId: checkly_alert_channel.email_ac.id,
115
+ * activated: true,
116
+ * },
117
+ * {
118
+ * channelId: checkly_alert_channel.sms_ac.id,
119
+ * activated: true,
120
+ * },
121
+ * ]});
122
+ * ```
123
+ *
124
+ * *Connecting the alert channel to a check group
125
+ * ```typescript
126
+ * import * as pulumi from "@pulumi/pulumi";
127
+ * import * as checkly from "@pulumi/checkly";
128
+ *
129
+ * const test_group1 = new checkly.CheckGroup("test-group1", {alertChannelSubscriptions: [
130
+ * {
131
+ * channelId: checkly_alert_channel.email_ac.id,
132
+ * activated: true,
133
+ * },
134
+ * {
135
+ * channelId: checkly_alert_channel.sms_ac.id,
136
+ * activated: true,
137
+ * },
138
+ * ]});
139
+ * ```
140
+ */
141
+ class AlertChannel extends pulumi.CustomResource {
142
+ constructor(name, argsOrState, opts) {
143
+ let resourceInputs = {};
144
+ opts = opts || {};
145
+ if (opts.id) {
146
+ const state = argsOrState;
147
+ resourceInputs["email"] = state ? state.email : undefined;
148
+ resourceInputs["opsgenie"] = state ? state.opsgenie : undefined;
149
+ resourceInputs["pagerduty"] = state ? state.pagerduty : undefined;
150
+ resourceInputs["sendDegraded"] = state ? state.sendDegraded : undefined;
151
+ resourceInputs["sendFailure"] = state ? state.sendFailure : undefined;
152
+ resourceInputs["sendRecovery"] = state ? state.sendRecovery : undefined;
153
+ resourceInputs["slack"] = state ? state.slack : undefined;
154
+ resourceInputs["sms"] = state ? state.sms : undefined;
155
+ resourceInputs["sslExpiry"] = state ? state.sslExpiry : undefined;
156
+ resourceInputs["sslExpiryThreshold"] = state ? state.sslExpiryThreshold : undefined;
157
+ resourceInputs["webhook"] = state ? state.webhook : undefined;
158
+ }
159
+ else {
160
+ const args = argsOrState;
161
+ resourceInputs["email"] = args ? args.email : undefined;
162
+ resourceInputs["opsgenie"] = args ? args.opsgenie : undefined;
163
+ resourceInputs["pagerduty"] = args ? args.pagerduty : undefined;
164
+ resourceInputs["sendDegraded"] = args ? args.sendDegraded : undefined;
165
+ resourceInputs["sendFailure"] = args ? args.sendFailure : undefined;
166
+ resourceInputs["sendRecovery"] = args ? args.sendRecovery : undefined;
167
+ resourceInputs["slack"] = args ? args.slack : undefined;
168
+ resourceInputs["sms"] = args ? args.sms : undefined;
169
+ resourceInputs["sslExpiry"] = args ? args.sslExpiry : undefined;
170
+ resourceInputs["sslExpiryThreshold"] = args ? args.sslExpiryThreshold : undefined;
171
+ resourceInputs["webhook"] = args ? args.webhook : undefined;
172
+ }
173
+ if (!opts.version) {
174
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
175
+ }
176
+ super(AlertChannel.__pulumiType, name, resourceInputs, opts);
177
+ }
178
+ /**
179
+ * Get an existing AlertChannel resource's state with the given name, ID, and optional extra
180
+ * properties used to qualify the lookup.
181
+ *
182
+ * @param name The _unique_ name of the resulting resource.
183
+ * @param id The _unique_ provider ID of the resource to lookup.
184
+ * @param state Any extra arguments used during the lookup.
185
+ * @param opts Optional settings to control the behavior of the CustomResource.
186
+ */
187
+ static get(name, id, state, opts) {
188
+ return new AlertChannel(name, state, Object.assign(Object.assign({}, opts), { id: id }));
189
+ }
190
+ /**
191
+ * Returns true if the given object is an instance of AlertChannel. This is designed to work even
192
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
193
+ */
194
+ static isInstance(obj) {
195
+ if (obj === undefined || obj === null) {
196
+ return false;
197
+ }
198
+ return obj['__pulumiType'] === AlertChannel.__pulumiType;
199
+ }
200
+ }
201
+ exports.AlertChannel = AlertChannel;
202
+ /** @internal */
203
+ AlertChannel.__pulumiType = 'checkly:index/alertChannel:AlertChannel';
204
+ //# sourceMappingURL=alertChannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alertChannel.js","sourceRoot":"","sources":["../alertChannel.ts"],"names":[],"mappings":"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"}
package/bin/check.d.ts ADDED
@@ -0,0 +1,328 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "./types";
3
+ export declare class Check extends pulumi.CustomResource {
4
+ /**
5
+ * Get an existing Check resource's state with the given name, ID, and optional extra
6
+ * properties used to qualify the lookup.
7
+ *
8
+ * @param name The _unique_ name of the resulting resource.
9
+ * @param id The _unique_ provider ID of the resource to lookup.
10
+ * @param state Any extra arguments used during the lookup.
11
+ * @param opts Optional settings to control the behavior of the CustomResource.
12
+ */
13
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CheckState, opts?: pulumi.CustomResourceOptions): Check;
14
+ /**
15
+ * Returns true if the given object is an instance of Check. This is designed to work even
16
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
17
+ */
18
+ static isInstance(obj: any): obj is Check;
19
+ /**
20
+ * Determines if the check is running or not. Possible values `true`, and `false`.
21
+ */
22
+ readonly activated: pulumi.Output<boolean>;
23
+ readonly alertChannelSubscriptions: pulumi.Output<outputs.CheckAlertChannelSubscription[] | undefined>;
24
+ /**
25
+ * . Supported values documented below.
26
+ */
27
+ readonly alertSettings: pulumi.Output<outputs.CheckAlertSettings>;
28
+ /**
29
+ * The response time in milliseconds where a check should be considered degraded. Possible values are between 0 and 30000. Defaults to `15000`.
30
+ */
31
+ readonly degradedResponseTime: pulumi.Output<number | undefined>;
32
+ /**
33
+ * Setting this to "true" will trigger a retry when a check fails from the failing region and another, randomly selected region before marking the check as failed. Possible values `true`, and `false`.
34
+ */
35
+ readonly doubleCheck: pulumi.Output<boolean | undefined>;
36
+ /**
37
+ * Key/value pairs for setting environment variables during check execution. These are only relevant for Browser checks. Use global environment variables whenever possible.
38
+ */
39
+ readonly environmentVariables: pulumi.Output<{
40
+ [key: string]: any;
41
+ } | undefined>;
42
+ /**
43
+ * The frequency in minutes to run the check. Possible values are `0`, `1`, `5`, `10`, `15`, `30`, `60`, `720`, and `1440`.
44
+ */
45
+ readonly frequency: pulumi.Output<number>;
46
+ /**
47
+ * This property only valid for API high frequency checks. To create a hight frequency check, the property `frequency` must be `0` and `frequencyOffset` could be `10`, `20` or `30`.
48
+ */
49
+ readonly frequencyOffset: pulumi.Output<number | undefined>;
50
+ /**
51
+ * . The id of the check group this check is part of.
52
+ */
53
+ readonly groupId: pulumi.Output<number | undefined>;
54
+ /**
55
+ * The position of this check in a check group. It determines in what order checks are run when a group is triggered from the API or from CI/CD.
56
+ */
57
+ readonly groupOrder: pulumi.Output<number | undefined>;
58
+ /**
59
+ * A valid piece of Node.js code to run in the setup phase.
60
+ */
61
+ readonly localSetupScript: pulumi.Output<string | undefined>;
62
+ /**
63
+ * A valid piece of Node.js code to run in the teardown phase.
64
+ */
65
+ readonly localTeardownScript: pulumi.Output<string | undefined>;
66
+ /**
67
+ * An array of one or more data center locations where to run the this check. Defaults to["us-east-1"].
68
+ */
69
+ readonly locations: pulumi.Output<string[] | undefined>;
70
+ /**
71
+ * The response time in milliseconds where a check should be considered failing. Possible values are between 0 and 30000. Defaults to `30000`.
72
+ */
73
+ readonly maxResponseTime: pulumi.Output<number | undefined>;
74
+ /**
75
+ * Determines if any notifications will be sent out when a check fails and/or recovers. Possible values `true`, and `false`.
76
+ */
77
+ readonly muted: pulumi.Output<boolean | undefined>;
78
+ /**
79
+ * The name of the check.
80
+ */
81
+ readonly name: pulumi.Output<string>;
82
+ /**
83
+ * . An API check might have one request config. Supported values documented below.
84
+ */
85
+ readonly request: pulumi.Output<outputs.CheckRequest | undefined>;
86
+ /**
87
+ * . The id of the runtime to use for this check.
88
+ */
89
+ readonly runtimeId: pulumi.Output<string | undefined>;
90
+ readonly script: pulumi.Output<string | undefined>;
91
+ /**
92
+ * An ID reference to a snippet to use in the setup phase of an API check.
93
+ */
94
+ readonly setupSnippetId: pulumi.Output<number | undefined>;
95
+ /**
96
+ * Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404. Possible values `true`, and `false`.
97
+ */
98
+ readonly shouldFail: pulumi.Output<boolean | undefined>;
99
+ /**
100
+ * Determines if the SSL certificate should be validated for expiry. Possible values `true`, and `false`.
101
+ */
102
+ readonly sslCheck: pulumi.Output<boolean | undefined>;
103
+ readonly tags: pulumi.Output<string[] | undefined>;
104
+ /**
105
+ * An ID reference to a snippet to use in the teardown phase of an API check.
106
+ */
107
+ readonly teardownSnippetId: pulumi.Output<number | undefined>;
108
+ /**
109
+ * The type of the check. Possible values are `API`, and `BROWSER`.
110
+ */
111
+ readonly type: pulumi.Output<string>;
112
+ /**
113
+ * When true, the account level alert setting will be used, not the alert setting defined on this check. Possible values `true`, and `false`.
114
+ */
115
+ readonly useGlobalAlertSettings: pulumi.Output<boolean | undefined>;
116
+ /**
117
+ * Create a Check resource with the given unique name, arguments, and options.
118
+ *
119
+ * @param name The _unique_ name of the resource.
120
+ * @param args The arguments to use to populate this resource's properties.
121
+ * @param opts A bag of options that control this resource's behavior.
122
+ */
123
+ constructor(name: string, args: CheckArgs, opts?: pulumi.CustomResourceOptions);
124
+ }
125
+ /**
126
+ * Input properties used for looking up and filtering Check resources.
127
+ */
128
+ export interface CheckState {
129
+ /**
130
+ * Determines if the check is running or not. Possible values `true`, and `false`.
131
+ */
132
+ activated?: pulumi.Input<boolean>;
133
+ alertChannelSubscriptions?: pulumi.Input<pulumi.Input<inputs.CheckAlertChannelSubscription>[]>;
134
+ /**
135
+ * . Supported values documented below.
136
+ */
137
+ alertSettings?: pulumi.Input<inputs.CheckAlertSettings>;
138
+ /**
139
+ * The response time in milliseconds where a check should be considered degraded. Possible values are between 0 and 30000. Defaults to `15000`.
140
+ */
141
+ degradedResponseTime?: pulumi.Input<number>;
142
+ /**
143
+ * Setting this to "true" will trigger a retry when a check fails from the failing region and another, randomly selected region before marking the check as failed. Possible values `true`, and `false`.
144
+ */
145
+ doubleCheck?: pulumi.Input<boolean>;
146
+ /**
147
+ * Key/value pairs for setting environment variables during check execution. These are only relevant for Browser checks. Use global environment variables whenever possible.
148
+ */
149
+ environmentVariables?: pulumi.Input<{
150
+ [key: string]: any;
151
+ }>;
152
+ /**
153
+ * The frequency in minutes to run the check. Possible values are `0`, `1`, `5`, `10`, `15`, `30`, `60`, `720`, and `1440`.
154
+ */
155
+ frequency?: pulumi.Input<number>;
156
+ /**
157
+ * This property only valid for API high frequency checks. To create a hight frequency check, the property `frequency` must be `0` and `frequencyOffset` could be `10`, `20` or `30`.
158
+ */
159
+ frequencyOffset?: pulumi.Input<number>;
160
+ /**
161
+ * . The id of the check group this check is part of.
162
+ */
163
+ groupId?: pulumi.Input<number>;
164
+ /**
165
+ * The position of this check in a check group. It determines in what order checks are run when a group is triggered from the API or from CI/CD.
166
+ */
167
+ groupOrder?: pulumi.Input<number>;
168
+ /**
169
+ * A valid piece of Node.js code to run in the setup phase.
170
+ */
171
+ localSetupScript?: pulumi.Input<string>;
172
+ /**
173
+ * A valid piece of Node.js code to run in the teardown phase.
174
+ */
175
+ localTeardownScript?: pulumi.Input<string>;
176
+ /**
177
+ * An array of one or more data center locations where to run the this check. Defaults to["us-east-1"].
178
+ */
179
+ locations?: pulumi.Input<pulumi.Input<string>[]>;
180
+ /**
181
+ * The response time in milliseconds where a check should be considered failing. Possible values are between 0 and 30000. Defaults to `30000`.
182
+ */
183
+ maxResponseTime?: pulumi.Input<number>;
184
+ /**
185
+ * Determines if any notifications will be sent out when a check fails and/or recovers. Possible values `true`, and `false`.
186
+ */
187
+ muted?: pulumi.Input<boolean>;
188
+ /**
189
+ * The name of the check.
190
+ */
191
+ name?: pulumi.Input<string>;
192
+ /**
193
+ * . An API check might have one request config. Supported values documented below.
194
+ */
195
+ request?: pulumi.Input<inputs.CheckRequest>;
196
+ /**
197
+ * . The id of the runtime to use for this check.
198
+ */
199
+ runtimeId?: pulumi.Input<string>;
200
+ script?: pulumi.Input<string>;
201
+ /**
202
+ * An ID reference to a snippet to use in the setup phase of an API check.
203
+ */
204
+ setupSnippetId?: pulumi.Input<number>;
205
+ /**
206
+ * Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404. Possible values `true`, and `false`.
207
+ */
208
+ shouldFail?: pulumi.Input<boolean>;
209
+ /**
210
+ * Determines if the SSL certificate should be validated for expiry. Possible values `true`, and `false`.
211
+ */
212
+ sslCheck?: pulumi.Input<boolean>;
213
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
214
+ /**
215
+ * An ID reference to a snippet to use in the teardown phase of an API check.
216
+ */
217
+ teardownSnippetId?: pulumi.Input<number>;
218
+ /**
219
+ * The type of the check. Possible values are `API`, and `BROWSER`.
220
+ */
221
+ type?: pulumi.Input<string>;
222
+ /**
223
+ * When true, the account level alert setting will be used, not the alert setting defined on this check. Possible values `true`, and `false`.
224
+ */
225
+ useGlobalAlertSettings?: pulumi.Input<boolean>;
226
+ }
227
+ /**
228
+ * The set of arguments for constructing a Check resource.
229
+ */
230
+ export interface CheckArgs {
231
+ /**
232
+ * Determines if the check is running or not. Possible values `true`, and `false`.
233
+ */
234
+ activated: pulumi.Input<boolean>;
235
+ alertChannelSubscriptions?: pulumi.Input<pulumi.Input<inputs.CheckAlertChannelSubscription>[]>;
236
+ /**
237
+ * . Supported values documented below.
238
+ */
239
+ alertSettings?: pulumi.Input<inputs.CheckAlertSettings>;
240
+ /**
241
+ * The response time in milliseconds where a check should be considered degraded. Possible values are between 0 and 30000. Defaults to `15000`.
242
+ */
243
+ degradedResponseTime?: pulumi.Input<number>;
244
+ /**
245
+ * Setting this to "true" will trigger a retry when a check fails from the failing region and another, randomly selected region before marking the check as failed. Possible values `true`, and `false`.
246
+ */
247
+ doubleCheck?: pulumi.Input<boolean>;
248
+ /**
249
+ * Key/value pairs for setting environment variables during check execution. These are only relevant for Browser checks. Use global environment variables whenever possible.
250
+ */
251
+ environmentVariables?: pulumi.Input<{
252
+ [key: string]: any;
253
+ }>;
254
+ /**
255
+ * The frequency in minutes to run the check. Possible values are `0`, `1`, `5`, `10`, `15`, `30`, `60`, `720`, and `1440`.
256
+ */
257
+ frequency: pulumi.Input<number>;
258
+ /**
259
+ * This property only valid for API high frequency checks. To create a hight frequency check, the property `frequency` must be `0` and `frequencyOffset` could be `10`, `20` or `30`.
260
+ */
261
+ frequencyOffset?: pulumi.Input<number>;
262
+ /**
263
+ * . The id of the check group this check is part of.
264
+ */
265
+ groupId?: pulumi.Input<number>;
266
+ /**
267
+ * The position of this check in a check group. It determines in what order checks are run when a group is triggered from the API or from CI/CD.
268
+ */
269
+ groupOrder?: pulumi.Input<number>;
270
+ /**
271
+ * A valid piece of Node.js code to run in the setup phase.
272
+ */
273
+ localSetupScript?: pulumi.Input<string>;
274
+ /**
275
+ * A valid piece of Node.js code to run in the teardown phase.
276
+ */
277
+ localTeardownScript?: pulumi.Input<string>;
278
+ /**
279
+ * An array of one or more data center locations where to run the this check. Defaults to["us-east-1"].
280
+ */
281
+ locations?: pulumi.Input<pulumi.Input<string>[]>;
282
+ /**
283
+ * The response time in milliseconds where a check should be considered failing. Possible values are between 0 and 30000. Defaults to `30000`.
284
+ */
285
+ maxResponseTime?: pulumi.Input<number>;
286
+ /**
287
+ * Determines if any notifications will be sent out when a check fails and/or recovers. Possible values `true`, and `false`.
288
+ */
289
+ muted?: pulumi.Input<boolean>;
290
+ /**
291
+ * The name of the check.
292
+ */
293
+ name?: pulumi.Input<string>;
294
+ /**
295
+ * . An API check might have one request config. Supported values documented below.
296
+ */
297
+ request?: pulumi.Input<inputs.CheckRequest>;
298
+ /**
299
+ * . The id of the runtime to use for this check.
300
+ */
301
+ runtimeId?: pulumi.Input<string>;
302
+ script?: pulumi.Input<string>;
303
+ /**
304
+ * An ID reference to a snippet to use in the setup phase of an API check.
305
+ */
306
+ setupSnippetId?: pulumi.Input<number>;
307
+ /**
308
+ * Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404. Possible values `true`, and `false`.
309
+ */
310
+ shouldFail?: pulumi.Input<boolean>;
311
+ /**
312
+ * Determines if the SSL certificate should be validated for expiry. Possible values `true`, and `false`.
313
+ */
314
+ sslCheck?: pulumi.Input<boolean>;
315
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
316
+ /**
317
+ * An ID reference to a snippet to use in the teardown phase of an API check.
318
+ */
319
+ teardownSnippetId?: pulumi.Input<number>;
320
+ /**
321
+ * The type of the check. Possible values are `API`, and `BROWSER`.
322
+ */
323
+ type: pulumi.Input<string>;
324
+ /**
325
+ * When true, the account level alert setting will be used, not the alert setting defined on this check. Possible values `true`, and `false`.
326
+ */
327
+ useGlobalAlertSettings?: pulumi.Input<boolean>;
328
+ }
package/bin/check.js ADDED
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Check = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class Check extends pulumi.CustomResource {
9
+ constructor(name, argsOrState, opts) {
10
+ let resourceInputs = {};
11
+ opts = opts || {};
12
+ if (opts.id) {
13
+ const state = argsOrState;
14
+ resourceInputs["activated"] = state ? state.activated : undefined;
15
+ resourceInputs["alertChannelSubscriptions"] = state ? state.alertChannelSubscriptions : undefined;
16
+ resourceInputs["alertSettings"] = state ? state.alertSettings : undefined;
17
+ resourceInputs["degradedResponseTime"] = state ? state.degradedResponseTime : undefined;
18
+ resourceInputs["doubleCheck"] = state ? state.doubleCheck : undefined;
19
+ resourceInputs["environmentVariables"] = state ? state.environmentVariables : undefined;
20
+ resourceInputs["frequency"] = state ? state.frequency : undefined;
21
+ resourceInputs["frequencyOffset"] = state ? state.frequencyOffset : undefined;
22
+ resourceInputs["groupId"] = state ? state.groupId : undefined;
23
+ resourceInputs["groupOrder"] = state ? state.groupOrder : undefined;
24
+ resourceInputs["localSetupScript"] = state ? state.localSetupScript : undefined;
25
+ resourceInputs["localTeardownScript"] = state ? state.localTeardownScript : undefined;
26
+ resourceInputs["locations"] = state ? state.locations : undefined;
27
+ resourceInputs["maxResponseTime"] = state ? state.maxResponseTime : undefined;
28
+ resourceInputs["muted"] = state ? state.muted : undefined;
29
+ resourceInputs["name"] = state ? state.name : undefined;
30
+ resourceInputs["request"] = state ? state.request : undefined;
31
+ resourceInputs["runtimeId"] = state ? state.runtimeId : undefined;
32
+ resourceInputs["script"] = state ? state.script : undefined;
33
+ resourceInputs["setupSnippetId"] = state ? state.setupSnippetId : undefined;
34
+ resourceInputs["shouldFail"] = state ? state.shouldFail : undefined;
35
+ resourceInputs["sslCheck"] = state ? state.sslCheck : undefined;
36
+ resourceInputs["tags"] = state ? state.tags : undefined;
37
+ resourceInputs["teardownSnippetId"] = state ? state.teardownSnippetId : undefined;
38
+ resourceInputs["type"] = state ? state.type : undefined;
39
+ resourceInputs["useGlobalAlertSettings"] = state ? state.useGlobalAlertSettings : undefined;
40
+ }
41
+ else {
42
+ const args = argsOrState;
43
+ if ((!args || args.activated === undefined) && !opts.urn) {
44
+ throw new Error("Missing required property 'activated'");
45
+ }
46
+ if ((!args || args.frequency === undefined) && !opts.urn) {
47
+ throw new Error("Missing required property 'frequency'");
48
+ }
49
+ if ((!args || args.type === undefined) && !opts.urn) {
50
+ throw new Error("Missing required property 'type'");
51
+ }
52
+ resourceInputs["activated"] = args ? args.activated : undefined;
53
+ resourceInputs["alertChannelSubscriptions"] = args ? args.alertChannelSubscriptions : undefined;
54
+ resourceInputs["alertSettings"] = args ? args.alertSettings : undefined;
55
+ resourceInputs["degradedResponseTime"] = args ? args.degradedResponseTime : undefined;
56
+ resourceInputs["doubleCheck"] = args ? args.doubleCheck : undefined;
57
+ resourceInputs["environmentVariables"] = args ? args.environmentVariables : undefined;
58
+ resourceInputs["frequency"] = args ? args.frequency : undefined;
59
+ resourceInputs["frequencyOffset"] = args ? args.frequencyOffset : undefined;
60
+ resourceInputs["groupId"] = args ? args.groupId : undefined;
61
+ resourceInputs["groupOrder"] = args ? args.groupOrder : undefined;
62
+ resourceInputs["localSetupScript"] = args ? args.localSetupScript : undefined;
63
+ resourceInputs["localTeardownScript"] = args ? args.localTeardownScript : undefined;
64
+ resourceInputs["locations"] = args ? args.locations : undefined;
65
+ resourceInputs["maxResponseTime"] = args ? args.maxResponseTime : undefined;
66
+ resourceInputs["muted"] = args ? args.muted : undefined;
67
+ resourceInputs["name"] = args ? args.name : undefined;
68
+ resourceInputs["request"] = args ? args.request : undefined;
69
+ resourceInputs["runtimeId"] = args ? args.runtimeId : undefined;
70
+ resourceInputs["script"] = args ? args.script : undefined;
71
+ resourceInputs["setupSnippetId"] = args ? args.setupSnippetId : undefined;
72
+ resourceInputs["shouldFail"] = args ? args.shouldFail : undefined;
73
+ resourceInputs["sslCheck"] = args ? args.sslCheck : undefined;
74
+ resourceInputs["tags"] = args ? args.tags : undefined;
75
+ resourceInputs["teardownSnippetId"] = args ? args.teardownSnippetId : undefined;
76
+ resourceInputs["type"] = args ? args.type : undefined;
77
+ resourceInputs["useGlobalAlertSettings"] = args ? args.useGlobalAlertSettings : undefined;
78
+ }
79
+ if (!opts.version) {
80
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
81
+ }
82
+ super(Check.__pulumiType, name, resourceInputs, opts);
83
+ }
84
+ /**
85
+ * Get an existing Check resource's state with the given name, ID, and optional extra
86
+ * properties used to qualify the lookup.
87
+ *
88
+ * @param name The _unique_ name of the resulting resource.
89
+ * @param id The _unique_ provider ID of the resource to lookup.
90
+ * @param state Any extra arguments used during the lookup.
91
+ * @param opts Optional settings to control the behavior of the CustomResource.
92
+ */
93
+ static get(name, id, state, opts) {
94
+ return new Check(name, state, Object.assign(Object.assign({}, opts), { id: id }));
95
+ }
96
+ /**
97
+ * Returns true if the given object is an instance of Check. This is designed to work even
98
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
99
+ */
100
+ static isInstance(obj) {
101
+ if (obj === undefined || obj === null) {
102
+ return false;
103
+ }
104
+ return obj['__pulumiType'] === Check.__pulumiType;
105
+ }
106
+ }
107
+ exports.Check = Check;
108
+ /** @internal */
109
+ Check.__pulumiType = 'checkly:index/check:Check';
110
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../check.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAEzC,yCAAyC;AAEzC,MAAa,KAAM,SAAQ,MAAM,CAAC,cAAc;IAoI5C,YAAY,IAAY,EAAE,WAAoC,EAAE,IAAmC;QAC/F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAqC,CAAC;YACpD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YAChF,cAAc,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/F;aAAM;YACH,MAAM,IAAI,GAAG,WAAoC,CAAC;YAClD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YACD,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;YAChG,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,cAAc,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAChF,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7F;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;SACxE;QACD,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IA5MD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAkB,EAAE,IAAmC;QAChH,OAAO,IAAI,KAAK,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC5D,CAAC;IAKD;;;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,KAAK,CAAC,YAAY,CAAC;IACtD,CAAC;;AA1BL,sBA8MC;AAhMG,gBAAgB;AACO,kBAAY,GAAG,2BAA2B,CAAC"}