import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * An [escalation policy](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODEyNQ-create-an-escalation-policy) determines what user or schedule will be notified first, second, and so on when an incident is triggered. Escalation policies are used by one or more services. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pagerduty from "@pulumi/pagerduty"; * * const example = new pagerduty.Team("example", { * name: "Engineering", * description: "All engineering", * }); * const exampleUser = new pagerduty.User("example", { * name: "Earline Greenholt", * email: "125.greenholt.earline@graham.name", * teams: [example.id], * }); * const exampleEscalationPolicy = new pagerduty.EscalationPolicy("example", { * name: "Engineering Escalation Policy", * numLoops: 2, * teams: example.id, * rules: [{ * escalationDelayInMinutes: 10, * targets: [ * { * type: "user_reference", * id: exampleUser.id, * }, * { * type: "user_reference", * id: example2.id, * }, * ], * }], * }); * ``` * * ## Known issues * * Block `escalationRuleAssignmentStrategy` inside `rule` cannot be set explicitly when a PagerDuty account doesn't have access to the "Teams" feature, it will cause an error `POST API call to https://api.pagerduty.com/escalation_policies failed: 403 Forbidden`, please delete this block. * * ## Import * * Escalation policies can be imported using the `id`, e.g. * * ```sh * $ pulumi import pagerduty:index/escalationPolicy:EscalationPolicy main PLBP09X * ``` */ export declare class EscalationPolicy extends pulumi.CustomResource { /** * Get an existing EscalationPolicy resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: EscalationPolicyState, opts?: pulumi.CustomResourceOptions): EscalationPolicy; /** * Returns true if the given object is an instance of EscalationPolicy. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is EscalationPolicy; /** * A human-friendly description of the escalation policy. * If not set, a placeholder of "Managed by Pulumi" will be set. */ readonly description: pulumi.Output; /** * The name of the escalation policy. */ readonly name: pulumi.Output; /** * The number of times the escalation policy will repeat after reaching the end of its escalation. */ readonly numLoops: pulumi.Output; /** * An Escalation rule block. Escalation rules documented below. */ readonly rules: pulumi.Output; /** * Team associated with the policy (Only 1 team can be assigned to an Escalation Policy). Account must have the `teams` ability to use this parameter. */ readonly teams: pulumi.Output; /** * Create a EscalationPolicy resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: EscalationPolicyArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering EscalationPolicy resources. */ export interface EscalationPolicyState { /** * A human-friendly description of the escalation policy. * If not set, a placeholder of "Managed by Pulumi" will be set. */ description?: pulumi.Input; /** * The name of the escalation policy. */ name?: pulumi.Input; /** * The number of times the escalation policy will repeat after reaching the end of its escalation. */ numLoops?: pulumi.Input; /** * An Escalation rule block. Escalation rules documented below. */ rules?: pulumi.Input[]>; /** * Team associated with the policy (Only 1 team can be assigned to an Escalation Policy). Account must have the `teams` ability to use this parameter. */ teams?: pulumi.Input; } /** * The set of arguments for constructing a EscalationPolicy resource. */ export interface EscalationPolicyArgs { /** * A human-friendly description of the escalation policy. * If not set, a placeholder of "Managed by Pulumi" will be set. */ description?: pulumi.Input; /** * The name of the escalation policy. */ name?: pulumi.Input; /** * The number of times the escalation policy will repeat after reaching the end of its escalation. */ numLoops?: pulumi.Input; /** * An Escalation rule block. Escalation rules documented below. */ rules: pulumi.Input[]>; /** * Team associated with the policy (Only 1 team can be assigned to an Escalation Policy). Account must have the `teams` ability to use this parameter. */ teams?: pulumi.Input; }