1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! Unofficial PagerDuty API Client
//!
//! The code for this project resides at https://github.com/jwilm/pagerduty-rs.
//!
//! This is an early version of the PagerDuty API Client. Many of the APIs are not yet implemented
//! in this client. The initial features implemented are those necessary to create new incidents
//! from a monitoring service. Furthemore, this library only works on Rust _nightlies_ at the
//! moment; we are using the Serde library for handling JSON serialization and make extensive use of
//! the automatically derived `De/Serialize` implementations.
//!
//! # Support
//!
//! The following APIs are **supported**
//!
//! * Integration API
//!
//! The following APIs are **unsupported**
//!
//! * Alerts
//! * Escalation Policies
//! * Incidents
//! * Log Entries
//! * Maintenance Windows
//! * Reports
//! * Schedules
//! * Services
//! * Users
//! * Teams
//!
//! Additionally, the following features are unsupported
//!
//! * Webhooks
//!
//! If you are interested in using this library and the feature you want is not yet implemented,
//! please file an issue on this project's repository. Features will be implemented on a
//! most-in-demand basis.
//!
//! # Tips
//!
//! There are a few things to know that might ease getting started with this library.
//!
//! * Request types store string values as `Cow<'a, str>`, and setters for these properties accept
//! `Into<Cow<'a, str>>` to keep the API ergononmic.
//! * Parts of the API (specifically, integration event `set_details`) let you provide arbitrary
//! data with the request. Any structured type that implements `Serialize` can be used in these
//! cases. There's currently no enforcement of the _structured_ part of that contract. If you do not
//! uphold that constaint, you will probably get a `BadRequest` response.
//!
#![feature(custom_derive, plugin)]
#![plugin(serde_macros)]

extern crate hyper;
extern crate serde;
extern crate serde_json;

pub mod integration;

mod auth;
pub use auth::*;

mod request;