# node-pagerduty

> PagerDuty v2 API Wrapper for Node

Latest version **1.3.6** (published 2020-11-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install node-pagerduty
pnpm add node-pagerduty
yarn add node-pagerduty
bun add node-pagerduty
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.6 |
| Published | 2020-11-18 |
| First published | 2017-08-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 161 KB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 18 |
| Author | Kevin Martin |
| Maintainers | kmart2234 |
| Keywords | pagerduty, node, promises |

## Links

- npm: https://www.npmjs.com/package/node-pagerduty
- Repository: https://github.com/kmartin-215/node-pagerduty
- Homepage: https://github.com/kmartin-215/node-pagerduty#readme
- Issues: https://github.com/kmartin-215/node-pagerduty/issues
- npm.io page: https://npm.io/package/node-pagerduty

## Dependencies (6)

- [g](https://npm.io/package/g.md) ^2.0.1
- [npm](https://npm.io/package/npm.md) ^7.0.6
- [request](https://npm.io/package/request.md) 2.88.0
- [deepmerge](https://npm.io/package/deepmerge.md) 4.2.2
- [query-string](https://npm.io/package/query-string.md) 6.13.6
- [request-promise-native](https://npm.io/package/request-promise-native.md) 1.0.5

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.3.6 (latest) — 2020-11-18
- 1.3.5 — 2020-10-30
- 1.3.4 — 2020-09-14
- 1.3.3 — 2020-09-02
- 1.3.1 — 2020-06-19
- 1.3.0 — 2020-06-19
- 1.2.0 — 2020-02-27
- 1.1.7 — 2020-02-03
- 1.1.6 — 2019-10-18
- 1.1.5 — 2019-06-08
- 1.1.4 — 2019-06-07
- 1.1.3 — 2019-06-07
- 1.1.2 — 2019-04-23
- 1.1.1 — 2019-01-02
- 1.1.0 — 2018-12-14
- … 4 more at https://npm.io/package/node-pagerduty/versions

## README

# DEPRECATED
Please begin using the official PagerDuty repository located here
https://github.com/PagerDuty/pdjs

## Installation

```
npm install --save node-pagerduty
```

The `--save` tells NPM to automatically add it to your `package.json` file

## Usage

```
// Import a module
const pdClient = require('node-pagerduty');

const pdapiToken = 'yourapiTokenGoesHere';
const pd = new pdClient(pdapiToken);

let yourId = 'yourScheduleIdGoesHere';
let yourQs = {
   time_zone: 'UTC',
   since: 'yourSince',
   until: 'yourUntil'
};

// Using it to get things done

pd.schedules.getSchedule(yourId, yourQs)
   .then(res => {
      console.log(res);
   })
   .catch(err => {
      console.log(err);
   });
```

## OAuth Bearer Tokens
This library also supports the usage of `Bearer` tokens generated by OAuth2. To initialize a new `pdClient` with a `Bearer` token simply pass a second argument of `Bearer` for the token type. The whole call would look something like this:
```
const pd = new pdClient(pdapiToken, 'Bearer');
```

## Optional Request Parameters
You can override or add to the [request options](https://www.npmjs.com/package/request#requestoptions-callback), 
allowing for things such as proxying or setting a higher timeout for slower connections. This parameter is optional.
```
const myCustomOptions = {
    "proxy": "https://proxy.example.com",
    "headers": {
        "Proxy-Authorization": "Basic xxxxxxxxxxxx",
        "dont-send-to-proxy": "ok",
        "dont-send-to-dest": "ok"
    },
    "timeout": 10000
};

const pd = new pdClient(pdapiToken, null, myCustomOptions)
```

## Methods
All methods follow the [official API documentation](https://v2.developer.pagerduty.com/).

This is a promise based library: `(fullfilled, rejected)`

### Abilities
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Abilities
```
abilities.listAbilities()
abilities.testAbility(id)
```

### Add-Ons
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Add-ons
```
addOns.listAddOns(qs)
addOns.installAddOn(payload)
addOns.deleteAddOn(id)
addOns.getAddOn(id)
addOns.updateAddOn(id, payload)
```

### Analytics
https://developer.pagerduty.com/api-reference/reference/REST/openapiv3.json/paths/~1analytics~1raw~1incidents~1%7Bid%7D/get
```
analytics.getIncidentData(id)
analytics.getIncidentsData()
```

### Business Services
https://developer.pagerduty.com/api-reference/reference/REST/openapiv3.json/paths/~1business_services/get
```
businessServices.listBusinessServices(qs)
businessServices.createBusinessService(payload)
businessServices.deleteBusinessService(id)
businessServices.getBusinessService(id)
businessServices.updateBusinessService(id, payload)
```

### Contextual Search
https://api-reference.pagerduty.com/#!/Contextual_Search
```
contextualSearch.listTags(qs)
contextualSearch.createTag(payload)
contextualSearch.deleteTag(id)
contextualSearch.getTag(id)
contextualSearch.getConnectedEntities(id, entity_type)
contextualSearch.assignTags(entity_type, id, payload)
```

### Escalation Policies
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Escalation_Policies
```
escalationPolicies.listEscalationPolicies(qs)
escalationPolicies.createEscalationPolicy(from, payload)
escalationPolicies.deleteEscalationPolicy(id)
escalationPolicies.getEscalationPolicy(id, qs)
escalationPolicies.updateEscalationPolicy(id, payload)
```

### Event Rules
*Note: Event Rules endpoint does not work with Bearer tokens. Only Token tokens*
https://v2.developer.pagerduty.com/docs/global-event-rules-api
```
eventRules.listEventRules()
eventRules.createEventRule(id, payload)
eventRules.deleteEventRule(id)
eventRules.updateEventRule(id, payload)
```

### Extension Schemas
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Extension_Schemas
```
extensionSchemas.listExtensionSchemas()
extensionSchemas.getExtensionVendor(id)
```

### Extensions
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Extensions
```
extensions.listExtensions(qs)
extensions.createExtension(payload)
extensions.deleteExtension(id)
extensions.getExtension(id, qs)
extensions.updateExtension(id, payload)
```

### Events
https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2
```
events.sendEvent(payload)
```

### Incidents
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Incidents
```
incidents.listIncidents(qs)
incidents.createIncident(from, payload)
incidents.manageIncident(from, payload)
incidents.mergeIncidents(id, from, payload)
incidents.getIncident(id)
incidents.updateIncident(id, from, payload)
incidents.listAlerts(id, qs)
incidents.manageAlerts(id, from, payload)
incidents.getAlert(id, alert_id)
incidents.updateAlert(id, alert_id, from, payload)
incidents.listLogEntries(id, qs)
incidents.listNotes(id)
incidents.createNote(id, from, payload)
incidents.createStatusUpdate(id, from, payload)
incidents.createResponderRequest(id, from, payload)
incidents.snoozeIncident(id, from, payload)
```

### Priorities
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Priorities
```
priorities.listPriorities()
```

### Response Plays
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Response_Plays
```
responsePlays.createResponseReplay(payload)
responsePlays.deleteResponseReplay(id)
responsePlays.getResponseReplay(id)
responsePlays.listResponseReplay(qs)
responsePlays.runResponsePlay(id, from, payload)
responsePlays.updateResponseReplay(id, payload)
```

### Log Entries
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Log_Entries
```
logEntries.listLogEntries(qs)
logEntries.getLogEntry(id, qs)
```

### Maintenance Windows
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Maintenance_Windows
```
maintenanceWindows.listMaintenanceWindows(qs)
maintenanceWindows.createMaintenanceWindow(from, payload)
maintenanceWindows.deleteMaintenanceWindow(id)
maintenanceWindows.getMaintenanceWindow(id, qs)
maintenanceWindows.updateMaintenanceWindow(id, payload)
```

### Notifications
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Notifications
```
notifications.listNotifications(qs)
```

### On-Calls
https://v2.developer.pagerduty.com/v2/page/api-reference#!/On-Calls
```
onCalls.listAllOnCalls(qs)
```

### Rulesets
https://developer.pagerduty.com/api-reference/reference/REST/openapiv3.json/paths/~1rulesets/get
```
rulesets.listRulesets(qs)
rulesets.getRuleset(id)
rulesets.createRuleset(payload)
rulesets.updateRuleset(id, payload)
rulesets.deleteRuleset(id)
rulesets.listRulesetRules(id, qs)
rulesets.createRulesetRule(id, payload)
rulesets.getRulesetRule(rulesetId, ruleId)
rulesets.deleteRulesetRule(rulesetId, ruleId)
rulesets.updateRulesetRule(rulesetId, ruleId, payload)
```

### Schedules
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Schedules
```
schedules.listSchedule(qs)
schedules.createSchedule(payload)
schedules.previewSchedule(qs, payload)
schedules.deleteSchedule(id)
schedules.getSchedule(id, qs)
schedules.updateSchedule(id, qs, payload)
schedules.listOverrides(id, qs)
schedules.createOverride(id, payload)
schedules.deleteOverride(id, override_id)
schedules.listUsersOnCall(id, qs)
```

### Service Dependencies
https://developer.pagerduty.com/api-reference/reference/REST/openapiv3.json/paths/~1service_dependencies~1associate/post
```
serviceDependencies.associateDependencies(payload)
serviceDependencies.disassociateDependencies(payload)
serviceDependencies.getBusinessServiceDependencies(id)
serviceDependencies.getTechnicalServiceDependencies(id)
```

### Services
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Services
```
services.listServices(qs)
services.createService(payload)
services.deleteService(id)
services.getService(id, qs)
services.updateService(id, payload)
services.createIntegration(id, payload)
services.viewIntegration(id, integration_id)
services.updateIntegration(id, integration_id, payload)
```

### Teams
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Teams
```
teams.listTeams(qs)
teams.createTeam(payload)
teams.deleteTeam(id, qs)
teams.getTeam(id, qs)
teams.updateTeam(id, payload)
teams.getTeamMembers(id, qs)
teams.removeEscalationPolicy(id, policy_id)
teams.addEscalationPolicy(id, policy_id)
teams.removeUser(id, user_id)
teams.addUser(id, user_id, payload)
```

### Users
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Users
```
users.listUsers(qs)
users.createUser(from, payload)
users.deleteUser(id)
users.getUser(id, qs)
users.updateUser(id, payload)
users.getCurrentUser(qs)
users.listContactMethods(id)
users.createContactMethod(id, payload)
users.deleteContactMethod(id, contact_method_id)
users.getContactMethod(id, contact_method_id)
users.updateContactMethod(id, contact_method_id, payload)
users.listNotificationRules(id, qs)
users.createNotificationRule(id, payload)
users.deleteNotificationRule(id, rule_id)
users.getNotificationRule(id, rule_id, qs)
users.updateNotificationRule(id, rule_id, payload)
users.deleteAllUserSessions(id)
users.listUserActiveSessions(id)
users.deleteUsersSession(id, type, session_id)
users.getUsersSession(id, type, session_id)
```

### Vendors
https://v2.developer.pagerduty.com/v2/page/api-reference#!/Vendors
```
vendors.listVendors()
vendors.getVendor(id)
```

## License
MIT license. See the LICENSE file for details.

---
_Source: https://npm.io/package/node-pagerduty · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
