v2_monitors_UpdateMonitorNotificationRule/
v2_monitors_UpdateMonitorNotificationRule.rs

1// Update a monitor notification rule returns "OK" response
2use 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    // there is a valid "monitor_notification_rule" in the system
14    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(
19                "updated rule".to_string(),
20                vec!["slack-test-channel".to_string()],
21            )
22            .filter(
23                MonitorNotificationRuleFilter::MonitorNotificationRuleFilterTags(Box::new(
24                    MonitorNotificationRuleFilterTags::new(vec![
25                        "test:example-monitor".to_string(),
26                        "host:abc".to_string(),
27                    ]),
28                )),
29            ),
30            monitor_notification_rule_data_id.clone(),
31        )
32        .type_(MonitorNotificationRuleResourceType::MONITOR_NOTIFICATION_RULE),
33    );
34    let configuration = datadog::Configuration::new();
35    let api = MonitorsAPI::with_config(configuration);
36    let resp = api
37        .update_monitor_notification_rule(monitor_notification_rule_data_id.clone(), body)
38        .await;
39    if let Ok(value) = resp {
40        println!("{:#?}", value);
41    } else {
42        println!("{:#?}", resp.unwrap_err());
43    }
44}