Show / Hide Table of Contents

Namespace Pulumi.Pagerduty

Classes

Addon

With add-ons, third-party developers can write their own add-ons to PagerDuty's UI. Given a configuration containing a src parameter, that URL will be embedded in an iframe on a page that's available to users from a drop-down menu.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.Addon("example", new Pagerduty.AddonArgs
    {
        Src = "https://intranet.example.com/status",
    });
}

}

AddonArgs

AddonState

BusinessService

A business service allows you to model capabilities that span multiple technical services and that may be owned by several different teams.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.BusinessService("example", new Pagerduty.BusinessServiceArgs
    {
        Description = "A very descriptive description of this business service",
        PointOfContact = "PagerDuty Admin",
    });
}

}

BusinessServiceArgs

BusinessServiceState

Config

EscalationPolicy

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

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var exampleTeam = new Pagerduty.Team("exampleTeam", new Pagerduty.TeamArgs
    {
        Description = "All engineering",
    });
    var exampleUser = new Pagerduty.User("exampleUser", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
        Teams = 
        {
            exampleTeam.Id,
        },
    });
    var exampleEscalationPolicy = new Pagerduty.EscalationPolicy("exampleEscalationPolicy", new Pagerduty.EscalationPolicyArgs
    {
        NumLoops = 2,
        Rules = 
        {
            new Pagerduty.Inputs.EscalationPolicyRuleArgs
            {
                EscalationDelayInMinutes = 10,
                Target = 
                {

                    {
                        { "id", exampleUser.Id },
                        { "type", "user" },
                    },
                },
            },
        },
        Teams = 
        {
            exampleTeam.Id,
        },
    });
}

}

EscalationPolicyArgs

EscalationPolicyState

EventRule

EventRuleArgs

EventRuleState

Extension

An extension can be associated with a service.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var webhook = Output.Create(Pagerduty.GetExtensionSchema.InvokeAsync(new Pagerduty.GetExtensionSchemaArgs
    {
        Name = "Generic V2 Webhook",
    }));
    var exampleUser = new Pagerduty.User("exampleUser", new Pagerduty.UserArgs
    {
        Email = "howard.james@example.domain",
        Teams = 
        {
            pagerduty_team.Example.Id,
        },
    });
    var foo = new Pagerduty.EscalationPolicy("foo", new Pagerduty.EscalationPolicyArgs
    {
        NumLoops = 2,
        Rules = 
        {
            new Pagerduty.Inputs.EscalationPolicyRuleArgs
            {
                EscalationDelayInMinutes = 10,
                Target = 
                {

                    {
                        { "id", exampleUser.Id },
                        { "type", "user" },
                    },
                },
            },
        },
    });
    var exampleService = new Pagerduty.Service("exampleService", new Pagerduty.ServiceArgs
    {
        AcknowledgementTimeout = 600,
        AutoResolveTimeout = 14400,
        EscalationPolicy = pagerduty_escalation_policy.Example.Id,
    });
    var slack = new Pagerduty.Extension("slack", new Pagerduty.ExtensionArgs
    {
        Config = @"{
""restrict"": ""any"",
""notify_types"": {
""resolve"": false,
""acknowledge"": false,
""assignments"": false
},
""access_token"": ""XXX""
}

",
        EndpointUrl = "https://generic_webhook_url/XXXXXX/BBBBBB",
        ExtensionObjects = 
        {
            exampleService.Id,
        },
        ExtensionSchema = webhook.Apply(webhook => webhook.Id),
    });
}

}

ExtensionArgs

ExtensionState

GetBusinessService

GetBusinessServiceArgs

GetBusinessServiceResult

GetEscalationPolicy

GetEscalationPolicyArgs

GetEscalationPolicyResult

GetExtensionSchema

GetExtensionSchemaArgs

GetExtensionSchemaResult

GetPriority

GetPriorityArgs

GetPriorityResult

GetSchedule

GetScheduleArgs

GetScheduleResult

GetService

GetServiceArgs

GetServiceResult

GetTeam

GetTeamArgs

GetTeamResult

GetUser

GetUserArgs

GetUserResult

GetVendor

GetVendorArgs

GetVendorResult

MaintenanceWindow

A maintenance window is used to temporarily disable one or more services for a set period of time. No incidents will be triggered and no notifications will be received while a service is disabled by a maintenance window.

Maintenance windows are specified to start at a certain time and end after they have begun. Once started, a maintenance window cannot be deleted; it can only be ended immediately to re-enable the service.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.MaintenanceWindow("example", new Pagerduty.MaintenanceWindowArgs
    {
        EndTime = "2015-11-09T22:00:00-05:00",
        Services = 
        {
            pagerduty_service.Example.Id,
        },
        StartTime = "2015-11-09T20:00:00-05:00",
    });
}

}

MaintenanceWindowArgs

MaintenanceWindowState

Provider

The provider type for the pagerduty package. By default, resources use package-wide configuration settings, however an explicit Provider instance may be created and passed during resource construction to achieve fine-grained programmatic control over provider settings. See the documentation for more information.

ProviderArgs

Ruleset

Rulesets allow you to route events to an endpoint and create collections of event rules, which define sets of actions to take based on event content.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var fooTeam = new Pagerduty.Team("fooTeam", new Pagerduty.TeamArgs
    {
    });
    var fooRuleset = new Pagerduty.Ruleset("fooRuleset", new Pagerduty.RulesetArgs
    {
        Team = new Pagerduty.Inputs.RulesetTeamArgs
        {
            Id = fooTeam.Id,
        },
    });
}

}

RulesetArgs

RulesetRule

An event rule allows you to set actions that should be taken on events that meet your designated rule criteria.

RulesetRuleArgs

RulesetRuleState

RulesetState

Schedule

A schedule determines the time periods that users are on call. Only on-call users are eligible to receive notifications from incidents.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.User("example", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
        Teams = 
        {
            pagerduty_team.Example.Id,
        },
    });
    var foo = new Pagerduty.Schedule("foo", new Pagerduty.ScheduleArgs
    {
        Layers = 
        {
            new Pagerduty.Inputs.ScheduleLayerArgs
            {
                Name = "Night Shift",
                Restriction = 
                {

                    {
                        { "durationSeconds", 32400 },
                        { "startTimeOfDay", "08:00:00" },
                        { "type", "daily_restriction" },
                    },
                },
                RotationTurnLengthSeconds = 86400,
                RotationVirtualStart = "2015-11-06T20:00:00-05:00",
                Start = "2015-11-06T20:00:00-05:00",
                Users = 
                {
                    pagerduty_user.Foo.Id,
                },
            },
        },
        TimeZone = "America/New_York",
    });
}

}

ScheduleArgs

ScheduleState

Service

A service represents something you monitor (like a web service, email service, or database service). It is a container for related incidents that associates them with escalation policies.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var exampleUser = new Pagerduty.User("exampleUser", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
        Teams = 
        {
            pagerduty_team.Example.Id,
        },
    });
    var foo = new Pagerduty.EscalationPolicy("foo", new Pagerduty.EscalationPolicyArgs
    {
        NumLoops = 2,
        Rules = 
        {
            new Pagerduty.Inputs.EscalationPolicyRuleArgs
            {
                EscalationDelayInMinutes = 10,
                Target = 
                {

                    {
                        { "id", exampleUser.Id },
                        { "type", "user" },
                    },
                },
            },
        },
    });
    var exampleService = new Pagerduty.Service("exampleService", new Pagerduty.ServiceArgs
    {
        AcknowledgementTimeout = 600,
        AlertCreation = "create_incidents",
        AutoResolveTimeout = 14400,
        EscalationPolicy = pagerduty_escalation_policy.Example.Id,
    });
}

}

ServiceArgs

ServiceDependency

A service dependency is a relationship between a business service and technical and business services that this service uses, or that are used by this service, and are critical for successful operation.

ServiceDependencyArgs

ServiceDependencyState

ServiceIntegration

A service integration is an integration that belongs to a service.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var exampleUser = new Pagerduty.User("exampleUser", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
        Teams = 
        {
            pagerduty_team.Example.Id,
        },
    });
    var foo = new Pagerduty.EscalationPolicy("foo", new Pagerduty.EscalationPolicyArgs
    {
        NumLoops = 2,
        Rules = 
        {
            new Pagerduty.Inputs.EscalationPolicyRuleArgs
            {
                EscalationDelayInMinutes = 10,
                Target = 
                {

                    {
                        { "id", exampleUser.Id },
                        { "type", "user" },
                    },
                },
            },
        },
    });
    var exampleService = new Pagerduty.Service("exampleService", new Pagerduty.ServiceArgs
    {
        AcknowledgementTimeout = 600,
        AutoResolveTimeout = 14400,
        EscalationPolicy = pagerduty_escalation_policy.Example.Id,
    });
    var exampleServiceIntegration = new Pagerduty.ServiceIntegration("exampleServiceIntegration", new Pagerduty.ServiceIntegrationArgs
    {
        Service = exampleService.Id,
        Type = "generic_events_api_inbound_integration",
    });
    var datadogVendor = Output.Create(Pagerduty.GetVendor.InvokeAsync(new Pagerduty.GetVendorArgs
    {
        Name = "Datadog",
    }));
    var datadogServiceIntegration = new Pagerduty.ServiceIntegration("datadogServiceIntegration", new Pagerduty.ServiceIntegrationArgs
    {
        Service = exampleService.Id,
        Vendor = datadogVendor.Apply(datadogVendor => datadogVendor.Id),
    });
    var cloudwatchVendor = Output.Create(Pagerduty.GetVendor.InvokeAsync(new Pagerduty.GetVendorArgs
    {
        Name = "Cloudwatch",
    }));
    var cloudwatchServiceIntegration = new Pagerduty.ServiceIntegration("cloudwatchServiceIntegration", new Pagerduty.ServiceIntegrationArgs
    {
        Service = exampleService.Id,
        Vendor = cloudwatchVendor.Apply(cloudwatchVendor => cloudwatchVendor.Id),
    });
}

}

ServiceIntegrationArgs

ServiceIntegrationState

ServiceState

Team

A team is a collection of users and escalation policies that represent a group of people within an organization.

The account must have the teams ability to use the following resource.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.Team("example", new Pagerduty.TeamArgs
    {
        Description = "All engineering",
    });
}

}

TeamArgs

TeamMembership

A team membership manages memberships within a team.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var fooUser = new Pagerduty.User("fooUser", new Pagerduty.UserArgs
    {
        Email = "foo@bar.com",
    });
    var fooTeam = new Pagerduty.Team("fooTeam", new Pagerduty.TeamArgs
    {
        Description = "foo",
    });
    var fooTeamMembership = new Pagerduty.TeamMembership("fooTeamMembership", new Pagerduty.TeamMembershipArgs
    {
        Role = "manager",
        TeamId = fooTeam.Id,
        UserId = fooUser.Id,
    });
}

}

TeamMembershipArgs

TeamMembershipState

TeamState

User

A user is a member of a PagerDuty account that have the ability to interact with incidents and other data on the account.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.User("example", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
    });
}

}

UserArgs

UserContactMethod

A contact method is a contact method for a PagerDuty user (email, phone or SMS).

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.User("example", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
        Teams = 
        {
            pagerduty_team.Example.Id,
        },
    });
    var email = new Pagerduty.UserContactMethod("email", new Pagerduty.UserContactMethodArgs
    {
        Address = "foo@bar.com",
        Label = "Work",
        Type = "email_contact_method",
        UserId = example.Id,
    });
    var phone = new Pagerduty.UserContactMethod("phone", new Pagerduty.UserContactMethodArgs
    {
        Address = "2025550199",
        CountryCode = "+1",
        Label = "Work",
        Type = "phone_contact_method",
        UserId = example.Id,
    });
    var sms = new Pagerduty.UserContactMethod("sms", new Pagerduty.UserContactMethodArgs
    {
        Address = "2025550199",
        CountryCode = "+1",
        Label = "Work",
        Type = "sms_contact_method",
        UserId = example.Id,
    });
}

}

UserContactMethodArgs

UserContactMethodState

UserNotificationRule

A notification rule configures where and when a PagerDuty user is notified when a triggered incident is assigned to him. Unique notification rules can be created for both high and low-urgency incidents.

Example Usage

using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

class MyStack : Stack
{
public MyStack()
{
    var example = new Pagerduty.User("example", new Pagerduty.UserArgs
    {
        Email = "125.greenholt.earline@graham.name",
    });
    var email = new Pagerduty.UserContactMethod("email", new Pagerduty.UserContactMethodArgs
    {
        UserId = example.Id,
        Type = "email_contact_method",
        Address = "foo@bar.com",
        Label = "Work",
    });
    var phone = new Pagerduty.UserContactMethod("phone", new Pagerduty.UserContactMethodArgs
    {
        UserId = example.Id,
        Type = "phone_contact_method",
        CountryCode = "+1",
        Address = "2025550199",
        Label = "Work",
    });
    var sms = new Pagerduty.UserContactMethod("sms", new Pagerduty.UserContactMethodArgs
    {
        UserId = example.Id,
        Type = "sms_contact_method",
        CountryCode = "+1",
        Address = "2025550199",
        Label = "Work",
    });
    var highUrgencyPhone = new Pagerduty.UserNotificationRule("highUrgencyPhone", new Pagerduty.UserNotificationRuleArgs
    {
        UserId = example.Id,
        StartDelayInMinutes = 1,
        Urgency = "high",
        ContactMethod = new Pagerduty.Inputs.UserNotificationRuleContactMethodArgs
        {
            Type = "phone_contact_method",
            Id = phone.Id,
        },
    });
    var lowUrgencyEmail = new Pagerduty.UserNotificationRule("lowUrgencyEmail", new Pagerduty.UserNotificationRuleArgs
    {
        UserId = example.Id,
        StartDelayInMinutes = 1,
        Urgency = "low",
        ContactMethod = new Pagerduty.Inputs.UserNotificationRuleContactMethodArgs
        {
            Type = "email_contact_method",
            Id = email.Id,
        },
    });
    var lowUrgencySms = new Pagerduty.UserNotificationRule("lowUrgencySms", new Pagerduty.UserNotificationRuleArgs
    {
        UserId = example.Id,
        StartDelayInMinutes = 10,
        Urgency = "low",
        ContactMethod = new Pagerduty.Inputs.UserNotificationRuleContactMethodArgs
        {
            Type = "sms_contact_method",
            Id = sms.Id,
        },
    });
}

}

UserNotificationRuleArgs

UserNotificationRuleState

UserState

Back to top Copyright 2016-2020, Pulumi Corporation.