v2_monitors_UpdateMonitorConfigPolicy/
v2_monitors_UpdateMonitorConfigPolicy.rs

1// Edit a monitor configuration policy returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_monitors::MonitorsAPI;
4use datadog_api_client::datadogV2::model::MonitorConfigPolicyAttributeEditRequest;
5use datadog_api_client::datadogV2::model::MonitorConfigPolicyEditData;
6use datadog_api_client::datadogV2::model::MonitorConfigPolicyEditRequest;
7use datadog_api_client::datadogV2::model::MonitorConfigPolicyPolicy;
8use datadog_api_client::datadogV2::model::MonitorConfigPolicyResourceType;
9use datadog_api_client::datadogV2::model::MonitorConfigPolicyTagPolicy;
10use datadog_api_client::datadogV2::model::MonitorConfigPolicyType;
11
12#[tokio::main]
13async fn main() {
14    // there is a valid "monitor_configuration_policy" in the system
15    let monitor_configuration_policy_data_id =
16        std::env::var("MONITOR_CONFIGURATION_POLICY_DATA_ID").unwrap();
17    let body = MonitorConfigPolicyEditRequest::new(MonitorConfigPolicyEditData::new(
18        MonitorConfigPolicyAttributeEditRequest::new(
19            MonitorConfigPolicyPolicy::MonitorConfigPolicyTagPolicy(Box::new(
20                MonitorConfigPolicyTagPolicy::new()
21                    .tag_key("examplemonitor".to_string())
22                    .tag_key_required(false)
23                    .valid_tag_values(vec!["prod".to_string(), "staging".to_string()]),
24            )),
25            MonitorConfigPolicyType::TAG,
26        ),
27        monitor_configuration_policy_data_id.clone(),
28        MonitorConfigPolicyResourceType::MONITOR_CONFIG_POLICY,
29    ));
30    let configuration = datadog::Configuration::new();
31    let api = MonitorsAPI::with_config(configuration);
32    let resp = api
33        .update_monitor_config_policy(monitor_configuration_policy_data_id.clone(), body)
34        .await;
35    if let Ok(value) = resp {
36        println!("{:#?}", value);
37    } else {
38        println!("{:#?}", resp.unwrap_err());
39    }
40}