Skip to content

Commit aeb5ab1

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Support for In-App WAF policies operations (#1642)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent b58a632 commit aeb5ab1

36 files changed

Lines changed: 4027 additions & 13 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 597 additions & 3 deletions
Large diffs are not rendered by default.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Create a WAF Policy returns "Created" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyCreateAttributes;
5+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyCreateData;
6+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyCreateRequest;
7+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyRuleOverride;
8+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyScope;
9+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyType;
10+
11+
#[tokio::main]
12+
async fn main() {
13+
let body =
14+
ApplicationSecurityPolicyCreateRequest::new(ApplicationSecurityPolicyCreateData::new(
15+
ApplicationSecurityPolicyCreateAttributes::new(
16+
"recommended".to_string(),
17+
"Policy applied to internal web applications.".to_string(),
18+
"Internal Network Policy".to_string(),
19+
)
20+
.is_default(false)
21+
.protection_presets(vec!["attack-tools".to_string()])
22+
.rules(vec![ApplicationSecurityPolicyRuleOverride::new(
23+
false,
24+
true,
25+
"rasp-001-002".to_string(),
26+
)])
27+
.scope(vec![ApplicationSecurityPolicyScope::new(
28+
"prod".to_string(),
29+
"billing-service".to_string(),
30+
)])
31+
.version(0),
32+
ApplicationSecurityPolicyType::POLICY,
33+
));
34+
let configuration = datadog::Configuration::new();
35+
let api = ApplicationSecurityAPI::with_config(configuration);
36+
let resp = api.create_application_security_waf_policy(body).await;
37+
if let Ok(value) = resp {
38+
println!("{:#?}", value);
39+
} else {
40+
println!("{:#?}", resp.unwrap_err());
41+
}
42+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Delete a WAF Policy returns "No Content" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
let configuration = datadog::Configuration::new();
8+
let api = ApplicationSecurityAPI::with_config(configuration);
9+
let resp = api
10+
.delete_application_security_waf_policy("policy_id".to_string())
11+
.await;
12+
if let Ok(value) = resp {
13+
println!("{:#?}", value);
14+
} else {
15+
println!("{:#?}", resp.unwrap_err());
16+
}
17+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Get a WAF Policy returns "OK" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "policy" in the system
8+
let policy_data_id = std::env::var("POLICY_DATA_ID").unwrap();
9+
let configuration = datadog::Configuration::new();
10+
let api = ApplicationSecurityAPI::with_config(configuration);
11+
let resp = api
12+
.get_application_security_waf_policy(policy_data_id.clone())
13+
.await;
14+
if let Ok(value) = resp {
15+
println!("{:#?}", value);
16+
} else {
17+
println!("{:#?}", resp.unwrap_err());
18+
}
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// List all WAF policies returns "OK" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
let configuration = datadog::Configuration::new();
8+
let api = ApplicationSecurityAPI::with_config(configuration);
9+
let resp = api.list_application_security_waf_policies().await;
10+
if let Ok(value) = resp {
11+
println!("{:#?}", value);
12+
} else {
13+
println!("{:#?}", resp.unwrap_err());
14+
}
15+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Update a WAF Policy returns "OK" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
4+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyRuleOverride;
5+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyRulesetOverride;
6+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyScope;
7+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyType;
8+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyUpdateAttributes;
9+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyUpdateData;
10+
use datadog_api_client::datadogV2::model::ApplicationSecurityPolicyUpdateRequest;
11+
12+
#[tokio::main]
13+
async fn main() {
14+
let body =
15+
ApplicationSecurityPolicyUpdateRequest::new(ApplicationSecurityPolicyUpdateData::new(
16+
ApplicationSecurityPolicyUpdateAttributes::new(
17+
"Policy applied to internal web applications.".to_string(),
18+
false,
19+
"Internal Network Policy".to_string(),
20+
vec!["attack-tools".to_string()],
21+
vec![ApplicationSecurityPolicyRuleOverride::new(
22+
false,
23+
true,
24+
"rasp-001-002".to_string(),
25+
)
26+
.extended_data_collection(false)],
27+
vec![ApplicationSecurityPolicyScope::new(
28+
"prod".to_string(),
29+
"billing-service".to_string(),
30+
)],
31+
0,
32+
)
33+
.rulesets(vec![ApplicationSecurityPolicyRulesetOverride::new(
34+
false,
35+
true,
36+
"attack_tool".to_string(),
37+
)]),
38+
ApplicationSecurityPolicyType::POLICY,
39+
));
40+
let configuration = datadog::Configuration::new();
41+
let api = ApplicationSecurityAPI::with_config(configuration);
42+
let resp = api
43+
.update_application_security_waf_policy("policy_id".to_string(), body)
44+
.await;
45+
if let Ok(value) = resp {
46+
println!("{:#?}", value);
47+
} else {
48+
println!("{:#?}", resp.unwrap_err());
49+
}
50+
}

0 commit comments

Comments
 (0)