v2_security_monitoring_CreateSecurityMonitoringSuppression/
v2_security-monitoring_CreateSecurityMonitoringSuppression.rs

1// Create a suppression rule returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateAttributes;
5use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateData;
6use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionCreateRequest;
7use datadog_api_client::datadogV2::model::SecurityMonitoringSuppressionType;
8
9#[tokio::main]
10async fn main() {
11    let body = SecurityMonitoringSuppressionCreateRequest::new(
12        SecurityMonitoringSuppressionCreateData::new(
13            SecurityMonitoringSuppressionCreateAttributes::new(
14                true,
15                "Example-Security-Monitoring".to_string(),
16                "type:log_detection source:cloudtrail".to_string(),
17            )
18            .description(
19                "This rule suppresses low-severity signals in staging environments.".to_string(),
20            )
21            .expiration_date(1638443471000)
22            .start_date(1637493071000)
23            .suppression_query("env:staging status:low".to_string()),
24            SecurityMonitoringSuppressionType::SUPPRESSIONS,
25        ),
26    );
27    let configuration = datadog::Configuration::new();
28    let api = SecurityMonitoringAPI::with_config(configuration);
29    let resp = api.create_security_monitoring_suppression(body).await;
30    if let Ok(value) = resp {
31        println!("{:#?}", value);
32    } else {
33        println!("{:#?}", resp.unwrap_err());
34    }
35}