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.
- package/README.md +298 -0
- package/bin/awsCloudwatchIntegration.d.ts +179 -0
- package/bin/awsCloudwatchIntegration.js +71 -0
- package/bin/awsCloudwatchIntegration.js.map +1 -0
- package/bin/azureIntegration.d.ts +179 -0
- package/bin/azureIntegration.js +71 -0
- package/bin/azureIntegration.js.map +1 -0
- package/bin/catalogAttribute.d.ts +84 -0
- package/bin/catalogAttribute.js +58 -0
- package/bin/catalogAttribute.js.map +1 -0
- package/bin/catalogRecord.d.ts +65 -0
- package/bin/catalogRecord.js +57 -0
- package/bin/catalogRecord.js.map +1 -0
- package/bin/catalogRelation.d.ts +60 -0
- package/bin/catalogRelation.js +51 -0
- package/bin/catalogRelation.js.map +1 -0
- package/bin/config/index.d.ts +1 -0
- package/bin/config/index.js +21 -0
- package/bin/config/index.js.map +1 -0
- package/bin/config/vars.d.ts +31 -0
- package/bin/config/vars.js +49 -0
- package/bin/config/vars.js.map +1 -0
- package/bin/datadogIntegration.d.ts +191 -0
- package/bin/datadogIntegration.js +73 -0
- package/bin/datadogIntegration.js.map +1 -0
- package/bin/elasticIntegration.d.ts +179 -0
- package/bin/elasticIntegration.js +71 -0
- package/bin/elasticIntegration.js.map +1 -0
- package/bin/emailIntegration.d.ts +371 -0
- package/bin/emailIntegration.js +110 -0
- package/bin/emailIntegration.js.map +1 -0
- package/bin/getIncomingWebhook.d.ts +52 -0
- package/bin/getIncomingWebhook.js +21 -0
- package/bin/getIncomingWebhook.js.map +1 -0
- package/bin/getIpList.d.ts +24 -0
- package/bin/getIpList.js +23 -0
- package/bin/getIpList.js.map +1 -0
- package/bin/getMonitor.d.ts +69 -0
- package/bin/getMonitor.js +21 -0
- package/bin/getMonitor.js.map +1 -0
- package/bin/getOnCallCalendar.d.ts +26 -0
- package/bin/getOnCallCalendar.js +23 -0
- package/bin/getOnCallCalendar.js.map +1 -0
- package/bin/getPolicy.d.ts +28 -0
- package/bin/getPolicy.js +21 -0
- package/bin/getPolicy.js.map +1 -0
- package/bin/getSeverity.d.ts +28 -0
- package/bin/getSeverity.js +21 -0
- package/bin/getSeverity.js.map +1 -0
- package/bin/getSlackIntegration.d.ts +28 -0
- package/bin/getSlackIntegration.js +21 -0
- package/bin/getSlackIntegration.js.map +1 -0
- package/bin/googleMonitoringIntegration.d.ts +179 -0
- package/bin/googleMonitoringIntegration.js +71 -0
- package/bin/googleMonitoringIntegration.js.map +1 -0
- package/bin/grafanaIntegration.d.ts +179 -0
- package/bin/grafanaIntegration.js +71 -0
- package/bin/grafanaIntegration.js.map +1 -0
- package/bin/heartbeat.d.ts +304 -0
- package/bin/heartbeat.js +99 -0
- package/bin/heartbeat.js.map +1 -0
- package/bin/heartbeatGroup.d.ts +103 -0
- package/bin/heartbeatGroup.js +59 -0
- package/bin/heartbeatGroup.js.map +1 -0
- package/bin/incomingWebhook.d.ts +407 -0
- package/bin/incomingWebhook.js +118 -0
- package/bin/incomingWebhook.js.map +1 -0
- package/bin/index.d.ts +120 -0
- package/bin/index.js +209 -0
- package/bin/index.js.map +1 -0
- package/bin/jiraIntegration.d.ts +111 -0
- package/bin/jiraIntegration.js +59 -0
- package/bin/jiraIntegration.js.map +1 -0
- package/bin/metadata.d.ts +147 -0
- package/bin/metadata.js +72 -0
- package/bin/metadata.js.map +1 -0
- package/bin/monitor.d.ts +655 -0
- package/bin/monitor.js +142 -0
- package/bin/monitor.js.map +1 -0
- package/bin/monitorGroup.d.ts +103 -0
- package/bin/monitorGroup.js +59 -0
- package/bin/monitorGroup.js.map +1 -0
- package/bin/newRelicIntegration.d.ts +191 -0
- package/bin/newRelicIntegration.js +73 -0
- package/bin/newRelicIntegration.js.map +1 -0
- package/bin/onCallCalendar.d.ts +90 -0
- package/bin/onCallCalendar.js +57 -0
- package/bin/onCallCalendar.js.map +1 -0
- package/bin/outgoingWebhook.d.ts +137 -0
- package/bin/outgoingWebhook.js +69 -0
- package/bin/outgoingWebhook.js.map +1 -0
- package/bin/package.json +60 -0
- package/bin/pagerdutyIntegration.d.ts +84 -0
- package/bin/pagerdutyIntegration.js +61 -0
- package/bin/pagerdutyIntegration.js.map +1 -0
- package/bin/policy.d.ts +118 -0
- package/bin/policy.js +64 -0
- package/bin/policy.js.map +1 -0
- package/bin/policyGroup.d.ts +88 -0
- package/bin/policyGroup.js +57 -0
- package/bin/policyGroup.js.map +1 -0
- package/bin/prometheusIntegration.d.ts +179 -0
- package/bin/prometheusIntegration.js +71 -0
- package/bin/prometheusIntegration.js.map +1 -0
- package/bin/provider.d.ts +64 -0
- package/bin/provider.js +56 -0
- package/bin/provider.js.map +1 -0
- package/bin/severity.d.ts +135 -0
- package/bin/severity.js +63 -0
- package/bin/severity.js.map +1 -0
- package/bin/severityGroup.d.ts +88 -0
- package/bin/severityGroup.js +57 -0
- package/bin/severityGroup.js.map +1 -0
- package/bin/splunkOncallIntegration.d.ts +72 -0
- package/bin/splunkOncallIntegration.js +56 -0
- package/bin/splunkOncallIntegration.js.map +1 -0
- package/bin/statusPage.d.ts +413 -0
- package/bin/statusPage.js +121 -0
- package/bin/statusPage.js.map +1 -0
- package/bin/statusPageGroup.d.ts +88 -0
- package/bin/statusPageGroup.js +57 -0
- package/bin/statusPageGroup.js.map +1 -0
- package/bin/statusPageResource.d.ts +196 -0
- package/bin/statusPageResource.js +83 -0
- package/bin/statusPageResource.js.map +1 -0
- package/bin/statusPageSection.d.ts +78 -0
- package/bin/statusPageSection.js +56 -0
- package/bin/statusPageSection.js.map +1 -0
- package/bin/types/index.d.ts +3 -0
- package/bin/types/index.js +11 -0
- package/bin/types/index.js.map +1 -0
- package/bin/types/input.d.ts +895 -0
- package/bin/types/input.js +5 -0
- package/bin/types/input.js.map +1 -0
- package/bin/types/output.d.ts +1039 -0
- package/bin/types/output.js +5 -0
- package/bin/types/output.js.map +1 -0
- package/bin/utilities.d.ts +5 -0
- package/bin/utilities.js +141 -0
- package/bin/utilities.js.map +1 -0
- 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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"}
|