13 releases (stable)

4.1.1 Oct 7, 2024
4.0.1 Oct 4, 2024
3.2.0 May 12, 2023
2.0.0 Nov 1, 2021
0.2.3 Nov 29, 2019

#428 in Web programming

Download history 6/week @ 2024-07-25 2/week @ 2024-08-01 13/week @ 2024-09-19 99/week @ 2024-09-26 463/week @ 2024-10-03 95/week @ 2024-10-10 8/week @ 2024-10-17

139 downloads per month

MIT license

41KB
941 lines

ilert-rust   Latest Version ilert: rustc 1.13+

The official ilert API bindings.

In action

use ilert::ilert::ILert;
use ilert::ilert_builders::{UserGetApiResource, EventApiResource, ILertEventType};

let mut client = ILert::new().unwrap();
client.auth_via_token("your-api-token").unwrap();

// create a new alert via event

client
    .create()
    .event(
        "44c7afdc-0b3e-4344-b48a-5378a963231f",
        ILertEventType::ALERT,
        "Host srv/mail01 is CRITICAL", None)
    .execute()
    .await;

// accept alert

let accept_result = client
    .update()
    .accept_alert(123)
    .execute()
    .await
    .unwrap();

// resolve alert

let resolve_result = client
    .update()
    .resolve_alert(123)
    .execute()
    .await
    .unwrap();

// fetch users

let user_result = client
    .get()
    .skip(5)
    .limit(10)
    .filter("role", "RESPONDER")
    .filter("role", "USER")
    .users()
    .execute()
    .await
    .unwrap();

// ping a heartbeat

client
    .get()
    .heartbeat("43c7afdc-0b3e-4344-b48a-5379a963241f")
    .execute()
    .await;

// create detailed alert via event

client
.create()
.event_with_details(
    "8972f0d5d8c9cde78d79b6cc8fd",
    ILertEventType::ALERT,
    Some("Host srv/mail01 is CRITICAL".to_string()),
    Some("bratwurst".to_string()),
    Some("some detail message".to_string()),
    Some(ILertPriority::LOW),
    Some(vec![EventImage::new("https://i.giphy.com/media/VRhsYYBw8AE36/giphy.webp")]),
    Some(vec![]),
    Some(json!({"hehe": "test"})),
    None)
.execute()
.await
.unwrap();

// add comment to alert via event

client
    .create()
    .event_with_comment(
        "8972f0d5d8c9cde78d79b6cc8fd",
        Some("bratwurst".to_string()),
        Some(vec![EventComment::new("Peter Parker", "a comment ![alt text picture](https://i.giphy.com/media/VRhsYYBw8AE36/giphy.webp)")]))
    .execute()
    .await
    .unwrap();

// resolve alert via event

client
    .create()
    .event("8972f0d5d8c9cde78d79b6cc8fd",
        ILertEventType::RESOLVE, None,
        Some("bratwurst".to_string()))
    .execute()
    .await
    .unwrap();

Blocking

If you are looking for a blocking version of the client pin the 3.x.x versions in your Cargo.toml.

Getting help

We are happy to respond to GitHub issues as well.


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in ilert-rust by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~5–15MB
~198K SLoC