@pulumi/newrelic 5.1.0-alpha.1663281934 → 5.1.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.
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/notificationChannel.d.ts +59 -6
- package/notificationChannel.js +55 -5
- package/notificationChannel.js.map +1 -1
- package/notificationDestination.d.ts +6 -138
- package/notificationDestination.js +0 -129
- package/notificationDestination.js.map +1 -1
- package/oneDashboardJson.d.ts +96 -0
- package/oneDashboardJson.js +72 -0
- package/oneDashboardJson.js.map +1 -0
- package/package.json +2 -2
- package/package.json.dev +2 -2
- package/synthetics/alertCondition.d.ts +13 -0
- package/synthetics/alertCondition.js +13 -0
- package/synthetics/alertCondition.js.map +1 -1
- package/synthetics/brokenLinksMonitor.d.ts +11 -11
- package/synthetics/brokenLinksMonitor.js +2 -2
- package/synthetics/certCheckMonitor.d.ts +10 -10
- package/synthetics/certCheckMonitor.js +1 -1
- package/synthetics/monitor.d.ts +11 -13
- package/synthetics/monitor.js +5 -7
- package/synthetics/monitor.js.map +1 -1
- package/synthetics/scriptMonitor.d.ts +14 -18
- package/synthetics/scriptMonitor.js +11 -15
- package/synthetics/scriptMonitor.js.map +1 -1
- package/synthetics/stepMonitor.d.ts +40 -6
- package/synthetics/stepMonitor.js +34 -0
- package/synthetics/stepMonitor.js.map +1 -1
- package/types/input.d.ts +8 -6
- package/types/output.d.ts +8 -6
- package/workflow.d.ts +53 -29
- package/workflow.js +44 -20
- package/workflow.js.map +1 -1
package/workflow.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
12
12
|
*
|
|
13
13
|
* const foo = new newrelic.Workflow("foo", {
|
|
14
14
|
* accountId: 12345678,
|
|
15
|
-
*
|
|
15
|
+
* destinations: [
|
|
16
16
|
* {
|
|
17
17
|
* channelId: "20d86999-169c-461a-9c16-3cf330f4b3aa",
|
|
18
18
|
* },
|
|
@@ -21,23 +21,24 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
21
21
|
* },
|
|
22
22
|
* ],
|
|
23
23
|
* destinationsEnabled: true,
|
|
24
|
+
* enabled: true,
|
|
24
25
|
* enrichments: {
|
|
25
26
|
* nrqls: [
|
|
26
27
|
* {
|
|
27
28
|
* configurations: [{
|
|
28
|
-
* query: "SELECT * FROM Log",
|
|
29
|
+
* query: "SELECT count(*) FROM Log WHERE message like '%error%' since 10 minutes ago",
|
|
29
30
|
* }],
|
|
30
31
|
* name: "Log",
|
|
31
32
|
* },
|
|
32
33
|
* {
|
|
33
34
|
* configurations: [{
|
|
34
|
-
* query: "SELECT * FROM Metric",
|
|
35
|
+
* query: "SELECT count(*) FROM Metric WHERE metricName = 'myMetric'",
|
|
35
36
|
* }],
|
|
36
37
|
* name: "Metric",
|
|
37
38
|
* },
|
|
38
39
|
* ],
|
|
39
40
|
* },
|
|
40
|
-
* enrichmentsEnabled:
|
|
41
|
+
* enrichmentsEnabled: true,
|
|
41
42
|
* issuesFilter: {
|
|
42
43
|
* name: "filter-name",
|
|
43
44
|
* predicates: [{
|
|
@@ -51,13 +52,20 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
51
52
|
* type: "FILTER",
|
|
52
53
|
* },
|
|
53
54
|
* mutingRulesHandling: "NOTIFY_ALL_ISSUES",
|
|
54
|
-
* workflowEnabled: true,
|
|
55
55
|
* });
|
|
56
56
|
* ```
|
|
57
57
|
* ## Full Scenario Example
|
|
58
58
|
*
|
|
59
59
|
* Create a destination resource and reference that destination to the channel resource. Then create a workflow and reference the channel resource to it.
|
|
60
60
|
*
|
|
61
|
+
* ### Create a policy
|
|
62
|
+
* ```typescript
|
|
63
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
64
|
+
* import * as newrelic from "@pulumi/newrelic";
|
|
65
|
+
*
|
|
66
|
+
* const collector_policy = new newrelic.AlertPolicy("collector-policy", {});
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
61
69
|
* ### Create a destination
|
|
62
70
|
* ```typescript
|
|
63
71
|
* import * as pulumi from "@pulumi/pulumi";
|
|
@@ -71,7 +79,7 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
71
79
|
* },
|
|
72
80
|
* properties: [{
|
|
73
81
|
* key: "url",
|
|
74
|
-
* value: "https://webhook.
|
|
82
|
+
* value: "https://webhook.mywebhook.com",
|
|
75
83
|
* }],
|
|
76
84
|
* type: "WEBHOOK",
|
|
77
85
|
* });
|
|
@@ -89,7 +97,7 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
89
97
|
* product: "IINT",
|
|
90
98
|
* properties: [{
|
|
91
99
|
* key: "payload",
|
|
92
|
-
* value: "{name:
|
|
100
|
+
* value: "{name: {{ variable }} }",
|
|
93
101
|
* label: "Payload Template",
|
|
94
102
|
* }],
|
|
95
103
|
* });
|
|
@@ -107,20 +115,27 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
107
115
|
* nrqls: [{
|
|
108
116
|
* name: "Log count",
|
|
109
117
|
* configurations: [{
|
|
110
|
-
* query:
|
|
118
|
+
* query: `SELECT count(*) FROM Log WHERE message like '%error%' since 10 minutes ago`,
|
|
111
119
|
* }],
|
|
112
120
|
* }],
|
|
113
121
|
* },
|
|
114
122
|
* issuesFilter: {
|
|
115
123
|
* name: "Filter-name",
|
|
116
124
|
* type: "FILTER",
|
|
117
|
-
* predicates: [
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
125
|
+
* predicates: [
|
|
126
|
+
* {
|
|
127
|
+
* attribute: "accumulations.policyName",
|
|
128
|
+
* operator: "EXACTLY_MATCHES",
|
|
129
|
+
* values: ["my_policy"],
|
|
130
|
+
* },
|
|
131
|
+
* {
|
|
132
|
+
* attribute: "accumulations.sources",
|
|
133
|
+
* operator: "EXACTLY_MATCHES",
|
|
134
|
+
* values: ["newrelic"],
|
|
135
|
+
* },
|
|
136
|
+
* ],
|
|
122
137
|
* },
|
|
123
|
-
*
|
|
138
|
+
* destinations: [{
|
|
124
139
|
* channelId: newrelic_notification_channel["webhook-channel"].id,
|
|
125
140
|
* }],
|
|
126
141
|
* });
|
|
@@ -129,6 +144,15 @@ import { input as inputs, output as outputs } from "./types";
|
|
|
129
144
|
* ## Additional Information
|
|
130
145
|
*
|
|
131
146
|
* More details about the workflows can be found [here](https://docs.newrelic.com/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/).
|
|
147
|
+
*
|
|
148
|
+
* ## v3.3 changes
|
|
149
|
+
*
|
|
150
|
+
* In version v3.3 we renamed the following arguments:
|
|
151
|
+
*
|
|
152
|
+
* - `workflowEnabled` changed to `enabled`.
|
|
153
|
+
* - `destinationConfiguration` changed to `destination`.
|
|
154
|
+
* - `predicates` changed to `predicate`.
|
|
155
|
+
* - Enrichment's `configurations` changed to `configuration`.
|
|
132
156
|
*/
|
|
133
157
|
export declare class Workflow extends pulumi.CustomResource {
|
|
134
158
|
/**
|
|
@@ -153,11 +177,15 @@ export declare class Workflow extends pulumi.CustomResource {
|
|
|
153
177
|
/**
|
|
154
178
|
* A nested block that contains a channel id.
|
|
155
179
|
*/
|
|
156
|
-
readonly
|
|
180
|
+
readonly destinations: pulumi.Output<outputs.WorkflowDestination[]>;
|
|
157
181
|
/**
|
|
158
182
|
* Whether destinations are enabled..
|
|
159
183
|
*/
|
|
160
184
|
readonly destinationsEnabled: pulumi.Output<boolean | undefined>;
|
|
185
|
+
/**
|
|
186
|
+
* Whether workflow is enabled.
|
|
187
|
+
*/
|
|
188
|
+
readonly enabled: pulumi.Output<boolean | undefined>;
|
|
161
189
|
/**
|
|
162
190
|
* A nested block that describes a workflow's enrichments. See Nested enrichments blocks below for details.
|
|
163
191
|
*/
|
|
@@ -182,10 +210,6 @@ export declare class Workflow extends pulumi.CustomResource {
|
|
|
182
210
|
* A nrql enrichment name.
|
|
183
211
|
*/
|
|
184
212
|
readonly name: pulumi.Output<string>;
|
|
185
|
-
/**
|
|
186
|
-
* Whether workflow is enabled.
|
|
187
|
-
*/
|
|
188
|
-
readonly workflowEnabled: pulumi.Output<boolean | undefined>;
|
|
189
213
|
/**
|
|
190
214
|
* The id of the workflow.
|
|
191
215
|
*/
|
|
@@ -210,11 +234,15 @@ export interface WorkflowState {
|
|
|
210
234
|
/**
|
|
211
235
|
* A nested block that contains a channel id.
|
|
212
236
|
*/
|
|
213
|
-
|
|
237
|
+
destinations?: pulumi.Input<pulumi.Input<inputs.WorkflowDestination>[]>;
|
|
214
238
|
/**
|
|
215
239
|
* Whether destinations are enabled..
|
|
216
240
|
*/
|
|
217
241
|
destinationsEnabled?: pulumi.Input<boolean>;
|
|
242
|
+
/**
|
|
243
|
+
* Whether workflow is enabled.
|
|
244
|
+
*/
|
|
245
|
+
enabled?: pulumi.Input<boolean>;
|
|
218
246
|
/**
|
|
219
247
|
* A nested block that describes a workflow's enrichments. See Nested enrichments blocks below for details.
|
|
220
248
|
*/
|
|
@@ -239,10 +267,6 @@ export interface WorkflowState {
|
|
|
239
267
|
* A nrql enrichment name.
|
|
240
268
|
*/
|
|
241
269
|
name?: pulumi.Input<string>;
|
|
242
|
-
/**
|
|
243
|
-
* Whether workflow is enabled.
|
|
244
|
-
*/
|
|
245
|
-
workflowEnabled?: pulumi.Input<boolean>;
|
|
246
270
|
/**
|
|
247
271
|
* The id of the workflow.
|
|
248
272
|
*/
|
|
@@ -259,11 +283,15 @@ export interface WorkflowArgs {
|
|
|
259
283
|
/**
|
|
260
284
|
* A nested block that contains a channel id.
|
|
261
285
|
*/
|
|
262
|
-
|
|
286
|
+
destinations: pulumi.Input<pulumi.Input<inputs.WorkflowDestination>[]>;
|
|
263
287
|
/**
|
|
264
288
|
* Whether destinations are enabled..
|
|
265
289
|
*/
|
|
266
290
|
destinationsEnabled?: pulumi.Input<boolean>;
|
|
291
|
+
/**
|
|
292
|
+
* Whether workflow is enabled.
|
|
293
|
+
*/
|
|
294
|
+
enabled?: pulumi.Input<boolean>;
|
|
267
295
|
/**
|
|
268
296
|
* A nested block that describes a workflow's enrichments. See Nested enrichments blocks below for details.
|
|
269
297
|
*/
|
|
@@ -284,8 +312,4 @@ export interface WorkflowArgs {
|
|
|
284
312
|
* A nrql enrichment name.
|
|
285
313
|
*/
|
|
286
314
|
name?: pulumi.Input<string>;
|
|
287
|
-
/**
|
|
288
|
-
* Whether workflow is enabled.
|
|
289
|
-
*/
|
|
290
|
-
workflowEnabled?: pulumi.Input<boolean>;
|
|
291
315
|
}
|
package/workflow.js
CHANGED
|
@@ -17,7 +17,7 @@ const utilities = require("./utilities");
|
|
|
17
17
|
*
|
|
18
18
|
* const foo = new newrelic.Workflow("foo", {
|
|
19
19
|
* accountId: 12345678,
|
|
20
|
-
*
|
|
20
|
+
* destinations: [
|
|
21
21
|
* {
|
|
22
22
|
* channelId: "20d86999-169c-461a-9c16-3cf330f4b3aa",
|
|
23
23
|
* },
|
|
@@ -26,23 +26,24 @@ const utilities = require("./utilities");
|
|
|
26
26
|
* },
|
|
27
27
|
* ],
|
|
28
28
|
* destinationsEnabled: true,
|
|
29
|
+
* enabled: true,
|
|
29
30
|
* enrichments: {
|
|
30
31
|
* nrqls: [
|
|
31
32
|
* {
|
|
32
33
|
* configurations: [{
|
|
33
|
-
* query: "SELECT * FROM Log",
|
|
34
|
+
* query: "SELECT count(*) FROM Log WHERE message like '%error%' since 10 minutes ago",
|
|
34
35
|
* }],
|
|
35
36
|
* name: "Log",
|
|
36
37
|
* },
|
|
37
38
|
* {
|
|
38
39
|
* configurations: [{
|
|
39
|
-
* query: "SELECT * FROM Metric",
|
|
40
|
+
* query: "SELECT count(*) FROM Metric WHERE metricName = 'myMetric'",
|
|
40
41
|
* }],
|
|
41
42
|
* name: "Metric",
|
|
42
43
|
* },
|
|
43
44
|
* ],
|
|
44
45
|
* },
|
|
45
|
-
* enrichmentsEnabled:
|
|
46
|
+
* enrichmentsEnabled: true,
|
|
46
47
|
* issuesFilter: {
|
|
47
48
|
* name: "filter-name",
|
|
48
49
|
* predicates: [{
|
|
@@ -56,13 +57,20 @@ const utilities = require("./utilities");
|
|
|
56
57
|
* type: "FILTER",
|
|
57
58
|
* },
|
|
58
59
|
* mutingRulesHandling: "NOTIFY_ALL_ISSUES",
|
|
59
|
-
* workflowEnabled: true,
|
|
60
60
|
* });
|
|
61
61
|
* ```
|
|
62
62
|
* ## Full Scenario Example
|
|
63
63
|
*
|
|
64
64
|
* Create a destination resource and reference that destination to the channel resource. Then create a workflow and reference the channel resource to it.
|
|
65
65
|
*
|
|
66
|
+
* ### Create a policy
|
|
67
|
+
* ```typescript
|
|
68
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
69
|
+
* import * as newrelic from "@pulumi/newrelic";
|
|
70
|
+
*
|
|
71
|
+
* const collector_policy = new newrelic.AlertPolicy("collector-policy", {});
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
66
74
|
* ### Create a destination
|
|
67
75
|
* ```typescript
|
|
68
76
|
* import * as pulumi from "@pulumi/pulumi";
|
|
@@ -76,7 +84,7 @@ const utilities = require("./utilities");
|
|
|
76
84
|
* },
|
|
77
85
|
* properties: [{
|
|
78
86
|
* key: "url",
|
|
79
|
-
* value: "https://webhook.
|
|
87
|
+
* value: "https://webhook.mywebhook.com",
|
|
80
88
|
* }],
|
|
81
89
|
* type: "WEBHOOK",
|
|
82
90
|
* });
|
|
@@ -94,7 +102,7 @@ const utilities = require("./utilities");
|
|
|
94
102
|
* product: "IINT",
|
|
95
103
|
* properties: [{
|
|
96
104
|
* key: "payload",
|
|
97
|
-
* value: "{name:
|
|
105
|
+
* value: "{name: {{ variable }} }",
|
|
98
106
|
* label: "Payload Template",
|
|
99
107
|
* }],
|
|
100
108
|
* });
|
|
@@ -112,20 +120,27 @@ const utilities = require("./utilities");
|
|
|
112
120
|
* nrqls: [{
|
|
113
121
|
* name: "Log count",
|
|
114
122
|
* configurations: [{
|
|
115
|
-
* query:
|
|
123
|
+
* query: `SELECT count(*) FROM Log WHERE message like '%error%' since 10 minutes ago`,
|
|
116
124
|
* }],
|
|
117
125
|
* }],
|
|
118
126
|
* },
|
|
119
127
|
* issuesFilter: {
|
|
120
128
|
* name: "Filter-name",
|
|
121
129
|
* type: "FILTER",
|
|
122
|
-
* predicates: [
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
130
|
+
* predicates: [
|
|
131
|
+
* {
|
|
132
|
+
* attribute: "accumulations.policyName",
|
|
133
|
+
* operator: "EXACTLY_MATCHES",
|
|
134
|
+
* values: ["my_policy"],
|
|
135
|
+
* },
|
|
136
|
+
* {
|
|
137
|
+
* attribute: "accumulations.sources",
|
|
138
|
+
* operator: "EXACTLY_MATCHES",
|
|
139
|
+
* values: ["newrelic"],
|
|
140
|
+
* },
|
|
141
|
+
* ],
|
|
127
142
|
* },
|
|
128
|
-
*
|
|
143
|
+
* destinations: [{
|
|
129
144
|
* channelId: newrelic_notification_channel["webhook-channel"].id,
|
|
130
145
|
* }],
|
|
131
146
|
* });
|
|
@@ -134,6 +149,15 @@ const utilities = require("./utilities");
|
|
|
134
149
|
* ## Additional Information
|
|
135
150
|
*
|
|
136
151
|
* More details about the workflows can be found [here](https://docs.newrelic.com/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/).
|
|
152
|
+
*
|
|
153
|
+
* ## v3.3 changes
|
|
154
|
+
*
|
|
155
|
+
* In version v3.3 we renamed the following arguments:
|
|
156
|
+
*
|
|
157
|
+
* - `workflowEnabled` changed to `enabled`.
|
|
158
|
+
* - `destinationConfiguration` changed to `destination`.
|
|
159
|
+
* - `predicates` changed to `predicate`.
|
|
160
|
+
* - Enrichment's `configurations` changed to `configuration`.
|
|
137
161
|
*/
|
|
138
162
|
class Workflow extends pulumi.CustomResource {
|
|
139
163
|
constructor(name, argsOrState, opts) {
|
|
@@ -142,21 +166,21 @@ class Workflow extends pulumi.CustomResource {
|
|
|
142
166
|
if (opts.id) {
|
|
143
167
|
const state = argsOrState;
|
|
144
168
|
resourceInputs["accountId"] = state ? state.accountId : undefined;
|
|
145
|
-
resourceInputs["
|
|
169
|
+
resourceInputs["destinations"] = state ? state.destinations : undefined;
|
|
146
170
|
resourceInputs["destinationsEnabled"] = state ? state.destinationsEnabled : undefined;
|
|
171
|
+
resourceInputs["enabled"] = state ? state.enabled : undefined;
|
|
147
172
|
resourceInputs["enrichments"] = state ? state.enrichments : undefined;
|
|
148
173
|
resourceInputs["enrichmentsEnabled"] = state ? state.enrichmentsEnabled : undefined;
|
|
149
174
|
resourceInputs["issuesFilter"] = state ? state.issuesFilter : undefined;
|
|
150
175
|
resourceInputs["lastRun"] = state ? state.lastRun : undefined;
|
|
151
176
|
resourceInputs["mutingRulesHandling"] = state ? state.mutingRulesHandling : undefined;
|
|
152
177
|
resourceInputs["name"] = state ? state.name : undefined;
|
|
153
|
-
resourceInputs["workflowEnabled"] = state ? state.workflowEnabled : undefined;
|
|
154
178
|
resourceInputs["workflowId"] = state ? state.workflowId : undefined;
|
|
155
179
|
}
|
|
156
180
|
else {
|
|
157
181
|
const args = argsOrState;
|
|
158
|
-
if ((!args || args.
|
|
159
|
-
throw new Error("Missing required property '
|
|
182
|
+
if ((!args || args.destinations === undefined) && !opts.urn) {
|
|
183
|
+
throw new Error("Missing required property 'destinations'");
|
|
160
184
|
}
|
|
161
185
|
if ((!args || args.issuesFilter === undefined) && !opts.urn) {
|
|
162
186
|
throw new Error("Missing required property 'issuesFilter'");
|
|
@@ -165,14 +189,14 @@ class Workflow extends pulumi.CustomResource {
|
|
|
165
189
|
throw new Error("Missing required property 'mutingRulesHandling'");
|
|
166
190
|
}
|
|
167
191
|
resourceInputs["accountId"] = args ? args.accountId : undefined;
|
|
168
|
-
resourceInputs["
|
|
192
|
+
resourceInputs["destinations"] = args ? args.destinations : undefined;
|
|
169
193
|
resourceInputs["destinationsEnabled"] = args ? args.destinationsEnabled : undefined;
|
|
194
|
+
resourceInputs["enabled"] = args ? args.enabled : undefined;
|
|
170
195
|
resourceInputs["enrichments"] = args ? args.enrichments : undefined;
|
|
171
196
|
resourceInputs["enrichmentsEnabled"] = args ? args.enrichmentsEnabled : undefined;
|
|
172
197
|
resourceInputs["issuesFilter"] = args ? args.issuesFilter : undefined;
|
|
173
198
|
resourceInputs["mutingRulesHandling"] = args ? args.mutingRulesHandling : undefined;
|
|
174
199
|
resourceInputs["name"] = args ? args.name : undefined;
|
|
175
|
-
resourceInputs["workflowEnabled"] = args ? args.workflowEnabled : undefined;
|
|
176
200
|
resourceInputs["lastRun"] = undefined /*out*/;
|
|
177
201
|
resourceInputs["workflowId"] = undefined /*out*/;
|
|
178
202
|
}
|
package/workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../workflow.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAEzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../workflow.ts"],"names":[],"mappings":"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"}
|