Skip to content

Commit fbbfc34

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add public API for security findings automation rules (#1762)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent a5df0c9 commit fbbfc34

112 files changed

Lines changed: 18073 additions & 4179 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.generator/schemas/v2/openapi.yaml

Lines changed: 2150 additions & 0 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 due date rule returns "Successfully created the due date rule" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
use datadog_api_client::datadogV2::model::AutomationRuleScope;
5+
use datadog_api_client::datadogV2::model::DueDateFrom;
6+
use datadog_api_client::datadogV2::model::DueDatePerSeverityItem;
7+
use datadog_api_client::datadogV2::model::DueDateRuleAction;
8+
use datadog_api_client::datadogV2::model::DueDateRuleAttributesCreate;
9+
use datadog_api_client::datadogV2::model::DueDateRuleCreateRequest;
10+
use datadog_api_client::datadogV2::model::DueDateRuleDataCreate;
11+
use datadog_api_client::datadogV2::model::DueDateRuleType;
12+
use datadog_api_client::datadogV2::model::DueDateSeverity;
13+
use datadog_api_client::datadogV2::model::SecurityFindingType;
14+
15+
#[tokio::main]
16+
async fn main() {
17+
let body = DueDateRuleCreateRequest::new(DueDateRuleDataCreate::new(
18+
DueDateRuleAttributesCreate::new(
19+
DueDateRuleAction::new(
20+
vec![DueDatePerSeverityItem::new(7, DueDateSeverity::CRITICAL)],
21+
DueDateFrom::FIRST_SEEN,
22+
),
23+
"Example-Security-Monitoring".to_string(),
24+
AutomationRuleScope::new(vec![SecurityFindingType::MISCONFIGURATION])
25+
.query("env:staging".to_string()),
26+
)
27+
.enabled(true),
28+
DueDateRuleType::DUE_DATE_RULES,
29+
));
30+
let mut configuration = datadog::Configuration::new();
31+
configuration
32+
.set_unstable_operation_enabled("v2.CreateSecurityFindingsAutomationDueDateRule", true);
33+
let api = SecurityMonitoringAPI::with_config(configuration);
34+
let resp = api
35+
.create_security_findings_automation_due_date_rule(body)
36+
.await;
37+
if let Ok(value) = resp {
38+
println!("{:#?}", value);
39+
} else {
40+
println!("{:#?}", resp.unwrap_err());
41+
}
42+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Create a mute rule returns "Successfully created the mute rule" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
use datadog_api_client::datadogV2::model::AutomationRuleScope;
5+
use datadog_api_client::datadogV2::model::MuteReason;
6+
use datadog_api_client::datadogV2::model::MuteRuleAction;
7+
use datadog_api_client::datadogV2::model::MuteRuleAttributesCreate;
8+
use datadog_api_client::datadogV2::model::MuteRuleCreateRequest;
9+
use datadog_api_client::datadogV2::model::MuteRuleDataCreate;
10+
use datadog_api_client::datadogV2::model::MuteRuleType;
11+
use datadog_api_client::datadogV2::model::SecurityFindingType;
12+
13+
#[tokio::main]
14+
async fn main() {
15+
let body = MuteRuleCreateRequest::new(MuteRuleDataCreate::new(
16+
MuteRuleAttributesCreate::new(
17+
MuteRuleAction::new(MuteReason::RISK_ACCEPTED),
18+
"Example-Security-Monitoring".to_string(),
19+
AutomationRuleScope::new(vec![SecurityFindingType::MISCONFIGURATION])
20+
.query("env:staging".to_string()),
21+
)
22+
.enabled(true),
23+
MuteRuleType::MUTE_RULES,
24+
));
25+
let mut configuration = datadog::Configuration::new();
26+
configuration
27+
.set_unstable_operation_enabled("v2.CreateSecurityFindingsAutomationMuteRule", true);
28+
let api = SecurityMonitoringAPI::with_config(configuration);
29+
let resp = api
30+
.create_security_findings_automation_mute_rule(body)
31+
.await;
32+
if let Ok(value) = resp {
33+
println!("{:#?}", value);
34+
} else {
35+
println!("{:#?}", resp.unwrap_err());
36+
}
37+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// Create a ticket creation rule returns "Successfully created the ticket creation
2+
// rule" response
3+
use datadog_api_client::datadog;
4+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
5+
use datadog_api_client::datadogV2::model::AutomationRuleScope;
6+
use datadog_api_client::datadogV2::model::SecurityFindingType;
7+
use datadog_api_client::datadogV2::model::TicketCreationRuleAction;
8+
use datadog_api_client::datadogV2::model::TicketCreationRuleAttributesCreate;
9+
use datadog_api_client::datadogV2::model::TicketCreationRuleCreateRequest;
10+
use datadog_api_client::datadogV2::model::TicketCreationRuleDataCreate;
11+
use datadog_api_client::datadogV2::model::TicketCreationRuleType;
12+
use datadog_api_client::datadogV2::model::TicketCreationTarget;
13+
use uuid::Uuid;
14+
15+
#[tokio::main]
16+
async fn main() {
17+
let body = TicketCreationRuleCreateRequest::new(TicketCreationRuleDataCreate::new(
18+
TicketCreationRuleAttributesCreate::new(
19+
TicketCreationRuleAction::new(
20+
10,
21+
Uuid::parse_str("11111111-1111-1111-1111-111111111111").expect("invalid UUID"),
22+
TicketCreationTarget::JIRA,
23+
),
24+
"Example-Security-Monitoring".to_string(),
25+
AutomationRuleScope::new(vec![SecurityFindingType::MISCONFIGURATION])
26+
.query("env:staging".to_string()),
27+
)
28+
.enabled(true),
29+
TicketCreationRuleType::TICKET_CREATION_RULES,
30+
));
31+
let mut configuration = datadog::Configuration::new();
32+
configuration.set_unstable_operation_enabled(
33+
"v2.CreateSecurityFindingsAutomationTicketCreationRule",
34+
true,
35+
);
36+
let api = SecurityMonitoringAPI::with_config(configuration);
37+
let resp = api
38+
.create_security_findings_automation_ticket_creation_rule(body)
39+
.await;
40+
if let Ok(value) = resp {
41+
println!("{:#?}", value);
42+
} else {
43+
println!("{:#?}", resp.unwrap_err());
44+
}
45+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Delete a due date rule returns "Rule successfully deleted." response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "valid_due_date_rule" in the system
8+
let valid_due_date_rule_data_id =
9+
uuid::Uuid::parse_str(&std::env::var("VALID_DUE_DATE_RULE_DATA_ID").unwrap())
10+
.expect("Invalid UUID");
11+
let mut configuration = datadog::Configuration::new();
12+
configuration
13+
.set_unstable_operation_enabled("v2.DeleteSecurityFindingsAutomationDueDateRule", true);
14+
let api = SecurityMonitoringAPI::with_config(configuration);
15+
let resp = api
16+
.delete_security_findings_automation_due_date_rule(valid_due_date_rule_data_id.clone())
17+
.await;
18+
if let Ok(value) = resp {
19+
println!("{:#?}", value);
20+
} else {
21+
println!("{:#?}", resp.unwrap_err());
22+
}
23+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Delete a mute rule returns "Rule successfully deleted." response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "valid_mute_rule" in the system
8+
let valid_mute_rule_data_id =
9+
uuid::Uuid::parse_str(&std::env::var("VALID_MUTE_RULE_DATA_ID").unwrap())
10+
.expect("Invalid UUID");
11+
let mut configuration = datadog::Configuration::new();
12+
configuration
13+
.set_unstable_operation_enabled("v2.DeleteSecurityFindingsAutomationMuteRule", true);
14+
let api = SecurityMonitoringAPI::with_config(configuration);
15+
let resp = api
16+
.delete_security_findings_automation_mute_rule(valid_mute_rule_data_id.clone())
17+
.await;
18+
if let Ok(value) = resp {
19+
println!("{:#?}", value);
20+
} else {
21+
println!("{:#?}", resp.unwrap_err());
22+
}
23+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Delete a ticket creation rule returns "Rule successfully deleted." response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "valid_ticket_creation_rule" in the system
8+
let valid_ticket_creation_rule_data_id =
9+
uuid::Uuid::parse_str(&std::env::var("VALID_TICKET_CREATION_RULE_DATA_ID").unwrap())
10+
.expect("Invalid UUID");
11+
let mut configuration = datadog::Configuration::new();
12+
configuration.set_unstable_operation_enabled(
13+
"v2.DeleteSecurityFindingsAutomationTicketCreationRule",
14+
true,
15+
);
16+
let api = SecurityMonitoringAPI::with_config(configuration);
17+
let resp = api
18+
.delete_security_findings_automation_ticket_creation_rule(
19+
valid_ticket_creation_rule_data_id.clone(),
20+
)
21+
.await;
22+
if let Ok(value) = resp {
23+
println!("{:#?}", value);
24+
} else {
25+
println!("{:#?}", resp.unwrap_err());
26+
}
27+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Get a due date rule returns "Successfully retrieved the due date rule" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "valid_due_date_rule" in the system
8+
let valid_due_date_rule_data_id =
9+
uuid::Uuid::parse_str(&std::env::var("VALID_DUE_DATE_RULE_DATA_ID").unwrap())
10+
.expect("Invalid UUID");
11+
let mut configuration = datadog::Configuration::new();
12+
configuration
13+
.set_unstable_operation_enabled("v2.GetSecurityFindingsAutomationDueDateRule", true);
14+
let api = SecurityMonitoringAPI::with_config(configuration);
15+
let resp = api
16+
.get_security_findings_automation_due_date_rule(valid_due_date_rule_data_id.clone())
17+
.await;
18+
if let Ok(value) = resp {
19+
println!("{:#?}", value);
20+
} else {
21+
println!("{:#?}", resp.unwrap_err());
22+
}
23+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Get a mute rule returns "Successfully retrieved the mute rule" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
5+
#[tokio::main]
6+
async fn main() {
7+
// there is a valid "valid_mute_rule" in the system
8+
let valid_mute_rule_data_id =
9+
uuid::Uuid::parse_str(&std::env::var("VALID_MUTE_RULE_DATA_ID").unwrap())
10+
.expect("Invalid UUID");
11+
let mut configuration = datadog::Configuration::new();
12+
configuration.set_unstable_operation_enabled("v2.GetSecurityFindingsAutomationMuteRule", true);
13+
let api = SecurityMonitoringAPI::with_config(configuration);
14+
let resp = api
15+
.get_security_findings_automation_mute_rule(valid_mute_rule_data_id.clone())
16+
.await;
17+
if let Ok(value) = resp {
18+
println!("{:#?}", value);
19+
} else {
20+
println!("{:#?}", resp.unwrap_err());
21+
}
22+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Get a ticket creation rule returns "Successfully retrieved the ticket creation
2+
// rule" response
3+
use datadog_api_client::datadog;
4+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
5+
6+
#[tokio::main]
7+
async fn main() {
8+
// there is a valid "valid_ticket_creation_rule" in the system
9+
let valid_ticket_creation_rule_data_id =
10+
uuid::Uuid::parse_str(&std::env::var("VALID_TICKET_CREATION_RULE_DATA_ID").unwrap())
11+
.expect("Invalid UUID");
12+
let mut configuration = datadog::Configuration::new();
13+
configuration
14+
.set_unstable_operation_enabled("v2.GetSecurityFindingsAutomationTicketCreationRule", true);
15+
let api = SecurityMonitoringAPI::with_config(configuration);
16+
let resp = api
17+
.get_security_findings_automation_ticket_creation_rule(
18+
valid_ticket_creation_rule_data_id.clone(),
19+
)
20+
.await;
21+
if let Ok(value) = resp {
22+
println!("{:#?}", value);
23+
} else {
24+
println!("{:#?}", resp.unwrap_err());
25+
}
26+
}

0 commit comments

Comments
 (0)