@pulumi/pagerduty
Version:
A Pulumi package for creating and managing pagerduty cloud resources.
1,114 lines (1,113 loc) • 101 kB
TypeScript
import * as outputs from "../types/output";
export interface AlertGroupingSettingConfig {
/**
* One of `any` or `all`. This setting is only required and applies when `type` is set to `contentBased` or `contentBasedIntelligent`. Group alerts based on one or all of `fields` value(s).
*/
aggregate?: string;
/**
* Alerts will be grouped together if the content of these fields match. This setting is only required and applies when `type` is set to `contentBased` or `contentBasedIntelligent`.
*/
fields?: string[];
/**
* The maximum amount of time allowed between Alerts. This setting applies only when `type` is set to `intelligent`, `contentBased`, `contentBasedIntelligent`. Value must be between `300` and `3600` or exactly `86400` (86400 is supported only for `contentBased` alert grouping). Any Alerts arriving greater than `timeWindow` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the recommended time window leave this value unset or set it to `null`.
*/
timeWindow: number;
/**
* The duration in seconds within which to automatically group incoming alerts. This setting is only required and applies when `type` is set to `time`. To continue grouping alerts until the incident is resolved leave this value unset or set it to `null`.
*/
timeout: number;
}
export interface AutomationActionsActionActionDataReference {
/**
* The command to execute the script with.
*/
invocationCommand?: string;
/**
* The arguments to pass to the Process Automation job execution.
*/
processAutomationJobArguments?: string;
/**
* The ID of the Process Automation job to execute.
*/
processAutomationJobId?: string;
/**
* The expression that filters on which nodes a Process Automation Job executes [Learn more](https://docs.rundeck.com/docs/manual/05-nodes.html#node-filtering).
*/
processAutomationNodeFilter?: string;
/**
* Body of the script to be executed on the Runner. Max length is 16777215 characters.
*/
script?: string;
}
export interface EscalationPolicyRule {
/**
* The number of minutes before an unacknowledged incident escalates away from this rule.
*/
escalationDelayInMinutes: number;
/**
* The strategy used to assign the escalation rule to an incident. Documented below.
*/
escalationRuleAssignmentStrategy: outputs.EscalationPolicyRuleEscalationRuleAssignmentStrategy;
/**
* The ID of the escalation policy.
*/
id: string;
targets: outputs.EscalationPolicyRuleTarget[];
}
export interface EscalationPolicyRuleEscalationRuleAssignmentStrategy {
/**
* Can be `roundRobin` or `assignToEveryone`.
*/
type: string;
}
export interface EscalationPolicyRuleTarget {
/**
* A target ID
*/
id: string;
/**
* Can be `userReference` or `scheduleReference`. Defaults to `userReference`. For multiple users as example, repeat the target.
*/
type?: string;
}
export interface EventOrchestrationGlobalCacheVariableCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface EventOrchestrationGlobalCacheVariableConfiguration {
/**
* The type of data that will eventually be set for the Cache Variable via an API request. This field is only used when type is `externalData`
*/
dataType?: string;
/**
* A [RE2 regular expression][4] that will be matched against the field specified via the `source` argument. This field is only used when `type` is `recentValue`
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths). This field is only used when `type` is `recentValue`
*/
source?: string;
/**
* The number of seconds indicating how long to count incoming trigger events for. This field is only used when `type` is `triggerEventCount` or `externalData`
*/
ttlSeconds?: number;
/**
* The [type of value](https://support.pagerduty.com/docs/event-orchestration-variables) to store into the Cache Variable. Can be one of: `recentValue`, `triggerEventCount` or `externalData`.
*/
type: string;
}
export interface EventOrchestrationGlobalCatchAll {
/**
* These are the actions that will be taken to change the resulting alert and incident. `catchAll` supports all actions described above for `rule` _except_ `routeTo` action.
*/
actions: outputs.EventOrchestrationGlobalCatchAllActions;
}
export interface EventOrchestrationGlobalCatchAllActions {
/**
* Add this text as a note on the resulting incident.
*/
annotate?: string;
/**
* Create a [Webhook](https://support.pagerduty.com/docs/event-orchestration#webhooks) associated with the resulting incident.
*/
automationAction?: outputs.EventOrchestrationGlobalCatchAllActionsAutomationAction;
/**
* When true, this event will be dropped. Dropped events will not trigger or resolve an alert or an incident. Dropped events will not be evaluated against router rules.
*/
dropEvent?: boolean;
/**
* The ID of the Escalation Policy you want to assign incidents to. Event rules with this action will override the Escalation Policy already set on a Service's settings, with what is configured by this action.
*/
escalationPolicy?: string;
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationGlobalCatchAllActionsExtraction[];
/**
* Assign a custom field to the resulting incident.
*/
incidentCustomFieldUpdates?: outputs.EventOrchestrationGlobalCatchAllActionsIncidentCustomFieldUpdate[];
/**
* The ID of the priority you want to set on resulting incident. Consider using the `pagerduty.getPriority` data source.
*/
priority?: string;
/**
* The ID of a Set from this Global Orchestration whose rules you also want to use with events that match this rule.
*/
routeTo?: string;
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
/**
* Set whether the resulting alert is suppressed. Suppressed alerts will not trigger an incident.
*/
suppress?: boolean;
/**
* The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a `resolve` event arrives before the alert triggers then PagerDuty won't create an incident for this alert.
*/
suspend?: number;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationGlobalCatchAllActionsVariable[];
}
export interface EventOrchestrationGlobalCatchAllActionsAutomationAction {
/**
* When true, PagerDuty's servers will automatically send this webhook request as soon as the resulting incident is created. When false, your incident responder will be able to manually trigger the Webhook via the PagerDuty website and mobile app.
*/
autoSend?: boolean;
/**
* Specify custom key/value pairs that'll be sent with the webhook request as request headers.
*/
headers?: outputs.EventOrchestrationGlobalCatchAllActionsAutomationActionHeader[];
/**
* Name of this Webhook.
*/
name: string;
/**
* Specify custom key/value pairs that'll be included in the webhook request's JSON payload.
*/
parameters?: outputs.EventOrchestrationGlobalCatchAllActionsAutomationActionParameter[];
/**
* The API endpoint where PagerDuty's servers will send the webhook request.
*/
url: string;
}
export interface EventOrchestrationGlobalCatchAllActionsAutomationActionHeader {
/**
* Name to identify the header
*/
key: string;
/**
* Value of this header
*/
value: string;
}
export interface EventOrchestrationGlobalCatchAllActionsAutomationActionParameter {
/**
* Name to identify the parameter
*/
key: string;
/**
* Value of this parameter
*/
value: string;
}
export interface EventOrchestrationGlobalCatchAllActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationGlobalCatchAllActionsIncidentCustomFieldUpdate {
/**
* The custom field id
*/
id: string;
/**
* The value to assign to this custom field
*/
value: string;
}
export interface EventOrchestrationGlobalCatchAllActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths).
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationGlobalSet {
/**
* The ID of this set of rules. Rules in other sets can route events into this set using the rule's `routeTo` property.
*/
id: string;
rules?: outputs.EventOrchestrationGlobalSetRule[];
}
export interface EventOrchestrationGlobalSetRule {
/**
* Actions that will be taken to change the resulting alert and incident, when an event matches this rule.
*/
actions: outputs.EventOrchestrationGlobalSetRuleActions;
/**
* Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if any of these conditions match. If none are provided, the event will `always` match against the rule.
*/
conditions?: outputs.EventOrchestrationGlobalSetRuleCondition[];
/**
* Indicates whether the rule is disabled and would therefore not be evaluated.
*/
disabled?: boolean;
/**
* The ID of the rule within the set.
*/
id: string;
/**
* A description of this rule's purpose.
*/
label?: string;
}
export interface EventOrchestrationGlobalSetRuleActions {
/**
* Add this text as a note on the resulting incident.
*/
annotate?: string;
/**
* Create a [Webhook](https://support.pagerduty.com/docs/event-orchestration#webhooks) associated with the resulting incident.
*/
automationAction?: outputs.EventOrchestrationGlobalSetRuleActionsAutomationAction;
/**
* When true, this event will be dropped. Dropped events will not trigger or resolve an alert or an incident. Dropped events will not be evaluated against router rules.
*/
dropEvent?: boolean;
/**
* The ID of the Escalation Policy you want to assign incidents to. Event rules with this action will override the Escalation Policy already set on a Service's settings, with what is configured by this action.
*/
escalationPolicy?: string;
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationGlobalSetRuleActionsExtraction[];
/**
* Assign a custom field to the resulting incident.
*/
incidentCustomFieldUpdates?: outputs.EventOrchestrationGlobalSetRuleActionsIncidentCustomFieldUpdate[];
/**
* The ID of the priority you want to set on resulting incident. Consider using the `pagerduty.getPriority` data source.
*/
priority?: string;
/**
* The ID of a Set from this Global Orchestration whose rules you also want to use with events that match this rule.
*/
routeTo?: string;
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
/**
* Set whether the resulting alert is suppressed. Suppressed alerts will not trigger an incident.
*/
suppress?: boolean;
/**
* The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a `resolve` event arrives before the alert triggers then PagerDuty won't create an incident for this alert.
*/
suspend?: number;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationGlobalSetRuleActionsVariable[];
}
export interface EventOrchestrationGlobalSetRuleActionsAutomationAction {
/**
* When true, PagerDuty's servers will automatically send this webhook request as soon as the resulting incident is created. When false, your incident responder will be able to manually trigger the Webhook via the PagerDuty website and mobile app.
*/
autoSend?: boolean;
/**
* Specify custom key/value pairs that'll be sent with the webhook request as request headers.
*/
headers?: outputs.EventOrchestrationGlobalSetRuleActionsAutomationActionHeader[];
/**
* Name of this Webhook.
*/
name: string;
/**
* Specify custom key/value pairs that'll be included in the webhook request's JSON payload.
*/
parameters?: outputs.EventOrchestrationGlobalSetRuleActionsAutomationActionParameter[];
/**
* The API endpoint where PagerDuty's servers will send the webhook request.
*/
url: string;
}
export interface EventOrchestrationGlobalSetRuleActionsAutomationActionHeader {
/**
* Name to identify the header
*/
key: string;
/**
* Value of this header
*/
value: string;
}
export interface EventOrchestrationGlobalSetRuleActionsAutomationActionParameter {
/**
* Name to identify the parameter
*/
key: string;
/**
* Value of this parameter
*/
value: string;
}
export interface EventOrchestrationGlobalSetRuleActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationGlobalSetRuleActionsIncidentCustomFieldUpdate {
/**
* The custom field id
*/
id: string;
/**
* The value to assign to this custom field
*/
value: string;
}
export interface EventOrchestrationGlobalSetRuleActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths).
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationGlobalSetRuleCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface EventOrchestrationIntegration {
/**
* ID of the integration
*/
id: string;
label: string;
/**
* A single-item list containing a parameter object describing the integration
*/
parameters: outputs.EventOrchestrationIntegrationParameter[];
}
export interface EventOrchestrationIntegrationParameter {
/**
* Routing key that routes to this Orchestration.
*/
routingKey: string;
/**
* Type of the routing key. `global` is the default type.
*/
type: string;
}
export interface EventOrchestrationRouterCatchAll {
/**
* These are the actions that will be taken to change the resulting alert and incident.
*/
actions: outputs.EventOrchestrationRouterCatchAllActions;
}
export interface EventOrchestrationRouterCatchAllActions {
/**
* Defines where an alert will be sent if doesn't match any rules. Can either be the ID of a Service _or_ the string `"unrouted"` to send events to the Unrouted Orchestration.
*/
routeTo: string;
}
export interface EventOrchestrationRouterSet {
/**
* ID of the `start` set. Router supports only one set and it's id has to be `start`
*/
id: string;
rules?: outputs.EventOrchestrationRouterSetRule[];
}
export interface EventOrchestrationRouterSetRule {
/**
* Actions that will be taken to change the resulting alert and incident, when an event matches this rule.
*/
actions: outputs.EventOrchestrationRouterSetRuleActions;
/**
* Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if any of these conditions match. If none are provided, the event will _always_ match against the rule.
*/
conditions?: outputs.EventOrchestrationRouterSetRuleCondition[];
/**
* Indicates whether the rule is disabled and would therefore not be evaluated.
*/
disabled?: boolean;
/**
* The ID of the rule within the `start` set.
*/
id: string;
/**
* A description of this rule's purpose.
*/
label?: string;
}
export interface EventOrchestrationRouterSetRuleActions {
/**
* supports the following:
*/
dynamicRouteTos?: outputs.EventOrchestrationRouterSetRuleActionsDynamicRouteTo[];
routeTo?: string;
}
export interface EventOrchestrationRouterSetRuleActionsDynamicRouteTo {
/**
* Indicates whether the extracted value from the source is a service's name or ID. Allowed values are: `serviceName`, `serviceId`
*
* If an event has a value at the specified `source`, and if the `regex` successfully matches the value, and if the matching portion is valid Service ID or Name, then the event will be routed to that service. Otherwise the event will be checked against any subsequent router rules.
*/
lookupBy: string;
/**
* The regular expression, used to extract a value from the source field. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
regex: string;
/**
* The path to a field in an event.
*/
source: string;
}
export interface EventOrchestrationRouterSetRuleCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface EventOrchestrationServiceCacheVariableCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface EventOrchestrationServiceCacheVariableConfiguration {
/**
* The type of data that will eventually be set for the Cache Variable via an API request. This field is only used when type is `externalData`
*/
dataType?: string;
/**
* A [RE2 regular expression][4] that will be matched against the field specified via the `source` argument. This field is only used when `type` is `recentValue`
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths). This field is only used when `type` is `recentValue`
*/
source?: string;
/**
* The number of seconds indicating how long to count incoming trigger events for. This field is only used when `type` is `triggerEventCount` or `externalData`
*/
ttlSeconds?: number;
/**
* The [type of value](https://support.pagerduty.com/docs/event-orchestration-variables) to store into the Cache Variable. Can be one of: `recentValue`, `triggerEventCount` or `externalData`.
*/
type: string;
}
export interface EventOrchestrationServiceCatchAll {
/**
* These are the actions that will be taken to change the resulting alert and incident. `catchAll` supports all actions described above for `rule` _except_ `routeTo` action.
*/
actions: outputs.EventOrchestrationServiceCatchAllActions;
}
export interface EventOrchestrationServiceCatchAllActions {
/**
* Add this text as a note on the resulting incident.
*/
annotate?: string;
/**
* Create a [Webhook](https://support.pagerduty.com/docs/event-orchestration#webhooks) associated with the resulting incident.
*/
automationAction?: outputs.EventOrchestrationServiceCatchAllActionsAutomationAction;
/**
* The ID of the Escalation Policy you want to assign incidents to. Event rules with this action will override the Escalation Policy already set on a Service's settings, with what is configured by this action.
*/
escalationPolicy?: string;
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationServiceCatchAllActionsExtraction[];
/**
* Assign a custom field to the resulting incident.
*/
incidentCustomFieldUpdates?: outputs.EventOrchestrationServiceCatchAllActionsIncidentCustomFieldUpdate[];
/**
* Configure a [Process Automation](https://support.pagerduty.com/docs/event-orchestration#process-automation) associated with the resulting incident.
*/
pagerdutyAutomationAction?: outputs.EventOrchestrationServiceCatchAllActionsPagerdutyAutomationAction;
/**
* The ID of the priority you want to set on resulting incident. Consider using the `pagerduty.getPriority` data source.
*/
priority?: string;
/**
* The ID of a Set from this Service Orchestration whose rules you also want to use with events that match this rule.
*
* @deprecated The 'route_to' attribute is no longer supported for catch-all rules.
*/
routeTo?: string;
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
/**
* Set whether the resulting alert is suppressed. Suppressed alerts will not trigger an incident.
*/
suppress?: boolean;
/**
* The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a `resolve` event arrives before the alert triggers then PagerDuty won't create an incident for this alert.
*/
suspend?: number;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationServiceCatchAllActionsVariable[];
}
export interface EventOrchestrationServiceCatchAllActionsAutomationAction {
/**
* When true, PagerDuty's servers will automatically send this webhook request as soon as the resulting incident is created. When false, your incident responder will be able to manually trigger the Webhook via the PagerDuty website and mobile app.
*/
autoSend?: boolean;
/**
* Specify custom key/value pairs that'll be sent with the webhook request as request headers.
*/
headers?: outputs.EventOrchestrationServiceCatchAllActionsAutomationActionHeader[];
/**
* Name of this Webhook.
*/
name: string;
/**
* Specify custom key/value pairs that'll be included in the webhook request's JSON payload.
*/
parameters?: outputs.EventOrchestrationServiceCatchAllActionsAutomationActionParameter[];
/**
* The API endpoint where PagerDuty's servers will send the webhook request.
*/
url: string;
}
export interface EventOrchestrationServiceCatchAllActionsAutomationActionHeader {
/**
* Name to identify the header
*/
key: string;
/**
* Value of this header
*/
value: string;
}
export interface EventOrchestrationServiceCatchAllActionsAutomationActionParameter {
/**
* Name to identify the parameter
*/
key: string;
/**
* Value of this parameter
*/
value: string;
}
export interface EventOrchestrationServiceCatchAllActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationServiceCatchAllActionsIncidentCustomFieldUpdate {
/**
* The custom field id
*/
id: string;
/**
* The value to assign to this custom field
*/
value: string;
}
export interface EventOrchestrationServiceCatchAllActionsPagerdutyAutomationAction {
/**
* Id of the Process Automation action to be triggered.
*/
actionId: string;
}
export interface EventOrchestrationServiceCatchAllActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths).
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationServiceSet {
/**
* The ID of this set of rules. Rules in other sets can route events into this set using the rule's `routeTo` property.
*/
id: string;
rules?: outputs.EventOrchestrationServiceSetRule[];
}
export interface EventOrchestrationServiceSetRule {
/**
* Actions that will be taken to change the resulting alert and incident, when an event matches this rule.
*/
actions: outputs.EventOrchestrationServiceSetRuleActions;
/**
* Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if any of these conditions match. If none are provided, the event will `always` match against the rule.
*/
conditions?: outputs.EventOrchestrationServiceSetRuleCondition[];
/**
* Indicates whether the rule is disabled and would therefore not be evaluated.
*/
disabled?: boolean;
/**
* The ID of the rule within the set.
*/
id: string;
/**
* A description of this rule's purpose.
*/
label?: string;
}
export interface EventOrchestrationServiceSetRuleActions {
/**
* Add this text as a note on the resulting incident.
*/
annotate?: string;
/**
* Create a [Webhook](https://support.pagerduty.com/docs/event-orchestration#webhooks) associated with the resulting incident.
*/
automationAction?: outputs.EventOrchestrationServiceSetRuleActionsAutomationAction;
/**
* The ID of the Escalation Policy you want to assign incidents to. Event rules with this action will override the Escalation Policy already set on a Service's settings, with what is configured by this action.
*/
escalationPolicy?: string;
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationServiceSetRuleActionsExtraction[];
/**
* Assign a custom field to the resulting incident.
*/
incidentCustomFieldUpdates?: outputs.EventOrchestrationServiceSetRuleActionsIncidentCustomFieldUpdate[];
/**
* Configure a [Process Automation](https://support.pagerduty.com/docs/event-orchestration#process-automation) associated with the resulting incident.
*/
pagerdutyAutomationAction?: outputs.EventOrchestrationServiceSetRuleActionsPagerdutyAutomationAction;
/**
* The ID of the priority you want to set on resulting incident. Consider using the `pagerduty.getPriority` data source.
*/
priority?: string;
/**
* The ID of a Set from this Service Orchestration whose rules you also want to use with events that match this rule.
*/
routeTo?: string;
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
/**
* Set whether the resulting alert is suppressed. Suppressed alerts will not trigger an incident.
*/
suppress?: boolean;
/**
* The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a `resolve` event arrives before the alert triggers then PagerDuty won't create an incident for this alert.
*/
suspend?: number;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationServiceSetRuleActionsVariable[];
}
export interface EventOrchestrationServiceSetRuleActionsAutomationAction {
/**
* When true, PagerDuty's servers will automatically send this webhook request as soon as the resulting incident is created. When false, your incident responder will be able to manually trigger the Webhook via the PagerDuty website and mobile app.
*/
autoSend?: boolean;
/**
* Specify custom key/value pairs that'll be sent with the webhook request as request headers.
*/
headers?: outputs.EventOrchestrationServiceSetRuleActionsAutomationActionHeader[];
/**
* Name of this Webhook.
*/
name: string;
/**
* Specify custom key/value pairs that'll be included in the webhook request's JSON payload.
*/
parameters?: outputs.EventOrchestrationServiceSetRuleActionsAutomationActionParameter[];
/**
* The API endpoint where PagerDuty's servers will send the webhook request.
*/
url: string;
}
export interface EventOrchestrationServiceSetRuleActionsAutomationActionHeader {
/**
* Name to identify the header
*/
key: string;
/**
* Value of this header
*/
value: string;
}
export interface EventOrchestrationServiceSetRuleActionsAutomationActionParameter {
/**
* Name to identify the parameter
*/
key: string;
/**
* Value of this parameter
*/
value: string;
}
export interface EventOrchestrationServiceSetRuleActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationServiceSetRuleActionsIncidentCustomFieldUpdate {
/**
* The custom field id
*/
id: string;
/**
* The value to assign to this custom field
*/
value: string;
}
export interface EventOrchestrationServiceSetRuleActionsPagerdutyAutomationAction {
/**
* Id of the Process Automation action to be triggered.
*/
actionId: string;
}
export interface EventOrchestrationServiceSetRuleActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths).
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationServiceSetRuleCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface EventOrchestrationUnroutedCatchAll {
/**
* These are the actions that will be taken to change the resulting alert and incident. `catchAll` supports all actions described above for `rule` _except_ `routeTo` action.
*/
actions: outputs.EventOrchestrationUnroutedCatchAllActions;
}
export interface EventOrchestrationUnroutedCatchAllActions {
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationUnroutedCatchAllActionsExtraction[];
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
suppress: boolean;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationUnroutedCatchAllActionsVariable[];
}
export interface EventOrchestrationUnroutedCatchAllActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationUnroutedCatchAllActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data.
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationUnroutedSet {
/**
* The ID of this set of rules. Rules in other sets can route events into this set using the rule's `routeTo` property.
*/
id: string;
rules?: outputs.EventOrchestrationUnroutedSetRule[];
}
export interface EventOrchestrationUnroutedSetRule {
/**
* Actions that will be taken to change the resulting alert and incident, when an event matches this rule.
*/
actions: outputs.EventOrchestrationUnroutedSetRuleActions;
/**
* Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if any of these conditions match. If none are provided, the event will `always` match against the rule.
*/
conditions?: outputs.EventOrchestrationUnroutedSetRuleCondition[];
/**
* Indicates whether the rule is disabled and would therefore not be evaluated.
*/
disabled?: boolean;
/**
* The ID of the rule within the set.
*/
id: string;
/**
* A description of this rule's purpose.
*/
label?: string;
}
export interface EventOrchestrationUnroutedSetRuleActions {
/**
* sets whether the resulting alert status is trigger or resolve. Allowed values are: `trigger`, `resolve`
*/
eventAction?: string;
/**
* Replace any CEF field or Custom Details object field using custom variables.
*/
extractions?: outputs.EventOrchestrationUnroutedSetRuleActionsExtraction[];
/**
* The ID of a Set from this Unrouted Orchestration whose rules you also want to use with events that match this rule.
*/
routeTo?: string;
/**
* sets Severity of the resulting alert. Allowed values are: `info`, `error`, `warning`, `critical`
*/
severity?: string;
/**
* Populate variables from event payloads and use those variables in other event actions.
*/
variables?: outputs.EventOrchestrationUnroutedSetRuleActionsVariable[];
}
export interface EventOrchestrationUnroutedSetRuleActionsExtraction {
/**
* A [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) that will be matched against field specified via the `source` argument. If the regex contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. This field can be ignored for `template` based extractions.
*/
regex?: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths) like `event.summary` and you can reference previously-defined variables using a path like `variables.hostname`. This field can be ignored for `template` based extractions.
*/
source?: string;
/**
* The PagerDuty Common Event Format [PD-CEF](https://support.pagerduty.com/docs/pd-cef) field that will be set with the value from the `template` or based on `regex` and `source` fields.
*/
target: string;
/**
* A string that will be used to populate the `target` field. You can reference variables or event data within your template using double curly braces. For example:
* * Use variables named `ip` and `subnet` with a template like: `{{variables.ip}}/{{variables.subnet}}`
* * Combine the event severity & summary with template like: `{{event.severity}}:{{event.summary}}`
*/
template?: string;
}
export interface EventOrchestrationUnroutedSetRuleActionsVariable {
/**
* The name of the variable
*/
name: string;
/**
* Path to a field in an event, in dot-notation. This supports both [PD-CEF](https://support.pagerduty.com/docs/pd-cef) and non-CEF fields. Eg: Use `event.summary` for the `summary` CEF field. Use `raw_event.fieldname` to read from the original event `fieldname` data.
*/
path: string;
/**
* Only `regex` is supported
*/
type: string;
/**
* The Regex expression to match against. Must use valid [RE2 regular expression](https://github.com/google/re2/wiki/Syntax) syntax.
*/
value: string;
}
export interface EventOrchestrationUnroutedSetRuleCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface GetAlertGroupingSettingConfig {
/**
* One of `any` or `all`. This setting is only required and applies when `type` is set to `contentBased` or `contentBasedIntelligent`. Group alerts based on one or all of `fields` value(s).
*/
aggregate?: string;
/**
* Alerts will be grouped together if the content of these fields match. This setting is only required and applies when `type` is set to `contentBased` or `contentBasedIntelligent`.
*/
fields?: string[];
/**
* The maximum amount of time allowed between Alerts. This setting applies only when `type` is set to `intelligent`, `contentBased`, `contentBasedIntelligent`. Value must be between `300` and `3600` or exactly `86400` (86400 is supported only for `contentBased` alert grouping). Any Alerts arriving greater than `timeWindow` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the recommended time window leave this value unset or set it to `null`.
*/
timeWindow: number;
/**
* The duration in minutes within which to automatically group incoming alerts. This setting is only required and applies when `type` is set to `time`. To continue grouping alerts until the incident is resolved leave this value unset or set it to `null`.
*/
timeout: number;
}
export interface GetAutomationActionsActionActionDataReference {
/**
* (Optional) The command to execute the script with.
*/
invocationCommand: string;
/**
* (Optional) The arguments to pass to the Process Automation job execution.
*/
processAutomationJobArguments: string;
/**
* (Required for `processAutomation` action_type) The ID of the Process Automation job to execute.
*/
processAutomationJobId: string;
/**
* (Optional) The expression that filters on which nodes a Process Automation Job executes [Learn more](https://docs.rundeck.com/docs/manual/05-nodes.html#node-filtering).
*/
processAutomationNodeFilter: string;
/**
* (Required for `script` action_type) Body of the script to be executed on the Runner. Max length is 16777215 characters.
*/
script: string;
}
export interface GetEventOrchestrationGlobalCacheVariableCondition {
/**
* A [PCL condition](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview) string.
*/
expression: string;
}
export interface GetEventOrchestrationGlobalCacheVariableConfiguration {
/**
* The type of data that will eventually be set for the Cache Variable via an API request. This field is only used when type is `externalData`
*/
dataType?: string;
/**
* A [RE2 regular expression][4] that will be matched against the field specified via the `source` argument. This field is only used when `type` is `recentValue`
*/
regex: string;
/**
* The path to the event field where the `regex` will be applied to extract a value. You can use any valid [PCL path](https://developer.pagerduty.com/docs/ZG9jOjM1NTE0MDc0-pcl-overview#paths). This field is only used when `type` is `recentValue`
*/
source: string;
/**
* The number of seconds indicating how long to count incoming trigger events for. This field is only used when `type` is `triggerEventCount` or `externalData`
*/
ttlSeconds: number;
/**