|
1 | 1 | // Create Jira issues for security findings returns "Created" response |
2 | 2 | use datadog_api_client::datadog; |
3 | 3 | use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI; |
4 | | -use datadog_api_client::datadogV2::model::CaseDataType; |
5 | 4 | use datadog_api_client::datadogV2::model::CaseManagementProject; |
6 | 5 | use datadog_api_client::datadogV2::model::CaseManagementProjectData; |
7 | 6 | use datadog_api_client::datadogV2::model::CaseManagementProjectDataType; |
8 | | -use datadog_api_client::datadogV2::model::CreateCaseRequestData; |
9 | | -use datadog_api_client::datadogV2::model::CreateCaseRequestDataAttributes; |
10 | | -use datadog_api_client::datadogV2::model::CreateCaseRequestDataRelationships; |
| 7 | +use datadog_api_client::datadogV2::model::CasePriority; |
11 | 8 | use datadog_api_client::datadogV2::model::CreateJiraIssueRequestArray; |
12 | | -use datadog_api_client::datadogV2::model::CreateJiraIssueRequestArrayIncluded; |
13 | 9 | use datadog_api_client::datadogV2::model::CreateJiraIssueRequestData; |
14 | 10 | use datadog_api_client::datadogV2::model::CreateJiraIssueRequestDataAttributes; |
15 | 11 | use datadog_api_client::datadogV2::model::CreateJiraIssueRequestDataRelationships; |
16 | | -use datadog_api_client::datadogV2::model::CreateJiraIssueRequestDataRelationshipsCase; |
17 | | -use datadog_api_client::datadogV2::model::CreateJiraIssueRequestDataRelationshipsCaseData; |
18 | 12 | use datadog_api_client::datadogV2::model::FindingData; |
19 | 13 | use datadog_api_client::datadogV2::model::FindingDataType; |
20 | 14 | use datadog_api_client::datadogV2::model::Findings; |
21 | 15 | use datadog_api_client::datadogV2::model::JiraIssuesDataType; |
| 16 | +use serde_json::Value; |
| 17 | +use std::collections::BTreeMap; |
22 | 18 |
|
23 | 19 | #[tokio::main] |
24 | 20 | async fn main() { |
25 | | - let body = |
26 | | - CreateJiraIssueRequestArray::new( |
27 | | - vec![ |
28 | | - CreateJiraIssueRequestData::new(JiraIssuesDataType::JIRA_ISSUES) |
29 | | - .attributes(CreateJiraIssueRequestDataAttributes::new()) |
30 | | - .relationships( |
31 | | - CreateJiraIssueRequestDataRelationships::new( |
32 | | - CreateJiraIssueRequestDataRelationshipsCase::new( |
33 | | - CreateJiraIssueRequestDataRelationshipsCaseData::new( |
34 | | - "53e242c6-a7d6-46ad-9680-b8d14753f716".to_string(), |
35 | | - CaseDataType::CASES, |
36 | | - ), |
37 | | - ), |
38 | | - ), |
39 | | - ), |
40 | | - CreateJiraIssueRequestData::new(JiraIssuesDataType::JIRA_ISSUES) |
41 | | - .attributes(CreateJiraIssueRequestDataAttributes::new()) |
42 | | - .relationships( |
43 | | - CreateJiraIssueRequestDataRelationships::new( |
44 | | - CreateJiraIssueRequestDataRelationshipsCase::new( |
45 | | - CreateJiraIssueRequestDataRelationshipsCaseData::new( |
46 | | - "195772b2-1f53-41d2-b81e-48c8e6c21d33".to_string(), |
47 | | - CaseDataType::CASES, |
48 | | - ), |
49 | | - ), |
50 | | - ), |
51 | | - ) |
52 | | - ], |
53 | | - ).included( |
54 | | - vec![ |
55 | | - CreateJiraIssueRequestArrayIncluded::CreateCaseRequestData( |
56 | | - Box::new( |
57 | | - CreateCaseRequestData::new(CaseDataType::CASES) |
58 | | - .attributes( |
59 | | - CreateCaseRequestDataAttributes::new() |
60 | | - .description("A description".to_string()) |
61 | | - .title("A title".to_string()), |
62 | | - ) |
63 | | - .id("53e242c6-a7d6-46ad-9680-b8d14753f716".to_string()) |
64 | | - .relationships( |
65 | | - CreateCaseRequestDataRelationships::new( |
66 | | - Findings |
67 | | - ::new().data( |
68 | | - vec![ |
69 | | - FindingData::new( |
70 | | - "OTQ3NjJkMmYwMTIzMzMxNTc1Y2Q4MTA5NWU0NTBmMDl-ZjE3NjMxZWVkYzBjZGI1NDY2NWY2OGQxZDk4MDY4MmI=".to_string(), |
71 | | - FindingDataType::FINDINGS, |
72 | | - ) |
73 | | - ], |
74 | | - ), |
75 | | - CaseManagementProject::new( |
76 | | - CaseManagementProjectData::new( |
77 | | - "959a6f71-bac8-4027-b1d3-2264f569296f".to_string(), |
78 | | - CaseManagementProjectDataType::PROJECTS, |
79 | | - ), |
80 | | - ), |
81 | | - ), |
82 | | - ), |
83 | | - ), |
84 | | - ), |
85 | | - CreateJiraIssueRequestArrayIncluded::CreateCaseRequestData( |
86 | | - Box::new( |
87 | | - CreateCaseRequestData::new(CaseDataType::CASES) |
88 | | - .attributes( |
89 | | - CreateCaseRequestDataAttributes::new() |
90 | | - .description("A description".to_string()) |
91 | | - .title("A title".to_string()), |
92 | | - ) |
93 | | - .id("195772b2-1f53-41d2-b81e-48c8e6c21d33".to_string()) |
94 | | - .relationships( |
95 | | - CreateCaseRequestDataRelationships::new( |
96 | | - Findings |
97 | | - ::new().data( |
98 | | - vec![ |
99 | | - FindingData::new( |
100 | | - "MTNjN2ZmYWMzMDIxYmU1ZDFiZDRjNWUwN2I1NzVmY2F-YTA3MzllMTUzNWM3NmEyZjdiNzEzOWM5YmViZTMzOGM=".to_string(), |
101 | | - FindingDataType::FINDINGS, |
102 | | - ) |
103 | | - ], |
104 | | - ), |
105 | | - CaseManagementProject::new( |
106 | | - CaseManagementProjectData::new( |
107 | | - "959a6f71-bac8-4027-b1d3-2264f569296f".to_string(), |
108 | | - CaseManagementProjectDataType::PROJECTS, |
109 | | - ), |
110 | | - ), |
111 | | - ), |
112 | | - ), |
113 | | - ), |
114 | | - ), |
115 | | - CreateJiraIssueRequestArrayIncluded::CaseManagementProjectData( |
116 | | - Box::new( |
117 | | - CaseManagementProjectData::new( |
118 | | - "959a6f71-bac8-4027-b1d3-2264f569296f".to_string(), |
119 | | - CaseManagementProjectDataType::PROJECTS, |
120 | | - ), |
121 | | - ), |
122 | | - ), |
123 | | - CreateJiraIssueRequestArrayIncluded::FindingData( |
124 | | - Box::new( |
125 | | - FindingData::new( |
126 | | - "OTQ3NjJkMmYwMTIzMzMxNTc1Y2Q4MTA5NWU0NTBmMDl-ZjE3NjMxZWVkYzBjZGI1NDY2NWY2OGQxZDk4MDY4MmI=".to_string(), |
127 | | - FindingDataType::FINDINGS, |
128 | | - ), |
129 | | - ), |
130 | | - ), |
131 | | - CreateJiraIssueRequestArrayIncluded::FindingData( |
132 | | - Box::new( |
133 | | - FindingData::new( |
134 | | - "MTNjN2ZmYWMzMDIxYmU1ZDFiZDRjNWUwN2I1NzVmY2F-YTA3MzllMTUzNWM3NmEyZjdiNzEzOWM5YmViZTMzOGM=".to_string(), |
135 | | - FindingDataType::FINDINGS, |
136 | | - ), |
137 | | - ), |
138 | | - ) |
139 | | - ], |
140 | | - ); |
141 | | - let configuration = datadog::Configuration::new(); |
| 21 | + let body = CreateJiraIssueRequestArray::new(vec![CreateJiraIssueRequestData::new( |
| 22 | + JiraIssuesDataType::JIRA_ISSUES, |
| 23 | + ) |
| 24 | + .attributes( |
| 25 | + CreateJiraIssueRequestDataAttributes::new() |
| 26 | + .assignee_id("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0".to_string()) |
| 27 | + .description("A description of the Jira issue.".to_string()) |
| 28 | + .fields(BTreeMap::from([("key1".to_string(), Value::from("value"))])) |
| 29 | + .priority(CasePriority::NOT_DEFINED) |
| 30 | + .title("A title for the Jira issue.".to_string()), |
| 31 | + ) |
| 32 | + .relationships(CreateJiraIssueRequestDataRelationships::new( |
| 33 | + Findings::new().data(vec![FindingData::new( |
| 34 | + "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==".to_string(), |
| 35 | + FindingDataType::FINDINGS, |
| 36 | + )]), |
| 37 | + CaseManagementProject::new(CaseManagementProjectData::new( |
| 38 | + "aeadc05e-98a8-11ec-ac2c-da7ad0900001".to_string(), |
| 39 | + CaseManagementProjectDataType::PROJECTS, |
| 40 | + )), |
| 41 | + ))]); |
| 42 | + let mut configuration = datadog::Configuration::new(); |
| 43 | + configuration.set_unstable_operation_enabled("v2.CreateJiraIssues", true); |
142 | 44 | let api = SecurityMonitoringAPI::with_config(configuration); |
143 | 45 | let resp = api.create_jira_issues(body).await; |
144 | 46 | if let Ok(value) = resp { |
|
0 commit comments