v2_security_monitoring_GetSuppressionsAffectingFutureRule/
v2_security-monitoring_GetSuppressionsAffectingFutureRule.rs1use 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}