4.6 KiB
layout | page_title | sidebar_current | description |
---|---|---|---|
pagerduty | PagerDuty: pagerduty_service | docs-pagerduty-resource-service | Creates and manages a service in PagerDuty. |
pagerduty_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
resource "pagerduty_user" "example" {
name = "Earline Greenholt"
email = "125.greenholt.earline@graham.name"
teams = ["${pagerduty_team.example.id}"]
}
resource "pagerduty_escalation_policy" "foo" {
name = "Engineering Escalation Policy"
num_loops = 2
rule {
escalation_delay_in_minutes = 10
target {
type = "user"
id = "${pagerduty_user.example.id}"
}
}
}
resource "pagerduty_service" "example" {
name = "My Web App"
auto_resolve_timeout = 14400
acknowledgement_timeout = 600
escalation_policy = "${pagerduty_escalation_policy.example.id}"
}
Argument Reference
The following arguments are supported:
name
- (Required) The name of the service.description
- (Optional) A human-friendly description of the escalation policy. If not set, a placeholder of "Managed by Terraform" will be set.auto_resolve_timeout
- (Optional) Time in seconds that an incident is automatically resolved if left open for that long. Disabled if not set.acknowledgement_timeout
- (Optional) Time in seconds that an incident changes to the Triggered State after being Acknowledged. Disabled if not set.escalation_policy
- (Required) The escalation policy used by this service.
You may specify one optional incident_urgency_rule
block configuring what urgencies to use.
Your PagerDuty account must have the urgencies
ability to assign an incident urgency rule.
The block contains the following arguments.
type
- The type of incident urgency:constant
oruse_support_hours
(when depending on specific suppor hours; seesupport_hours
).during_support_hours
- (Optional) Incidents' urgency during support hours.outside_support_hours
- (Optional) Incidents' urgency outside of support hours.
When using type = "use_support_hours"
in incident_urgency_rule
you have to specify exactly one otherwise optional support_hours
block.
Changes to support_hours
necessitate re-creating the service resource. Account must have the service_support_hours
ability to assign support hours.
The block contains the following arguments.
type
- The type of support hours. Can befixed_time_per_day
.time_zone
- The time zone for the support hours.days_of_week
- Array of days of week as integers.start_time
- The support hours' starting time of day.end_time
- The support hours' ending time of day.
When using type = "use_support_hours"
in the incident_urgency_rule
block you have to also specify scheduled_actions
for the service. Otherwise scheduled_actions
is optional. Changes necessitate re-createing the service resource.
type
- The type of scheduled action. Currently, this must be set tourgency_change
.at
- Represents when scheduled action will occur.name
- Designates either the start or the end of the scheduled action. Can besupport_hours_start
orsupport_hours_end
.
Below is an example for a pagerduty_service
resource with incident_urgency_rules
with type = "use_support_hours"
, support_hours
and a default scheduled_action
as well.
resource "pagerduty_service" "foo" {
name = "bar"
description = "bar bar bar"
auto_resolve_timeout = 3600
acknowledgement_timeout = 3600
escalation_policy = "${pagerduty_escalation_policy.foo.id}"
incident_urgency_rule {
type = "use_support_hours"
during_support_hours {
type = "constant"
urgency = "high"
}
outside_support_hours {
type = "constant"
urgency = "low"
}
}
support_hours {
type = "fixed_time_per_day"
time_zone = "America/Lima"
start_time = "09:00:00"
end_time = "17:00:00"
days_of_week = [ 1, 2, 3, 4, 5 ]
}
scheduled_actions {
type = "urgency_change"
to_urgency = "high"
at {
type = "named_time",
name = "support_hours_start"
}
}
}
Attributes Reference
The following attributes are exported:
id
- The ID of the service.
Import
Services can be imported using the id
, e.g.
$ terraform import pagerduty_service.main PLBP09X