Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 5 additions & 9 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13426,7 +13426,8 @@ components:
description: Attributes of the Jira issue to create.
properties:
assignee_id:
description: Unique identifier of the user assigned to the Jira issue.
description: Unique identifier of the Datadog user assigned to the Jira
issue.
example: f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0
type: string
description:
Expand All @@ -13447,8 +13448,9 @@ components:
type: object
priority:
$ref: '#/components/schemas/CasePriority'
description: Priority of the Jira issue. If not provided, the priority will
be automatically set to "NOT_DEFINED".
description: Datadog case priority mapped to the Jira issue priority. If
not provided, the priority will be automatically set to "NOT_DEFINED".
To configure the mapping, see [Bidirectional ticket syncing with Jira](https://docs.datadoghq.com/security/ticketing_integrations/#bidirectional-ticket-syncing-with-jira).
example: P4
title:
description: Title of the Jira issue. If not provided, the title will be
Expand Down Expand Up @@ -84711,9 +84713,6 @@ paths:
permissions:
- security_monitoring_findings_write
- appsec_vm_write
x-unstable: '**Note**: This endpoint is in beta and is subject to change.

Please check the documentation regularly for updates.'
post:
description: 'Create Jira issues for security findings.

Expand Down Expand Up @@ -84757,9 +84756,6 @@ paths:
permissions:
- security_monitoring_findings_write
- appsec_vm_write
x-unstable: '**Note**: This endpoint is in beta and is subject to change.

Please check the documentation regularly for updates.'
/api/v2/security/findings/search:
post:
description: 'Get a list of security findings that match a search query. [See
Expand Down
43 changes: 28 additions & 15 deletions examples/v2/security-monitoring/CreateJiraIssues.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.datadog.api.client.v2.model.CaseManagementProject;
import com.datadog.api.client.v2.model.CaseManagementProjectData;
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
import com.datadog.api.client.v2.model.CasePriority;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
Expand All @@ -16,31 +15,23 @@
import com.datadog.api.client.v2.model.FindingDataType;
import com.datadog.api.client.v2.model.Findings;
import com.datadog.api.client.v2.model.JiraIssuesDataType;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;

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

CreateJiraIssueRequestArray body =
new CreateJiraIssueRequestArray()
.data(
Collections.singletonList(
Arrays.asList(
new CreateJiraIssueRequestData()
.attributes(
new CreateJiraIssueRequestDataAttributes()
.assigneeId("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0")
.description("A description of the Jira issue.")
.fields(
Map.ofEntries(
Map.entry("key1", "value"),
Map.entry("key2", "['value']"),
Map.entry("key3", "{'key4': 'value'}")))
.priority(CasePriority.NOT_DEFINED)
.title("A title for the Jira issue."))
.title("A title")
.description("A description"))
.relationships(
new CreateJiraIssueRequestDataRelationships()
.findings(
Expand All @@ -49,13 +40,35 @@ public static void main(String[] args) {
Collections.singletonList(
new FindingData()
.id(
"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==")
"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==")
.type(FindingDataType.FINDINGS))))
.project(
new CaseManagementProject()
.data(
new CaseManagementProjectData()
.id("aeadc05e-98a8-11ec-ac2c-da7ad0900001")
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
.type(CaseManagementProjectDataType.PROJECTS))))
.type(JiraIssuesDataType.JIRA_ISSUES),
new CreateJiraIssueRequestData()
.attributes(
new CreateJiraIssueRequestDataAttributes()
.title("A title")
.description("A description"))
.relationships(
new CreateJiraIssueRequestDataRelationships()
.findings(
new Findings()
.data(
Collections.singletonList(
new FindingData()
.id(
"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==")
.type(FindingDataType.FINDINGS))))
.project(
new CaseManagementProject()
.data(
new CaseManagementProjectData()
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
.type(CaseManagementProjectDataType.PROJECTS))))
.type(JiraIssuesDataType.JIRA_ISSUES)));

Expand Down
63 changes: 63 additions & 0 deletions examples/v2/security-monitoring/CreateJiraIssues_379590688.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Create Jira issue for security finding returns "Created" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
import com.datadog.api.client.v2.model.CaseManagementProject;
import com.datadog.api.client.v2.model.CaseManagementProjectData;
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataRelationships;
import com.datadog.api.client.v2.model.FindingCaseResponseArray;
import com.datadog.api.client.v2.model.FindingData;
import com.datadog.api.client.v2.model.FindingDataType;
import com.datadog.api.client.v2.model.Findings;
import com.datadog.api.client.v2.model.JiraIssuesDataType;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);

CreateJiraIssueRequestArray body =
new CreateJiraIssueRequestArray()
.data(
Collections.singletonList(
new CreateJiraIssueRequestData()
.attributes(
new CreateJiraIssueRequestDataAttributes()
.title("A title")
.description("A description"))
.relationships(
new CreateJiraIssueRequestDataRelationships()
.findings(
new Findings()
.data(
Collections.singletonList(
new FindingData()
.id(
"YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=")
.type(FindingDataType.FINDINGS))))
.project(
new CaseManagementProject()
.data(
new CaseManagementProjectData()
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
.type(CaseManagementProjectDataType.PROJECTS))))
.type(JiraIssuesDataType.JIRA_ISSUES)));

try {
FindingCaseResponseArray result = apiInstance.createJiraIssues(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling SecurityMonitoringApi#createJiraIssues");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
68 changes: 68 additions & 0 deletions examples/v2/security-monitoring/CreateJiraIssues_829823123.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Create Jira issue for security findings returns "Created" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
import com.datadog.api.client.v2.model.CaseManagementProject;
import com.datadog.api.client.v2.model.CaseManagementProjectData;
import com.datadog.api.client.v2.model.CaseManagementProjectDataType;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestArray;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestData;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataAttributes;
import com.datadog.api.client.v2.model.CreateJiraIssueRequestDataRelationships;
import com.datadog.api.client.v2.model.FindingCaseResponseArray;
import com.datadog.api.client.v2.model.FindingData;
import com.datadog.api.client.v2.model.FindingDataType;
import com.datadog.api.client.v2.model.Findings;
import com.datadog.api.client.v2.model.JiraIssuesDataType;
import java.util.Arrays;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);

CreateJiraIssueRequestArray body =
new CreateJiraIssueRequestArray()
.data(
Collections.singletonList(
new CreateJiraIssueRequestData()
.attributes(
new CreateJiraIssueRequestDataAttributes()
.title("A title")
.description("A description"))
.relationships(
new CreateJiraIssueRequestDataRelationships()
.findings(
new Findings()
.data(
Arrays.asList(
new FindingData()
.id(
"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==")
.type(FindingDataType.FINDINGS),
new FindingData()
.id(
"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==")
.type(FindingDataType.FINDINGS))))
.project(
new CaseManagementProject()
.data(
new CaseManagementProjectData()
.id("959a6f71-bac8-4027-b1d3-2264f569296f")
.type(CaseManagementProjectDataType.PROJECTS))))
.type(JiraIssuesDataType.JIRA_ISSUES)));

try {
FindingCaseResponseArray result = apiInstance.createJiraIssues(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling SecurityMonitoringApi#createJiraIssues");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
2 changes: 0 additions & 2 deletions src/main/java/com/datadog/api/client/ApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -775,10 +775,8 @@ public class ApiClient {
put("v2.getOpenAPI", false);
put("v2.listAPIs", false);
put("v2.updateOpenAPI", false);
put("v2.attachJiraIssue", false);
put("v2.cancelThreatHuntingJob", false);
put("v2.convertJobResultToSignal", false);
put("v2.createJiraIssues", false);
put("v2.deleteThreatHuntingJob", false);
put("v2.getFinding", false);
put("v2.getRuleVersionHistory", false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,13 +344,6 @@ public CompletableFuture<FindingCaseResponse> attachJiraIssueAsync(AttachJiraIss
*/
public ApiResponse<FindingCaseResponse> attachJiraIssueWithHttpInfo(AttachJiraIssueRequest body)
throws ApiException {
// Check if unstable operation is enabled
String operationId = "attachJiraIssue";
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
} else {
throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
}
Object localVarPostBody = body;

// verify the required parameter 'body' is set
Expand Down Expand Up @@ -393,16 +386,6 @@ public ApiResponse<FindingCaseResponse> attachJiraIssueWithHttpInfo(AttachJiraIs
*/
public CompletableFuture<ApiResponse<FindingCaseResponse>> attachJiraIssueWithHttpInfoAsync(
AttachJiraIssueRequest body) {
// Check if unstable operation is enabled
String operationId = "attachJiraIssue";
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
} else {
CompletableFuture<ApiResponse<FindingCaseResponse>> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
return result;
}
Object localVarPostBody = body;

// verify the required parameter 'body' is set
Expand Down Expand Up @@ -1372,13 +1355,6 @@ public CompletableFuture<FindingCaseResponseArray> createJiraIssuesAsync(
*/
public ApiResponse<FindingCaseResponseArray> createJiraIssuesWithHttpInfo(
CreateJiraIssueRequestArray body) throws ApiException {
// Check if unstable operation is enabled
String operationId = "createJiraIssues";
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
} else {
throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
}
Object localVarPostBody = body;

// verify the required parameter 'body' is set
Expand Down Expand Up @@ -1421,16 +1397,6 @@ public ApiResponse<FindingCaseResponseArray> createJiraIssuesWithHttpInfo(
*/
public CompletableFuture<ApiResponse<FindingCaseResponseArray>> createJiraIssuesWithHttpInfoAsync(
CreateJiraIssueRequestArray body) {
// Check if unstable operation is enabled
String operationId = "createJiraIssues";
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
} else {
CompletableFuture<ApiResponse<FindingCaseResponseArray>> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
return result;
}
Object localVarPostBody = body;

// verify the required parameter 'body' is set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public CreateJiraIssueRequestDataAttributes assigneeId(String assigneeId) {
}

/**
* Unique identifier of the user assigned to the Jira issue.
* Unique identifier of the Datadog user assigned to the Jira issue.
*
* @return assigneeId
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2026-01-02T17:04:07.979Z
Loading
Loading