v2_application_security_UpdateApplicationSecurityWafCustomRule/
v2_application-security_UpdateApplicationSecurityWafCustomRule.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleCondition;
5use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionInput;
6use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionInputAddress;
7use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionOperator;
8use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleConditionParameters;
9use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleScope;
10use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleTags;
11use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleTagsCategory;
12use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleType;
13use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateAttributes;
14use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateData;
15use datadog_api_client::datadogV2::model::ApplicationSecurityWafCustomRuleUpdateRequest;
16use std::collections::BTreeMap;
17
18#[tokio::main]
19async fn main() {
20 let custom_rule_data_id = std::env::var("CUSTOM_RULE_DATA_ID").unwrap();
22 let body =
23 ApplicationSecurityWafCustomRuleUpdateRequest::new(
24 ApplicationSecurityWafCustomRuleUpdateData::new(
25 ApplicationSecurityWafCustomRuleUpdateAttributes::new(
26 false,
27 vec![
28 ApplicationSecurityWafCustomRuleCondition::new(
29 ApplicationSecurityWafCustomRuleConditionOperator::MATCH_REGEX,
30 ApplicationSecurityWafCustomRuleConditionParameters::new(
31 vec![
32 ApplicationSecurityWafCustomRuleConditionInput::new(
33 ApplicationSecurityWafCustomRuleConditionInputAddress::SERVER_REQUEST_QUERY,
34 ).key_path(vec!["id".to_string()])
35 ],
36 ).regex("badactor".to_string()),
37 )
38 ],
39 false,
40 "test".to_string(),
41 ApplicationSecurityWafCustomRuleTags::new(
42 ApplicationSecurityWafCustomRuleTagsCategory::ATTACK_ATTEMPT,
43 "test".to_string(),
44 ).additional_properties(BTreeMap::from([])),
45 )
46 .path_glob("/test".to_string())
47 .scope(vec![ApplicationSecurityWafCustomRuleScope::new("test".to_string(), "test".to_string())]),
48 ApplicationSecurityWafCustomRuleType::CUSTOM_RULE,
49 ),
50 );
51 let configuration = datadog::Configuration::new();
52 let api = ApplicationSecurityAPI::with_config(configuration);
53 let resp = api
54 .update_application_security_waf_custom_rule(custom_rule_data_id.clone(), body)
55 .await;
56 if let Ok(value) = resp {
57 println!("{:#?}", value);
58 } else {
59 println!("{:#?}", resp.unwrap_err());
60 }
61}