v2_monitors_CreateMonitorNotificationRule/
v2_monitors_CreateMonitorNotificationRule.rs

1// Create 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::MonitorNotificationRuleCreateRequest;
6use datadog_api_client::datadogV2::model::MonitorNotificationRuleCreateRequestData;
7use datadog_api_client::datadogV2::model::MonitorNotificationRuleFilter;
8use datadog_api_client::datadogV2::model::MonitorNotificationRuleFilterTags;
9use datadog_api_client::datadogV2::model::MonitorNotificationRuleResourceType;
10
11#[tokio::main]
12async fn main() {
13    let body = MonitorNotificationRuleCreateRequest::new(
14        MonitorNotificationRuleCreateRequestData::new(
15            MonitorNotificationRuleAttributes::new("test rule".to_string())
16                .filter(
17                    MonitorNotificationRuleFilter::MonitorNotificationRuleFilterTags(Box::new(
18                        MonitorNotificationRuleFilterTags::new(vec![
19                            "test:example-monitor".to_string()
20                        ]),
21                    )),
22                )
23                .recipients(vec![
24                    "slack-test-channel".to_string(),
25                    "jira-test".to_string(),
26                ]),
27        )
28        .type_(MonitorNotificationRuleResourceType::MONITOR_NOTIFICATION_RULE),
29    );
30    let configuration = datadog::Configuration::new();
31    let api = MonitorsAPI::with_config(configuration);
32    let resp = api.create_monitor_notification_rule(body).await;
33    if let Ok(value) = resp {
34        println!("{:#?}", value);
35    } else {
36        println!("{:#?}", resp.unwrap_err());
37    }
38}