v2_monitors_UpdateMonitorNotificationRule/
v2_monitors_UpdateMonitorNotificationRule.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_monitors::MonitorsAPI;
4use datadog_api_client::datadogV2::model::MonitorNotificationRuleAttributes;
5use datadog_api_client::datadogV2::model::MonitorNotificationRuleFilter;
6use datadog_api_client::datadogV2::model::MonitorNotificationRuleFilterTags;
7use datadog_api_client::datadogV2::model::MonitorNotificationRuleResourceType;
8use datadog_api_client::datadogV2::model::MonitorNotificationRuleUpdateRequest;
9use datadog_api_client::datadogV2::model::MonitorNotificationRuleUpdateRequestData;
10
11#[tokio::main]
12async fn main() {
13 let monitor_notification_rule_data_id =
15 std::env::var("MONITOR_NOTIFICATION_RULE_DATA_ID").unwrap();
16 let body = MonitorNotificationRuleUpdateRequest::new(
17 MonitorNotificationRuleUpdateRequestData::new(
18 MonitorNotificationRuleAttributes::new("updated rule".to_string())
19 .filter(
20 MonitorNotificationRuleFilter::MonitorNotificationRuleFilterTags(Box::new(
21 MonitorNotificationRuleFilterTags::new(vec![
22 "test:example-monitor".to_string(),
23 "host:abc".to_string(),
24 ]),
25 )),
26 )
27 .recipients(vec!["slack-test-channel".to_string()]),
28 monitor_notification_rule_data_id.clone(),
29 )
30 .type_(MonitorNotificationRuleResourceType::MONITOR_NOTIFICATION_RULE),
31 );
32 let configuration = datadog::Configuration::new();
33 let api = MonitorsAPI::with_config(configuration);
34 let resp = api
35 .update_monitor_notification_rule(monitor_notification_rule_data_id.clone(), body)
36 .await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}