pulumi-checkly 2.0.0__py3-none-any.whl

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.
@@ -0,0 +1,742 @@
1
+ # coding=utf-8
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
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['AlertChannelArgs', 'AlertChannel']
20
+
21
+ @pulumi.input_type
22
+ class AlertChannelArgs:
23
+ def __init__(__self__, *,
24
+ call: Optional[pulumi.Input['AlertChannelCallArgs']] = None,
25
+ email: Optional[pulumi.Input['AlertChannelEmailArgs']] = None,
26
+ opsgenie: Optional[pulumi.Input['AlertChannelOpsgenieArgs']] = None,
27
+ pagerduty: Optional[pulumi.Input['AlertChannelPagerdutyArgs']] = None,
28
+ send_degraded: Optional[pulumi.Input[bool]] = None,
29
+ send_failure: Optional[pulumi.Input[bool]] = None,
30
+ send_recovery: Optional[pulumi.Input[bool]] = None,
31
+ slack: Optional[pulumi.Input['AlertChannelSlackArgs']] = None,
32
+ sms: Optional[pulumi.Input['AlertChannelSmsArgs']] = None,
33
+ ssl_expiry: Optional[pulumi.Input[bool]] = None,
34
+ ssl_expiry_threshold: Optional[pulumi.Input[int]] = None,
35
+ webhook: Optional[pulumi.Input['AlertChannelWebhookArgs']] = None):
36
+ """
37
+ The set of arguments for constructing a AlertChannel resource.
38
+ :param pulumi.Input[bool] send_degraded: (Default `false`)
39
+ :param pulumi.Input[bool] send_failure: (Default `true`)
40
+ :param pulumi.Input[bool] send_recovery: (Default `true`)
41
+ :param pulumi.Input[bool] ssl_expiry: (Default `false`)
42
+ :param pulumi.Input[int] ssl_expiry_threshold: Value must be between 1 and 30 (Default `30`)
43
+ """
44
+ if call is not None:
45
+ pulumi.set(__self__, "call", call)
46
+ if email is not None:
47
+ pulumi.set(__self__, "email", email)
48
+ if opsgenie is not None:
49
+ pulumi.set(__self__, "opsgenie", opsgenie)
50
+ if pagerduty is not None:
51
+ pulumi.set(__self__, "pagerduty", pagerduty)
52
+ if send_degraded is not None:
53
+ pulumi.set(__self__, "send_degraded", send_degraded)
54
+ if send_failure is not None:
55
+ pulumi.set(__self__, "send_failure", send_failure)
56
+ if send_recovery is not None:
57
+ pulumi.set(__self__, "send_recovery", send_recovery)
58
+ if slack is not None:
59
+ pulumi.set(__self__, "slack", slack)
60
+ if sms is not None:
61
+ pulumi.set(__self__, "sms", sms)
62
+ if ssl_expiry is not None:
63
+ pulumi.set(__self__, "ssl_expiry", ssl_expiry)
64
+ if ssl_expiry_threshold is not None:
65
+ pulumi.set(__self__, "ssl_expiry_threshold", ssl_expiry_threshold)
66
+ if webhook is not None:
67
+ pulumi.set(__self__, "webhook", webhook)
68
+
69
+ @property
70
+ @pulumi.getter
71
+ def call(self) -> Optional[pulumi.Input['AlertChannelCallArgs']]:
72
+ return pulumi.get(self, "call")
73
+
74
+ @call.setter
75
+ def call(self, value: Optional[pulumi.Input['AlertChannelCallArgs']]):
76
+ pulumi.set(self, "call", value)
77
+
78
+ @property
79
+ @pulumi.getter
80
+ def email(self) -> Optional[pulumi.Input['AlertChannelEmailArgs']]:
81
+ return pulumi.get(self, "email")
82
+
83
+ @email.setter
84
+ def email(self, value: Optional[pulumi.Input['AlertChannelEmailArgs']]):
85
+ pulumi.set(self, "email", value)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def opsgenie(self) -> Optional[pulumi.Input['AlertChannelOpsgenieArgs']]:
90
+ return pulumi.get(self, "opsgenie")
91
+
92
+ @opsgenie.setter
93
+ def opsgenie(self, value: Optional[pulumi.Input['AlertChannelOpsgenieArgs']]):
94
+ pulumi.set(self, "opsgenie", value)
95
+
96
+ @property
97
+ @pulumi.getter
98
+ def pagerduty(self) -> Optional[pulumi.Input['AlertChannelPagerdutyArgs']]:
99
+ return pulumi.get(self, "pagerduty")
100
+
101
+ @pagerduty.setter
102
+ def pagerduty(self, value: Optional[pulumi.Input['AlertChannelPagerdutyArgs']]):
103
+ pulumi.set(self, "pagerduty", value)
104
+
105
+ @property
106
+ @pulumi.getter(name="sendDegraded")
107
+ def send_degraded(self) -> Optional[pulumi.Input[bool]]:
108
+ """
109
+ (Default `false`)
110
+ """
111
+ return pulumi.get(self, "send_degraded")
112
+
113
+ @send_degraded.setter
114
+ def send_degraded(self, value: Optional[pulumi.Input[bool]]):
115
+ pulumi.set(self, "send_degraded", value)
116
+
117
+ @property
118
+ @pulumi.getter(name="sendFailure")
119
+ def send_failure(self) -> Optional[pulumi.Input[bool]]:
120
+ """
121
+ (Default `true`)
122
+ """
123
+ return pulumi.get(self, "send_failure")
124
+
125
+ @send_failure.setter
126
+ def send_failure(self, value: Optional[pulumi.Input[bool]]):
127
+ pulumi.set(self, "send_failure", value)
128
+
129
+ @property
130
+ @pulumi.getter(name="sendRecovery")
131
+ def send_recovery(self) -> Optional[pulumi.Input[bool]]:
132
+ """
133
+ (Default `true`)
134
+ """
135
+ return pulumi.get(self, "send_recovery")
136
+
137
+ @send_recovery.setter
138
+ def send_recovery(self, value: Optional[pulumi.Input[bool]]):
139
+ pulumi.set(self, "send_recovery", value)
140
+
141
+ @property
142
+ @pulumi.getter
143
+ def slack(self) -> Optional[pulumi.Input['AlertChannelSlackArgs']]:
144
+ return pulumi.get(self, "slack")
145
+
146
+ @slack.setter
147
+ def slack(self, value: Optional[pulumi.Input['AlertChannelSlackArgs']]):
148
+ pulumi.set(self, "slack", value)
149
+
150
+ @property
151
+ @pulumi.getter
152
+ def sms(self) -> Optional[pulumi.Input['AlertChannelSmsArgs']]:
153
+ return pulumi.get(self, "sms")
154
+
155
+ @sms.setter
156
+ def sms(self, value: Optional[pulumi.Input['AlertChannelSmsArgs']]):
157
+ pulumi.set(self, "sms", value)
158
+
159
+ @property
160
+ @pulumi.getter(name="sslExpiry")
161
+ def ssl_expiry(self) -> Optional[pulumi.Input[bool]]:
162
+ """
163
+ (Default `false`)
164
+ """
165
+ return pulumi.get(self, "ssl_expiry")
166
+
167
+ @ssl_expiry.setter
168
+ def ssl_expiry(self, value: Optional[pulumi.Input[bool]]):
169
+ pulumi.set(self, "ssl_expiry", value)
170
+
171
+ @property
172
+ @pulumi.getter(name="sslExpiryThreshold")
173
+ def ssl_expiry_threshold(self) -> Optional[pulumi.Input[int]]:
174
+ """
175
+ Value must be between 1 and 30 (Default `30`)
176
+ """
177
+ return pulumi.get(self, "ssl_expiry_threshold")
178
+
179
+ @ssl_expiry_threshold.setter
180
+ def ssl_expiry_threshold(self, value: Optional[pulumi.Input[int]]):
181
+ pulumi.set(self, "ssl_expiry_threshold", value)
182
+
183
+ @property
184
+ @pulumi.getter
185
+ def webhook(self) -> Optional[pulumi.Input['AlertChannelWebhookArgs']]:
186
+ return pulumi.get(self, "webhook")
187
+
188
+ @webhook.setter
189
+ def webhook(self, value: Optional[pulumi.Input['AlertChannelWebhookArgs']]):
190
+ pulumi.set(self, "webhook", value)
191
+
192
+
193
+ @pulumi.input_type
194
+ class _AlertChannelState:
195
+ def __init__(__self__, *,
196
+ call: Optional[pulumi.Input['AlertChannelCallArgs']] = None,
197
+ email: Optional[pulumi.Input['AlertChannelEmailArgs']] = None,
198
+ opsgenie: Optional[pulumi.Input['AlertChannelOpsgenieArgs']] = None,
199
+ pagerduty: Optional[pulumi.Input['AlertChannelPagerdutyArgs']] = None,
200
+ send_degraded: Optional[pulumi.Input[bool]] = None,
201
+ send_failure: Optional[pulumi.Input[bool]] = None,
202
+ send_recovery: Optional[pulumi.Input[bool]] = None,
203
+ slack: Optional[pulumi.Input['AlertChannelSlackArgs']] = None,
204
+ sms: Optional[pulumi.Input['AlertChannelSmsArgs']] = None,
205
+ ssl_expiry: Optional[pulumi.Input[bool]] = None,
206
+ ssl_expiry_threshold: Optional[pulumi.Input[int]] = None,
207
+ webhook: Optional[pulumi.Input['AlertChannelWebhookArgs']] = None):
208
+ """
209
+ Input properties used for looking up and filtering AlertChannel resources.
210
+ :param pulumi.Input[bool] send_degraded: (Default `false`)
211
+ :param pulumi.Input[bool] send_failure: (Default `true`)
212
+ :param pulumi.Input[bool] send_recovery: (Default `true`)
213
+ :param pulumi.Input[bool] ssl_expiry: (Default `false`)
214
+ :param pulumi.Input[int] ssl_expiry_threshold: Value must be between 1 and 30 (Default `30`)
215
+ """
216
+ if call is not None:
217
+ pulumi.set(__self__, "call", call)
218
+ if email is not None:
219
+ pulumi.set(__self__, "email", email)
220
+ if opsgenie is not None:
221
+ pulumi.set(__self__, "opsgenie", opsgenie)
222
+ if pagerduty is not None:
223
+ pulumi.set(__self__, "pagerduty", pagerduty)
224
+ if send_degraded is not None:
225
+ pulumi.set(__self__, "send_degraded", send_degraded)
226
+ if send_failure is not None:
227
+ pulumi.set(__self__, "send_failure", send_failure)
228
+ if send_recovery is not None:
229
+ pulumi.set(__self__, "send_recovery", send_recovery)
230
+ if slack is not None:
231
+ pulumi.set(__self__, "slack", slack)
232
+ if sms is not None:
233
+ pulumi.set(__self__, "sms", sms)
234
+ if ssl_expiry is not None:
235
+ pulumi.set(__self__, "ssl_expiry", ssl_expiry)
236
+ if ssl_expiry_threshold is not None:
237
+ pulumi.set(__self__, "ssl_expiry_threshold", ssl_expiry_threshold)
238
+ if webhook is not None:
239
+ pulumi.set(__self__, "webhook", webhook)
240
+
241
+ @property
242
+ @pulumi.getter
243
+ def call(self) -> Optional[pulumi.Input['AlertChannelCallArgs']]:
244
+ return pulumi.get(self, "call")
245
+
246
+ @call.setter
247
+ def call(self, value: Optional[pulumi.Input['AlertChannelCallArgs']]):
248
+ pulumi.set(self, "call", value)
249
+
250
+ @property
251
+ @pulumi.getter
252
+ def email(self) -> Optional[pulumi.Input['AlertChannelEmailArgs']]:
253
+ return pulumi.get(self, "email")
254
+
255
+ @email.setter
256
+ def email(self, value: Optional[pulumi.Input['AlertChannelEmailArgs']]):
257
+ pulumi.set(self, "email", value)
258
+
259
+ @property
260
+ @pulumi.getter
261
+ def opsgenie(self) -> Optional[pulumi.Input['AlertChannelOpsgenieArgs']]:
262
+ return pulumi.get(self, "opsgenie")
263
+
264
+ @opsgenie.setter
265
+ def opsgenie(self, value: Optional[pulumi.Input['AlertChannelOpsgenieArgs']]):
266
+ pulumi.set(self, "opsgenie", value)
267
+
268
+ @property
269
+ @pulumi.getter
270
+ def pagerduty(self) -> Optional[pulumi.Input['AlertChannelPagerdutyArgs']]:
271
+ return pulumi.get(self, "pagerduty")
272
+
273
+ @pagerduty.setter
274
+ def pagerduty(self, value: Optional[pulumi.Input['AlertChannelPagerdutyArgs']]):
275
+ pulumi.set(self, "pagerduty", value)
276
+
277
+ @property
278
+ @pulumi.getter(name="sendDegraded")
279
+ def send_degraded(self) -> Optional[pulumi.Input[bool]]:
280
+ """
281
+ (Default `false`)
282
+ """
283
+ return pulumi.get(self, "send_degraded")
284
+
285
+ @send_degraded.setter
286
+ def send_degraded(self, value: Optional[pulumi.Input[bool]]):
287
+ pulumi.set(self, "send_degraded", value)
288
+
289
+ @property
290
+ @pulumi.getter(name="sendFailure")
291
+ def send_failure(self) -> Optional[pulumi.Input[bool]]:
292
+ """
293
+ (Default `true`)
294
+ """
295
+ return pulumi.get(self, "send_failure")
296
+
297
+ @send_failure.setter
298
+ def send_failure(self, value: Optional[pulumi.Input[bool]]):
299
+ pulumi.set(self, "send_failure", value)
300
+
301
+ @property
302
+ @pulumi.getter(name="sendRecovery")
303
+ def send_recovery(self) -> Optional[pulumi.Input[bool]]:
304
+ """
305
+ (Default `true`)
306
+ """
307
+ return pulumi.get(self, "send_recovery")
308
+
309
+ @send_recovery.setter
310
+ def send_recovery(self, value: Optional[pulumi.Input[bool]]):
311
+ pulumi.set(self, "send_recovery", value)
312
+
313
+ @property
314
+ @pulumi.getter
315
+ def slack(self) -> Optional[pulumi.Input['AlertChannelSlackArgs']]:
316
+ return pulumi.get(self, "slack")
317
+
318
+ @slack.setter
319
+ def slack(self, value: Optional[pulumi.Input['AlertChannelSlackArgs']]):
320
+ pulumi.set(self, "slack", value)
321
+
322
+ @property
323
+ @pulumi.getter
324
+ def sms(self) -> Optional[pulumi.Input['AlertChannelSmsArgs']]:
325
+ return pulumi.get(self, "sms")
326
+
327
+ @sms.setter
328
+ def sms(self, value: Optional[pulumi.Input['AlertChannelSmsArgs']]):
329
+ pulumi.set(self, "sms", value)
330
+
331
+ @property
332
+ @pulumi.getter(name="sslExpiry")
333
+ def ssl_expiry(self) -> Optional[pulumi.Input[bool]]:
334
+ """
335
+ (Default `false`)
336
+ """
337
+ return pulumi.get(self, "ssl_expiry")
338
+
339
+ @ssl_expiry.setter
340
+ def ssl_expiry(self, value: Optional[pulumi.Input[bool]]):
341
+ pulumi.set(self, "ssl_expiry", value)
342
+
343
+ @property
344
+ @pulumi.getter(name="sslExpiryThreshold")
345
+ def ssl_expiry_threshold(self) -> Optional[pulumi.Input[int]]:
346
+ """
347
+ Value must be between 1 and 30 (Default `30`)
348
+ """
349
+ return pulumi.get(self, "ssl_expiry_threshold")
350
+
351
+ @ssl_expiry_threshold.setter
352
+ def ssl_expiry_threshold(self, value: Optional[pulumi.Input[int]]):
353
+ pulumi.set(self, "ssl_expiry_threshold", value)
354
+
355
+ @property
356
+ @pulumi.getter
357
+ def webhook(self) -> Optional[pulumi.Input['AlertChannelWebhookArgs']]:
358
+ return pulumi.get(self, "webhook")
359
+
360
+ @webhook.setter
361
+ def webhook(self, value: Optional[pulumi.Input['AlertChannelWebhookArgs']]):
362
+ pulumi.set(self, "webhook", value)
363
+
364
+
365
+ class AlertChannel(pulumi.CustomResource):
366
+ @overload
367
+ def __init__(__self__,
368
+ resource_name: str,
369
+ opts: Optional[pulumi.ResourceOptions] = None,
370
+ call: Optional[pulumi.Input[Union['AlertChannelCallArgs', 'AlertChannelCallArgsDict']]] = None,
371
+ email: Optional[pulumi.Input[Union['AlertChannelEmailArgs', 'AlertChannelEmailArgsDict']]] = None,
372
+ opsgenie: Optional[pulumi.Input[Union['AlertChannelOpsgenieArgs', 'AlertChannelOpsgenieArgsDict']]] = None,
373
+ pagerduty: Optional[pulumi.Input[Union['AlertChannelPagerdutyArgs', 'AlertChannelPagerdutyArgsDict']]] = None,
374
+ send_degraded: Optional[pulumi.Input[bool]] = None,
375
+ send_failure: Optional[pulumi.Input[bool]] = None,
376
+ send_recovery: Optional[pulumi.Input[bool]] = None,
377
+ slack: Optional[pulumi.Input[Union['AlertChannelSlackArgs', 'AlertChannelSlackArgsDict']]] = None,
378
+ sms: Optional[pulumi.Input[Union['AlertChannelSmsArgs', 'AlertChannelSmsArgsDict']]] = None,
379
+ ssl_expiry: Optional[pulumi.Input[bool]] = None,
380
+ ssl_expiry_threshold: Optional[pulumi.Input[int]] = None,
381
+ webhook: Optional[pulumi.Input[Union['AlertChannelWebhookArgs', 'AlertChannelWebhookArgsDict']]] = None,
382
+ __props__=None):
383
+ """
384
+ Allows you to define alerting channels for the checks and groups in your account
385
+
386
+ ## Example Usage
387
+
388
+ ```python
389
+ import pulumi
390
+ import pulumi_checkly as checkly
391
+
392
+ # An Email alert channel
393
+ email_ac = checkly.AlertChannel("email_ac",
394
+ email={
395
+ "address": "john@example.com",
396
+ },
397
+ send_recovery=True,
398
+ send_failure=False,
399
+ send_degraded=True,
400
+ ssl_expiry=True,
401
+ ssl_expiry_threshold=22)
402
+ # A SMS alert channel
403
+ sms_ac = checkly.AlertChannel("sms_ac",
404
+ sms={
405
+ "name": "john",
406
+ "number": "+5491100001111",
407
+ },
408
+ send_recovery=True,
409
+ send_failure=True)
410
+ # A Slack alert channel
411
+ slack_ac = checkly.AlertChannel("slack_ac", slack={
412
+ "channel": "#checkly-notifications",
413
+ "url": "https://hooks.slack.com/services/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",
414
+ })
415
+ # An Opsgenie alert channel
416
+ opsgenie_ac = checkly.AlertChannel("opsgenie_ac", opsgenie={
417
+ "name": "opsalerts",
418
+ "api_key": "fookey",
419
+ "region": "fooregion",
420
+ "priority": "foopriority",
421
+ })
422
+ # A Pagerduty alert channel
423
+ pagerduty_ac = checkly.AlertChannel("pagerduty_ac", pagerduty={
424
+ "account": "checkly",
425
+ "service_key": "key1",
426
+ "service_name": "pdalert",
427
+ })
428
+ # A Webhook alert channel
429
+ webhook_ac = checkly.AlertChannel("webhook_ac", webhook={
430
+ "name": "foo",
431
+ "method": "get",
432
+ "template": "footemplate",
433
+ "url": "https://example.com/foo",
434
+ "webhook_secret": "foosecret",
435
+ })
436
+ # A Firehydran alert channel integration
437
+ firehydrant_ac = checkly.AlertChannel("firehydrant_ac", webhook={
438
+ "name": "firehydrant",
439
+ "method": "post",
440
+ "template": \"\"\"{
441
+ "event": "{{ALERT_TITLE}}",
442
+ "link": "{{RESULT_LINK}}",
443
+ "check_id": "{{CHECK_ID}}",
444
+ "check_type": "{{CHECK_TYPE}}",
445
+ "alert_type": "{{ALERT_TYPE}}",
446
+ "started_at": "{{STARTED_AT}}",
447
+ "check_result_id": "{{CHECK_RESULT_ID}}"
448
+ },
449
+ \"\"\",
450
+ "url": "https://app.firehydrant.io/integrations/alerting/webhooks/2/checkly",
451
+ "webhook_type": "WEBHOOK_FIREHYDRANT",
452
+ })
453
+ # Connecting the alert channel to a check
454
+ example_check = checkly.Check("example_check",
455
+ name="Example check",
456
+ alert_channel_subscriptions=[
457
+ {
458
+ "channel_id": email_ac.id,
459
+ "activated": True,
460
+ },
461
+ {
462
+ "channel_id": sms_ac.id,
463
+ "activated": True,
464
+ },
465
+ ])
466
+ ```
467
+
468
+ :param str resource_name: The name of the resource.
469
+ :param pulumi.ResourceOptions opts: Options for the resource.
470
+ :param pulumi.Input[bool] send_degraded: (Default `false`)
471
+ :param pulumi.Input[bool] send_failure: (Default `true`)
472
+ :param pulumi.Input[bool] send_recovery: (Default `true`)
473
+ :param pulumi.Input[bool] ssl_expiry: (Default `false`)
474
+ :param pulumi.Input[int] ssl_expiry_threshold: Value must be between 1 and 30 (Default `30`)
475
+ """
476
+ ...
477
+ @overload
478
+ def __init__(__self__,
479
+ resource_name: str,
480
+ args: Optional[AlertChannelArgs] = None,
481
+ opts: Optional[pulumi.ResourceOptions] = None):
482
+ """
483
+ Allows you to define alerting channels for the checks and groups in your account
484
+
485
+ ## Example Usage
486
+
487
+ ```python
488
+ import pulumi
489
+ import pulumi_checkly as checkly
490
+
491
+ # An Email alert channel
492
+ email_ac = checkly.AlertChannel("email_ac",
493
+ email={
494
+ "address": "john@example.com",
495
+ },
496
+ send_recovery=True,
497
+ send_failure=False,
498
+ send_degraded=True,
499
+ ssl_expiry=True,
500
+ ssl_expiry_threshold=22)
501
+ # A SMS alert channel
502
+ sms_ac = checkly.AlertChannel("sms_ac",
503
+ sms={
504
+ "name": "john",
505
+ "number": "+5491100001111",
506
+ },
507
+ send_recovery=True,
508
+ send_failure=True)
509
+ # A Slack alert channel
510
+ slack_ac = checkly.AlertChannel("slack_ac", slack={
511
+ "channel": "#checkly-notifications",
512
+ "url": "https://hooks.slack.com/services/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",
513
+ })
514
+ # An Opsgenie alert channel
515
+ opsgenie_ac = checkly.AlertChannel("opsgenie_ac", opsgenie={
516
+ "name": "opsalerts",
517
+ "api_key": "fookey",
518
+ "region": "fooregion",
519
+ "priority": "foopriority",
520
+ })
521
+ # A Pagerduty alert channel
522
+ pagerduty_ac = checkly.AlertChannel("pagerduty_ac", pagerduty={
523
+ "account": "checkly",
524
+ "service_key": "key1",
525
+ "service_name": "pdalert",
526
+ })
527
+ # A Webhook alert channel
528
+ webhook_ac = checkly.AlertChannel("webhook_ac", webhook={
529
+ "name": "foo",
530
+ "method": "get",
531
+ "template": "footemplate",
532
+ "url": "https://example.com/foo",
533
+ "webhook_secret": "foosecret",
534
+ })
535
+ # A Firehydran alert channel integration
536
+ firehydrant_ac = checkly.AlertChannel("firehydrant_ac", webhook={
537
+ "name": "firehydrant",
538
+ "method": "post",
539
+ "template": \"\"\"{
540
+ "event": "{{ALERT_TITLE}}",
541
+ "link": "{{RESULT_LINK}}",
542
+ "check_id": "{{CHECK_ID}}",
543
+ "check_type": "{{CHECK_TYPE}}",
544
+ "alert_type": "{{ALERT_TYPE}}",
545
+ "started_at": "{{STARTED_AT}}",
546
+ "check_result_id": "{{CHECK_RESULT_ID}}"
547
+ },
548
+ \"\"\",
549
+ "url": "https://app.firehydrant.io/integrations/alerting/webhooks/2/checkly",
550
+ "webhook_type": "WEBHOOK_FIREHYDRANT",
551
+ })
552
+ # Connecting the alert channel to a check
553
+ example_check = checkly.Check("example_check",
554
+ name="Example check",
555
+ alert_channel_subscriptions=[
556
+ {
557
+ "channel_id": email_ac.id,
558
+ "activated": True,
559
+ },
560
+ {
561
+ "channel_id": sms_ac.id,
562
+ "activated": True,
563
+ },
564
+ ])
565
+ ```
566
+
567
+ :param str resource_name: The name of the resource.
568
+ :param AlertChannelArgs args: The arguments to use to populate this resource's properties.
569
+ :param pulumi.ResourceOptions opts: Options for the resource.
570
+ """
571
+ ...
572
+ def __init__(__self__, resource_name: str, *args, **kwargs):
573
+ resource_args, opts = _utilities.get_resource_args_opts(AlertChannelArgs, pulumi.ResourceOptions, *args, **kwargs)
574
+ if resource_args is not None:
575
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
576
+ else:
577
+ __self__._internal_init(resource_name, *args, **kwargs)
578
+
579
+ def _internal_init(__self__,
580
+ resource_name: str,
581
+ opts: Optional[pulumi.ResourceOptions] = None,
582
+ call: Optional[pulumi.Input[Union['AlertChannelCallArgs', 'AlertChannelCallArgsDict']]] = None,
583
+ email: Optional[pulumi.Input[Union['AlertChannelEmailArgs', 'AlertChannelEmailArgsDict']]] = None,
584
+ opsgenie: Optional[pulumi.Input[Union['AlertChannelOpsgenieArgs', 'AlertChannelOpsgenieArgsDict']]] = None,
585
+ pagerduty: Optional[pulumi.Input[Union['AlertChannelPagerdutyArgs', 'AlertChannelPagerdutyArgsDict']]] = None,
586
+ send_degraded: Optional[pulumi.Input[bool]] = None,
587
+ send_failure: Optional[pulumi.Input[bool]] = None,
588
+ send_recovery: Optional[pulumi.Input[bool]] = None,
589
+ slack: Optional[pulumi.Input[Union['AlertChannelSlackArgs', 'AlertChannelSlackArgsDict']]] = None,
590
+ sms: Optional[pulumi.Input[Union['AlertChannelSmsArgs', 'AlertChannelSmsArgsDict']]] = None,
591
+ ssl_expiry: Optional[pulumi.Input[bool]] = None,
592
+ ssl_expiry_threshold: Optional[pulumi.Input[int]] = None,
593
+ webhook: Optional[pulumi.Input[Union['AlertChannelWebhookArgs', 'AlertChannelWebhookArgsDict']]] = None,
594
+ __props__=None):
595
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
596
+ if not isinstance(opts, pulumi.ResourceOptions):
597
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
598
+ if opts.id is None:
599
+ if __props__ is not None:
600
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
601
+ __props__ = AlertChannelArgs.__new__(AlertChannelArgs)
602
+
603
+ __props__.__dict__["call"] = call
604
+ __props__.__dict__["email"] = email
605
+ __props__.__dict__["opsgenie"] = opsgenie
606
+ __props__.__dict__["pagerduty"] = pagerduty
607
+ __props__.__dict__["send_degraded"] = send_degraded
608
+ __props__.__dict__["send_failure"] = send_failure
609
+ __props__.__dict__["send_recovery"] = send_recovery
610
+ __props__.__dict__["slack"] = slack
611
+ __props__.__dict__["sms"] = sms
612
+ __props__.__dict__["ssl_expiry"] = ssl_expiry
613
+ __props__.__dict__["ssl_expiry_threshold"] = ssl_expiry_threshold
614
+ __props__.__dict__["webhook"] = webhook
615
+ super(AlertChannel, __self__).__init__(
616
+ 'checkly:index/alertChannel:AlertChannel',
617
+ resource_name,
618
+ __props__,
619
+ opts)
620
+
621
+ @staticmethod
622
+ def get(resource_name: str,
623
+ id: pulumi.Input[str],
624
+ opts: Optional[pulumi.ResourceOptions] = None,
625
+ call: Optional[pulumi.Input[Union['AlertChannelCallArgs', 'AlertChannelCallArgsDict']]] = None,
626
+ email: Optional[pulumi.Input[Union['AlertChannelEmailArgs', 'AlertChannelEmailArgsDict']]] = None,
627
+ opsgenie: Optional[pulumi.Input[Union['AlertChannelOpsgenieArgs', 'AlertChannelOpsgenieArgsDict']]] = None,
628
+ pagerduty: Optional[pulumi.Input[Union['AlertChannelPagerdutyArgs', 'AlertChannelPagerdutyArgsDict']]] = None,
629
+ send_degraded: Optional[pulumi.Input[bool]] = None,
630
+ send_failure: Optional[pulumi.Input[bool]] = None,
631
+ send_recovery: Optional[pulumi.Input[bool]] = None,
632
+ slack: Optional[pulumi.Input[Union['AlertChannelSlackArgs', 'AlertChannelSlackArgsDict']]] = None,
633
+ sms: Optional[pulumi.Input[Union['AlertChannelSmsArgs', 'AlertChannelSmsArgsDict']]] = None,
634
+ ssl_expiry: Optional[pulumi.Input[bool]] = None,
635
+ ssl_expiry_threshold: Optional[pulumi.Input[int]] = None,
636
+ webhook: Optional[pulumi.Input[Union['AlertChannelWebhookArgs', 'AlertChannelWebhookArgsDict']]] = None) -> 'AlertChannel':
637
+ """
638
+ Get an existing AlertChannel resource's state with the given name, id, and optional extra
639
+ properties used to qualify the lookup.
640
+
641
+ :param str resource_name: The unique name of the resulting resource.
642
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
643
+ :param pulumi.ResourceOptions opts: Options for the resource.
644
+ :param pulumi.Input[bool] send_degraded: (Default `false`)
645
+ :param pulumi.Input[bool] send_failure: (Default `true`)
646
+ :param pulumi.Input[bool] send_recovery: (Default `true`)
647
+ :param pulumi.Input[bool] ssl_expiry: (Default `false`)
648
+ :param pulumi.Input[int] ssl_expiry_threshold: Value must be between 1 and 30 (Default `30`)
649
+ """
650
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
651
+
652
+ __props__ = _AlertChannelState.__new__(_AlertChannelState)
653
+
654
+ __props__.__dict__["call"] = call
655
+ __props__.__dict__["email"] = email
656
+ __props__.__dict__["opsgenie"] = opsgenie
657
+ __props__.__dict__["pagerduty"] = pagerduty
658
+ __props__.__dict__["send_degraded"] = send_degraded
659
+ __props__.__dict__["send_failure"] = send_failure
660
+ __props__.__dict__["send_recovery"] = send_recovery
661
+ __props__.__dict__["slack"] = slack
662
+ __props__.__dict__["sms"] = sms
663
+ __props__.__dict__["ssl_expiry"] = ssl_expiry
664
+ __props__.__dict__["ssl_expiry_threshold"] = ssl_expiry_threshold
665
+ __props__.__dict__["webhook"] = webhook
666
+ return AlertChannel(resource_name, opts=opts, __props__=__props__)
667
+
668
+ @property
669
+ @pulumi.getter
670
+ def call(self) -> pulumi.Output[Optional['outputs.AlertChannelCall']]:
671
+ return pulumi.get(self, "call")
672
+
673
+ @property
674
+ @pulumi.getter
675
+ def email(self) -> pulumi.Output[Optional['outputs.AlertChannelEmail']]:
676
+ return pulumi.get(self, "email")
677
+
678
+ @property
679
+ @pulumi.getter
680
+ def opsgenie(self) -> pulumi.Output[Optional['outputs.AlertChannelOpsgenie']]:
681
+ return pulumi.get(self, "opsgenie")
682
+
683
+ @property
684
+ @pulumi.getter
685
+ def pagerduty(self) -> pulumi.Output[Optional['outputs.AlertChannelPagerduty']]:
686
+ return pulumi.get(self, "pagerduty")
687
+
688
+ @property
689
+ @pulumi.getter(name="sendDegraded")
690
+ def send_degraded(self) -> pulumi.Output[Optional[bool]]:
691
+ """
692
+ (Default `false`)
693
+ """
694
+ return pulumi.get(self, "send_degraded")
695
+
696
+ @property
697
+ @pulumi.getter(name="sendFailure")
698
+ def send_failure(self) -> pulumi.Output[Optional[bool]]:
699
+ """
700
+ (Default `true`)
701
+ """
702
+ return pulumi.get(self, "send_failure")
703
+
704
+ @property
705
+ @pulumi.getter(name="sendRecovery")
706
+ def send_recovery(self) -> pulumi.Output[Optional[bool]]:
707
+ """
708
+ (Default `true`)
709
+ """
710
+ return pulumi.get(self, "send_recovery")
711
+
712
+ @property
713
+ @pulumi.getter
714
+ def slack(self) -> pulumi.Output[Optional['outputs.AlertChannelSlack']]:
715
+ return pulumi.get(self, "slack")
716
+
717
+ @property
718
+ @pulumi.getter
719
+ def sms(self) -> pulumi.Output[Optional['outputs.AlertChannelSms']]:
720
+ return pulumi.get(self, "sms")
721
+
722
+ @property
723
+ @pulumi.getter(name="sslExpiry")
724
+ def ssl_expiry(self) -> pulumi.Output[Optional[bool]]:
725
+ """
726
+ (Default `false`)
727
+ """
728
+ return pulumi.get(self, "ssl_expiry")
729
+
730
+ @property
731
+ @pulumi.getter(name="sslExpiryThreshold")
732
+ def ssl_expiry_threshold(self) -> pulumi.Output[Optional[int]]:
733
+ """
734
+ Value must be between 1 and 30 (Default `30`)
735
+ """
736
+ return pulumi.get(self, "ssl_expiry_threshold")
737
+
738
+ @property
739
+ @pulumi.getter
740
+ def webhook(self) -> pulumi.Output[Optional['outputs.AlertChannelWebhook']]:
741
+ return pulumi.get(self, "webhook")
742
+