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,
},
});
}
}