@incident-io/pulumi 0.1.0-alpha.1
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 +7 -0
- package/README.md +69 -0
- package/alertAttribute.d.ts +230 -0
- package/alertAttribute.d.ts.map +1 -0
- package/alertAttribute.js +219 -0
- package/alertAttribute.js.map +1 -0
- package/alertRoute.d.ts +511 -0
- package/alertRoute.d.ts.map +1 -0
- package/alertRoute.js +432 -0
- package/alertRoute.js.map +1 -0
- package/alertSource.d.ts +347 -0
- package/alertSource.d.ts.map +1 -0
- package/alertSource.js +241 -0
- package/alertSource.js.map +1 -0
- package/alertSourceAttribute.d.ts +180 -0
- package/alertSourceAttribute.d.ts.map +1 -0
- package/alertSourceAttribute.js +107 -0
- package/alertSourceAttribute.js.map +1 -0
- package/alertSourceAttributeBeta.d.ts +188 -0
- package/alertSourceAttributeBeta.d.ts.map +1 -0
- package/alertSourceAttributeBeta.js +115 -0
- package/alertSourceAttributeBeta.js.map +1 -0
- package/alertSourceBeta.d.ts +244 -0
- package/alertSourceBeta.d.ts.map +1 -0
- package/alertSourceBeta.js +138 -0
- package/alertSourceBeta.js.map +1 -0
- package/apiKey.d.ts +276 -0
- package/apiKey.d.ts.map +1 -0
- package/apiKey.js +211 -0
- package/apiKey.js.map +1 -0
- package/catalogEntries.d.ts +241 -0
- package/catalogEntries.d.ts.map +1 -0
- package/catalogEntries.js +242 -0
- package/catalogEntries.js.map +1 -0
- package/catalogEntry.d.ts +183 -0
- package/catalogEntry.d.ts.map +1 -0
- package/catalogEntry.js +159 -0
- package/catalogEntry.js.map +1 -0
- package/catalogType.d.ts +169 -0
- package/catalogType.d.ts.map +1 -0
- package/catalogType.js +132 -0
- package/catalogType.js.map +1 -0
- package/catalogTypeAttribute.d.ts +190 -0
- package/catalogTypeAttribute.d.ts.map +1 -0
- package/catalogTypeAttribute.js +153 -0
- package/catalogTypeAttribute.js.map +1 -0
- package/config/index.d.ts +2 -0
- package/config/index.d.ts.map +1 -0
- package/config/index.js +21 -0
- package/config/index.js.map +1 -0
- package/config/vars.d.ts +13 -0
- package/config/vars.d.ts.map +1 -0
- package/config/vars.js +49 -0
- package/config/vars.js.map +1 -0
- package/customField.d.ts +260 -0
- package/customField.d.ts.map +1 -0
- package/customField.js +226 -0
- package/customField.js.map +1 -0
- package/customFieldOption.d.ts +107 -0
- package/customFieldOption.d.ts.map +1 -0
- package/customFieldOption.js +116 -0
- package/customFieldOption.js.map +1 -0
- package/escalationPath.d.ts +257 -0
- package/escalationPath.d.ts.map +1 -0
- package/escalationPath.js +228 -0
- package/escalationPath.js.map +1 -0
- package/escalationPathBeta.d.ts +134 -0
- package/escalationPathBeta.d.ts.map +1 -0
- package/escalationPathBeta.js +105 -0
- package/escalationPathBeta.js.map +1 -0
- package/getAlertAttribute.d.ts +81 -0
- package/getAlertAttribute.d.ts.map +1 -0
- package/getAlertAttribute.js +75 -0
- package/getAlertAttribute.js.map +1 -0
- package/getAlertSource.d.ts +169 -0
- package/getAlertSource.d.ts.map +1 -0
- package/getAlertSource.js +103 -0
- package/getAlertSource.js.map +1 -0
- package/getAlertSourceAttribute.d.ts +131 -0
- package/getAlertSourceAttribute.d.ts.map +1 -0
- package/getAlertSourceAttribute.js +85 -0
- package/getAlertSourceAttribute.js.map +1 -0
- package/getAlertSourceAttributeBeta.d.ts +131 -0
- package/getAlertSourceAttributeBeta.d.ts.map +1 -0
- package/getAlertSourceAttributeBeta.js +85 -0
- package/getAlertSourceAttributeBeta.js.map +1 -0
- package/getApiKey.d.ts +167 -0
- package/getApiKey.d.ts.map +1 -0
- package/getApiKey.js +145 -0
- package/getApiKey.js.map +1 -0
- package/getCatalogEntry.d.ts +77 -0
- package/getCatalogEntry.d.ts.map +1 -0
- package/getCatalogEntry.js +59 -0
- package/getCatalogEntry.js.map +1 -0
- package/getCatalogType.d.ts +163 -0
- package/getCatalogType.d.ts.map +1 -0
- package/getCatalogType.js +135 -0
- package/getCatalogType.js.map +1 -0
- package/getCatalogTypeAttribute.d.ts +73 -0
- package/getCatalogTypeAttribute.d.ts.map +1 -0
- package/getCatalogTypeAttribute.js +53 -0
- package/getCatalogTypeAttribute.js.map +1 -0
- package/getCustomField.d.ts +67 -0
- package/getCustomField.d.ts.map +1 -0
- package/getCustomField.js +51 -0
- package/getCustomField.js.map +1 -0
- package/getCustomFieldOption.d.ts +65 -0
- package/getCustomFieldOption.d.ts.map +1 -0
- package/getCustomFieldOption.js +55 -0
- package/getCustomFieldOption.js.map +1 -0
- package/getEscalationPath.d.ts +100 -0
- package/getEscalationPath.d.ts.map +1 -0
- package/getEscalationPath.js +83 -0
- package/getEscalationPath.js.map +1 -0
- package/getEscalationPathBeta.d.ts +100 -0
- package/getEscalationPathBeta.d.ts.map +1 -0
- package/getEscalationPathBeta.js +83 -0
- package/getEscalationPathBeta.js.map +1 -0
- package/getIncidentRole.d.ts +111 -0
- package/getIncidentRole.d.ts.map +1 -0
- package/getIncidentRole.js +105 -0
- package/getIncidentRole.js.map +1 -0
- package/getIncidentTemplate.d.ts +98 -0
- package/getIncidentTemplate.d.ts.map +1 -0
- package/getIncidentTemplate.js +95 -0
- package/getIncidentTemplate.js.map +1 -0
- package/getIncidentTimestamp.d.ts +107 -0
- package/getIncidentTimestamp.d.ts.map +1 -0
- package/getIncidentTimestamp.js +109 -0
- package/getIncidentTimestamp.js.map +1 -0
- package/getIncidentType.d.ts +121 -0
- package/getIncidentType.d.ts.map +1 -0
- package/getIncidentType.js +107 -0
- package/getIncidentType.js.map +1 -0
- package/getIpAllowlist.d.ts +62 -0
- package/getIpAllowlist.d.ts.map +1 -0
- package/getIpAllowlist.js +77 -0
- package/getIpAllowlist.js.map +1 -0
- package/getPolicy.d.ts +97 -0
- package/getPolicy.d.ts.map +1 -0
- package/getPolicy.js +91 -0
- package/getPolicy.js.map +1 -0
- package/getRichText.d.ts +111 -0
- package/getRichText.d.ts.map +1 -0
- package/getRichText.js +107 -0
- package/getRichText.js.map +1 -0
- package/getSchedule.d.ts +89 -0
- package/getSchedule.d.ts.map +1 -0
- package/getSchedule.js +87 -0
- package/getSchedule.js.map +1 -0
- package/getScheduleBeta.d.ts +85 -0
- package/getScheduleBeta.d.ts.map +1 -0
- package/getScheduleBeta.js +83 -0
- package/getScheduleBeta.js.map +1 -0
- package/getScheduleReplica.d.ts +116 -0
- package/getScheduleReplica.d.ts.map +1 -0
- package/getScheduleReplica.js +79 -0
- package/getScheduleReplica.js.map +1 -0
- package/getScheduleRotation.d.ts +166 -0
- package/getScheduleRotation.d.ts.map +1 -0
- package/getScheduleRotation.js +127 -0
- package/getScheduleRotation.js.map +1 -0
- package/getScheduleRotationBeta.d.ts +122 -0
- package/getScheduleRotationBeta.d.ts.map +1 -0
- package/getScheduleRotationBeta.js +83 -0
- package/getScheduleRotationBeta.js.map +1 -0
- package/getScheduleSyncRule.d.ts +91 -0
- package/getScheduleSyncRule.d.ts.map +1 -0
- package/getScheduleSyncRule.js +79 -0
- package/getScheduleSyncRule.js.map +1 -0
- package/getScheduleSyncTarget.d.ts +100 -0
- package/getScheduleSyncTarget.d.ts.map +1 -0
- package/getScheduleSyncTarget.js +93 -0
- package/getScheduleSyncTarget.js.map +1 -0
- package/getSecret.d.ts +115 -0
- package/getSecret.d.ts.map +1 -0
- package/getSecret.js +97 -0
- package/getSecret.js.map +1 -0
- package/getSeverity.d.ts +117 -0
- package/getSeverity.d.ts.map +1 -0
- package/getSeverity.js +115 -0
- package/getSeverity.js.map +1 -0
- package/getStatus.d.ts +125 -0
- package/getStatus.d.ts.map +1 -0
- package/getStatus.js +119 -0
- package/getStatus.js.map +1 -0
- package/getUser.d.ts +52 -0
- package/getUser.d.ts.map +1 -0
- package/getUser.js +61 -0
- package/getUser.js.map +1 -0
- package/getWorkflow.d.ts +103 -0
- package/getWorkflow.d.ts.map +1 -0
- package/getWorkflow.js +77 -0
- package/getWorkflow.js.map +1 -0
- package/incidentRole.d.ts +109 -0
- package/incidentRole.d.ts.map +1 -0
- package/incidentRole.js +111 -0
- package/incidentRole.js.map +1 -0
- package/incidentTemplate.d.ts +200 -0
- package/incidentTemplate.d.ts.map +1 -0
- package/incidentTemplate.js +207 -0
- package/incidentTemplate.js.map +1 -0
- package/index.d.ts +188 -0
- package/index.d.ts.map +1 -0
- package/index.js +303 -0
- package/index.js.map +1 -0
- package/maintenanceWindow.d.ts +255 -0
- package/maintenanceWindow.d.ts.map +1 -0
- package/maintenanceWindow.js +148 -0
- package/maintenanceWindow.js.map +1 -0
- package/package.json +33 -0
- package/policy.d.ts +476 -0
- package/policy.d.ts.map +1 -0
- package/policy.js +387 -0
- package/policy.js.map +1 -0
- package/provider.d.ts +62 -0
- package/provider.d.ts.map +1 -0
- package/provider.js +80 -0
- package/provider.js.map +1 -0
- package/schedule.d.ts +120 -0
- package/schedule.d.ts.map +1 -0
- package/schedule.js +114 -0
- package/schedule.js.map +1 -0
- package/scheduleBeta.d.ts +104 -0
- package/scheduleBeta.d.ts.map +1 -0
- package/scheduleBeta.js +98 -0
- package/scheduleBeta.js.map +1 -0
- package/scheduleReplica.d.ts +178 -0
- package/scheduleReplica.d.ts.map +1 -0
- package/scheduleReplica.js +134 -0
- package/scheduleReplica.js.map +1 -0
- package/scheduleRotation.d.ts +287 -0
- package/scheduleRotation.d.ts.map +1 -0
- package/scheduleRotation.js +224 -0
- package/scheduleRotation.js.map +1 -0
- package/scheduleRotationBeta.d.ts +184 -0
- package/scheduleRotationBeta.d.ts.map +1 -0
- package/scheduleRotationBeta.js +121 -0
- package/scheduleRotationBeta.js.map +1 -0
- package/scheduleSyncRule.d.ts +154 -0
- package/scheduleSyncRule.d.ts.map +1 -0
- package/scheduleSyncRule.js +146 -0
- package/scheduleSyncRule.js.map +1 -0
- package/scheduleSyncTarget.d.ts +108 -0
- package/scheduleSyncTarget.d.ts.map +1 -0
- package/scheduleSyncTarget.js +106 -0
- package/scheduleSyncTarget.js.map +1 -0
- package/secret.d.ts +276 -0
- package/secret.d.ts.map +1 -0
- package/secret.js +234 -0
- package/secret.js.map +1 -0
- package/severity.d.ts +96 -0
- package/severity.d.ts.map +1 -0
- package/severity.js +102 -0
- package/severity.js.map +1 -0
- package/status.d.ts +121 -0
- package/status.d.ts.map +1 -0
- package/status.js +120 -0
- package/status.js.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +34 -0
- package/types/index.js.map +1 -0
- package/types/input.d.ts +23630 -0
- package/types/input.d.ts.map +1 -0
- package/types/input.js +5 -0
- package/types/input.js.map +1 -0
- package/types/output.d.ts +19726 -0
- package/types/output.d.ts.map +1 -0
- package/types/output.js +5 -0
- package/types/output.js.map +1 -0
- package/utilities.d.ts +5 -0
- package/utilities.d.ts.map +1 -0
- package/utilities.js +114 -0
- package/utilities.js.map +1 -0
- package/workflow.d.ts +736 -0
- package/workflow.d.ts.map +1 -0
- package/workflow.js +608 -0
- package/workflow.js.map +1 -0
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.MaintenanceWindow = void 0;
|
|
29
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
30
|
+
const utilities = __importStar(require("./utilities"));
|
|
31
|
+
/**
|
|
32
|
+
* Manage maintenance windows for temporarily overriding alert routing during planned maintenance.
|
|
33
|
+
*
|
|
34
|
+
* Maintenance windows allow you to suppress or redirect alerts during scheduled maintenance periods, preventing unnecessary escalations and noise.
|
|
35
|
+
*
|
|
36
|
+
* ## Example Usage
|
|
37
|
+
*
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
40
|
+
* import * as incident from "@incident-io/pulumi";
|
|
41
|
+
*
|
|
42
|
+
* const opsLead = incident.getUser({
|
|
43
|
+
* email: "ops-lead@example.com",
|
|
44
|
+
* });
|
|
45
|
+
* const example = new incident.MaintenanceWindow("example", {
|
|
46
|
+
* name: "Scheduled Database Migration",
|
|
47
|
+
* startAt: "2026-04-01T02:00:00Z",
|
|
48
|
+
* endAt: "2026-04-01T06:00:00Z",
|
|
49
|
+
* leadId: opsLead.then(opsLead => opsLead.id),
|
|
50
|
+
* showInSidebar: true,
|
|
51
|
+
* resolveOnEnd: true,
|
|
52
|
+
* rerouteOnEnd: false,
|
|
53
|
+
* alertConditionGroups: [{
|
|
54
|
+
* conditions: [{
|
|
55
|
+
* subject: "alert.title",
|
|
56
|
+
* operation: "contains",
|
|
57
|
+
* paramBindings: [{
|
|
58
|
+
* value: {
|
|
59
|
+
* literal: "database",
|
|
60
|
+
* },
|
|
61
|
+
* }],
|
|
62
|
+
* }],
|
|
63
|
+
* }],
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
class MaintenanceWindow extends pulumi.CustomResource {
|
|
68
|
+
/**
|
|
69
|
+
* Get an existing MaintenanceWindow resource's state with the given name, ID, and optional extra
|
|
70
|
+
* properties used to qualify the lookup.
|
|
71
|
+
*
|
|
72
|
+
* @param name The _unique_ name of the resulting resource.
|
|
73
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
74
|
+
* @param state Any extra arguments used during the lookup.
|
|
75
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
76
|
+
*/
|
|
77
|
+
static get(name, id, state, opts) {
|
|
78
|
+
return new MaintenanceWindow(name, state, { ...opts, id: id });
|
|
79
|
+
}
|
|
80
|
+
/** @internal */
|
|
81
|
+
static __pulumiType = 'incident:index/maintenanceWindow:MaintenanceWindow';
|
|
82
|
+
/**
|
|
83
|
+
* Returns true if the given object is an instance of MaintenanceWindow. This is designed to work even
|
|
84
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
85
|
+
*/
|
|
86
|
+
static isInstance(obj) {
|
|
87
|
+
if (obj === undefined || obj === null) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return obj['__pulumiType'] === MaintenanceWindow.__pulumiType;
|
|
91
|
+
}
|
|
92
|
+
constructor(name, argsOrState, opts) {
|
|
93
|
+
let resourceInputs = {};
|
|
94
|
+
opts = opts || {};
|
|
95
|
+
if (opts.id) {
|
|
96
|
+
const state = argsOrState;
|
|
97
|
+
resourceInputs["alertConditionGroups"] = state?.alertConditionGroups;
|
|
98
|
+
resourceInputs["endAt"] = state?.endAt;
|
|
99
|
+
resourceInputs["escalationTargets"] = state?.escalationTargets;
|
|
100
|
+
resourceInputs["forceDestroy"] = state?.forceDestroy;
|
|
101
|
+
resourceInputs["incidentId"] = state?.incidentId;
|
|
102
|
+
resourceInputs["leadId"] = state?.leadId;
|
|
103
|
+
resourceInputs["name"] = state?.name;
|
|
104
|
+
resourceInputs["notificationMessage"] = state?.notificationMessage;
|
|
105
|
+
resourceInputs["notifyChannels"] = state?.notifyChannels;
|
|
106
|
+
resourceInputs["notifyEndMinutesBefore"] = state?.notifyEndMinutesBefore;
|
|
107
|
+
resourceInputs["notifyStartMinutesBefore"] = state?.notifyStartMinutesBefore;
|
|
108
|
+
resourceInputs["rerouteOnEnd"] = state?.rerouteOnEnd;
|
|
109
|
+
resourceInputs["resolveOnEnd"] = state?.resolveOnEnd;
|
|
110
|
+
resourceInputs["showInSidebar"] = state?.showInSidebar;
|
|
111
|
+
resourceInputs["startAt"] = state?.startAt;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const args = argsOrState;
|
|
115
|
+
if (args?.alertConditionGroups === undefined && !opts.urn) {
|
|
116
|
+
throw new Error("Missing required property 'alertConditionGroups'");
|
|
117
|
+
}
|
|
118
|
+
if (args?.endAt === undefined && !opts.urn) {
|
|
119
|
+
throw new Error("Missing required property 'endAt'");
|
|
120
|
+
}
|
|
121
|
+
if (args?.leadId === undefined && !opts.urn) {
|
|
122
|
+
throw new Error("Missing required property 'leadId'");
|
|
123
|
+
}
|
|
124
|
+
if (args?.startAt === undefined && !opts.urn) {
|
|
125
|
+
throw new Error("Missing required property 'startAt'");
|
|
126
|
+
}
|
|
127
|
+
resourceInputs["alertConditionGroups"] = args?.alertConditionGroups;
|
|
128
|
+
resourceInputs["endAt"] = args?.endAt;
|
|
129
|
+
resourceInputs["escalationTargets"] = args?.escalationTargets;
|
|
130
|
+
resourceInputs["forceDestroy"] = args?.forceDestroy;
|
|
131
|
+
resourceInputs["incidentId"] = args?.incidentId;
|
|
132
|
+
resourceInputs["leadId"] = args?.leadId;
|
|
133
|
+
resourceInputs["name"] = args?.name;
|
|
134
|
+
resourceInputs["notificationMessage"] = args?.notificationMessage;
|
|
135
|
+
resourceInputs["notifyChannels"] = args?.notifyChannels;
|
|
136
|
+
resourceInputs["notifyEndMinutesBefore"] = args?.notifyEndMinutesBefore;
|
|
137
|
+
resourceInputs["notifyStartMinutesBefore"] = args?.notifyStartMinutesBefore;
|
|
138
|
+
resourceInputs["rerouteOnEnd"] = args?.rerouteOnEnd;
|
|
139
|
+
resourceInputs["resolveOnEnd"] = args?.resolveOnEnd;
|
|
140
|
+
resourceInputs["showInSidebar"] = args?.showInSidebar;
|
|
141
|
+
resourceInputs["startAt"] = args?.startAt;
|
|
142
|
+
}
|
|
143
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
144
|
+
super(MaintenanceWindow.__pulumiType, name, resourceInputs, opts);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.MaintenanceWindow = MaintenanceWindow;
|
|
148
|
+
//# sourceMappingURL=maintenanceWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintenanceWindow.js","sourceRoot":"","sources":["../maintenanceWindow.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@incident-io/pulumi",
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
4
|
+
"description": "A Pulumi package for managing incident.io resources.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pulumi",
|
|
7
|
+
"incident",
|
|
8
|
+
"incident-io",
|
|
9
|
+
"category/cloud"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://incident.io",
|
|
12
|
+
"repository": "https://github.com/incident-io/pulumi-incident",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@pulumi/pulumi": "^3.142.0"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/node": "^20",
|
|
22
|
+
"typescript": "^4.7.0"
|
|
23
|
+
},
|
|
24
|
+
"pulumi": {
|
|
25
|
+
"resource": true,
|
|
26
|
+
"name": "incident",
|
|
27
|
+
"version": "0.1.0-alpha.1",
|
|
28
|
+
"server": "github://api.github.com/incident-io/pulumi-incident"
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
}
|
|
33
|
+
}
|
package/policy.d.ts
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "./types/input";
|
|
3
|
+
import * as outputs from "./types/output";
|
|
4
|
+
/**
|
|
5
|
+
* Manage the policies that encode how your organisation should handle incidents.
|
|
6
|
+
*
|
|
7
|
+
* A policy scopes itself to a set of resources with `conditionGroups`, states the
|
|
8
|
+
* requirements those resources must meet, and describes who to chase when they fall short.
|
|
9
|
+
*
|
|
10
|
+
* `policyType` selects exactly one matching config block: a `followUp` policy
|
|
11
|
+
* carries `followUp` config, a `schedule` policy carries `schedule`
|
|
12
|
+
* config, and so on. A `vacationConflict` policy has no configuration of its own and
|
|
13
|
+
* so carries no block.
|
|
14
|
+
*
|
|
15
|
+
* ## Example - Require a post-mortem within five working days
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
19
|
+
* import * as incident from "@incident-io/pulumi";
|
|
20
|
+
*
|
|
21
|
+
* // The person to chase when a post-mortem falls due. Assignees can also be a
|
|
22
|
+
* // reference, such as the incident lead; see `assignment_rules.bindings`.
|
|
23
|
+
* const postmortemOwner = incident.getUser({
|
|
24
|
+
* email: "quality@example.com",
|
|
25
|
+
* });
|
|
26
|
+
* // Look the timestamp up by name rather than pinning an ID, which differs between
|
|
27
|
+
* // organisations.
|
|
28
|
+
* const closed = incident.getIncidentTimestamp({
|
|
29
|
+
* name: "Closed at",
|
|
30
|
+
* });
|
|
31
|
+
* // A post-mortem policy: which incidents it covers, what they must satisfy, and
|
|
32
|
+
* // when that falls due.
|
|
33
|
+
* //
|
|
34
|
+
* // There is no policy_type attribute to set. The post_mortem block below is what
|
|
35
|
+
* // makes this a post-mortem policy, and policy_type is computed from it.
|
|
36
|
+
* const postmortems = new incident.Policy("postmortems", {
|
|
37
|
+
* name: "Post-mortems within 5 working days",
|
|
38
|
+
* description: "Major and above incidents need a post-mortem once they close.",
|
|
39
|
+
* conditionGroups: [{
|
|
40
|
+
* conditions: [{
|
|
41
|
+
* subject: "incident.severity",
|
|
42
|
+
* operation: "gte",
|
|
43
|
+
* paramBindings: [{
|
|
44
|
+
* valueLiteral: "01FCNDV6P870EA6S7TK1DSYD5H",
|
|
45
|
+
* }],
|
|
46
|
+
* }],
|
|
47
|
+
* }],
|
|
48
|
+
* assignmentRules: {
|
|
49
|
+
* bindings: [{
|
|
50
|
+
* valueLiteral: postmortemOwner.then(postmortemOwner => postmortemOwner.id),
|
|
51
|
+
* }],
|
|
52
|
+
* reminderDueDateOffsetHours: [
|
|
53
|
+
* -24,
|
|
54
|
+
* 0,
|
|
55
|
+
* 24,
|
|
56
|
+
* ],
|
|
57
|
+
* },
|
|
58
|
+
* postMortem: {
|
|
59
|
+
* requirements: [{
|
|
60
|
+
* conditions: [{
|
|
61
|
+
* subject: "post_mortem.status",
|
|
62
|
+
* operation: "one_of",
|
|
63
|
+
* paramBindings: [{
|
|
64
|
+
* values: ["complete"],
|
|
65
|
+
* }],
|
|
66
|
+
* }],
|
|
67
|
+
* }],
|
|
68
|
+
* dueDateConfig: {
|
|
69
|
+
* incidentTimestampId: closed.then(closed => closed.id),
|
|
70
|
+
* days: {
|
|
71
|
+
* valueLiteral: "5",
|
|
72
|
+
* },
|
|
73
|
+
* calculationType: "weekdays",
|
|
74
|
+
* },
|
|
75
|
+
* },
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* ## Example - Action follow-ups within 30 days
|
|
80
|
+
*
|
|
81
|
+
* ```typescript
|
|
82
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
83
|
+
* import * as incident from "@incident-io/pulumi";
|
|
84
|
+
*
|
|
85
|
+
* // Who to chase when a follow-up is overdue.
|
|
86
|
+
* const followupsOwner = incident.getUser({
|
|
87
|
+
* email: "engineering-manager@example.com",
|
|
88
|
+
* });
|
|
89
|
+
* const followupsClosed = incident.getIncidentTimestamp({
|
|
90
|
+
* name: "Closed at",
|
|
91
|
+
* });
|
|
92
|
+
* // A follow-up policy: the follow-ups left behind by an incident have to be dealt
|
|
93
|
+
* // with, rather than sitting open indefinitely.
|
|
94
|
+
* const followUps = new incident.Policy("follow_ups", {
|
|
95
|
+
* name: "Follow-ups actioned within 30 days",
|
|
96
|
+
* description: "Follow-ups from an incident shouldn't be left open once it closes.",
|
|
97
|
+
* conditionGroups: [],
|
|
98
|
+
* assignmentRules: {
|
|
99
|
+
* bindings: [{
|
|
100
|
+
* valueLiteral: followupsOwner.then(followupsOwner => followupsOwner.id),
|
|
101
|
+
* }],
|
|
102
|
+
* reminderDueDateOffsetHours: [
|
|
103
|
+
* -24,
|
|
104
|
+
* 24,
|
|
105
|
+
* ],
|
|
106
|
+
* reminderCadenceBefore: {
|
|
107
|
+
* interval: "weekly",
|
|
108
|
+
* },
|
|
109
|
+
* reminderCadenceAfter: {
|
|
110
|
+
* interval: "daily",
|
|
111
|
+
* },
|
|
112
|
+
* },
|
|
113
|
+
* followUp: {
|
|
114
|
+
* requirements: [{
|
|
115
|
+
* conditions: [{
|
|
116
|
+
* subject: "follow_up.status",
|
|
117
|
+
* operation: "not_one_of",
|
|
118
|
+
* paramBindings: [{
|
|
119
|
+
* values: ["open"],
|
|
120
|
+
* }],
|
|
121
|
+
* }],
|
|
122
|
+
* }],
|
|
123
|
+
* dueDateConfig: {
|
|
124
|
+
* incidentTimestampId: followupsClosed.then(followupsClosed => followupsClosed.id),
|
|
125
|
+
* days: {
|
|
126
|
+
* valueLiteral: "30",
|
|
127
|
+
* },
|
|
128
|
+
* calculationType: "seven_days",
|
|
129
|
+
* },
|
|
130
|
+
* },
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* ## Example - Book a debrief for major incidents
|
|
135
|
+
*
|
|
136
|
+
* ```typescript
|
|
137
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
138
|
+
* import * as incident from "@incident-io/pulumi";
|
|
139
|
+
*
|
|
140
|
+
* const debriefsOwner = incident.getUser({
|
|
141
|
+
* email: "incident-manager@example.com",
|
|
142
|
+
* });
|
|
143
|
+
* const debriefsClosed = incident.getIncidentTimestamp({
|
|
144
|
+
* name: "Closed at",
|
|
145
|
+
* });
|
|
146
|
+
* // A debrief policy: major incidents need a debrief booked in, not just promised.
|
|
147
|
+
* //
|
|
148
|
+
* // This one scopes itself with condition_groups rather than applying to every
|
|
149
|
+
* // incident, so only the incidents that warrant a debrief are held to it.
|
|
150
|
+
* const debriefs = new incident.Policy("debriefs", {
|
|
151
|
+
* name: "Debriefs booked for major incidents",
|
|
152
|
+
* description: "Anything at major severity or above needs a debrief in the calendar.",
|
|
153
|
+
* conditionGroups: [{
|
|
154
|
+
* conditions: [{
|
|
155
|
+
* subject: "incident.severity",
|
|
156
|
+
* operation: "gte",
|
|
157
|
+
* paramBindings: [{
|
|
158
|
+
* valueLiteral: "01FCNDV6P870EA6S7TK1DSYD5H",
|
|
159
|
+
* }],
|
|
160
|
+
* }],
|
|
161
|
+
* }],
|
|
162
|
+
* assignmentRules: {
|
|
163
|
+
* bindings: [{
|
|
164
|
+
* valueLiteral: debriefsOwner.then(debriefsOwner => debriefsOwner.id),
|
|
165
|
+
* }],
|
|
166
|
+
* reminderDueDateOffsetHours: [-24],
|
|
167
|
+
* },
|
|
168
|
+
* debrief: {
|
|
169
|
+
* requirements: [{
|
|
170
|
+
* conditions: [{
|
|
171
|
+
* subject: "debrief.is_scheduled",
|
|
172
|
+
* operation: "is_set",
|
|
173
|
+
* paramBindings: [],
|
|
174
|
+
* }],
|
|
175
|
+
* }],
|
|
176
|
+
* dueDateConfig: {
|
|
177
|
+
* incidentTimestampId: debriefsClosed.then(debriefsClosed => debriefsClosed.id),
|
|
178
|
+
* days: {
|
|
179
|
+
* valueLiteral: "5",
|
|
180
|
+
* },
|
|
181
|
+
* calculationType: "weekdays",
|
|
182
|
+
* },
|
|
183
|
+
* },
|
|
184
|
+
* });
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* ## Example - Find gaps in on-call coverage
|
|
188
|
+
*
|
|
189
|
+
* ```typescript
|
|
190
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
191
|
+
* import * as incident from "@incident-io/pulumi";
|
|
192
|
+
*
|
|
193
|
+
* const scheduleOwner = incident.getUser({
|
|
194
|
+
* email: "on-call-manager@example.com",
|
|
195
|
+
* });
|
|
196
|
+
* // A schedule policy, which finds gaps in on-call coverage.
|
|
197
|
+
* //
|
|
198
|
+
* // Unlike follow-up, debrief and post-mortem policies this one takes no
|
|
199
|
+
* // due_date_config: a coverage gap is a finding the moment it's spotted, so
|
|
200
|
+
* // there is no due date to count from. It's the one type that instead supports
|
|
201
|
+
* // reminders measured from when the gap was detected.
|
|
202
|
+
* const scheduleCoverage = new incident.Policy("schedule_coverage", {
|
|
203
|
+
* name: "On-call schedules have no gaps",
|
|
204
|
+
* description: "Every rotation should have someone on call at all times.",
|
|
205
|
+
* conditionGroups: [],
|
|
206
|
+
* assignmentRules: {
|
|
207
|
+
* bindings: [{
|
|
208
|
+
* valueLiteral: scheduleOwner.then(scheduleOwner => scheduleOwner.id),
|
|
209
|
+
* }],
|
|
210
|
+
* reminderDueDateOffsetHours: [],
|
|
211
|
+
* reminderDetectedDateOffsetHours: [
|
|
212
|
+
* 0,
|
|
213
|
+
* 48,
|
|
214
|
+
* ],
|
|
215
|
+
* },
|
|
216
|
+
* schedule: {
|
|
217
|
+
* requirementType: "contiguous",
|
|
218
|
+
* evaluationLevel: "rotation",
|
|
219
|
+
* },
|
|
220
|
+
* });
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* ## Example - Check that on-call responders can be reached
|
|
224
|
+
*
|
|
225
|
+
* ```typescript
|
|
226
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
227
|
+
* import * as incident from "@incident-io/pulumi";
|
|
228
|
+
*
|
|
229
|
+
* // An on-call readiness policy, which checks that responders have a notification
|
|
230
|
+
* // method that reaches them quickly enough.
|
|
231
|
+
* //
|
|
232
|
+
* // It takes no assignment_rules: this type always assigns the user the finding is
|
|
233
|
+
* // about, and the API picks that assignee itself.
|
|
234
|
+
* const respondersCanBeReached = new incident.Policy("responders_can_be_reached", {
|
|
235
|
+
* name: "Responders carry a phone",
|
|
236
|
+
* description: "Anyone on call needs a notification method that reaches them quickly.",
|
|
237
|
+
* conditionGroups: [],
|
|
238
|
+
* onCallReadiness: {
|
|
239
|
+
* highUrgencies: [{
|
|
240
|
+
* methodTypes: [
|
|
241
|
+
* "phone",
|
|
242
|
+
* "sms",
|
|
243
|
+
* ],
|
|
244
|
+
* maxDelaySeconds: 300,
|
|
245
|
+
* }],
|
|
246
|
+
* lowUrgencies: [{
|
|
247
|
+
* methodTypes: ["email"],
|
|
248
|
+
* maxDelaySeconds: 900,
|
|
249
|
+
* }],
|
|
250
|
+
* },
|
|
251
|
+
* });
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* ## Example - Flag responders rota'd on while they are away
|
|
255
|
+
*
|
|
256
|
+
* ```typescript
|
|
257
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
258
|
+
* import * as incident from "@incident-io/pulumi";
|
|
259
|
+
*
|
|
260
|
+
* // A vacation conflict policy, which flags responders rota'd on while they are
|
|
261
|
+
* // away. The type has nothing to configure, so its block is empty: it is only
|
|
262
|
+
* // there to say which type this is.
|
|
263
|
+
* //
|
|
264
|
+
* // Like on-call readiness, it takes no assignment_rules: the API assigns the user
|
|
265
|
+
* // the finding is about.
|
|
266
|
+
* const vacationConflicts = new incident.Policy("vacation_conflicts", {
|
|
267
|
+
* name: "No on-call during vacation",
|
|
268
|
+
* description: "Flag anyone scheduled on call while they are on leave.",
|
|
269
|
+
* conditionGroups: [],
|
|
270
|
+
* vacationConflict: {},
|
|
271
|
+
* });
|
|
272
|
+
* ```
|
|
273
|
+
*
|
|
274
|
+
* ## Import
|
|
275
|
+
*
|
|
276
|
+
* Import is supported using an `import` block or the `pulumi import` command:
|
|
277
|
+
*
|
|
278
|
+
* The `pulumi import` command can be used, for example:
|
|
279
|
+
*
|
|
280
|
+
* !/bin/bash
|
|
281
|
+
*
|
|
282
|
+
* Import a policy using its ID
|
|
283
|
+
* Replace the ID with a real ID from your incident.io organization
|
|
284
|
+
*
|
|
285
|
+
* ```sh
|
|
286
|
+
* $ pulumi import incident:index/policy:Policy example 01ABC123DEF456GHI789JKL
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
export declare class Policy extends pulumi.CustomResource {
|
|
290
|
+
/**
|
|
291
|
+
* Get an existing Policy resource's state with the given name, ID, and optional extra
|
|
292
|
+
* properties used to qualify the lookup.
|
|
293
|
+
*
|
|
294
|
+
* @param name The _unique_ name of the resulting resource.
|
|
295
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
296
|
+
* @param state Any extra arguments used during the lookup.
|
|
297
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
298
|
+
*/
|
|
299
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PolicyState, opts?: pulumi.CustomResourceOptions): Policy;
|
|
300
|
+
/**
|
|
301
|
+
* Returns true if the given object is an instance of Policy. This is designed to work even
|
|
302
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
303
|
+
*/
|
|
304
|
+
static isInstance(obj: any): obj is Policy;
|
|
305
|
+
/**
|
|
306
|
+
* Who to assign a finding to, and when to remind them. Omit it for a policy type that assigns the user the finding is about.
|
|
307
|
+
*/
|
|
308
|
+
readonly assignmentRules: pulumi.Output<outputs.PolicyAssignmentRules | undefined>;
|
|
309
|
+
/**
|
|
310
|
+
* Groups of prerequisite conditions. All conditions in at least one group must be satisfied
|
|
311
|
+
*/
|
|
312
|
+
readonly conditionGroups: pulumi.Output<outputs.PolicyConditionGroup[]>;
|
|
313
|
+
/**
|
|
314
|
+
* Makes this a debrief policy, stating what a debrief must satisfy and when it falls due.
|
|
315
|
+
*/
|
|
316
|
+
readonly debrief: pulumi.Output<outputs.PolicyDebrief | undefined>;
|
|
317
|
+
/**
|
|
318
|
+
* Human readable description of the policy
|
|
319
|
+
*/
|
|
320
|
+
readonly description: pulumi.Output<string>;
|
|
321
|
+
/**
|
|
322
|
+
* The expressions to be prepared for use by steps and conditions
|
|
323
|
+
*/
|
|
324
|
+
readonly expressions: pulumi.Output<outputs.PolicyExpression[] | undefined>;
|
|
325
|
+
/**
|
|
326
|
+
* Makes this a follow*up policy, stating what a follow*up must satisfy and when it falls due.
|
|
327
|
+
*/
|
|
328
|
+
readonly followUp: pulumi.Output<outputs.PolicyFollowUp | undefined>;
|
|
329
|
+
/**
|
|
330
|
+
* Human readable name of the policy
|
|
331
|
+
*/
|
|
332
|
+
readonly name: pulumi.Output<string>;
|
|
333
|
+
/**
|
|
334
|
+
* Makes this an on-call readiness policy, which checks that users have suitable notification methods. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
335
|
+
*/
|
|
336
|
+
readonly onCallReadiness: pulumi.Output<outputs.PolicyOnCallReadiness | undefined>;
|
|
337
|
+
/**
|
|
338
|
+
* Type of the policy, specifying what this applies to. Possible values are: `debrief`, `followUp`, `onCallReadiness`, `postMortem`, `schedule`, `vacationConflict`. Determined by which config block is set.
|
|
339
|
+
*/
|
|
340
|
+
readonly policyType: pulumi.Output<string>;
|
|
341
|
+
/**
|
|
342
|
+
* Makes this a post*mortem policy, stating what a post*mortem must satisfy and when it falls due.
|
|
343
|
+
*/
|
|
344
|
+
readonly postMortem: pulumi.Output<outputs.PolicyPostMortem | undefined>;
|
|
345
|
+
/**
|
|
346
|
+
* Makes this a schedule policy, which detects gaps in on-call coverage.
|
|
347
|
+
*/
|
|
348
|
+
readonly schedule: pulumi.Output<outputs.PolicySchedule | undefined>;
|
|
349
|
+
/**
|
|
350
|
+
* Disabled policies stop evaluating but keep their config. Possible values are: `enabled`, `disabled`.
|
|
351
|
+
*/
|
|
352
|
+
readonly status: pulumi.Output<string>;
|
|
353
|
+
/**
|
|
354
|
+
* Makes this a vacation-conflict policy, which flags responders rota'd on while they are away. It takes no configuration, so set it to an empty object. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
355
|
+
*/
|
|
356
|
+
readonly vacationConflict: pulumi.Output<outputs.PolicyVacationConflict | undefined>;
|
|
357
|
+
/**
|
|
358
|
+
* Create a Policy resource with the given unique name, arguments, and options.
|
|
359
|
+
*
|
|
360
|
+
* @param name The _unique_ name of the resource.
|
|
361
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
362
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
363
|
+
*/
|
|
364
|
+
constructor(name: string, args: PolicyArgs, opts?: pulumi.CustomResourceOptions);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Input properties used for looking up and filtering Policy resources.
|
|
368
|
+
*/
|
|
369
|
+
export interface PolicyState {
|
|
370
|
+
/**
|
|
371
|
+
* Who to assign a finding to, and when to remind them. Omit it for a policy type that assigns the user the finding is about.
|
|
372
|
+
*/
|
|
373
|
+
assignmentRules?: pulumi.Input<inputs.PolicyAssignmentRules | undefined>;
|
|
374
|
+
/**
|
|
375
|
+
* Groups of prerequisite conditions. All conditions in at least one group must be satisfied
|
|
376
|
+
*/
|
|
377
|
+
conditionGroups?: pulumi.Input<pulumi.Input<inputs.PolicyConditionGroup>[] | undefined>;
|
|
378
|
+
/**
|
|
379
|
+
* Makes this a debrief policy, stating what a debrief must satisfy and when it falls due.
|
|
380
|
+
*/
|
|
381
|
+
debrief?: pulumi.Input<inputs.PolicyDebrief | undefined>;
|
|
382
|
+
/**
|
|
383
|
+
* Human readable description of the policy
|
|
384
|
+
*/
|
|
385
|
+
description?: pulumi.Input<string | undefined>;
|
|
386
|
+
/**
|
|
387
|
+
* The expressions to be prepared for use by steps and conditions
|
|
388
|
+
*/
|
|
389
|
+
expressions?: pulumi.Input<pulumi.Input<inputs.PolicyExpression>[] | undefined>;
|
|
390
|
+
/**
|
|
391
|
+
* Makes this a follow*up policy, stating what a follow*up must satisfy and when it falls due.
|
|
392
|
+
*/
|
|
393
|
+
followUp?: pulumi.Input<inputs.PolicyFollowUp | undefined>;
|
|
394
|
+
/**
|
|
395
|
+
* Human readable name of the policy
|
|
396
|
+
*/
|
|
397
|
+
name?: pulumi.Input<string | undefined>;
|
|
398
|
+
/**
|
|
399
|
+
* Makes this an on-call readiness policy, which checks that users have suitable notification methods. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
400
|
+
*/
|
|
401
|
+
onCallReadiness?: pulumi.Input<inputs.PolicyOnCallReadiness | undefined>;
|
|
402
|
+
/**
|
|
403
|
+
* Type of the policy, specifying what this applies to. Possible values are: `debrief`, `followUp`, `onCallReadiness`, `postMortem`, `schedule`, `vacationConflict`. Determined by which config block is set.
|
|
404
|
+
*/
|
|
405
|
+
policyType?: pulumi.Input<string | undefined>;
|
|
406
|
+
/**
|
|
407
|
+
* Makes this a post*mortem policy, stating what a post*mortem must satisfy and when it falls due.
|
|
408
|
+
*/
|
|
409
|
+
postMortem?: pulumi.Input<inputs.PolicyPostMortem | undefined>;
|
|
410
|
+
/**
|
|
411
|
+
* Makes this a schedule policy, which detects gaps in on-call coverage.
|
|
412
|
+
*/
|
|
413
|
+
schedule?: pulumi.Input<inputs.PolicySchedule | undefined>;
|
|
414
|
+
/**
|
|
415
|
+
* Disabled policies stop evaluating but keep their config. Possible values are: `enabled`, `disabled`.
|
|
416
|
+
*/
|
|
417
|
+
status?: pulumi.Input<string | undefined>;
|
|
418
|
+
/**
|
|
419
|
+
* Makes this a vacation-conflict policy, which flags responders rota'd on while they are away. It takes no configuration, so set it to an empty object. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
420
|
+
*/
|
|
421
|
+
vacationConflict?: pulumi.Input<inputs.PolicyVacationConflict | undefined>;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* The set of arguments for constructing a Policy resource.
|
|
425
|
+
*/
|
|
426
|
+
export interface PolicyArgs {
|
|
427
|
+
/**
|
|
428
|
+
* Who to assign a finding to, and when to remind them. Omit it for a policy type that assigns the user the finding is about.
|
|
429
|
+
*/
|
|
430
|
+
assignmentRules?: pulumi.Input<inputs.PolicyAssignmentRules | undefined>;
|
|
431
|
+
/**
|
|
432
|
+
* Groups of prerequisite conditions. All conditions in at least one group must be satisfied
|
|
433
|
+
*/
|
|
434
|
+
conditionGroups: pulumi.Input<pulumi.Input<inputs.PolicyConditionGroup>[]>;
|
|
435
|
+
/**
|
|
436
|
+
* Makes this a debrief policy, stating what a debrief must satisfy and when it falls due.
|
|
437
|
+
*/
|
|
438
|
+
debrief?: pulumi.Input<inputs.PolicyDebrief | undefined>;
|
|
439
|
+
/**
|
|
440
|
+
* Human readable description of the policy
|
|
441
|
+
*/
|
|
442
|
+
description: pulumi.Input<string>;
|
|
443
|
+
/**
|
|
444
|
+
* The expressions to be prepared for use by steps and conditions
|
|
445
|
+
*/
|
|
446
|
+
expressions?: pulumi.Input<pulumi.Input<inputs.PolicyExpression>[] | undefined>;
|
|
447
|
+
/**
|
|
448
|
+
* Makes this a follow*up policy, stating what a follow*up must satisfy and when it falls due.
|
|
449
|
+
*/
|
|
450
|
+
followUp?: pulumi.Input<inputs.PolicyFollowUp | undefined>;
|
|
451
|
+
/**
|
|
452
|
+
* Human readable name of the policy
|
|
453
|
+
*/
|
|
454
|
+
name?: pulumi.Input<string | undefined>;
|
|
455
|
+
/**
|
|
456
|
+
* Makes this an on-call readiness policy, which checks that users have suitable notification methods. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
457
|
+
*/
|
|
458
|
+
onCallReadiness?: pulumi.Input<inputs.PolicyOnCallReadiness | undefined>;
|
|
459
|
+
/**
|
|
460
|
+
* Makes this a post*mortem policy, stating what a post*mortem must satisfy and when it falls due.
|
|
461
|
+
*/
|
|
462
|
+
postMortem?: pulumi.Input<inputs.PolicyPostMortem | undefined>;
|
|
463
|
+
/**
|
|
464
|
+
* Makes this a schedule policy, which detects gaps in on-call coverage.
|
|
465
|
+
*/
|
|
466
|
+
schedule?: pulumi.Input<inputs.PolicySchedule | undefined>;
|
|
467
|
+
/**
|
|
468
|
+
* Disabled policies stop evaluating but keep their config. Possible values are: `enabled`, `disabled`.
|
|
469
|
+
*/
|
|
470
|
+
status?: pulumi.Input<string | undefined>;
|
|
471
|
+
/**
|
|
472
|
+
* Makes this a vacation-conflict policy, which flags responders rota'd on while they are away. It takes no configuration, so set it to an empty object. The assignee is always the user the finding is about, so `assignmentRules` cannot be set alongside it.
|
|
473
|
+
*/
|
|
474
|
+
vacationConflict?: pulumi.Input<inputs.PolicyVacationConflict | undefined>;
|
|
475
|
+
}
|
|
476
|
+
//# sourceMappingURL=policy.d.ts.map
|
package/policy.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4RG;AACH,qBAAa,MAAO,SAAQ,MAAM,CAAC,cAAc;IAC7C;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM;IAO9H;;;OAGG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM;IAOjD;;OAEG;IACH,SAAwB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAClG;;OAEG;IACH,SAAwB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACvF;;OAEG;IACH,SAAwB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClF;;OAEG;IACH,SAAwB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAwB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;IAC3F;;OAEG;IACH,SAAwB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACpF;;OAEG;IACH,SAAwB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD;;OAEG;IACH,SAAwB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAClG;;OAEG;IACH,SAAgC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE;;OAEG;IACH,SAAwB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IACxF;;OAEG;IACH,SAAwB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACpF;;OAEG;IACH,SAAwB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD;;OAEG;IACH,SAAwB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAEpG;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB;CA4ClF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACxF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACzD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAChF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC3D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC3D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC3E;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACzD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAChF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC3D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC3D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;CAC9E"}
|