Skip to content

Commit ebe747a

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Document security findings triage endpoints (SEC-31359) (#1688)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 09a627a commit ebe747a

32 files changed

Lines changed: 3787 additions & 6 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 484 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Attach security findings to a ServiceNow ticket returns "OK" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
use datadog_api_client::datadogV2::model::AttachServiceNowTicketRequest;
5+
use datadog_api_client::datadogV2::model::AttachServiceNowTicketRequestData;
6+
use datadog_api_client::datadogV2::model::AttachServiceNowTicketRequestDataAttributes;
7+
use datadog_api_client::datadogV2::model::AttachServiceNowTicketRequestDataRelationships;
8+
use datadog_api_client::datadogV2::model::CaseManagementProject;
9+
use datadog_api_client::datadogV2::model::CaseManagementProjectData;
10+
use datadog_api_client::datadogV2::model::CaseManagementProjectDataType;
11+
use datadog_api_client::datadogV2::model::FindingData;
12+
use datadog_api_client::datadogV2::model::FindingDataType;
13+
use datadog_api_client::datadogV2::model::Findings;
14+
use datadog_api_client::datadogV2::model::ServiceNowTicketsDataType;
15+
16+
#[tokio::main]
17+
async fn main() {
18+
let body =
19+
AttachServiceNowTicketRequest::new(
20+
AttachServiceNowTicketRequestData::new(
21+
AttachServiceNowTicketRequestDataAttributes::new(
22+
"https://example.service-now.com/now/nav/ui/classic/params/target/incident.do?sys_id=abcdef0123456789abcdef0123456789".to_string(),
23+
),
24+
AttachServiceNowTicketRequestDataRelationships::new(
25+
Findings
26+
::new().data(
27+
vec![
28+
FindingData::new(
29+
"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==".to_string(),
30+
FindingDataType::FINDINGS,
31+
)
32+
],
33+
),
34+
CaseManagementProject::new(
35+
CaseManagementProjectData::new(
36+
"aeadc05e-98a8-11ec-ac2c-da7ad0900001".to_string(),
37+
CaseManagementProjectDataType::PROJECTS,
38+
),
39+
),
40+
),
41+
ServiceNowTicketsDataType::SERVICENOW_TICKETS,
42+
),
43+
);
44+
let mut configuration = datadog::Configuration::new();
45+
configuration.set_unstable_operation_enabled("v2.AttachServiceNowTicket", true);
46+
let api = SecurityMonitoringAPI::with_config(configuration);
47+
let resp = api.attach_service_now_ticket(body).await;
48+
if let Ok(value) = resp {
49+
println!("{:#?}", value);
50+
} else {
51+
println!("{:#?}", resp.unwrap_err());
52+
}
53+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Create ServiceNow tickets for security findings returns "Created" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
use datadog_api_client::datadogV2::model::CaseManagementProject;
5+
use datadog_api_client::datadogV2::model::CaseManagementProjectData;
6+
use datadog_api_client::datadogV2::model::CaseManagementProjectDataType;
7+
use datadog_api_client::datadogV2::model::CasePriority;
8+
use datadog_api_client::datadogV2::model::CreateServiceNowTicketRequestArray;
9+
use datadog_api_client::datadogV2::model::CreateServiceNowTicketRequestData;
10+
use datadog_api_client::datadogV2::model::CreateServiceNowTicketRequestDataAttributes;
11+
use datadog_api_client::datadogV2::model::CreateServiceNowTicketRequestDataRelationships;
12+
use datadog_api_client::datadogV2::model::FindingData;
13+
use datadog_api_client::datadogV2::model::FindingDataType;
14+
use datadog_api_client::datadogV2::model::Findings;
15+
use datadog_api_client::datadogV2::model::ServiceNowTicketsDataType;
16+
17+
#[tokio::main]
18+
async fn main() {
19+
let body =
20+
CreateServiceNowTicketRequestArray::new(vec![CreateServiceNowTicketRequestData::new(
21+
CreateServiceNowTicketRequestDataRelationships::new(
22+
Findings::new().data(vec![FindingData::new(
23+
"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==".to_string(),
24+
FindingDataType::FINDINGS,
25+
)]),
26+
CaseManagementProject::new(CaseManagementProjectData::new(
27+
"aeadc05e-98a8-11ec-ac2c-da7ad0900001".to_string(),
28+
CaseManagementProjectDataType::PROJECTS,
29+
)),
30+
),
31+
ServiceNowTicketsDataType::SERVICENOW_TICKETS,
32+
)
33+
.attributes(
34+
CreateServiceNowTicketRequestDataAttributes::new()
35+
.assignee_id("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0".to_string())
36+
.description("A description of the ServiceNow ticket.".to_string())
37+
.priority(CasePriority::NOT_DEFINED)
38+
.title("A title for the ServiceNow ticket.".to_string()),
39+
)]);
40+
let mut configuration = datadog::Configuration::new();
41+
configuration.set_unstable_operation_enabled("v2.CreateServiceNowTickets", true);
42+
let api = SecurityMonitoringAPI::with_config(configuration);
43+
let resp = api.create_service_now_tickets(body).await;
44+
if let Ok(value) = resp {
45+
println!("{:#?}", value);
46+
} else {
47+
println!("{:#?}", resp.unwrap_err());
48+
}
49+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Assign or unassign security findings returns "Accepted" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
4+
use datadog_api_client::datadogV2::model::AssigneeDataType;
5+
use datadog_api_client::datadogV2::model::AssigneeRequest;
6+
use datadog_api_client::datadogV2::model::AssigneeRequestData;
7+
use datadog_api_client::datadogV2::model::AssigneeRequestDataAttributes;
8+
use datadog_api_client::datadogV2::model::AssigneeRequestDataRelationships;
9+
use datadog_api_client::datadogV2::model::FindingData;
10+
use datadog_api_client::datadogV2::model::FindingDataType;
11+
use datadog_api_client::datadogV2::model::Findings;
12+
13+
#[tokio::main]
14+
async fn main() {
15+
let body = AssigneeRequest::new(
16+
AssigneeRequestData::new(
17+
AssigneeRequestDataRelationships::new(Findings::new().data(vec![FindingData::new(
18+
"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==".to_string(),
19+
FindingDataType::FINDINGS,
20+
)])),
21+
AssigneeDataType::ASSIGNEE,
22+
)
23+
.attributes(
24+
AssigneeRequestDataAttributes::new()
25+
.assignee_id("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0".to_string()),
26+
)
27+
.id("00000000-0000-0000-0000-000000000001".to_string()),
28+
);
29+
let mut configuration = datadog::Configuration::new();
30+
configuration.set_unstable_operation_enabled("v2.UpdateFindingsAssignee", true);
31+
let api = SecurityMonitoringAPI::with_config(configuration);
32+
let resp = api.update_findings_assignee(body).await;
33+
if let Ok(value) = resp {
34+
println!("{:#?}", value);
35+
} else {
36+
println!("{:#?}", resp.unwrap_err());
37+
}
38+
}

src/datadog/configuration.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@ impl Default for Configuration {
273273
("v2.get_aws_cloud_auth_persona_mapping".to_owned(), false),
274274
("v2.list_aws_cloud_auth_persona_mappings".to_owned(), false),
275275
("v2.activate_content_pack".to_owned(), false),
276+
("v2.attach_service_now_ticket".to_owned(), false),
276277
(
277278
"v2.batch_get_security_monitoring_dataset_dependencies".to_owned(),
278279
false,
@@ -300,6 +301,7 @@ impl Default for Configuration {
300301
"v2.create_security_monitoring_integration_config".to_owned(),
301302
false,
302303
),
304+
("v2.create_service_now_tickets".to_owned(), false),
303305
("v2.create_static_analysis_ast".to_owned(), false),
304306
(
305307
"v2.create_static_analysis_server_analysis".to_owned(),
@@ -374,6 +376,7 @@ impl Default for Configuration {
374376
"v2.search_security_monitoring_histsignals".to_owned(),
375377
false,
376378
),
379+
("v2.update_findings_assignee".to_owned(), false),
377380
("v2.update_security_monitoring_dataset".to_owned(), false),
378381
(
379382
"v2.update_security_monitoring_integration_config".to_owned(),

0 commit comments

Comments
 (0)