Skip to content

Commit bb3eefc

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Remove x-unstable property from security findings Jira issues endpoints (#3415)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 493d790 commit bb3eefc

18 files changed

+469
-77
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13778,7 +13778,8 @@ components:
1377813778
description: Attributes of the Jira issue to create.
1377913779
properties:
1378013780
assignee_id:
13781-
description: Unique identifier of the user assigned to the Jira issue.
13781+
description: Unique identifier of the Datadog user assigned to the Jira
13782+
issue.
1378213783
example: f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0
1378313784
type: string
1378413785
description:
@@ -13799,8 +13800,9 @@ components:
1379913800
type: object
1380013801
priority:
1380113802
$ref: '#/components/schemas/CasePriority'
13802-
description: Priority of the Jira issue. If not provided, the priority will
13803-
be automatically set to "NOT_DEFINED".
13803+
description: Datadog case priority mapped to the Jira issue priority. If
13804+
not provided, the priority will be automatically set to "NOT_DEFINED".
13805+
To configure the mapping, see [Bidirectional ticket syncing with Jira](https://docs.datadoghq.com/security/ticketing_integrations/#bidirectional-ticket-syncing-with-jira).
1380413806
example: P4
1380513807
title:
1380613808
description: Title of the Jira issue. If not provided, the title will be
@@ -87819,9 +87821,6 @@ paths:
8781987821
permissions:
8782087822
- security_monitoring_findings_write
8782187823
- appsec_vm_write
87822-
x-unstable: '**Note**: This endpoint is in beta and is subject to change.
87823-
87824-
Please check the documentation regularly for updates.'
8782587824
post:
8782687825
description: 'Create Jira issues for security findings.
8782787826

@@ -87865,9 +87864,6 @@ paths:
8786587864
permissions:
8786687865
- security_monitoring_findings_write
8786787866
- appsec_vm_write
87868-
x-unstable: '**Note**: This endpoint is in beta and is subject to change.
87869-
87870-
Please check the documentation regularly for updates.'
8787187867
/api/v2/security/findings/search:
8787287868
post:
8787387869
description: 'Get a list of security findings that match a search query. [See

examples/v2/security-monitoring/CreateJiraIssues.java

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.datadog.api.client.v2.model.CaseManagementProject;
77
import com.datadog.api.client.v2.model.CaseManagementProjectData;
88
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
9-
import com.datadog.api.client.v2.model.CasePriority;
109
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
1110
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
1211
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
@@ -16,31 +15,23 @@
1615
import com.datadog.api.client.v2.model.FindingDataType;
1716
import com.datadog.api.client.v2.model.Findings;
1817
import com.datadog.api.client.v2.model.JiraIssuesDataType;
18+
import java.util.Arrays;
1919
import java.util.Collections;
20-
import java.util.Map;
2120

2221
public class Example {
2322
public static void main(String[] args) {
2423
ApiClient defaultClient = ApiClient.getDefaultApiClient();
25-
defaultClient.setUnstableOperationEnabled("v2.createJiraIssues", true);
2624
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
2725

2826
CreateJiraIssueRequestArray body =
2927
new CreateJiraIssueRequestArray()
3028
.data(
31-
Collections.singletonList(
29+
Arrays.asList(
3230
new CreateJiraIssueRequestData()
3331
.attributes(
3432
new CreateJiraIssueRequestDataAttributes()
35-
.assigneeId("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0")
36-
.description("A description of the Jira issue.")
37-
.fields(
38-
Map.ofEntries(
39-
Map.entry("key1", "value"),
40-
Map.entry("key2", "['value']"),
41-
Map.entry("key3", "{'key4': 'value'}")))
42-
.priority(CasePriority.NOT_DEFINED)
43-
.title("A title for the Jira issue."))
33+
.title("A title")
34+
.description("A description"))
4435
.relationships(
4536
new CreateJiraIssueRequestDataRelationships()
4637
.findings(
@@ -49,13 +40,35 @@ public static void main(String[] args) {
4940
Collections.singletonList(
5041
new FindingData()
5142
.id(
52-
"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==")
43+
"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==")
5344
.type(FindingDataType.FINDINGS))))
5445
.project(
5546
new CaseManagementProject()
5647
.data(
5748
new CaseManagementProjectData()
58-
.id("aeadc05e-98a8-11ec-ac2c-da7ad0900001")
49+
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
50+
.type(CaseManagementProjectDataType.PROJECTS))))
51+
.type(JiraIssuesDataType.JIRA_ISSUES),
52+
new CreateJiraIssueRequestData()
53+
.attributes(
54+
new CreateJiraIssueRequestDataAttributes()
55+
.title("A title")
56+
.description("A description"))
57+
.relationships(
58+
new CreateJiraIssueRequestDataRelationships()
59+
.findings(
60+
new Findings()
61+
.data(
62+
Collections.singletonList(
63+
new FindingData()
64+
.id(
65+
"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==")
66+
.type(FindingDataType.FINDINGS))))
67+
.project(
68+
new CaseManagementProject()
69+
.data(
70+
new CaseManagementProjectData()
71+
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
5972
.type(CaseManagementProjectDataType.PROJECTS))))
6073
.type(JiraIssuesDataType.JIRA_ISSUES)));
6174

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Create Jira issue for security finding returns "Created" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
6+
import com.datadog.api.client.v2.model.CaseManagementProject;
7+
import com.datadog.api.client.v2.model.CaseManagementProjectData;
8+
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
9+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
10+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
11+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
12+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataRelationships;
13+
import com.datadog.api.client.v2.model.FindingCaseResponseArray;
14+
import com.datadog.api.client.v2.model.FindingData;
15+
import com.datadog.api.client.v2.model.FindingDataType;
16+
import com.datadog.api.client.v2.model.Findings;
17+
import com.datadog.api.client.v2.model.JiraIssuesDataType;
18+
import java.util.Collections;
19+
20+
public class Example {
21+
public static void main(String[] args) {
22+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
23+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
24+
25+
CreateJiraIssueRequestArray body =
26+
new CreateJiraIssueRequestArray()
27+
.data(
28+
Collections.singletonList(
29+
new CreateJiraIssueRequestData()
30+
.attributes(
31+
new CreateJiraIssueRequestDataAttributes()
32+
.title("A title")
33+
.description("A description"))
34+
.relationships(
35+
new CreateJiraIssueRequestDataRelationships()
36+
.findings(
37+
new Findings()
38+
.data(
39+
Collections.singletonList(
40+
new FindingData()
41+
.id(
42+
"YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=")
43+
.type(FindingDataType.FINDINGS))))
44+
.project(
45+
new CaseManagementProject()
46+
.data(
47+
new CaseManagementProjectData()
48+
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
49+
.type(CaseManagementProjectDataType.PROJECTS))))
50+
.type(JiraIssuesDataType.JIRA_ISSUES)));
51+
52+
try {
53+
FindingCaseResponseArray result = apiInstance.createJiraIssues(body);
54+
System.out.println(result);
55+
} catch (ApiException e) {
56+
System.err.println("Exception when calling SecurityMonitoringApi#createJiraIssues");
57+
System.err.println("Status code: " + e.getCode());
58+
System.err.println("Reason: " + e.getResponseBody());
59+
System.err.println("Response headers: " + e.getResponseHeaders());
60+
e.printStackTrace();
61+
}
62+
}
63+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// Create Jira issue for security findings returns "Created" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
6+
import com.datadog.api.client.v2.model.CaseManagementProject;
7+
import com.datadog.api.client.v2.model.CaseManagementProjectData;
8+
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
9+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
10+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
11+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
12+
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataRelationships;
13+
import com.datadog.api.client.v2.model.FindingCaseResponseArray;
14+
import com.datadog.api.client.v2.model.FindingData;
15+
import com.datadog.api.client.v2.model.FindingDataType;
16+
import com.datadog.api.client.v2.model.Findings;
17+
import com.datadog.api.client.v2.model.JiraIssuesDataType;
18+
import java.util.Arrays;
19+
import java.util.Collections;
20+
21+
public class Example {
22+
public static void main(String[] args) {
23+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
24+
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
25+
26+
CreateJiraIssueRequestArray body =
27+
new CreateJiraIssueRequestArray()
28+
.data(
29+
Collections.singletonList(
30+
new CreateJiraIssueRequestData()
31+
.attributes(
32+
new CreateJiraIssueRequestDataAttributes()
33+
.title("A title")
34+
.description("A description"))
35+
.relationships(
36+
new CreateJiraIssueRequestDataRelationships()
37+
.findings(
38+
new Findings()
39+
.data(
40+
Arrays.asList(
41+
new FindingData()
42+
.id(
43+
"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==")
44+
.type(FindingDataType.FINDINGS),
45+
new FindingData()
46+
.id(
47+
"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==")
48+
.type(FindingDataType.FINDINGS))))
49+
.project(
50+
new CaseManagementProject()
51+
.data(
52+
new CaseManagementProjectData()
53+
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
54+
.type(CaseManagementProjectDataType.PROJECTS))))
55+
.type(JiraIssuesDataType.JIRA_ISSUES)));
56+
57+
try {
58+
FindingCaseResponseArray result = apiInstance.createJiraIssues(body);
59+
System.out.println(result);
60+
} catch (ApiException e) {
61+
System.err.println("Exception when calling SecurityMonitoringApi#createJiraIssues");
62+
System.err.println("Status code: " + e.getCode());
63+
System.err.println("Reason: " + e.getResponseBody());
64+
System.err.println("Response headers: " + e.getResponseHeaders());
65+
e.printStackTrace();
66+
}
67+
}
68+
}

src/main/java/com/datadog/api/client/ApiClient.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -775,10 +775,8 @@ public class ApiClient {
775775
put("v2.getOpenAPI", false);
776776
put("v2.listAPIs", false);
777777
put("v2.updateOpenAPI", false);
778-
put("v2.attachJiraIssue", false);
779778
put("v2.cancelThreatHuntingJob", false);
780779
put("v2.convertJobResultToSignal", false);
781-
put("v2.createJiraIssues", false);
782780
put("v2.deleteThreatHuntingJob", false);
783781
put("v2.getFinding", false);
784782
put("v2.getRuleVersionHistory", false);

src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -346,13 +346,6 @@ public CompletableFuture<FindingCaseResponse> attachJiraIssueAsync(AttachJiraIss
346346
*/
347347
public ApiResponse<FindingCaseResponse> attachJiraIssueWithHttpInfo(AttachJiraIssueRequest body)
348348
throws ApiException {
349-
// Check if unstable operation is enabled
350-
String operationId = "attachJiraIssue";
351-
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
352-
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
353-
} else {
354-
throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
355-
}
356349
Object localVarPostBody = body;
357350

358351
// verify the required parameter 'body' is set
@@ -395,16 +388,6 @@ public ApiResponse<FindingCaseResponse> attachJiraIssueWithHttpInfo(AttachJiraIs
395388
*/
396389
public CompletableFuture<ApiResponse<FindingCaseResponse>> attachJiraIssueWithHttpInfoAsync(
397390
AttachJiraIssueRequest body) {
398-
// Check if unstable operation is enabled
399-
String operationId = "attachJiraIssue";
400-
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
401-
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
402-
} else {
403-
CompletableFuture<ApiResponse<FindingCaseResponse>> result = new CompletableFuture<>();
404-
result.completeExceptionally(
405-
new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
406-
return result;
407-
}
408391
Object localVarPostBody = body;
409392

410393
// verify the required parameter 'body' is set
@@ -1513,13 +1496,6 @@ public CompletableFuture<FindingCaseResponseArray> createJiraIssuesAsync(
15131496
*/
15141497
public ApiResponse<FindingCaseResponseArray> createJiraIssuesWithHttpInfo(
15151498
CreateJiraIssueRequestArray body) throws ApiException {
1516-
// Check if unstable operation is enabled
1517-
String operationId = "createJiraIssues";
1518-
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
1519-
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
1520-
} else {
1521-
throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
1522-
}
15231499
Object localVarPostBody = body;
15241500

15251501
// verify the required parameter 'body' is set
@@ -1562,16 +1538,6 @@ public ApiResponse<FindingCaseResponseArray> createJiraIssuesWithHttpInfo(
15621538
*/
15631539
public CompletableFuture<ApiResponse<FindingCaseResponseArray>> createJiraIssuesWithHttpInfoAsync(
15641540
CreateJiraIssueRequestArray body) {
1565-
// Check if unstable operation is enabled
1566-
String operationId = "createJiraIssues";
1567-
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
1568-
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
1569-
} else {
1570-
CompletableFuture<ApiResponse<FindingCaseResponseArray>> result = new CompletableFuture<>();
1571-
result.completeExceptionally(
1572-
new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
1573-
return result;
1574-
}
15751541
Object localVarPostBody = body;
15761542

15771543
// verify the required parameter 'body' is set

src/main/java/com/datadog/api/client/v2/model/CreateJiraIssueRequestDataAttributes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public CreateJiraIssueRequestDataAttributes assigneeId(String assigneeId) {
4949
}
5050

5151
/**
52-
* Unique identifier of the user assigned to the Jira issue.
52+
* Unique identifier of the Datadog user assigned to the Jira issue.
5353
*
5454
* @return assigneeId
5555
*/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-01-02T17:04:07.979Z

0 commit comments

Comments
 (0)