https://github.com/comodal/pagerduty-client
PagerDuty Event Client
https://github.com/comodal/pagerduty-client
java-library pagerduty
Last synced: 9 months ago
JSON representation
PagerDuty Event Client
- Host: GitHub
- URL: https://github.com/comodal/pagerduty-client
- Owner: comodal
- License: apache-2.0
- Created: 2018-08-01T14:30:39.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T00:39:15.000Z (over 1 year ago)
- Last Synced: 2024-08-09T02:09:28.089Z (over 1 year ago)
- Topics: java-library, pagerduty
- Language: Java
- Homepage:
- Size: 641 KB
- Stars: 5
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PagerDuty Event Client [](https://github.com/comodal/pagerduty-client/actions/workflows/gradle-check.yml)
This client aims to be compliant with the latest version of
the [PagerDuty Event API](https://v2.developer.pagerduty.com/docs/events-api-v2), currently V2. It also only aims to be
supported against the latest GA OpenJDK release.
## Hello Event Trigger
```java
var client=PagerDutyEventClient.build()
.defaultClientName("CLIENT_NAME")
.defaultRoutingKey("INTEGRATION_KEY")
.authToken("AUTH_TOKEN")
.create();
var bigInteger = new BigInteger("20988936657440586486151264256610222593863921");
var payload = PagerDutyEventPayload.build()
.summary("test-summary")
.source("test-source")
.severity(PagerDutySeverity.critical)
.timestamp(ZonedDateTime.now(UTC))
.component("test-component")
.group("test-group")
.type("test-class")
.customDetails("test-num-metric", 1)
.customDetails("test-boolean", true)
.customDetails("test-string", "val")
.customDetails("test-nested-json", """
{"test": "json"}""")
.customDetails("test-big-decimal", new BigDecimal(bigInteger).add(BigDecimal.valueOf(0.123456789)))
.customDetails("test-big-integer", bigInteger)
.link(PagerDutyLinkRef.build()
.href("https://github.com/comodal/pagerduty-client")
.text("Github pagerduty-client")
.create())
.image(PagerDutyImageRef.build()
.src("https://www.pagerduty.com/wp-content/uploads/2016/05/pagerduty-logo-green.png")
.href("https://www.pagerduty.com/")
.alt("pagerduty")
.create())
.create();
var triggerResponse = client.triggerDefaultRouteEvent(payload).join();
System.out.println(triggerResponse);
var resolveResponse = client.resolveEvent(triggerResponse.getDedupeKey()).join();
System.out.println(resolveResponse);
```
## Hello Change Event
```java
var client = PagerDutyEventClient.build()
.defaultClientName("CLIENT_NAME")
.defaultRoutingKey("INTEGRATION_KEY")
.authToken("AUTH_TOKEN")
.create();
var bigInteger = new BigInteger("20988936657440586486151264256610222593863921");
var payload = PagerDutyChangeEventPayload.build()
.summary("test-summary")
.source("test-source")
.timestamp(ZonedDateTime.now(UTC))
.customDetails("test-num-metric", 1)
.customDetails("test-boolean", true)
.customDetails("test-string", "val")
.customDetails("test-nested-json", """
{"test": "json"}""")
.customDetails("test-big-decimal", new BigDecimal(bigInteger).add(BigDecimal.valueOf(0.123456789)))
.customDetails("test-big-integer", bigInteger)
.link(PagerDutyLinkRef.build()
.href("https://github.com/comodal/pagerduty-client")
.text("Github pagerduty-client")
.create())
.create();
var changeEventResponse = client.defaultRouteChangeEvent(payload).join();
System.out.println(changeEventResponse);
```
## Library Layout
The core
module [systems.comodal.pagerduty_event_client](systems.comodal.pagerduty_event_client/src/main/java/module-info.java)
has direct dependencies on `java.base`, `java.net.http` and
a [PagerDutyEventAdapterFactory](systems.comodal.pagerduty_event_client/src/main/java/systems/comodal/pagerduty/event/data/adapters/PagerDutyEventAdapterFactory.java).
The [systems.comodal.pagerduty_event_json_iterator_adapter](systems.comodal.pagerduty_event_json_iterator_adapter/src/main/java/module-info.java)
module provides this factory and has a dependency
on [systems.comodal.json_iterator](https://github.com/comodal/json-iterator).
This separation is intended to make it easy for you to provide your own json parser (dependency) if desired. If not,
just use it, it is minimal and has no further transitive dependencies.
```bash
> ./gradlew pagerduty-event-json-iterator-adapter:dependencies
+--- project :pagerduty-event-client
\--- systems.comodal:json-iterator:+
```
## Example Gradle Configuration
```groovy
ext {
pagerDutyClient = "+"
}
dependencies {
implementation "systems.comodal:pagerduty-event-json-iterator-adapter:$pagerDutyClient"
implementation "systems.comodal:pagerduty-event-client:$pagerDutyClient"
}
```