v2_csm_threats_UpdateCloudWorkloadSecurityAgentRule/
v2_csm-threats_UpdateCloudWorkloadSecurityAgentRule.rs

1// Update a Workload Protection agent rule (US1-FED) returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_csm_threats::CSMThreatsAPI;
4use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleType;
5use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateAttributes;
6use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateData;
7use datadog_api_client::datadogV2::model::CloudWorkloadSecurityAgentRuleUpdateRequest;
8
9#[tokio::main]
10async fn main() {
11    // there is a valid "agent_rule" in the system
12    let agent_rule_data_id = std::env::var("AGENT_RULE_DATA_ID").unwrap();
13    let body = CloudWorkloadSecurityAgentRuleUpdateRequest::new(
14        CloudWorkloadSecurityAgentRuleUpdateData::new(
15            CloudWorkloadSecurityAgentRuleUpdateAttributes::new()
16                .description("Updated Agent rule".to_string())
17                .expression(r#"exec.file.name == "sh""#.to_string()),
18            CloudWorkloadSecurityAgentRuleType::AGENT_RULE,
19        )
20        .id(agent_rule_data_id.clone()),
21    );
22    let configuration = datadog::Configuration::new();
23    let api = CSMThreatsAPI::with_config(configuration);
24    let resp = api
25        .update_cloud_workload_security_agent_rule(agent_rule_data_id.clone(), body)
26        .await;
27    if let Ok(value) = resp {
28        println!("{:#?}", value);
29    } else {
30        println!("{:#?}", resp.unwrap_err());
31    }
32}