v1_monitors_ValidateMonitor/
v1_monitors_ValidateMonitor.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_monitors::MonitorsAPI;
4use datadog_api_client::datadogV1::model::Monitor;
5use datadog_api_client::datadogV1::model::MonitorOptions;
6use datadog_api_client::datadogV1::model::MonitorOptionsNotificationPresets;
7use datadog_api_client::datadogV1::model::MonitorThresholds;
8use datadog_api_client::datadogV1::model::MonitorType;
9use datadog_api_client::datadogV1::model::OnMissingDataOption;
10
11#[tokio::main]
12async fn main() {
13 let body =
14 Monitor::new(
15 r#"logs("service:foo AND type:error").index("main").rollup("count").by("source").last("5m") > 2"#.to_string(),
16 MonitorType::LOG_ALERT,
17 )
18 .message("some message Notify: @hipchat-channel".to_string())
19 .name("Example-Monitor".to_string())
20 .options(
21 MonitorOptions::new()
22 .enable_logs_sample(true)
23 .escalation_message("the situation has escalated".to_string())
24 .evaluation_delay(Some(700))
25 .include_tags(true)
26 .locked(false)
27 .new_host_delay(Some(600))
28 .no_data_timeframe(None)
29 .notification_preset_name(MonitorOptionsNotificationPresets::HIDE_HANDLES)
30 .notify_audit(false)
31 .notify_no_data(false)
32 .on_missing_data(OnMissingDataOption::SHOW_AND_NOTIFY_NO_DATA)
33 .renotify_interval(Some(60))
34 .require_full_window(true)
35 .thresholds(MonitorThresholds::new().critical(2.0 as f64).warning(Some(1.0 as f64)))
36 .timeout_h(Some(24)),
37 )
38 .priority(Some(3))
39 .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]);
40 let configuration = datadog::Configuration::new();
41 let api = MonitorsAPI::with_config(configuration);
42 let resp = api.validate_monitor(body).await;
43 if let Ok(value) = resp {
44 println!("{:#?}", value);
45 } else {
46 println!("{:#?}", resp.unwrap_err());
47 }
48}