pagerduty- Client library for PagerDuty Integration and REST APIs.

Safe HaskellNone




PagerDuty keeps a log of all the events that happen to an incident. The following APIs provide fine-grained access to this incident log entry data to give you more insight into how your team or organization is handling your incidents. Log entry data includes details about the event(s) that triggered the incident, who was notified and when, how they were notified, and who acknowledged or resolved it, amongst a few other things.



List Logs

data ListLogs


Eq ListLogs 
Show ListLogs 
ToJSON ListLogs 
HasDatatypeInfo ListLogs 
Generic ListLogs 
QueryLike ListLogs 
Paginate ListLogs 
type Code ListLogs 

listLogs :: Request ListLogs s [LogEntry]

List all incident log entries across the entire account.

GET /log_entries


listUserLogs :: UserId -> Request ListLogs s [LogEntry]

List all incident log entries that describe interactions with a specific user.

GET /users/:user_id/log_entries


listIncidentLogs :: IncidentKey -> Request ListLogs s [LogEntry]

List all incident log entries for a specific incident.

GET /incidents/:incident_id/log_entries


llTimeZone :: Lens' (Request ListLogs s b) TimeZone

Time zone in which dates in the result will be rendered.

Default: UTC.

llSince :: Lens' (Request ListLogs s b) (Maybe UTCTime)

The start of the date range over which you want to search.

llUntil :: Lens' (Request ListLogs s b) (Maybe UTCTime)

The end of the date range over which you want to search.

llIsOverview :: Lens' (Request ListLogs s b) Bool

If true, will only return log entries of type trigger, acknowlldge, or resolve.

Default: false.

Get Log

data GetLog


Eq GetLog 
Show GetLog 
ToJSON GetLog 
HasDatatypeInfo GetLog 
Generic GetLog 
QueryLike GetLog 
type Code GetLog 

getLog :: LogEntryId -> Request GetLog s LogEntry

Get details for a specific incident log entry. This method provides additional information you can use to get at raw event data.

GET /log_entries/:id


glTimeZone :: Lens' (Request GetLog s b) TimeZone

Time zone in which dates in the result will be rendered.

Default: UTC.



_ChanAuto :: Prism' Channel ()

_ChanTimeout :: Prism' Channel ()

ncSummary :: Lens' NagiosChannel Text

Same as host.

ncHost :: Lens' NagiosChannel Text

Nagios host.

ncService :: Lens' NagiosChannel (Maybe Text)

Nagios service that created the event, if applicable.

ncState :: Lens' NagiosChannel Text

State the caused the event.

ncDetails :: Lens' NagiosChannel Object

Additional details of the incident.

data APIChannel


acSummary :: Lens' APIChannel Text

Same as description.

acServiceKey :: Lens' APIChannel ServiceKey

API service key.

acDescription :: Lens' APIChannel Text

Description of the event.

acIncidentKey :: Lens' APIChannel IncidentKey

Incident deduping string.

acDetails :: Lens' APIChannel Object

Additional details of the incident, if any.

data EmailType




ecSummary :: Lens' EmailChannel Text

Same as subject.

ecTo :: Lens' EmailChannel Text

To address of the email.

ecFrom :: Lens' EmailChannel Text

From address of the email.

ecSubject :: Lens' EmailChannel Text

Subject of the email.

ecBody :: Lens' EmailChannel Text

Body of the email.

ecBodyContentType :: Lens' EmailChannel EmailType

Content type of the email body.

ecRawUrl :: Lens' EmailChannel Text

URL for raw text of email.

ecHtmlUrl :: Lens' EmailChannel (Maybe Text)

URL for html rendered version of the email.

Only present if content_type is HTML.

wcSummary :: Lens' WebTriggerChannel Text

Same as subject.

wcSubject :: Lens' WebTriggerChannel Text

Subject of the web trigger.

wcDetails :: Lens' WebTriggerChannel (Maybe Text)

Details about the web trigger.


data Entry


LogEntry LogEntry

Log entries come in a wide variety of types. Most types use this format, the exception being the NotifyEntry type.

NotifyEntry NotifyEntry

A user was notified.


data LogEntryType



The incident was triggered.


The incident was acknowledged.


The incident was unacknowledged.


The incident was resolved.


The incident was escalated.


The incident was assigned to a user.


A note was added to the incident.


The incident has reached the log entry trigger limit and will not create any more.


The incident has reached the end of its escalation policy and will restart.


The incident has cycled through its escalation policy the max allowed number of times.


A user was notified.

data LogEntry

The raw log event.


leId :: Lens' LogEntry LogEntryId

Id of the log entry.

leType :: Lens' LogEntry LogEntryType

The type of the log entry.

leCreatedAt :: Lens' LogEntry Date

Time at which the log entry was created.

leNote :: Lens' LogEntry (Maybe Text)

Optional field containing an action note, if one was included with the action.

leAssignedUser :: Lens' LogEntry (Maybe User)

Only for assign, escalate log entries. The user to which the incident is assigned.

leChannel :: Lens' LogEntry Channel

Representation of the means by which the action was channeled and the possible perfomer of this action.

data NotifyEntry

Notify log entries correspond to notifications sent to users. They have a distinct format from action log entries.


neCreatedAt :: Lens' NotifyEntry UTCTime

Time at which the log entry was created

neUser :: Lens' NotifyEntry User

User who was notified

neNotification :: Lens' NotifyEntry Notification

Object representing the notification itself

nType :: Lens' Notification NotificationType

Type of notification.

nStatus :: Lens' Notification NotificationStatus

The current status of the notification.

nAddress :: Lens' Notification Address

The address to which the notification was sent. I.e., an email address, phone number, or iPhone name.