pulumi-better-uptime 0.20.3

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 (141) hide show
  1. package/README.md +298 -0
  2. package/bin/awsCloudwatchIntegration.d.ts +179 -0
  3. package/bin/awsCloudwatchIntegration.js +71 -0
  4. package/bin/awsCloudwatchIntegration.js.map +1 -0
  5. package/bin/azureIntegration.d.ts +179 -0
  6. package/bin/azureIntegration.js +71 -0
  7. package/bin/azureIntegration.js.map +1 -0
  8. package/bin/catalogAttribute.d.ts +84 -0
  9. package/bin/catalogAttribute.js +58 -0
  10. package/bin/catalogAttribute.js.map +1 -0
  11. package/bin/catalogRecord.d.ts +65 -0
  12. package/bin/catalogRecord.js +57 -0
  13. package/bin/catalogRecord.js.map +1 -0
  14. package/bin/catalogRelation.d.ts +60 -0
  15. package/bin/catalogRelation.js +51 -0
  16. package/bin/catalogRelation.js.map +1 -0
  17. package/bin/config/index.d.ts +1 -0
  18. package/bin/config/index.js +21 -0
  19. package/bin/config/index.js.map +1 -0
  20. package/bin/config/vars.d.ts +31 -0
  21. package/bin/config/vars.js +49 -0
  22. package/bin/config/vars.js.map +1 -0
  23. package/bin/datadogIntegration.d.ts +191 -0
  24. package/bin/datadogIntegration.js +73 -0
  25. package/bin/datadogIntegration.js.map +1 -0
  26. package/bin/elasticIntegration.d.ts +179 -0
  27. package/bin/elasticIntegration.js +71 -0
  28. package/bin/elasticIntegration.js.map +1 -0
  29. package/bin/emailIntegration.d.ts +371 -0
  30. package/bin/emailIntegration.js +110 -0
  31. package/bin/emailIntegration.js.map +1 -0
  32. package/bin/getIncomingWebhook.d.ts +52 -0
  33. package/bin/getIncomingWebhook.js +21 -0
  34. package/bin/getIncomingWebhook.js.map +1 -0
  35. package/bin/getIpList.d.ts +24 -0
  36. package/bin/getIpList.js +23 -0
  37. package/bin/getIpList.js.map +1 -0
  38. package/bin/getMonitor.d.ts +69 -0
  39. package/bin/getMonitor.js +21 -0
  40. package/bin/getMonitor.js.map +1 -0
  41. package/bin/getOnCallCalendar.d.ts +26 -0
  42. package/bin/getOnCallCalendar.js +23 -0
  43. package/bin/getOnCallCalendar.js.map +1 -0
  44. package/bin/getPolicy.d.ts +28 -0
  45. package/bin/getPolicy.js +21 -0
  46. package/bin/getPolicy.js.map +1 -0
  47. package/bin/getSeverity.d.ts +28 -0
  48. package/bin/getSeverity.js +21 -0
  49. package/bin/getSeverity.js.map +1 -0
  50. package/bin/getSlackIntegration.d.ts +28 -0
  51. package/bin/getSlackIntegration.js +21 -0
  52. package/bin/getSlackIntegration.js.map +1 -0
  53. package/bin/googleMonitoringIntegration.d.ts +179 -0
  54. package/bin/googleMonitoringIntegration.js +71 -0
  55. package/bin/googleMonitoringIntegration.js.map +1 -0
  56. package/bin/grafanaIntegration.d.ts +179 -0
  57. package/bin/grafanaIntegration.js +71 -0
  58. package/bin/grafanaIntegration.js.map +1 -0
  59. package/bin/heartbeat.d.ts +304 -0
  60. package/bin/heartbeat.js +99 -0
  61. package/bin/heartbeat.js.map +1 -0
  62. package/bin/heartbeatGroup.d.ts +103 -0
  63. package/bin/heartbeatGroup.js +59 -0
  64. package/bin/heartbeatGroup.js.map +1 -0
  65. package/bin/incomingWebhook.d.ts +407 -0
  66. package/bin/incomingWebhook.js +118 -0
  67. package/bin/incomingWebhook.js.map +1 -0
  68. package/bin/index.d.ts +120 -0
  69. package/bin/index.js +209 -0
  70. package/bin/index.js.map +1 -0
  71. package/bin/jiraIntegration.d.ts +111 -0
  72. package/bin/jiraIntegration.js +59 -0
  73. package/bin/jiraIntegration.js.map +1 -0
  74. package/bin/metadata.d.ts +147 -0
  75. package/bin/metadata.js +72 -0
  76. package/bin/metadata.js.map +1 -0
  77. package/bin/monitor.d.ts +655 -0
  78. package/bin/monitor.js +142 -0
  79. package/bin/monitor.js.map +1 -0
  80. package/bin/monitorGroup.d.ts +103 -0
  81. package/bin/monitorGroup.js +59 -0
  82. package/bin/monitorGroup.js.map +1 -0
  83. package/bin/newRelicIntegration.d.ts +191 -0
  84. package/bin/newRelicIntegration.js +73 -0
  85. package/bin/newRelicIntegration.js.map +1 -0
  86. package/bin/onCallCalendar.d.ts +90 -0
  87. package/bin/onCallCalendar.js +57 -0
  88. package/bin/onCallCalendar.js.map +1 -0
  89. package/bin/outgoingWebhook.d.ts +137 -0
  90. package/bin/outgoingWebhook.js +69 -0
  91. package/bin/outgoingWebhook.js.map +1 -0
  92. package/bin/package.json +60 -0
  93. package/bin/pagerdutyIntegration.d.ts +84 -0
  94. package/bin/pagerdutyIntegration.js +61 -0
  95. package/bin/pagerdutyIntegration.js.map +1 -0
  96. package/bin/policy.d.ts +118 -0
  97. package/bin/policy.js +64 -0
  98. package/bin/policy.js.map +1 -0
  99. package/bin/policyGroup.d.ts +88 -0
  100. package/bin/policyGroup.js +57 -0
  101. package/bin/policyGroup.js.map +1 -0
  102. package/bin/prometheusIntegration.d.ts +179 -0
  103. package/bin/prometheusIntegration.js +71 -0
  104. package/bin/prometheusIntegration.js.map +1 -0
  105. package/bin/provider.d.ts +64 -0
  106. package/bin/provider.js +56 -0
  107. package/bin/provider.js.map +1 -0
  108. package/bin/severity.d.ts +135 -0
  109. package/bin/severity.js +63 -0
  110. package/bin/severity.js.map +1 -0
  111. package/bin/severityGroup.d.ts +88 -0
  112. package/bin/severityGroup.js +57 -0
  113. package/bin/severityGroup.js.map +1 -0
  114. package/bin/splunkOncallIntegration.d.ts +72 -0
  115. package/bin/splunkOncallIntegration.js +56 -0
  116. package/bin/splunkOncallIntegration.js.map +1 -0
  117. package/bin/statusPage.d.ts +413 -0
  118. package/bin/statusPage.js +121 -0
  119. package/bin/statusPage.js.map +1 -0
  120. package/bin/statusPageGroup.d.ts +88 -0
  121. package/bin/statusPageGroup.js +57 -0
  122. package/bin/statusPageGroup.js.map +1 -0
  123. package/bin/statusPageResource.d.ts +196 -0
  124. package/bin/statusPageResource.js +83 -0
  125. package/bin/statusPageResource.js.map +1 -0
  126. package/bin/statusPageSection.d.ts +78 -0
  127. package/bin/statusPageSection.js +56 -0
  128. package/bin/statusPageSection.js.map +1 -0
  129. package/bin/types/index.d.ts +3 -0
  130. package/bin/types/index.js +11 -0
  131. package/bin/types/index.js.map +1 -0
  132. package/bin/types/input.d.ts +895 -0
  133. package/bin/types/input.js +5 -0
  134. package/bin/types/input.js.map +1 -0
  135. package/bin/types/output.d.ts +1039 -0
  136. package/bin/types/output.js +5 -0
  137. package/bin/types/output.js.map +1 -0
  138. package/bin/utilities.d.ts +5 -0
  139. package/bin/utilities.js +141 -0
  140. package/bin/utilities.js.map +1 -0
  141. package/package.json +60 -0
package/README.md ADDED
@@ -0,0 +1,298 @@
1
+ # Pulumi Better Uptime Provider
2
+
3
+ A Pulumi provider for managing Better Uptime monitoring, alerting, and incident management resources, dynamically bridged from the [Terraform Better Uptime Provider](https://github.com/betterstackhq/terraform-provider-better-uptime).
4
+
5
+ ## Introduction
6
+
7
+ This package provides a Pulumi provider that enables you to manage your Better Uptime monitoring infrastructure using TypeScript, JavaScript, Python, Go, or C#. The provider is automatically generated from the Terraform Better Uptime provider, giving you access to all its functionality within the Pulumi ecosystem.
8
+
9
+ ### Features
10
+
11
+ - **Uptime Monitoring**: Create and manage website, API, and service monitors with detailed configurations
12
+ - **Incident Management**: Set up policies, severity levels, and on-call calendars for efficient incident response
13
+ - **Heartbeat Monitoring**: Monitor cron jobs, scheduled tasks, and background processes
14
+ - **Integrations**: Connect with popular tools like Slack, PagerDuty, Jira, Datadog, and more
15
+ - **Status Pages**: Create and manage public status pages for your services
16
+ - **Alert Routing**: Configure intelligent alert routing with escalation policies
17
+ - **TypeScript Support**: Full type safety with comprehensive TypeScript definitions
18
+
19
+ ## Installation
20
+
21
+ ### npm
22
+
23
+ ```bash
24
+ npm install pulumi-better-uptime
25
+ ```
26
+
27
+ ### yarn
28
+
29
+ ```bash
30
+ yarn add pulumi-better-uptime
31
+ ```
32
+
33
+ ### pnpm
34
+
35
+ ```bash
36
+ pnpm add pulumi-better-uptime
37
+ ```
38
+
39
+ ## Configuration
40
+
41
+ Before using the Better Uptime provider, you need to configure your API token. You can obtain an API token from your [Better Uptime dashboard](https://betteruptime.com/users/tokens).
42
+
43
+ ### Environment Variables
44
+
45
+ ```bash
46
+ export BETTER_UPTIME_API_TOKEN="your-api-token-here"
47
+ ```
48
+
49
+ ### Pulumi Configuration
50
+
51
+ ```bash
52
+ pulumi config set betteruptime:apiToken "your-api-token-here" --secret
53
+ ```
54
+
55
+ ## Usage
56
+
57
+ ### Basic Monitor Setup
58
+
59
+ ```typescript
60
+ import * as betteruptime from 'pulumi-better-uptime'
61
+
62
+ // Create a basic HTTP monitor
63
+ const websiteMonitor = new betteruptime.Monitor('website-monitor', {
64
+ url: 'https://example.com',
65
+ monitorType: 'status',
66
+ checkFrequency: 60, // Check every minute
67
+ requestTimeoutSeconds: 30,
68
+ confirmationPeriod: 0,
69
+ httpRequestHeaders: [
70
+ {
71
+ name: 'User-Agent',
72
+ value: 'BetterUptime-Monitor',
73
+ },
74
+ ],
75
+ })
76
+
77
+ // Create a monitor group for organization
78
+ const productionGroup = new betteruptime.MonitorGroup('production-monitors', {
79
+ name: 'Production Services',
80
+ sortIndex: 1,
81
+ })
82
+ ```
83
+
84
+ ### Heartbeat Monitoring
85
+
86
+ ```typescript
87
+ import * as betteruptime from 'pulumi-better-uptime'
88
+
89
+ // Create a heartbeat for cron job monitoring
90
+ const backupHeartbeat = new betteruptime.Heartbeat('backup-job', {
91
+ name: 'Daily Backup Job',
92
+ period: 86400, // 24 hours in seconds
93
+ grace: 3600, // 1 hour grace period
94
+ emailReports: 'never',
95
+ })
96
+
97
+ // Create heartbeat group
98
+ const heartbeatGroup = new betteruptime.HeartbeatGroup('critical-jobs', {
99
+ name: 'Critical Background Jobs',
100
+ sortIndex: 1,
101
+ })
102
+ ```
103
+
104
+ ### Integration Setup
105
+
106
+ ```typescript
107
+ import * as betteruptime from 'pulumi-better-uptime'
108
+
109
+ // Slack integration for notifications
110
+ const slackIntegration = new betteruptime.EmailIntegration('slack-alerts', {
111
+ name: 'Slack Notifications',
112
+ email: 'alerts@yourcompany.slack.com',
113
+ policyId: policy.id,
114
+ })
115
+
116
+ // PagerDuty integration for escalation
117
+ const pagerdutyIntegration = new betteruptime.PagerdutyIntegration('pagerduty-escalation', {
118
+ name: 'PagerDuty Escalation',
119
+ integrationKey: 'your-pagerduty-integration-key',
120
+ policyId: policy.id,
121
+ })
122
+ ```
123
+
124
+ ### Incident Management
125
+
126
+ ```typescript
127
+ import * as betteruptime from 'pulumi-better-uptime'
128
+
129
+ // Create severity levels
130
+ const criticalSeverity = new betteruptime.Severity('critical', {
131
+ name: 'Critical',
132
+ emailNotifications: true,
133
+ smsNotifications: true,
134
+ pushNotifications: true,
135
+ webhookNotifications: true,
136
+ })
137
+
138
+ // Create escalation policy
139
+ const policy = new betteruptime.Policy('primary-policy', {
140
+ name: 'Primary Escalation Policy',
141
+ teamWait: 300, // 5 minutes
142
+ repeatCount: 2,
143
+ incidentTemplate: 'We are investigating an issue with {{monitor_name}}.',
144
+ })
145
+
146
+ // Create on-call calendar
147
+ const onCallCalendar = new betteruptime.OnCallCalendar('dev-oncall', {
148
+ name: 'Development Team On-Call',
149
+ timeZone: 'UTC',
150
+ })
151
+ ```
152
+
153
+ ### Status Page Management
154
+
155
+ ```typescript
156
+ import * as betteruptime from 'pulumi-better-uptime'
157
+
158
+ // Create a status page
159
+ const statusPage = new betteruptime.StatusPage('company-status', {
160
+ companyName: 'Your Company',
161
+ companyUrl: 'https://yourcompany.com',
162
+ contactUrl: 'https://yourcompany.com/contact',
163
+ subdomain: 'status',
164
+ timezone: 'America/New_York',
165
+ theme: 'default',
166
+ })
167
+
168
+ // Add sections to status page
169
+ const statusSection = new betteruptime.StatusPageSection('api-section', {
170
+ statusPageId: statusPage.id,
171
+ name: 'API Services',
172
+ position: 1,
173
+ })
174
+
175
+ // Add resources to status page
176
+ const statusResource = new betteruptime.StatusPageResource('api-resource', {
177
+ statusPageId: statusPage.id,
178
+ statusPageSectionId: statusSection.id,
179
+ monitorId: websiteMonitor.id,
180
+ name: 'Main API',
181
+ position: 1,
182
+ })
183
+ ```
184
+
185
+ ## Resources
186
+
187
+ ### Core Monitoring
188
+
189
+ - **Monitor**: Website, API, and service monitoring with various check types
190
+ - **MonitorGroup**: Organize monitors into logical groups
191
+ - **Heartbeat**: Monitor cron jobs and scheduled tasks
192
+ - **HeartbeatGroup**: Organize heartbeats into logical groups
193
+
194
+ ### Incident Management
195
+
196
+ - **Policy**: Define escalation policies for incident response
197
+ - **PolicyGroup**: Organize policies into groups
198
+ - **Severity**: Configure incident severity levels
199
+ - **SeverityGroup**: Group severity levels
200
+ - **OnCallCalendar**: Manage on-call schedules
201
+
202
+ ### Integrations
203
+
204
+ - **EmailIntegration**: Email notifications
205
+ - **AwsCloudwatchIntegration**: AWS CloudWatch integration
206
+ - **AzureIntegration**: Microsoft Azure integration
207
+ - **DatadogIntegration**: Datadog integration
208
+ - **ElasticIntegration**: Elasticsearch integration
209
+ - **GoogleMonitoringIntegration**: Google Cloud Monitoring
210
+ - **GrafanaIntegration**: Grafana integration
211
+ - **JiraIntegration**: Jira issue tracking
212
+ - **NewRelicIntegration**: New Relic integration
213
+ - **PagerdutyIntegration**: PagerDuty escalation
214
+ - **PrometheusIntegration**: Prometheus monitoring
215
+ - **SplunkOncallIntegration**: Splunk On-Call integration
216
+
217
+ ### Status Pages
218
+
219
+ - **StatusPage**: Public status pages for service status communication
220
+ - **StatusPageGroup**: Group status pages
221
+ - **StatusPageSection**: Sections within status pages
222
+ - **StatusPageResource**: Individual resources displayed on status pages
223
+
224
+ ### Webhooks & Automation
225
+
226
+ - **IncomingWebhook**: Handle incoming webhooks
227
+ - **OutgoingWebhook**: Send notifications via webhooks
228
+
229
+ ### Service Catalog
230
+
231
+ - **CatalogAttribute**: Service catalog attributes
232
+ - **CatalogRecord**: Service catalog records
233
+ - **CatalogRelation**: Service catalog relationships
234
+ - **Metadata**: Additional metadata for resources
235
+
236
+ ## API Reference
237
+
238
+ For detailed API documentation, type definitions, and examples, please refer to the [API Reference documentation](https://www.pulumi.com/registry/packages/better-uptime/api-docs/).
239
+
240
+ ## Authentication Setup
241
+
242
+ ### Obtaining an API Token
243
+
244
+ 1. Log in to your [Better Uptime account](https://betteruptime.com)
245
+ 2. Navigate to **Account Settings** → **API tokens**
246
+ 3. Click **Create API token**
247
+ 4. Provide a name for your token and select appropriate permissions
248
+ 5. Copy the generated token (it will only be shown once)
249
+
250
+ ### Configuring the Provider
251
+
252
+ Set your API token using one of these methods:
253
+
254
+ #### Environment Variable (Recommended)
255
+ ```bash
256
+ export BETTER_UPTIME_API_TOKEN="bt-abcd1234efgh5678ijkl9012mnop3456"
257
+ ```
258
+
259
+ #### Pulumi Configuration
260
+ ```bash
261
+ pulumi config set betteruptime:apiToken "bt-abcd1234efgh5678ijkl9012mnop3456" --secret
262
+ ```
263
+
264
+ #### Provider Configuration in Code
265
+ ```typescript
266
+ import * as betteruptime from 'pulumi-better-uptime'
267
+
268
+ const provider = new betteruptime.Provider('better-uptime', {
269
+ apiToken: 'bt-abcd1234efgh5678ijkl9012mnop3456',
270
+ })
271
+
272
+ // Use the provider with resources
273
+ const monitor = new betteruptime.Monitor('my-monitor', {
274
+ // ... configuration
275
+ }, { provider })
276
+ ```
277
+
278
+ ## Examples
279
+
280
+ You can find more examples in common use cases:
281
+
282
+ - **Basic Monitoring Setup**: HTTP/HTTPS website monitoring with email alerts
283
+ - **Comprehensive Incident Management**: Multi-level escalation with integrations
284
+ - **Heartbeat Monitoring**: Cron job and background service monitoring
285
+ - **Status Page Creation**: Public status pages with multiple service sections
286
+ - **Advanced Integrations**: PagerDuty, Slack, and other third-party integrations
287
+
288
+ ## Support
289
+
290
+ This provider is a derived work of the [Terraform Provider](https://github.com/betterstackhq/terraform-provider-better-uptime) distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/).
291
+
292
+ If you encounter a bug or missing feature, please consult the source [`terraform-provider-better-uptime` repo](https://github.com/betterstackhq/terraform-provider-better-uptime/issues).
293
+
294
+ For Pulumi-specific issues, please open an issue in the [pulumi-any-terraform repository](https://github.com/hckhanh/pulumi-any-terraform).
295
+
296
+ ## License
297
+
298
+ This package is distributed under the MIT License. The underlying Terraform provider is distributed under MPL 2.0.
@@ -0,0 +1,179 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export declare class AwsCloudwatchIntegration extends pulumi.CustomResource {
3
+ /**
4
+ * Get an existing AwsCloudwatchIntegration resource's state with the given name, ID, and optional extra
5
+ * properties used to qualify the lookup.
6
+ *
7
+ * @param name The _unique_ name of the resulting resource.
8
+ * @param id The _unique_ provider ID of the resource to lookup.
9
+ * @param state Any extra arguments used during the lookup.
10
+ * @param opts Optional settings to control the behavior of the CustomResource.
11
+ */
12
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AwsCloudwatchIntegrationState, opts?: pulumi.CustomResourceOptions): AwsCloudwatchIntegration;
13
+ /**
14
+ * Returns true if the given object is an instance of AwsCloudwatchIntegration. This is designed to work even
15
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
16
+ */
17
+ static isInstance(obj: any): obj is AwsCloudwatchIntegration;
18
+ /**
19
+ * Whether to call when a new incident is created.
20
+ */
21
+ readonly call: pulumi.Output<boolean>;
22
+ /**
23
+ * Whether to send a critical push notification that ignores the mute switch and Do not Disturb mode when a new incident is
24
+ * created.
25
+ */
26
+ readonly criticalAlert: pulumi.Output<boolean>;
27
+ /**
28
+ * Whether to send an email when a new incident is created.
29
+ */
30
+ readonly email: pulumi.Output<boolean>;
31
+ /**
32
+ * The name of the AWS CloudWatch Integration.
33
+ */
34
+ readonly name: pulumi.Output<string>;
35
+ /**
36
+ * Is the AWS CloudWatch integration paused.
37
+ */
38
+ readonly paused: pulumi.Output<boolean>;
39
+ /**
40
+ * ID of the escalation policy associated with the AWS CloudWatch integration.
41
+ */
42
+ readonly policyId: pulumi.Output<number>;
43
+ /**
44
+ * Whether to send a push notification when a new incident is created.
45
+ */
46
+ readonly push: pulumi.Output<boolean>;
47
+ /**
48
+ * How long the alert must be up to automatically mark an incident as resolved. In seconds.
49
+ */
50
+ readonly recoveryPeriod: pulumi.Output<number>;
51
+ /**
52
+ * Whether to send an SMS when a new incident is created.
53
+ */
54
+ readonly sms: pulumi.Output<boolean>;
55
+ /**
56
+ * Used to specify the team the resource should be created in when using global tokens.
57
+ */
58
+ readonly teamName: pulumi.Output<string | undefined>;
59
+ /**
60
+ * How long we wait before escalating the incident alert to the team. In seconds.
61
+ */
62
+ readonly teamWait: pulumi.Output<number>;
63
+ /**
64
+ * The webhook URL for the AWS CloudWatch integration.
65
+ */
66
+ readonly webhookUrl: pulumi.Output<string>;
67
+ /**
68
+ * Create a AwsCloudwatchIntegration resource with the given unique name, arguments, and options.
69
+ *
70
+ * @param name The _unique_ name of the resource.
71
+ * @param args The arguments to use to populate this resource's properties.
72
+ * @param opts A bag of options that control this resource's behavior.
73
+ */
74
+ constructor(name: string, args?: AwsCloudwatchIntegrationArgs, opts?: pulumi.CustomResourceOptions);
75
+ }
76
+ /**
77
+ * Input properties used for looking up and filtering AwsCloudwatchIntegration resources.
78
+ */
79
+ export interface AwsCloudwatchIntegrationState {
80
+ /**
81
+ * Whether to call when a new incident is created.
82
+ */
83
+ call?: pulumi.Input<boolean>;
84
+ /**
85
+ * Whether to send a critical push notification that ignores the mute switch and Do not Disturb mode when a new incident is
86
+ * created.
87
+ */
88
+ criticalAlert?: pulumi.Input<boolean>;
89
+ /**
90
+ * Whether to send an email when a new incident is created.
91
+ */
92
+ email?: pulumi.Input<boolean>;
93
+ /**
94
+ * The name of the AWS CloudWatch Integration.
95
+ */
96
+ name?: pulumi.Input<string>;
97
+ /**
98
+ * Is the AWS CloudWatch integration paused.
99
+ */
100
+ paused?: pulumi.Input<boolean>;
101
+ /**
102
+ * ID of the escalation policy associated with the AWS CloudWatch integration.
103
+ */
104
+ policyId?: pulumi.Input<number>;
105
+ /**
106
+ * Whether to send a push notification when a new incident is created.
107
+ */
108
+ push?: pulumi.Input<boolean>;
109
+ /**
110
+ * How long the alert must be up to automatically mark an incident as resolved. In seconds.
111
+ */
112
+ recoveryPeriod?: pulumi.Input<number>;
113
+ /**
114
+ * Whether to send an SMS when a new incident is created.
115
+ */
116
+ sms?: pulumi.Input<boolean>;
117
+ /**
118
+ * Used to specify the team the resource should be created in when using global tokens.
119
+ */
120
+ teamName?: pulumi.Input<string>;
121
+ /**
122
+ * How long we wait before escalating the incident alert to the team. In seconds.
123
+ */
124
+ teamWait?: pulumi.Input<number>;
125
+ /**
126
+ * The webhook URL for the AWS CloudWatch integration.
127
+ */
128
+ webhookUrl?: pulumi.Input<string>;
129
+ }
130
+ /**
131
+ * The set of arguments for constructing a AwsCloudwatchIntegration resource.
132
+ */
133
+ export interface AwsCloudwatchIntegrationArgs {
134
+ /**
135
+ * Whether to call when a new incident is created.
136
+ */
137
+ call?: pulumi.Input<boolean>;
138
+ /**
139
+ * Whether to send a critical push notification that ignores the mute switch and Do not Disturb mode when a new incident is
140
+ * created.
141
+ */
142
+ criticalAlert?: pulumi.Input<boolean>;
143
+ /**
144
+ * Whether to send an email when a new incident is created.
145
+ */
146
+ email?: pulumi.Input<boolean>;
147
+ /**
148
+ * The name of the AWS CloudWatch Integration.
149
+ */
150
+ name?: pulumi.Input<string>;
151
+ /**
152
+ * Is the AWS CloudWatch integration paused.
153
+ */
154
+ paused?: pulumi.Input<boolean>;
155
+ /**
156
+ * ID of the escalation policy associated with the AWS CloudWatch integration.
157
+ */
158
+ policyId?: pulumi.Input<number>;
159
+ /**
160
+ * Whether to send a push notification when a new incident is created.
161
+ */
162
+ push?: pulumi.Input<boolean>;
163
+ /**
164
+ * How long the alert must be up to automatically mark an incident as resolved. In seconds.
165
+ */
166
+ recoveryPeriod?: pulumi.Input<number>;
167
+ /**
168
+ * Whether to send an SMS when a new incident is created.
169
+ */
170
+ sms?: pulumi.Input<boolean>;
171
+ /**
172
+ * Used to specify the team the resource should be created in when using global tokens.
173
+ */
174
+ teamName?: pulumi.Input<string>;
175
+ /**
176
+ * How long we wait before escalating the incident alert to the team. In seconds.
177
+ */
178
+ teamWait?: pulumi.Input<number>;
179
+ }
@@ -0,0 +1,71 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AwsCloudwatchIntegration = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class AwsCloudwatchIntegration extends pulumi.CustomResource {
9
+ /**
10
+ * Get an existing AwsCloudwatchIntegration resource's state with the given name, ID, and optional extra
11
+ * properties used to qualify the lookup.
12
+ *
13
+ * @param name The _unique_ name of the resulting resource.
14
+ * @param id The _unique_ provider ID of the resource to lookup.
15
+ * @param state Any extra arguments used during the lookup.
16
+ * @param opts Optional settings to control the behavior of the CustomResource.
17
+ */
18
+ static get(name, id, state, opts) {
19
+ return new AwsCloudwatchIntegration(name, state, Object.assign(Object.assign({}, opts), { id: id }));
20
+ }
21
+ /**
22
+ * Returns true if the given object is an instance of AwsCloudwatchIntegration. This is designed to work even
23
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
24
+ */
25
+ static isInstance(obj) {
26
+ if (obj === undefined || obj === null) {
27
+ return false;
28
+ }
29
+ return obj['__pulumiType'] === AwsCloudwatchIntegration.__pulumiType;
30
+ }
31
+ constructor(name, argsOrState, opts) {
32
+ let resourceInputs = {};
33
+ opts = opts || {};
34
+ if (opts.id) {
35
+ const state = argsOrState;
36
+ resourceInputs["call"] = state ? state.call : undefined;
37
+ resourceInputs["criticalAlert"] = state ? state.criticalAlert : undefined;
38
+ resourceInputs["email"] = state ? state.email : undefined;
39
+ resourceInputs["name"] = state ? state.name : undefined;
40
+ resourceInputs["paused"] = state ? state.paused : undefined;
41
+ resourceInputs["policyId"] = state ? state.policyId : undefined;
42
+ resourceInputs["push"] = state ? state.push : undefined;
43
+ resourceInputs["recoveryPeriod"] = state ? state.recoveryPeriod : undefined;
44
+ resourceInputs["sms"] = state ? state.sms : undefined;
45
+ resourceInputs["teamName"] = state ? state.teamName : undefined;
46
+ resourceInputs["teamWait"] = state ? state.teamWait : undefined;
47
+ resourceInputs["webhookUrl"] = state ? state.webhookUrl : undefined;
48
+ }
49
+ else {
50
+ const args = argsOrState;
51
+ resourceInputs["call"] = args ? args.call : undefined;
52
+ resourceInputs["criticalAlert"] = args ? args.criticalAlert : undefined;
53
+ resourceInputs["email"] = args ? args.email : undefined;
54
+ resourceInputs["name"] = args ? args.name : undefined;
55
+ resourceInputs["paused"] = args ? args.paused : undefined;
56
+ resourceInputs["policyId"] = args ? args.policyId : undefined;
57
+ resourceInputs["push"] = args ? args.push : undefined;
58
+ resourceInputs["recoveryPeriod"] = args ? args.recoveryPeriod : undefined;
59
+ resourceInputs["sms"] = args ? args.sms : undefined;
60
+ resourceInputs["teamName"] = args ? args.teamName : undefined;
61
+ resourceInputs["teamWait"] = args ? args.teamWait : undefined;
62
+ resourceInputs["webhookUrl"] = undefined /*out*/;
63
+ }
64
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
65
+ super(AwsCloudwatchIntegration.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage());
66
+ }
67
+ }
68
+ exports.AwsCloudwatchIntegration = AwsCloudwatchIntegration;
69
+ /** @internal */
70
+ AwsCloudwatchIntegration.__pulumiType = 'better-uptime:index/awsCloudwatchIntegration:AwsCloudwatchIntegration';
71
+ //# sourceMappingURL=awsCloudwatchIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awsCloudwatchIntegration.js","sourceRoot":"","sources":["../awsCloudwatchIntegration.ts"],"names":[],"mappings":"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"}