@mapbox/pagerduty

4.0.0 • Public • Published

Build Status

pagerduty

A Node.js SDK for the PagerDuty v2 API

API

First, create a new PagerDuty SDK object. A PagerDuty API token that will be used by default for all methods can be included by specifying the pagerDutyToken option.

Parameters

  • options.pagerDutyToken string PagerDuty access token
  • options.timeout string? number of milliseconds used for read and connection timouets - defaults to 10 seconds if not specified

Example

const PagerDuty = require('@mapbox/pagerduty');
const pd = new PagerDuty({
  pagerDutyToken: process.env.API_TOKEN
});

pd.get({
  path: 'services'
  ...

get

Make a GET request to the PagerDuty API. You can choose to receive a specific response body property by specifying an options.key; otherwise, the entire response body will be returned. The PagerDuty access token can be provided explicitly.

Parameters

  • options.path string URL path and query
  • options.key string? Response body property to return
  • options.token string? PagerDuty access token
  • options.timeout string? number of milliseconds used for read and connection timouets

Example

const PagerDuty = require('@mapbox/pagerduty');
const pd = new PagerDuty();
const id = 'PPPPPPA';
pd.get({
  path: `users/${id}`,
  key: 'user'
}, (err, res) => {
  if (err) throw err;
  console.log(`Successfully fetched ${res[0].name} with ID ${id}.`);
});

post

Make a POST request to the PagerDuty API. The PagerDuty access token can be provided explicitly.

Parameters

  • options.path string URL path and query
  • options.body object POST request body
  • options.headers object? Additional headers, excluding Accept and Authorization
  • options.token string? PagerDuty access token
  • options.timeout string? number of milliseconds used for read and connection timouets

Example

const PagerDuty = require('@mapbox/pagerduty');
const pd = new PagerDuty();
pd.post({
  path: 'users',
  body: {
    user: {
      type: 'user',
      name: 'Dev Null',
      email: 'devnull@company.com',
      time_zone: 'America/New_York',
      color: 'blue-violet',
      role: 'user'
    }
  },
  headers: {
    From: 'anotherdevnull@company.com'
  }
}, (err, res) => {
  if (err) throw err;
  console.log(`Created ${res.body.user.summary} with ID ${res.body.user.id}.`);
});

put

Make a PUT request to the PagerDuty API. The PagerDuty access token can be provided explicitly.

Parameters

  • options.path string URL path and query
  • options.body object PUT request body
  • options.headers object? Additional headers, excluding Accept and Authorization
  • options.token string? PagerDuty access token
  • options.timeout string? number of milliseconds used for read and connection timouets

Example

const PagerDuty = require('@mapbox/pagerduty');
const pd = new PagerDuty();
const id = 'PPPPPPA';
pd.put({
  path: `users/${id}`,
  body: {
    user: {
      job_title: 'Software Engineer'
    }
  }
}, (err, res) => {
  if (err) throw err;
  console.log(`Successfully updated ${res.body.user.name}'s user description to ${res.body.user.description}`);
});

delete

Make a DELETE request to the PagerDuty API. The PagerDuty access token can be provided explicitly.

Parameters

  • options.path string URL path and query
  • options.token string? PagerDuty access token
  • options.timeout string? number of milliseconds used for read and connection timouets

Example

const PagerDuty = require('@mapbox/pagerduty');
const pd = new PagerDuty();
const id = 'PPPPPPA';
pd.delete({
  path: `users/${id}`
}, (err, res) => {
  if (err) throw err;
  console.log(`Successfully deleted user ID ${id}.`);
});

Readme

Keywords

none

Package Sidebar

Install

npm i @mapbox/pagerduty

Weekly Downloads

11

Version

4.0.0

License

ISC

Unpacked Size

50.4 kB

Total Files

19

Last publish

Collaborators

  • mbx-npm-ci-production
  • mbx-npm-ci-staging
  • mbx-npm-advanced-actions-production
  • mbx-npm-advanced-actions-staging
  • mbx-npm-09-production
  • mbx-npm-08-production
  • mbx-npm-07-production
  • mbx-npm-06-production
  • mbx-npm-05-production
  • mbx-npm-04-production
  • mbx-npm-03-production
  • mbx-npm-02-production
  • mbx-npm-01-production
  • mbx-npm-02-staging
  • mapbox-npm-01
  • mapbox-npm-02
  • mapbox-npm-07
  • mapbox-npm-03
  • mapbox-npm-04
  • mapbox-npm-09
  • mapbox-npm-05
  • mapbox-npm-06
  • mapbox-npm-08
  • mapbox-npm-advanced-actions
  • mapbox-npm-ci
  • mapbox-npm
  • mapbox-admin
  • mapbox-machine-user