v2_csm_threats_CreateCSMThreatsAgentRule/
v2_csm-threats_CreateCSMThreatsAgentRule.rs

1// Create a Workload Protection agent rule returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_csm_threats::CSMThreatsAPI;
4use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateAttributes;
5use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateData;
6use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleCreateRequest;
7use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleType;
8
9#[tokio::main]
10async fn main() {
11    // there is a valid "policy_rc" in the system
12    let policy_data_id = std::env::var("POLICY_DATA_ID").unwrap();
13    let body = CloudWorkloadSecurityAgentRuleCreateRequest::new(
14        CloudWorkloadSecurityAgentRuleCreateData::new(
15            CloudWorkloadSecurityAgentRuleCreateAttributes::new(
16                r#"exec.file.name == "sh""#.to_string(),
17                "examplecsmthreat".to_string(),
18            )
19            .agent_version("> 7.60".to_string())
20            .description("My Agent rule".to_string())
21            .enabled(true)
22            .filters(vec![])
23            .policy_id(policy_data_id.clone())
24            .product_tags(vec![]),
25            CloudWorkloadSecurityAgentRuleType::AGENT_RULE,
26        ),
27    );
28    let configuration = datadog::Configuration::new();
29    let api = CSMThreatsAPI::with_config(configuration);
30    let resp = api.create_csm_threats_agent_rule(body).await;
31    if let Ok(value) = resp {
32        println!("{:#?}", value);
33    } else {
34        println!("{:#?}", resp.unwrap_err());
35    }
36}