v2_security_monitoring_GetSuppressionsAffectingFutureRule/
v2_security-monitoring_GetSuppressionsAffectingFutureRule.rs

1// Get suppressions affecting future rule returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCaseCreate;
5use datadog_api_client::datadogV2::model::SecurityMonitoringRuleCreatePayload;
6use datadog_api_client::datadogV2::model::SecurityMonitoringRuleEvaluationWindow;
7use datadog_api_client::datadogV2::model::SecurityMonitoringRuleKeepAlive;
8use datadog_api_client::datadogV2::model::SecurityMonitoringRuleMaxSignalDuration;
9use datadog_api_client::datadogV2::model::SecurityMonitoringRuleOptions;
10use datadog_api_client::datadogV2::model::SecurityMonitoringRuleQueryAggregation;
11use datadog_api_client::datadogV2::model::SecurityMonitoringRuleSeverity;
12use datadog_api_client::datadogV2::model::SecurityMonitoringRuleTypeCreate;
13use datadog_api_client::datadogV2::model::SecurityMonitoringStandardRuleCreatePayload;
14use datadog_api_client::datadogV2::model::SecurityMonitoringStandardRuleQuery;
15
16#[tokio::main]
17async fn main() {
18    let body =
19        SecurityMonitoringRuleCreatePayload::SecurityMonitoringStandardRuleCreatePayload(Box::new(
20            SecurityMonitoringStandardRuleCreatePayload::new(
21                vec![
22                    SecurityMonitoringRuleCaseCreate::new(SecurityMonitoringRuleSeverity::INFO)
23                        .condition("a > 0".to_string())
24                        .name("".to_string())
25                        .notifications(vec![]),
26                ],
27                true,
28                "Test rule".to_string(),
29                "Example-Security-Monitoring".to_string(),
30                SecurityMonitoringRuleOptions::new()
31                    .evaluation_window(SecurityMonitoringRuleEvaluationWindow::FIFTEEN_MINUTES)
32                    .keep_alive(SecurityMonitoringRuleKeepAlive::ONE_HOUR)
33                    .max_signal_duration(SecurityMonitoringRuleMaxSignalDuration::ONE_DAY),
34                vec![SecurityMonitoringStandardRuleQuery::new()
35                    .aggregation(SecurityMonitoringRuleQueryAggregation::COUNT)
36                    .distinct_fields(vec![])
37                    .group_by_fields(vec![])
38                    .metrics(vec![])
39                    .query("@test:true".to_string())],
40            )
41            .filters(vec![])
42            .tags(vec![])
43            .type_(SecurityMonitoringRuleTypeCreate::LOG_DETECTION),
44        ));
45    let configuration = datadog::Configuration::new();
46    let api = SecurityMonitoringAPI::with_config(configuration);
47    let resp = api.get_suppressions_affecting_future_rule(body).await;
48    if let Ok(value) = resp {
49        println!("{:#?}", value);
50    } else {
51        println!("{:#?}", resp.unwrap_err());
52    }
53}