# ilert-rust   [![Latest Version]][crates.io] [![ilert: rustc 1.13+]][Rust 1.13] [Latest Version]: https://img.shields.io/crates/v/ilert.svg [crates.io]: https://crates.io/crates/ilert [ilert: rustc 1.13+]: https://img.shields.io/badge/ilert-rustc_1.13+-lightgray.svg [Rust 1.13]: https://blog.rust-lang.org/2016/11/10/Rust-1.13.html [Rust 1.31]: https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html **The official ilert API bindings.** ## In action ```rust 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][issues] as well. [issues]: https://github.com/iLert/ilert-rust/issues/new <br> #### License <sup> Licensed under either of <a href="LICENSE-APACHE">Apache License, Version 2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option. </sup> <br> <sub> 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. </sub>