@pulumiverse/grafana 0.2.1-alpha.1709570924
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/LICENSE +202 -0
- package/README.md +54 -0
- package/annotation.d.ts +151 -0
- package/annotation.js +79 -0
- package/annotation.js.map +1 -0
- package/apiKey.d.ts +77 -0
- package/apiKey.js +80 -0
- package/apiKey.js.map +1 -0
- package/cloudAccessPolicy.d.ts +156 -0
- package/cloudAccessPolicy.js +115 -0
- package/cloudAccessPolicy.js.map +1 -0
- package/cloudAccessPolicyToken.d.ts +151 -0
- package/cloudAccessPolicyToken.js +108 -0
- package/cloudAccessPolicyToken.js.map +1 -0
- package/cloudApiKey.d.ts +102 -0
- package/cloudApiKey.js +85 -0
- package/cloudApiKey.js.map +1 -0
- package/cloudPluginInstallation.d.ts +96 -0
- package/cloudPluginInstallation.js +86 -0
- package/cloudPluginInstallation.js.map +1 -0
- package/cloudStack.d.ts +291 -0
- package/cloudStack.js +142 -0
- package/cloudStack.js.map +1 -0
- package/cloudStackApiKey.d.ts +52 -0
- package/cloudStackApiKey.js +67 -0
- package/cloudStackApiKey.js.map +1 -0
- package/cloudStackServiceAccount.d.ts +97 -0
- package/cloudStackServiceAccount.js +80 -0
- package/cloudStackServiceAccount.js.map +1 -0
- package/cloudStackServiceAccountToken.d.ts +78 -0
- package/cloudStackServiceAccountToken.js +93 -0
- package/cloudStackServiceAccountToken.js.map +1 -0
- package/config/index.d.ts +1 -0
- package/config/index.js +21 -0
- package/config/index.js.map +1 -0
- package/config/vars.d.ts +89 -0
- package/config/vars.js +131 -0
- package/config/vars.js.map +1 -0
- package/contactPoint.d.ts +310 -0
- package/contactPoint.js +119 -0
- package/contactPoint.js.map +1 -0
- package/dashboard.d.ts +154 -0
- package/dashboard.js +94 -0
- package/dashboard.js.map +1 -0
- package/dashboardPermission.d.ts +131 -0
- package/dashboardPermission.js +97 -0
- package/dashboardPermission.js.map +1 -0
- package/dataSource.d.ts +294 -0
- package/dataSource.js +164 -0
- package/dataSource.js.map +1 -0
- package/dataSourcePermission.d.ts +124 -0
- package/dataSourcePermission.js +109 -0
- package/dataSourcePermission.js.map +1 -0
- package/folder.d.ts +127 -0
- package/folder.js +95 -0
- package/folder.js.map +1 -0
- package/folderPermission.d.ts +106 -0
- package/folderPermission.js +91 -0
- package/folderPermission.js.map +1 -0
- package/getCloudIps.d.ts +56 -0
- package/getCloudIps.js +41 -0
- package/getCloudIps.js.map +1 -0
- package/getCloudOrganization.d.ts +37 -0
- package/getCloudOrganization.js +21 -0
- package/getCloudOrganization.js.map +1 -0
- package/getCloudStack.d.ts +130 -0
- package/getCloudStack.js +25 -0
- package/getCloudStack.js.map +1 -0
- package/getDashboard.d.ts +134 -0
- package/getDashboard.js +81 -0
- package/getDashboard.js.map +1 -0
- package/getDashboards.d.ts +74 -0
- package/getDashboards.js +36 -0
- package/getDashboards.js.map +1 -0
- package/getDataSource.d.ts +156 -0
- package/getDataSource.js +95 -0
- package/getDataSource.js.map +1 -0
- package/getFolder.d.ts +82 -0
- package/getFolder.js +59 -0
- package/getFolder.js.map +1 -0
- package/getFolders.d.ts +61 -0
- package/getFolders.js +61 -0
- package/getFolders.js.map +1 -0
- package/getLibraryPanel.d.ts +108 -0
- package/getLibraryPanel.js +28 -0
- package/getLibraryPanel.js.map +1 -0
- package/getOnCallSlackChannel.d.ts +66 -0
- package/getOnCallSlackChannel.js +47 -0
- package/getOnCallSlackChannel.js.map +1 -0
- package/getOncallAction.d.ts +46 -0
- package/getOncallAction.js +31 -0
- package/getOncallAction.js.map +1 -0
- package/getOncallEscalationChain.d.ts +62 -0
- package/getOncallEscalationChain.js +47 -0
- package/getOncallEscalationChain.js.map +1 -0
- package/getOncallOutgoingWebhook.d.ts +62 -0
- package/getOncallOutgoingWebhook.js +47 -0
- package/getOncallOutgoingWebhook.js.map +1 -0
- package/getOncallSchedule.d.ts +68 -0
- package/getOncallSchedule.js +49 -0
- package/getOncallSchedule.js.map +1 -0
- package/getOncallTeam.d.ts +60 -0
- package/getOncallTeam.js +43 -0
- package/getOncallTeam.js.map +1 -0
- package/getOncallUser.d.ts +70 -0
- package/getOncallUser.js +47 -0
- package/getOncallUser.js.map +1 -0
- package/getOncallUserGroup.d.ts +54 -0
- package/getOncallUserGroup.js +47 -0
- package/getOncallUserGroup.js.map +1 -0
- package/getOrganization.d.ts +94 -0
- package/getOrganization.js +67 -0
- package/getOrganization.js.map +1 -0
- package/getOrganizationPreferences.d.ts +62 -0
- package/getOrganizationPreferences.js +43 -0
- package/getOrganizationPreferences.js.map +1 -0
- package/getRole.d.ts +147 -0
- package/getRole.js +95 -0
- package/getRole.js.map +1 -0
- package/getSlos.d.ts +31 -0
- package/getSlos.js +31 -0
- package/getSlos.js.map +1 -0
- package/getSyntheticMonitoringProbe.d.ts +88 -0
- package/getSyntheticMonitoringProbe.js +47 -0
- package/getSyntheticMonitoringProbe.js.map +1 -0
- package/getSyntheticMonitoringProbes.d.ts +64 -0
- package/getSyntheticMonitoringProbes.js +44 -0
- package/getSyntheticMonitoringProbes.js.map +1 -0
- package/getTeam.d.ts +83 -0
- package/getTeam.js +67 -0
- package/getTeam.js.map +1 -0
- package/getUser.d.ts +128 -0
- package/getUser.js +84 -0
- package/getUser.js.map +1 -0
- package/getUsers.d.ts +61 -0
- package/getUsers.js +61 -0
- package/getUsers.js.map +1 -0
- package/index.d.ts +228 -0
- package/index.js +353 -0
- package/index.js.map +1 -0
- package/libraryPanel.d.ts +193 -0
- package/libraryPanel.js +103 -0
- package/libraryPanel.js.map +1 -0
- package/machineLearningHoliday.d.ts +103 -0
- package/machineLearningHoliday.js +62 -0
- package/machineLearningHoliday.js.map +1 -0
- package/machineLearningJob.d.ts +201 -0
- package/machineLearningJob.js +83 -0
- package/machineLearningJob.js.map +1 -0
- package/machineLearningOutlierDetector.d.ts +159 -0
- package/machineLearningOutlierDetector.js +84 -0
- package/machineLearningOutlierDetector.js.map +1 -0
- package/messageTemplate.d.ts +86 -0
- package/messageTemplate.js +80 -0
- package/messageTemplate.js.map +1 -0
- package/muteTiming.d.ts +106 -0
- package/muteTiming.js +95 -0
- package/muteTiming.js.map +1 -0
- package/notificationPolicy.d.ts +186 -0
- package/notificationPolicy.js +141 -0
- package/notificationPolicy.js.map +1 -0
- package/oncallEscalation.d.ts +227 -0
- package/oncallEscalation.js +124 -0
- package/oncallEscalation.js.map +1 -0
- package/oncallEscalationChain.d.ts +80 -0
- package/oncallEscalationChain.js +71 -0
- package/oncallEscalationChain.js.map +1 -0
- package/oncallIntegration.d.ts +116 -0
- package/oncallIntegration.js +75 -0
- package/oncallIntegration.js.map +1 -0
- package/oncallOnCallShift.d.ts +237 -0
- package/oncallOnCallShift.js +97 -0
- package/oncallOnCallShift.js.map +1 -0
- package/oncallOutgoingWebhook.d.ts +152 -0
- package/oncallOutgoingWebhook.js +88 -0
- package/oncallOutgoingWebhook.js.map +1 -0
- package/oncallRoute.d.ts +175 -0
- package/oncallRoute.js +116 -0
- package/oncallRoute.js.map +1 -0
- package/oncallSchedule.d.ts +187 -0
- package/oncallSchedule.js +109 -0
- package/oncallSchedule.js.map +1 -0
- package/organization.d.ts +193 -0
- package/organization.js +96 -0
- package/organization.js.map +1 -0
- package/organizationPreference.d.ts +125 -0
- package/organizationPreference.js +76 -0
- package/organizationPreference.js.map +1 -0
- package/package.json +30 -0
- package/package.json.bak +29 -0
- package/package.json.dev +29 -0
- package/playlist.d.ts +72 -0
- package/playlist.js +65 -0
- package/playlist.js.map +1 -0
- package/provider.d.ts +166 -0
- package/provider.js +64 -0
- package/provider.js.map +1 -0
- package/report.d.ts +241 -0
- package/report.js +110 -0
- package/report.js.map +1 -0
- package/role.d.ts +210 -0
- package/role.js +109 -0
- package/role.js.map +1 -0
- package/roleAssignment.d.ts +131 -0
- package/roleAssignment.js +95 -0
- package/roleAssignment.js.map +1 -0
- package/ruleGroup.d.ts +203 -0
- package/ruleGroup.js +174 -0
- package/ruleGroup.js.map +1 -0
- package/scripts/install-pulumi-plugin.js +21 -0
- package/serviceAccount.d.ts +102 -0
- package/serviceAccount.js +73 -0
- package/serviceAccount.js.map +1 -0
- package/serviceAccountPermission.d.ts +110 -0
- package/serviceAccountPermission.js +95 -0
- package/serviceAccountPermission.js.map +1 -0
- package/serviceAccountToken.d.ts +72 -0
- package/serviceAccountToken.js +85 -0
- package/serviceAccountToken.js.map +1 -0
- package/slo.d.ts +131 -0
- package/slo.js +77 -0
- package/slo.js.map +1 -0
- package/syntheticMonitoringCheck.d.ts +555 -0
- package/syntheticMonitoringCheck.js +464 -0
- package/syntheticMonitoringCheck.js.map +1 -0
- package/syntheticMonitoringInstallation.d.ts +112 -0
- package/syntheticMonitoringInstallation.js +95 -0
- package/syntheticMonitoringInstallation.js.map +1 -0
- package/syntheticMonitoringProbe.d.ts +164 -0
- package/syntheticMonitoringProbe.js +108 -0
- package/syntheticMonitoringProbe.js.map +1 -0
- package/team.d.ts +165 -0
- package/team.js +89 -0
- package/team.js.map +1 -0
- package/teamExternalGroup.d.ts +84 -0
- package/teamExternalGroup.js +81 -0
- package/teamExternalGroup.js.map +1 -0
- package/types/index.d.ts +3 -0
- package/types/index.js +11 -0
- package/types/index.js.map +1 -0
- package/types/input.d.ts +1914 -0
- package/types/input.js +5 -0
- package/types/input.js.map +1 -0
- package/types/output.d.ts +2011 -0
- package/types/output.js +5 -0
- package/types/output.js.map +1 -0
- package/user.d.ts +132 -0
- package/user.js +95 -0
- package/user.js.map +1 -0
- package/utilities.d.ts +4 -0
- package/utilities.js +69 -0
- package/utilities.js.map +1 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.OncallOnCallShift = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/on_call_shifts/)
|
|
10
|
+
*
|
|
11
|
+
* ## Import
|
|
12
|
+
*
|
|
13
|
+
* ```sh
|
|
14
|
+
* $ pulumi import grafana:index/oncallOnCallShift:OncallOnCallShift on_call_shift_name {{on_call_shift_id}}
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
class OncallOnCallShift extends pulumi.CustomResource {
|
|
18
|
+
/**
|
|
19
|
+
* Get an existing OncallOnCallShift resource's state with the given name, ID, and optional extra
|
|
20
|
+
* properties used to qualify the lookup.
|
|
21
|
+
*
|
|
22
|
+
* @param name The _unique_ name of the resulting resource.
|
|
23
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
24
|
+
* @param state Any extra arguments used during the lookup.
|
|
25
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
26
|
+
*/
|
|
27
|
+
static get(name, id, state, opts) {
|
|
28
|
+
return new OncallOnCallShift(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns true if the given object is an instance of OncallOnCallShift. This is designed to work even
|
|
32
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
33
|
+
*/
|
|
34
|
+
static isInstance(obj) {
|
|
35
|
+
if (obj === undefined || obj === null) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return obj['__pulumiType'] === OncallOnCallShift.__pulumiType;
|
|
39
|
+
}
|
|
40
|
+
constructor(name, argsOrState, opts) {
|
|
41
|
+
let resourceInputs = {};
|
|
42
|
+
opts = opts || {};
|
|
43
|
+
if (opts.id) {
|
|
44
|
+
const state = argsOrState;
|
|
45
|
+
resourceInputs["byDays"] = state ? state.byDays : undefined;
|
|
46
|
+
resourceInputs["byMonthdays"] = state ? state.byMonthdays : undefined;
|
|
47
|
+
resourceInputs["byMonths"] = state ? state.byMonths : undefined;
|
|
48
|
+
resourceInputs["duration"] = state ? state.duration : undefined;
|
|
49
|
+
resourceInputs["frequency"] = state ? state.frequency : undefined;
|
|
50
|
+
resourceInputs["interval"] = state ? state.interval : undefined;
|
|
51
|
+
resourceInputs["level"] = state ? state.level : undefined;
|
|
52
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
53
|
+
resourceInputs["rollingUsers"] = state ? state.rollingUsers : undefined;
|
|
54
|
+
resourceInputs["start"] = state ? state.start : undefined;
|
|
55
|
+
resourceInputs["startRotationFromUserIndex"] = state ? state.startRotationFromUserIndex : undefined;
|
|
56
|
+
resourceInputs["teamId"] = state ? state.teamId : undefined;
|
|
57
|
+
resourceInputs["timeZone"] = state ? state.timeZone : undefined;
|
|
58
|
+
resourceInputs["type"] = state ? state.type : undefined;
|
|
59
|
+
resourceInputs["users"] = state ? state.users : undefined;
|
|
60
|
+
resourceInputs["weekStart"] = state ? state.weekStart : undefined;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const args = argsOrState;
|
|
64
|
+
if ((!args || args.duration === undefined) && !opts.urn) {
|
|
65
|
+
throw new Error("Missing required property 'duration'");
|
|
66
|
+
}
|
|
67
|
+
if ((!args || args.start === undefined) && !opts.urn) {
|
|
68
|
+
throw new Error("Missing required property 'start'");
|
|
69
|
+
}
|
|
70
|
+
if ((!args || args.type === undefined) && !opts.urn) {
|
|
71
|
+
throw new Error("Missing required property 'type'");
|
|
72
|
+
}
|
|
73
|
+
resourceInputs["byDays"] = args ? args.byDays : undefined;
|
|
74
|
+
resourceInputs["byMonthdays"] = args ? args.byMonthdays : undefined;
|
|
75
|
+
resourceInputs["byMonths"] = args ? args.byMonths : undefined;
|
|
76
|
+
resourceInputs["duration"] = args ? args.duration : undefined;
|
|
77
|
+
resourceInputs["frequency"] = args ? args.frequency : undefined;
|
|
78
|
+
resourceInputs["interval"] = args ? args.interval : undefined;
|
|
79
|
+
resourceInputs["level"] = args ? args.level : undefined;
|
|
80
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
81
|
+
resourceInputs["rollingUsers"] = args ? args.rollingUsers : undefined;
|
|
82
|
+
resourceInputs["start"] = args ? args.start : undefined;
|
|
83
|
+
resourceInputs["startRotationFromUserIndex"] = args ? args.startRotationFromUserIndex : undefined;
|
|
84
|
+
resourceInputs["teamId"] = args ? args.teamId : undefined;
|
|
85
|
+
resourceInputs["timeZone"] = args ? args.timeZone : undefined;
|
|
86
|
+
resourceInputs["type"] = args ? args.type : undefined;
|
|
87
|
+
resourceInputs["users"] = args ? args.users : undefined;
|
|
88
|
+
resourceInputs["weekStart"] = args ? args.weekStart : undefined;
|
|
89
|
+
}
|
|
90
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
91
|
+
super(OncallOnCallShift.__pulumiType, name, resourceInputs, opts);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.OncallOnCallShift = OncallOnCallShift;
|
|
95
|
+
/** @internal */
|
|
96
|
+
OncallOnCallShift.__pulumiType = 'grafana:index/oncallOnCallShift:OncallOnCallShift';
|
|
97
|
+
//# sourceMappingURL=oncallOnCallShift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oncallOnCallShift.js","sourceRoot":"","sources":["../oncallOnCallShift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
/**
|
|
3
|
+
* * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/outgoing_webhooks/)
|
|
4
|
+
*
|
|
5
|
+
* ## Example Usage
|
|
6
|
+
*
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
9
|
+
* import * as grafana from "@pulumiverse/grafana";
|
|
10
|
+
*
|
|
11
|
+
* const test_acc_outgoingWebhook = new grafana.OncallOutgoingWebhook("test-acc-outgoingWebhook", {url: "https://example.com/"}, {
|
|
12
|
+
* provider: grafana.oncall,
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* ## Import
|
|
17
|
+
*
|
|
18
|
+
* ```sh
|
|
19
|
+
* $ pulumi import grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook outgoing_webhook_name {{outgoing_webhook_id}}
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class OncallOutgoingWebhook extends pulumi.CustomResource {
|
|
23
|
+
/**
|
|
24
|
+
* Get an existing OncallOutgoingWebhook resource's state with the given name, ID, and optional extra
|
|
25
|
+
* properties used to qualify the lookup.
|
|
26
|
+
*
|
|
27
|
+
* @param name The _unique_ name of the resulting resource.
|
|
28
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
29
|
+
* @param state Any extra arguments used during the lookup.
|
|
30
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
31
|
+
*/
|
|
32
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: OncallOutgoingWebhookState, opts?: pulumi.CustomResourceOptions): OncallOutgoingWebhook;
|
|
33
|
+
/**
|
|
34
|
+
* Returns true if the given object is an instance of OncallOutgoingWebhook. This is designed to work even
|
|
35
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
36
|
+
*/
|
|
37
|
+
static isInstance(obj: any): obj is OncallOutgoingWebhook;
|
|
38
|
+
/**
|
|
39
|
+
* The auth data of the webhook. Used in Authorization header instead of user/password auth.
|
|
40
|
+
*/
|
|
41
|
+
readonly authorizationHeader: pulumi.Output<string | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* The data of the webhook.
|
|
44
|
+
*/
|
|
45
|
+
readonly data: pulumi.Output<string | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* Forwards whole payload of the alert to the webhook's url as POST data.
|
|
48
|
+
*/
|
|
49
|
+
readonly forwardWholePayload: pulumi.Output<boolean | undefined>;
|
|
50
|
+
/**
|
|
51
|
+
* The name of the outgoing webhook.
|
|
52
|
+
*/
|
|
53
|
+
readonly name: pulumi.Output<string>;
|
|
54
|
+
/**
|
|
55
|
+
* The auth data of the webhook. Used for Basic authentication
|
|
56
|
+
*/
|
|
57
|
+
readonly password: pulumi.Output<string | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* The ID of the OnCall team. To get one, create a team in Grafana, and navigate to the OnCall plugin (to sync the team with OnCall). You can then get the ID using the `grafana.getOncallTeam` datasource.
|
|
60
|
+
*/
|
|
61
|
+
readonly teamId: pulumi.Output<string | undefined>;
|
|
62
|
+
/**
|
|
63
|
+
* The webhook URL.
|
|
64
|
+
*/
|
|
65
|
+
readonly url: pulumi.Output<string>;
|
|
66
|
+
/**
|
|
67
|
+
* The auth data of the webhook. Used for Basic authentication.
|
|
68
|
+
*/
|
|
69
|
+
readonly user: pulumi.Output<string | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* Create a OncallOutgoingWebhook resource with the given unique name, arguments, and options.
|
|
72
|
+
*
|
|
73
|
+
* @param name The _unique_ name of the resource.
|
|
74
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
75
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
76
|
+
*/
|
|
77
|
+
constructor(name: string, args: OncallOutgoingWebhookArgs, opts?: pulumi.CustomResourceOptions);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Input properties used for looking up and filtering OncallOutgoingWebhook resources.
|
|
81
|
+
*/
|
|
82
|
+
export interface OncallOutgoingWebhookState {
|
|
83
|
+
/**
|
|
84
|
+
* The auth data of the webhook. Used in Authorization header instead of user/password auth.
|
|
85
|
+
*/
|
|
86
|
+
authorizationHeader?: pulumi.Input<string>;
|
|
87
|
+
/**
|
|
88
|
+
* The data of the webhook.
|
|
89
|
+
*/
|
|
90
|
+
data?: pulumi.Input<string>;
|
|
91
|
+
/**
|
|
92
|
+
* Forwards whole payload of the alert to the webhook's url as POST data.
|
|
93
|
+
*/
|
|
94
|
+
forwardWholePayload?: pulumi.Input<boolean>;
|
|
95
|
+
/**
|
|
96
|
+
* The name of the outgoing webhook.
|
|
97
|
+
*/
|
|
98
|
+
name?: pulumi.Input<string>;
|
|
99
|
+
/**
|
|
100
|
+
* The auth data of the webhook. Used for Basic authentication
|
|
101
|
+
*/
|
|
102
|
+
password?: pulumi.Input<string>;
|
|
103
|
+
/**
|
|
104
|
+
* The ID of the OnCall team. To get one, create a team in Grafana, and navigate to the OnCall plugin (to sync the team with OnCall). You can then get the ID using the `grafana.getOncallTeam` datasource.
|
|
105
|
+
*/
|
|
106
|
+
teamId?: pulumi.Input<string>;
|
|
107
|
+
/**
|
|
108
|
+
* The webhook URL.
|
|
109
|
+
*/
|
|
110
|
+
url?: pulumi.Input<string>;
|
|
111
|
+
/**
|
|
112
|
+
* The auth data of the webhook. Used for Basic authentication.
|
|
113
|
+
*/
|
|
114
|
+
user?: pulumi.Input<string>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The set of arguments for constructing a OncallOutgoingWebhook resource.
|
|
118
|
+
*/
|
|
119
|
+
export interface OncallOutgoingWebhookArgs {
|
|
120
|
+
/**
|
|
121
|
+
* The auth data of the webhook. Used in Authorization header instead of user/password auth.
|
|
122
|
+
*/
|
|
123
|
+
authorizationHeader?: pulumi.Input<string>;
|
|
124
|
+
/**
|
|
125
|
+
* The data of the webhook.
|
|
126
|
+
*/
|
|
127
|
+
data?: pulumi.Input<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Forwards whole payload of the alert to the webhook's url as POST data.
|
|
130
|
+
*/
|
|
131
|
+
forwardWholePayload?: pulumi.Input<boolean>;
|
|
132
|
+
/**
|
|
133
|
+
* The name of the outgoing webhook.
|
|
134
|
+
*/
|
|
135
|
+
name?: pulumi.Input<string>;
|
|
136
|
+
/**
|
|
137
|
+
* The auth data of the webhook. Used for Basic authentication
|
|
138
|
+
*/
|
|
139
|
+
password?: pulumi.Input<string>;
|
|
140
|
+
/**
|
|
141
|
+
* The ID of the OnCall team. To get one, create a team in Grafana, and navigate to the OnCall plugin (to sync the team with OnCall). You can then get the ID using the `grafana.getOncallTeam` datasource.
|
|
142
|
+
*/
|
|
143
|
+
teamId?: pulumi.Input<string>;
|
|
144
|
+
/**
|
|
145
|
+
* The webhook URL.
|
|
146
|
+
*/
|
|
147
|
+
url: pulumi.Input<string>;
|
|
148
|
+
/**
|
|
149
|
+
* The auth data of the webhook. Used for Basic authentication.
|
|
150
|
+
*/
|
|
151
|
+
user?: pulumi.Input<string>;
|
|
152
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.OncallOutgoingWebhook = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/outgoing_webhooks/)
|
|
10
|
+
*
|
|
11
|
+
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as grafana from "@pulumiverse/grafana";
|
|
16
|
+
*
|
|
17
|
+
* const test_acc_outgoingWebhook = new grafana.OncallOutgoingWebhook("test-acc-outgoingWebhook", {url: "https://example.com/"}, {
|
|
18
|
+
* provider: grafana.oncall,
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* ## Import
|
|
23
|
+
*
|
|
24
|
+
* ```sh
|
|
25
|
+
* $ pulumi import grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook outgoing_webhook_name {{outgoing_webhook_id}}
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
class OncallOutgoingWebhook extends pulumi.CustomResource {
|
|
29
|
+
/**
|
|
30
|
+
* Get an existing OncallOutgoingWebhook resource's state with the given name, ID, and optional extra
|
|
31
|
+
* properties used to qualify the lookup.
|
|
32
|
+
*
|
|
33
|
+
* @param name The _unique_ name of the resulting resource.
|
|
34
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
35
|
+
* @param state Any extra arguments used during the lookup.
|
|
36
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
37
|
+
*/
|
|
38
|
+
static get(name, id, state, opts) {
|
|
39
|
+
return new OncallOutgoingWebhook(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns true if the given object is an instance of OncallOutgoingWebhook. This is designed to work even
|
|
43
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
44
|
+
*/
|
|
45
|
+
static isInstance(obj) {
|
|
46
|
+
if (obj === undefined || obj === null) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return obj['__pulumiType'] === OncallOutgoingWebhook.__pulumiType;
|
|
50
|
+
}
|
|
51
|
+
constructor(name, argsOrState, opts) {
|
|
52
|
+
let resourceInputs = {};
|
|
53
|
+
opts = opts || {};
|
|
54
|
+
if (opts.id) {
|
|
55
|
+
const state = argsOrState;
|
|
56
|
+
resourceInputs["authorizationHeader"] = state ? state.authorizationHeader : undefined;
|
|
57
|
+
resourceInputs["data"] = state ? state.data : undefined;
|
|
58
|
+
resourceInputs["forwardWholePayload"] = state ? state.forwardWholePayload : undefined;
|
|
59
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
60
|
+
resourceInputs["password"] = state ? state.password : undefined;
|
|
61
|
+
resourceInputs["teamId"] = state ? state.teamId : undefined;
|
|
62
|
+
resourceInputs["url"] = state ? state.url : undefined;
|
|
63
|
+
resourceInputs["user"] = state ? state.user : undefined;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const args = argsOrState;
|
|
67
|
+
if ((!args || args.url === undefined) && !opts.urn) {
|
|
68
|
+
throw new Error("Missing required property 'url'");
|
|
69
|
+
}
|
|
70
|
+
resourceInputs["authorizationHeader"] = (args === null || args === void 0 ? void 0 : args.authorizationHeader) ? pulumi.secret(args.authorizationHeader) : undefined;
|
|
71
|
+
resourceInputs["data"] = args ? args.data : undefined;
|
|
72
|
+
resourceInputs["forwardWholePayload"] = args ? args.forwardWholePayload : undefined;
|
|
73
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
74
|
+
resourceInputs["password"] = (args === null || args === void 0 ? void 0 : args.password) ? pulumi.secret(args.password) : undefined;
|
|
75
|
+
resourceInputs["teamId"] = args ? args.teamId : undefined;
|
|
76
|
+
resourceInputs["url"] = args ? args.url : undefined;
|
|
77
|
+
resourceInputs["user"] = args ? args.user : undefined;
|
|
78
|
+
}
|
|
79
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
80
|
+
const secretOpts = { additionalSecretOutputs: ["authorizationHeader", "password"] };
|
|
81
|
+
opts = pulumi.mergeOptions(opts, secretOpts);
|
|
82
|
+
super(OncallOutgoingWebhook.__pulumiType, name, resourceInputs, opts);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.OncallOutgoingWebhook = OncallOutgoingWebhook;
|
|
86
|
+
/** @internal */
|
|
87
|
+
OncallOutgoingWebhook.__pulumiType = 'grafana:index/oncallOutgoingWebhook:OncallOutgoingWebhook';
|
|
88
|
+
//# sourceMappingURL=oncallOutgoingWebhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oncallOutgoingWebhook.js","sourceRoot":"","sources":["../oncallOutgoingWebhook.ts"],"names":[],"mappings":"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"}
|
package/oncallRoute.d.ts
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "./types/input";
|
|
3
|
+
import * as outputs from "./types/output";
|
|
4
|
+
/**
|
|
5
|
+
* * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/routes/)
|
|
6
|
+
*
|
|
7
|
+
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
+
* import * as grafana from "@pulumi/grafana";
|
|
12
|
+
* import * as grafana from "@pulumiverse/grafana";
|
|
13
|
+
*
|
|
14
|
+
* const exampleSlackChannel = grafana.getOnCallSlackChannel({
|
|
15
|
+
* name: "example_slack_channel",
|
|
16
|
+
* });
|
|
17
|
+
* const _default = new grafana.OncallEscalationChain("default", {});
|
|
18
|
+
* const exampleIntegration = new grafana.OncallIntegration("exampleIntegration", {type: "grafana"});
|
|
19
|
+
* const exampleRoute = new grafana.OncallRoute("exampleRoute", {
|
|
20
|
+
* integrationId: exampleIntegration.id,
|
|
21
|
+
* escalationChainId: _default.id,
|
|
22
|
+
* routingRegex: "us-(east|west)",
|
|
23
|
+
* position: 0,
|
|
24
|
+
* slack: {
|
|
25
|
+
* channelId: exampleSlackChannel.then(exampleSlackChannel => exampleSlackChannel.slackId),
|
|
26
|
+
* enabled: true,
|
|
27
|
+
* },
|
|
28
|
+
* telegram: {
|
|
29
|
+
* id: "ONCALLTELEGRAMID",
|
|
30
|
+
* enabled: true,
|
|
31
|
+
* },
|
|
32
|
+
* msteams: {
|
|
33
|
+
* id: "ONCALLMSTEAMSID",
|
|
34
|
+
* enabled: false,
|
|
35
|
+
* },
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ## Import
|
|
40
|
+
*
|
|
41
|
+
* ```sh
|
|
42
|
+
* $ pulumi import grafana:index/oncallRoute:OncallRoute route_name {{route_id}}
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class OncallRoute extends pulumi.CustomResource {
|
|
46
|
+
/**
|
|
47
|
+
* Get an existing OncallRoute resource's state with the given name, ID, and optional extra
|
|
48
|
+
* properties used to qualify the lookup.
|
|
49
|
+
*
|
|
50
|
+
* @param name The _unique_ name of the resulting resource.
|
|
51
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
52
|
+
* @param state Any extra arguments used during the lookup.
|
|
53
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
54
|
+
*/
|
|
55
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: OncallRouteState, opts?: pulumi.CustomResourceOptions): OncallRoute;
|
|
56
|
+
/**
|
|
57
|
+
* Returns true if the given object is an instance of OncallRoute. This is designed to work even
|
|
58
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
59
|
+
*/
|
|
60
|
+
static isInstance(obj: any): obj is OncallRoute;
|
|
61
|
+
/**
|
|
62
|
+
* The ID of the escalation chain.
|
|
63
|
+
*/
|
|
64
|
+
readonly escalationChainId: pulumi.Output<string>;
|
|
65
|
+
/**
|
|
66
|
+
* The ID of the integration.
|
|
67
|
+
*/
|
|
68
|
+
readonly integrationId: pulumi.Output<string>;
|
|
69
|
+
/**
|
|
70
|
+
* MS teams-specific settings for a route.
|
|
71
|
+
*/
|
|
72
|
+
readonly msteams: pulumi.Output<outputs.OncallRouteMsteams | undefined>;
|
|
73
|
+
/**
|
|
74
|
+
* The position of the route (starts from 0).
|
|
75
|
+
*/
|
|
76
|
+
readonly position: pulumi.Output<number>;
|
|
77
|
+
/**
|
|
78
|
+
* Python Regex query. Route is chosen for an alert if there is a match inside the alert payload.
|
|
79
|
+
*/
|
|
80
|
+
readonly routingRegex: pulumi.Output<string>;
|
|
81
|
+
/**
|
|
82
|
+
* The type of route. Can be jinja2, regex Defaults to `regex`.
|
|
83
|
+
*/
|
|
84
|
+
readonly routingType: pulumi.Output<string | undefined>;
|
|
85
|
+
/**
|
|
86
|
+
* Slack-specific settings for a route.
|
|
87
|
+
*/
|
|
88
|
+
readonly slack: pulumi.Output<outputs.OncallRouteSlack | undefined>;
|
|
89
|
+
/**
|
|
90
|
+
* Telegram-specific settings for a route.
|
|
91
|
+
*/
|
|
92
|
+
readonly telegram: pulumi.Output<outputs.OncallRouteTelegram | undefined>;
|
|
93
|
+
/**
|
|
94
|
+
* Create a OncallRoute resource with the given unique name, arguments, and options.
|
|
95
|
+
*
|
|
96
|
+
* @param name The _unique_ name of the resource.
|
|
97
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
98
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
99
|
+
*/
|
|
100
|
+
constructor(name: string, args: OncallRouteArgs, opts?: pulumi.CustomResourceOptions);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Input properties used for looking up and filtering OncallRoute resources.
|
|
104
|
+
*/
|
|
105
|
+
export interface OncallRouteState {
|
|
106
|
+
/**
|
|
107
|
+
* The ID of the escalation chain.
|
|
108
|
+
*/
|
|
109
|
+
escalationChainId?: pulumi.Input<string>;
|
|
110
|
+
/**
|
|
111
|
+
* The ID of the integration.
|
|
112
|
+
*/
|
|
113
|
+
integrationId?: pulumi.Input<string>;
|
|
114
|
+
/**
|
|
115
|
+
* MS teams-specific settings for a route.
|
|
116
|
+
*/
|
|
117
|
+
msteams?: pulumi.Input<inputs.OncallRouteMsteams>;
|
|
118
|
+
/**
|
|
119
|
+
* The position of the route (starts from 0).
|
|
120
|
+
*/
|
|
121
|
+
position?: pulumi.Input<number>;
|
|
122
|
+
/**
|
|
123
|
+
* Python Regex query. Route is chosen for an alert if there is a match inside the alert payload.
|
|
124
|
+
*/
|
|
125
|
+
routingRegex?: pulumi.Input<string>;
|
|
126
|
+
/**
|
|
127
|
+
* The type of route. Can be jinja2, regex Defaults to `regex`.
|
|
128
|
+
*/
|
|
129
|
+
routingType?: pulumi.Input<string>;
|
|
130
|
+
/**
|
|
131
|
+
* Slack-specific settings for a route.
|
|
132
|
+
*/
|
|
133
|
+
slack?: pulumi.Input<inputs.OncallRouteSlack>;
|
|
134
|
+
/**
|
|
135
|
+
* Telegram-specific settings for a route.
|
|
136
|
+
*/
|
|
137
|
+
telegram?: pulumi.Input<inputs.OncallRouteTelegram>;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The set of arguments for constructing a OncallRoute resource.
|
|
141
|
+
*/
|
|
142
|
+
export interface OncallRouteArgs {
|
|
143
|
+
/**
|
|
144
|
+
* The ID of the escalation chain.
|
|
145
|
+
*/
|
|
146
|
+
escalationChainId: pulumi.Input<string>;
|
|
147
|
+
/**
|
|
148
|
+
* The ID of the integration.
|
|
149
|
+
*/
|
|
150
|
+
integrationId: pulumi.Input<string>;
|
|
151
|
+
/**
|
|
152
|
+
* MS teams-specific settings for a route.
|
|
153
|
+
*/
|
|
154
|
+
msteams?: pulumi.Input<inputs.OncallRouteMsteams>;
|
|
155
|
+
/**
|
|
156
|
+
* The position of the route (starts from 0).
|
|
157
|
+
*/
|
|
158
|
+
position: pulumi.Input<number>;
|
|
159
|
+
/**
|
|
160
|
+
* Python Regex query. Route is chosen for an alert if there is a match inside the alert payload.
|
|
161
|
+
*/
|
|
162
|
+
routingRegex: pulumi.Input<string>;
|
|
163
|
+
/**
|
|
164
|
+
* The type of route. Can be jinja2, regex Defaults to `regex`.
|
|
165
|
+
*/
|
|
166
|
+
routingType?: pulumi.Input<string>;
|
|
167
|
+
/**
|
|
168
|
+
* Slack-specific settings for a route.
|
|
169
|
+
*/
|
|
170
|
+
slack?: pulumi.Input<inputs.OncallRouteSlack>;
|
|
171
|
+
/**
|
|
172
|
+
* Telegram-specific settings for a route.
|
|
173
|
+
*/
|
|
174
|
+
telegram?: pulumi.Input<inputs.OncallRouteTelegram>;
|
|
175
|
+
}
|
package/oncallRoute.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.OncallRoute = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* * [HTTP API](https://grafana.com/docs/oncall/latest/oncall-api-reference/routes/)
|
|
10
|
+
*
|
|
11
|
+
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as grafana from "@pulumi/grafana";
|
|
16
|
+
* import * as grafana from "@pulumiverse/grafana";
|
|
17
|
+
*
|
|
18
|
+
* const exampleSlackChannel = grafana.getOnCallSlackChannel({
|
|
19
|
+
* name: "example_slack_channel",
|
|
20
|
+
* });
|
|
21
|
+
* const _default = new grafana.OncallEscalationChain("default", {});
|
|
22
|
+
* const exampleIntegration = new grafana.OncallIntegration("exampleIntegration", {type: "grafana"});
|
|
23
|
+
* const exampleRoute = new grafana.OncallRoute("exampleRoute", {
|
|
24
|
+
* integrationId: exampleIntegration.id,
|
|
25
|
+
* escalationChainId: _default.id,
|
|
26
|
+
* routingRegex: "us-(east|west)",
|
|
27
|
+
* position: 0,
|
|
28
|
+
* slack: {
|
|
29
|
+
* channelId: exampleSlackChannel.then(exampleSlackChannel => exampleSlackChannel.slackId),
|
|
30
|
+
* enabled: true,
|
|
31
|
+
* },
|
|
32
|
+
* telegram: {
|
|
33
|
+
* id: "ONCALLTELEGRAMID",
|
|
34
|
+
* enabled: true,
|
|
35
|
+
* },
|
|
36
|
+
* msteams: {
|
|
37
|
+
* id: "ONCALLMSTEAMSID",
|
|
38
|
+
* enabled: false,
|
|
39
|
+
* },
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ## Import
|
|
44
|
+
*
|
|
45
|
+
* ```sh
|
|
46
|
+
* $ pulumi import grafana:index/oncallRoute:OncallRoute route_name {{route_id}}
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
class OncallRoute extends pulumi.CustomResource {
|
|
50
|
+
/**
|
|
51
|
+
* Get an existing OncallRoute resource's state with the given name, ID, and optional extra
|
|
52
|
+
* properties used to qualify the lookup.
|
|
53
|
+
*
|
|
54
|
+
* @param name The _unique_ name of the resulting resource.
|
|
55
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
56
|
+
* @param state Any extra arguments used during the lookup.
|
|
57
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
58
|
+
*/
|
|
59
|
+
static get(name, id, state, opts) {
|
|
60
|
+
return new OncallRoute(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns true if the given object is an instance of OncallRoute. This is designed to work even
|
|
64
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
65
|
+
*/
|
|
66
|
+
static isInstance(obj) {
|
|
67
|
+
if (obj === undefined || obj === null) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return obj['__pulumiType'] === OncallRoute.__pulumiType;
|
|
71
|
+
}
|
|
72
|
+
constructor(name, argsOrState, opts) {
|
|
73
|
+
let resourceInputs = {};
|
|
74
|
+
opts = opts || {};
|
|
75
|
+
if (opts.id) {
|
|
76
|
+
const state = argsOrState;
|
|
77
|
+
resourceInputs["escalationChainId"] = state ? state.escalationChainId : undefined;
|
|
78
|
+
resourceInputs["integrationId"] = state ? state.integrationId : undefined;
|
|
79
|
+
resourceInputs["msteams"] = state ? state.msteams : undefined;
|
|
80
|
+
resourceInputs["position"] = state ? state.position : undefined;
|
|
81
|
+
resourceInputs["routingRegex"] = state ? state.routingRegex : undefined;
|
|
82
|
+
resourceInputs["routingType"] = state ? state.routingType : undefined;
|
|
83
|
+
resourceInputs["slack"] = state ? state.slack : undefined;
|
|
84
|
+
resourceInputs["telegram"] = state ? state.telegram : undefined;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const args = argsOrState;
|
|
88
|
+
if ((!args || args.escalationChainId === undefined) && !opts.urn) {
|
|
89
|
+
throw new Error("Missing required property 'escalationChainId'");
|
|
90
|
+
}
|
|
91
|
+
if ((!args || args.integrationId === undefined) && !opts.urn) {
|
|
92
|
+
throw new Error("Missing required property 'integrationId'");
|
|
93
|
+
}
|
|
94
|
+
if ((!args || args.position === undefined) && !opts.urn) {
|
|
95
|
+
throw new Error("Missing required property 'position'");
|
|
96
|
+
}
|
|
97
|
+
if ((!args || args.routingRegex === undefined) && !opts.urn) {
|
|
98
|
+
throw new Error("Missing required property 'routingRegex'");
|
|
99
|
+
}
|
|
100
|
+
resourceInputs["escalationChainId"] = args ? args.escalationChainId : undefined;
|
|
101
|
+
resourceInputs["integrationId"] = args ? args.integrationId : undefined;
|
|
102
|
+
resourceInputs["msteams"] = args ? args.msteams : undefined;
|
|
103
|
+
resourceInputs["position"] = args ? args.position : undefined;
|
|
104
|
+
resourceInputs["routingRegex"] = args ? args.routingRegex : undefined;
|
|
105
|
+
resourceInputs["routingType"] = args ? args.routingType : undefined;
|
|
106
|
+
resourceInputs["slack"] = args ? args.slack : undefined;
|
|
107
|
+
resourceInputs["telegram"] = args ? args.telegram : undefined;
|
|
108
|
+
}
|
|
109
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
110
|
+
super(OncallRoute.__pulumiType, name, resourceInputs, opts);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.OncallRoute = OncallRoute;
|
|
114
|
+
/** @internal */
|
|
115
|
+
OncallRoute.__pulumiType = 'grafana:index/oncallRoute:OncallRoute';
|
|
116
|
+
//# sourceMappingURL=oncallRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oncallRoute.js","sourceRoot":"","sources":["../oncallRoute.ts"],"names":[],"mappings":"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"}
|