From b3f49048909974f39625a9ca2f366a7857f336c2 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 23 Jan 2026 11:21:03 +0000 Subject: [PATCH] Regenerate client from commit 2a5fd8a of spec repo --- .generator/schemas/v2/openapi.yaml | 14 ++-- .../security-monitoring/CreateJiraIssues.java | 43 ++++------ .../CreateJiraIssues_379590688.java | 63 --------------- .../CreateJiraIssues_829823123.java | 68 ---------------- .../com/datadog/api/client/ApiClient.java | 2 + .../client/v2/api/SecurityMonitoringApi.java | 34 ++++++++ .../CreateJiraIssueRequestDataAttributes.java | 2 +- src/test/java/com/datadog/api/Undo.java | 6 +- src/test/java/com/datadog/api/World.java | 16 +++- ...ty_finding_returns_Created_response.freeze | 1 - ...rity_finding_returns_Created_response.json | 57 ------------- ...y_findings_returns_Created_response.freeze | 1 - ...ity_findings_returns_Created_response.json | 57 ------------- ...ndings_returns_Bad_Request_response.freeze | 1 - ...findings_returns_Bad_Request_response.json | 32 -------- ...y_findings_returns_Created_response.freeze | 1 - ...ity_findings_returns_Created_response.json | 57 ------------- ...findings_returns_Not_Found_response.freeze | 1 - ...y_findings_returns_Not_Found_response.json | 32 -------- ...ate_a_team_link_returns_OK_response.freeze | 2 +- ...reate_a_team_link_returns_OK_response.json | 22 ++--- ...Get_a_team_link_returns_OK_response.freeze | 2 +- .../Get_a_team_link_returns_OK_response.json | 32 ++++---- ...am_link_returns_No_Content_response.freeze | 2 +- ...team_link_returns_No_Content_response.json | 30 +++---- ...ate_a_team_link_returns_OK_response.freeze | 2 +- ...pdate_a_team_link_returns_OK_response.json | 30 +++---- .../client/v2/api/security_monitoring.feature | 80 ++++--------------- .../com/datadog/api/client/v2/api/undo.json | 3 +- 29 files changed, 157 insertions(+), 536 deletions(-) delete mode 100644 examples/v2/security-monitoring/CreateJiraIssues_379590688.java delete mode 100644 examples/v2/security-monitoring/CreateJiraIssues_829823123.java delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.freeze delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.json delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.freeze delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.json delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.freeze delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.json delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.freeze delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.json delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.freeze delete mode 100644 src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index de9b3ca4f4d..97703ea74f2 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -13778,8 +13778,7 @@ components: description: Attributes of the Jira issue to create. properties: assignee_id: - description: Unique identifier of the Datadog user assigned to the Jira - issue. + description: Unique identifier of the user assigned to the Jira issue. example: f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0 type: string description: @@ -13800,9 +13799,8 @@ components: type: object priority: $ref: '#/components/schemas/CasePriority' - 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). + description: Priority of the Jira issue. If not provided, the priority will + be automatically set to "NOT_DEFINED". example: P4 title: description: Title of the Jira issue. If not provided, the title will be @@ -87821,6 +87819,9 @@ 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. @@ -87864,6 +87865,9 @@ 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 diff --git a/examples/v2/security-monitoring/CreateJiraIssues.java b/examples/v2/security-monitoring/CreateJiraIssues.java index a7057b855dd..c01e95d5188 100644 --- a/examples/v2/security-monitoring/CreateJiraIssues.java +++ b/examples/v2/security-monitoring/CreateJiraIssues.java @@ -6,6 +6,7 @@ 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; @@ -15,23 +16,31 @@ 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( - Arrays.asList( + Collections.singletonList( new CreateJiraIssueRequestData() .attributes( new CreateJiraIssueRequestDataAttributes() - .title("A title") - .description("A description")) + .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.")) .relationships( new CreateJiraIssueRequestDataRelationships() .findings( @@ -40,35 +49,13 @@ public static void main(String[] args) { Collections.singletonList( new FindingData() .id( - "eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==") + "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==") .type(FindingDataType.FINDINGS)))) .project( new CaseManagementProject() .data( new CaseManagementProjectData() - .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") + .id("aeadc05e-98a8-11ec-ac2c-da7ad0900001") .type(CaseManagementProjectDataType.PROJECTS)))) .type(JiraIssuesDataType.JIRA_ISSUES))); diff --git a/examples/v2/security-monitoring/CreateJiraIssues_379590688.java b/examples/v2/security-monitoring/CreateJiraIssues_379590688.java deleted file mode 100644 index 9bbbe379293..00000000000 --- a/examples/v2/security-monitoring/CreateJiraIssues_379590688.java +++ /dev/null @@ -1,63 +0,0 @@ -// 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(); - } - } -} diff --git a/examples/v2/security-monitoring/CreateJiraIssues_829823123.java b/examples/v2/security-monitoring/CreateJiraIssues_829823123.java deleted file mode 100644 index 92150626e45..00000000000 --- a/examples/v2/security-monitoring/CreateJiraIssues_829823123.java +++ /dev/null @@ -1,68 +0,0 @@ -// 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(); - } - } -} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 19ab54b0a89..ad47c7f9b16 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -775,8 +775,10 @@ 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); diff --git a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index 652774643e8..ebc4ccc5132 100644 --- a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java @@ -346,6 +346,13 @@ public CompletableFuture attachJiraIssueAsync(AttachJiraIss */ public ApiResponse 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 @@ -388,6 +395,16 @@ public ApiResponse attachJiraIssueWithHttpInfo(AttachJiraIs */ public CompletableFuture> 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> 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 @@ -1496,6 +1513,13 @@ public CompletableFuture createJiraIssuesAsync( */ public ApiResponse 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 @@ -1538,6 +1562,16 @@ public ApiResponse createJiraIssuesWithHttpInfo( */ public CompletableFuture> 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> 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 diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateJiraIssueRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CreateJiraIssueRequestDataAttributes.java index f35ead4fb16..ffe6da3985b 100644 --- a/src/main/java/com/datadog/api/client/v2/model/CreateJiraIssueRequestDataAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/CreateJiraIssueRequestDataAttributes.java @@ -49,7 +49,7 @@ public CreateJiraIssueRequestDataAttributes assigneeId(String assigneeId) { } /** - * Unique identifier of the Datadog user assigned to the Jira issue. + * Unique identifier of the user assigned to the Jira issue. * * @return assigneeId */ diff --git a/src/test/java/com/datadog/api/Undo.java b/src/test/java/com/datadog/api/Undo.java index b92c71990a6..30b8016b9af 100644 --- a/src/test/java/com/datadog/api/Undo.java +++ b/src/test/java/com/datadog/api/Undo.java @@ -30,7 +30,11 @@ public static class Parameter { public List parameters; public Map getRequestParameters( - Object responseData, Object requestData, Method requestBuilder, ObjectMapper mapper, Map pathParameters) { + Object responseData, + Object requestData, + Method requestBuilder, + ObjectMapper mapper, + Map pathParameters) { Map requestParams = new HashMap(); for (int i = 0; i < parameters.size(); i++) { Undo.UndoMethod.Parameter p = parameters.get(i); diff --git a/src/test/java/com/datadog/api/World.java b/src/test/java/com/datadog/api/World.java index 275da232dc6..7cf1d7e8ce3 100644 --- a/src/test/java/com/datadog/api/World.java +++ b/src/test/java/com/datadog/api/World.java @@ -274,7 +274,7 @@ public void newRequest(String name) { } } parametersArray = new ArrayList<>(); - pathParameters = new HashMap<>(); // Clear path parameters for new request + pathParameters = new HashMap<>(); // Clear path parameters for new request } public void addRequestParameter(String parameterName, String value) @@ -458,7 +458,9 @@ public void given(String apiVersion, Given step) throws Exception { Undo undoSettings = UndoAction.UndoAction().getUndo(apiVersion, step.getOperationName()); if (undoSettings != null) { - undo.add(getRequestUndo(apiVersion, undoSettings, responseData, givenParametersArray.get(0), pathParameters)); + undo.add( + getRequestUndo( + apiVersion, undoSettings, responseData, givenParametersArray.get(0), pathParameters)); } if (step.source != null) { @@ -471,7 +473,11 @@ public void given(String apiVersion, Given step) throws Exception { } public Callable getRequestUndo( - String apiVersion, Undo undoSettings, Object responseData, Object requestData, Map pathParameters) + String apiVersion, + Undo undoSettings, + Object responseData, + Object requestData, + Map pathParameters) throws Exception { // find API service based on undo tag value Class undoAPIClass = @@ -579,7 +585,9 @@ public void sendRequest() throws Exception { } catch (Exception e) { throw new Exception(e.getCause()); } - undo.add(getRequestUndo(apiVersion, undoSettings, responseData, parametersArray.get(0), pathParameters)); + undo.add( + getRequestUndo( + apiVersion, undoSettings, responseData, parametersArray.get(0), pathParameters)); } } diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.freeze deleted file mode 100644 index a96661d790d..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2026-01-02T17:04:07.979Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.json deleted file mode 100644 index 29aded9bb1c..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_finding_returns_Created_response.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":[{\"attributes\":{\"description\":\"A description\",\"title\":\"A title\"},\"relationships\":{\"findings\":{\"data\":[{\"id\":\"YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=\",\"type\":\"findings\"}]},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"}]}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/security/findings/jira_issues", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"data\":[{\"id\":\"b5b9ee39-29f8-4b84-a878-28e597e2a33f\",\"type\":\"cases\",\"attributes\":{\"created_at\":\"2026-01-02T17:04:10.514692Z\",\"creation_source\":\"CS_SECURITY_FINDING\",\"description\":\"A description\",\"insights\":[{\"type\":\"SECURITY_FINDING\",\"ref\":\"/security/csm/vm?query=%40workflow.integrations.cases.id%3A%2A\\u0026vulnerability=bcefbaa72059d94d8b64f4b449807b73\",\"resource_id\":\"YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=\"}],\"jira_issue\":{\"status\":\"COMPLETED\",\"result\":{\"issue_id\":\"2523546\",\"issue_key\":\"CSMSEC-105847\",\"issue_url\":\"https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105847\",\"account_id\":\"fdcffa62-24ab-4914-a195-a22bdc607030\"}},\"key\":\"CSMINV-521\",\"modified_at\":\"2026-01-02T17:04:11.504549Z\",\"priority\":\"P4\",\"status\":\"OPEN\",\"status_group\":\"SG_OPEN\",\"status_name\":\"Open\",\"title\":\"A title\",\"type\":\"SECURITY\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"dc09afab-6ae7-11ef-92b1-828dac1b0195\",\"type\":\"users\"}},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}}}]}", - "headers": { - "Content-Type": [ - "application/vnd.api+json" - ] - }, - "statusCode": 201, - "reasonPhrase": "Created" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "66c50173-25aa-e544-7ddd-43626af2401e" - }, - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":{\"relationships\":{\"findings\":{\"data\":[{\"id\":\"YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=\",\"type\":\"findings\"}]}},\"type\":\"cases\"}}" - }, - "headers": {}, - "method": "DELETE", - "path": "/api/v2/security/findings/cases", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "headers": {}, - "statusCode": 204, - "reasonPhrase": "No Content" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "8212e835-e925-377e-3a73-db3447b49755" - } -] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.freeze deleted file mode 100644 index 536270faa5a..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2026-01-02T17:21:33.080Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.json deleted file mode 100644 index 8f62504ba31..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issue_for_security_findings_returns_Created_response.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":[{\"attributes\":{\"description\":\"A description\",\"title\":\"A title\"},\"relationships\":{\"findings\":{\"data\":[{\"id\":\"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==\",\"type\":\"findings\"},{\"id\":\"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==\",\"type\":\"findings\"}]},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"}]}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/security/findings/jira_issues", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"data\":[{\"id\":\"527aa591-d40e-4445-be80-9d012ba8397e\",\"type\":\"cases\",\"attributes\":{\"created_at\":\"2026-01-02T17:21:34.65318Z\",\"creation_source\":\"CS_SECURITY_FINDING\",\"description\":\"A description\",\"insights\":[{\"type\":\"SECURITY_FINDING\",\"ref\":\"/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Akvh-scm-xyu%7CresourceId%3Ai-05f90f00a848687e8\\u0026query=%40finding_id%3Aa3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA%3D%3D\",\"resource_id\":\"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==\"},{\"type\":\"SECURITY_FINDING\",\"ref\":\"/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Ayk0-blt-afn%7CresourceId%3Ai-024ea8035de550b0a\\u0026query=%40finding_id%3AeWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ%3D%3D\",\"resource_id\":\"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==\"}],\"jira_issue\":{\"status\":\"COMPLETED\",\"result\":{\"issue_id\":\"2523579\",\"issue_key\":\"CSMSEC-105849\",\"issue_url\":\"https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105849\",\"account_id\":\"fdcffa62-24ab-4914-a195-a22bdc607030\"}},\"key\":\"CSMINV-523\",\"modified_at\":\"2026-01-02T17:21:35.836445Z\",\"priority\":\"P3\",\"status\":\"OPEN\",\"status_group\":\"SG_OPEN\",\"status_name\":\"Open\",\"title\":\"A title\",\"type\":\"SECURITY\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"dc09afab-6ae7-11ef-92b1-828dac1b0195\",\"type\":\"users\"}},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}}}]}", - "headers": { - "Content-Type": [ - "application/vnd.api+json" - ] - }, - "statusCode": 201, - "reasonPhrase": "Created" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "1ce4a066-1777-4a13-107a-661ea467db71" - }, - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":{\"relationships\":{\"findings\":{\"data\":[{\"id\":\"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==\",\"type\":\"findings\"}]}},\"type\":\"cases\"}}" - }, - "headers": {}, - "method": "DELETE", - "path": "/api/v2/security/findings/cases", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "headers": {}, - "statusCode": 204, - "reasonPhrase": "No Content" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "6572e0b0-c67d-c572-b4d9-4501093d4afa" - } -] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.freeze deleted file mode 100644 index 6b40b01ad63..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2026-01-02T16:54:04.434Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.json deleted file mode 100644 index 5451f2e7af2..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Bad_Request_response.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":[{\"attributes\":{},\"relationships\":{\"findings\":{\"data\":[]},\"project\":{\"data\":{\"id\":\"7f198869-c7ef-4afc-97cf-da5cdc13b5c3\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"}]}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/security/findings/jira_issues", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\",\"detail\":\"no finding provided\"}]}", - "headers": { - "Content-Type": [ - "application/vnd.api+json" - ] - }, - "statusCode": 400, - "reasonPhrase": "Bad Request" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "b1ea1e59-1255-1888-ac07-e95b75f3804b" - } -] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.freeze deleted file mode 100644 index 0a903f8222a..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2026-01-02T17:23:28.665Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.json deleted file mode 100644 index 4525a67c2fe..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Created_response.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":[{\"attributes\":{\"description\":\"A description\",\"title\":\"A title\"},\"relationships\":{\"findings\":{\"data\":[{\"id\":\"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==\",\"type\":\"findings\"}]},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"},{\"attributes\":{\"description\":\"A description\",\"title\":\"A title\"},\"relationships\":{\"findings\":{\"data\":[{\"id\":\"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==\",\"type\":\"findings\"}]},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"}]}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/security/findings/jira_issues", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"data\":[{\"id\":\"3f234879-c155-4104-8605-a956c6157fa2\",\"type\":\"cases\",\"attributes\":{\"created_at\":\"2026-01-02T17:23:30.862128Z\",\"creation_source\":\"CS_SECURITY_FINDING\",\"description\":\"A description\",\"insights\":[{\"type\":\"SECURITY_FINDING\",\"ref\":\"/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Ayk0-blt-afn%7CresourceId%3Ai-024ea8035de550b0a\\u0026query=%40finding_id%3AeWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ%3D%3D\",\"resource_id\":\"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==\"}],\"jira_issue\":{\"status\":\"COMPLETED\",\"result\":{\"issue_id\":\"2523584\",\"issue_key\":\"CSMSEC-105851\",\"issue_url\":\"https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105851\",\"account_id\":\"fdcffa62-24ab-4914-a195-a22bdc607030\"}},\"key\":\"CSMINV-524\",\"modified_at\":\"2026-01-02T17:23:32.188706Z\",\"priority\":\"P3\",\"status\":\"OPEN\",\"status_group\":\"SG_OPEN\",\"status_name\":\"Open\",\"title\":\"A title\",\"type\":\"SECURITY\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"dc09afab-6ae7-11ef-92b1-828dac1b0195\",\"type\":\"users\"}},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}}},{\"id\":\"55b8c3c1-7080-4e13-b5fc-6bb658609fb7\",\"type\":\"cases\",\"attributes\":{\"created_at\":\"2026-01-02T17:23:30.862076Z\",\"creation_source\":\"CS_SECURITY_FINDING\",\"description\":\"A description\",\"insights\":[{\"type\":\"SECURITY_FINDING\",\"ref\":\"/security/compliance?panels=cpfinding%7Cevent%7CruleId%3Akvh-scm-xyu%7CresourceId%3Ai-05f90f00a848687e8\\u0026query=%40finding_id%3Aa3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA%3D%3D\",\"resource_id\":\"a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==\"}],\"jira_issue\":{\"status\":\"COMPLETED\",\"result\":{\"issue_id\":\"2523583\",\"issue_key\":\"CSMSEC-105850\",\"issue_url\":\"https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105850\",\"account_id\":\"fdcffa62-24ab-4914-a195-a22bdc607030\"}},\"key\":\"CSMINV-525\",\"modified_at\":\"2026-01-02T17:23:31.898339Z\",\"priority\":\"P3\",\"status\":\"OPEN\",\"status_group\":\"SG_OPEN\",\"status_name\":\"Open\",\"title\":\"A title\",\"type\":\"SECURITY\"},\"relationships\":{\"created_by\":{\"data\":{\"id\":\"dc09afab-6ae7-11ef-92b1-828dac1b0195\",\"type\":\"users\"}},\"project\":{\"data\":{\"id\":\"959a6f71-bac8-4027-b1d3-2264f569296f\",\"type\":\"projects\"}}}}]}", - "headers": { - "Content-Type": [ - "application/vnd.api+json" - ] - }, - "statusCode": 201, - "reasonPhrase": "Created" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "132caa04-d2db-3946-4db5-e58fdce2385c" - }, - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":{\"relationships\":{\"findings\":{\"data\":[{\"id\":\"eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==\",\"type\":\"findings\"}]}},\"type\":\"cases\"}}" - }, - "headers": {}, - "method": "DELETE", - "path": "/api/v2/security/findings/cases", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "headers": {}, - "statusCode": 204, - "reasonPhrase": "No Content" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "29d85841-9a93-92de-28bd-034b4f599ce2" - } -] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.freeze deleted file mode 100644 index 9fd2d2504eb..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2026-01-02T16:58:53.646Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.json deleted file mode 100644 index 7ae94838fa5..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_Jira_issues_for_security_findings_returns_Not_Found_response.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":[{\"attributes\":{},\"relationships\":{\"findings\":{\"data\":[{\"id\":\"ZGZhMDI3ZjdjMDM3YjJmNzcxNTlhZGMwMjdmZWNiNTZ-MTVlYTNmYWU3NjNlOTNlYTE2YjM4N2JmZmI4Yjk5N2Y=\",\"type\":\"findings\"}]},\"project\":{\"data\":{\"id\":\"00000000-0000-0000-0000-000000000000\",\"type\":\"projects\"}}},\"type\":\"jira_issues\"}]}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/security/findings/jira_issues", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"finding not found\"}]}", - "headers": { - "Content-Type": [ - "application/vnd.api+json" - ] - }, - "statusCode": 404, - "reasonPhrase": "Not Found" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "5a0057c5-0a17-ca5c-d4c3-2ddbc0e5054c" - } -] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.freeze index 5e31001e436..631b268503a 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.freeze @@ -1 +1 @@ -2023-08-21T19:44:43.622Z \ No newline at end of file +2026-01-23T11:00:10.582Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.json index 3a5ca49777d..eb3ba186438 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_team_link_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-95c34d7fe6d963ff\",\"name\":\"test-name-95c34d7fe6d963ff\"},\"type\":\"team\"}}" + "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-5e6a036c358c6bff\",\"name\":\"test-name-5e6a036c358c6bff\"},\"type\":\"team\"}}" }, "headers": {}, "method": "POST", @@ -12,10 +12,10 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team\",\"id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"attributes\":{\"name\":\"test-name-95c34d7fe6d963ff\",\"handle\":\"test-handle-95c34d7fe6d963ff\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:43.718259+00:00\",\"modified_at\":\"2023-08-21T19:44:43.718264+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/permission-settings\"}}}}}\n", + "body": "{\"data\":{\"id\":\"66d6e3d2-f7ea-4946-bc93-b11db5b9bed4\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":12,\"created_at\":\"2026-01-23T11:00:12.132142+00:00\",\"description\":null,\"handle\":\"test-handle-5e6a036c358c6bff\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2026-01-23T11:00:12.132142+00:00\",\"name\":\"test-name-5e6a036c358c6bff\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/66d6e3d2-f7ea-4946-bc93-b11db5b9bed4/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/66d6e3d2-f7ea-4946-bc93-b11db5b9bed4/permission-settings\"}}}}}", "headers": { "Content-Type": [ - "application/json" + "application/vnd.api+json" ] }, "statusCode": 201, @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "14b54f43-642c-f26f-dd0b-de2c81c4c00f" + "id": "00068138-9fa9-8b8b-0ae8-e31f523c6647" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links", + "path": "/api/v2/team/66d6e3d2-f7ea-4946-bc93-b11db5b9bed4/links", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"2d348dee-405b-11ee-b5db-da7ad0900002\",\"attributes\":{\"team_id\":\"2d0e6d4e-405b-11ee-84bc-da7ad0900002\",\"label\":\"Link label\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"b0c50a40-f84a-11f0-a7c6-da7ad0900002\",\"attributes\":{\"team_id\":\"66d6e3d2-f7ea-4946-bc93-b11db5b9bed4\",\"label\":\"Link label\",\"url\":\"https://example.com\",\"position\":0}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "96b35eef-1292-8033-358d-a4edeb2f4c83" + "id": "08edb3be-a0fe-0d8b-05eb-1385e52b7be0" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002/links/2d348dee-405b-11ee-b5db-da7ad0900002", + "path": "/api/v2/team/66d6e3d2-f7ea-4946-bc93-b11db5b9bed4/links/b0c50a40-f84a-11f0-a7c6-da7ad0900002", "keepAlive": false, "secure": true }, @@ -78,13 +78,13 @@ "timeToLive": { "unlimited": true }, - "id": "a26fbc5a-2d87-f345-bec5-c68f206ce8c4" + "id": "6b0a2065-3444-97ac-5984-3293e3dda0f1" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/2d0e6d4e-405b-11ee-84bc-da7ad0900002", + "path": "/api/v2/team/66d6e3d2-f7ea-4946-bc93-b11db5b9bed4", "keepAlive": false, "secure": true }, @@ -99,6 +99,6 @@ "timeToLive": { "unlimited": true }, - "id": "3692338f-5522-fb0b-6b32-c510f8247e38" + "id": "ae0032e1-7a7e-a8c1-6029-1533d949aa45" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.freeze index 9bd719325e2..4a7b92f84ed 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.freeze @@ -1 +1 @@ -2023-08-21T19:44:45.969Z \ No newline at end of file +2026-01-23T11:00:13.515Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.json index 90b71e78ce4..bf31e855b3b 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_team_link_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-17f710cc6491a98e\",\"name\":\"test-name-17f710cc6491a98e\"},\"type\":\"team\"}}" + "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-94cf752f98fda23c\",\"name\":\"test-name-94cf752f98fda23c\"},\"type\":\"team\"}}" }, "headers": {}, "method": "POST", @@ -12,10 +12,10 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team\",\"id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"attributes\":{\"name\":\"test-name-17f710cc6491a98e\",\"handle\":\"test-handle-17f710cc6491a98e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:46.071074+00:00\",\"modified_at\":\"2023-08-21T19:44:46.071080+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/permission-settings\"}}}}}\n", + "body": "{\"data\":{\"id\":\"35d819d9-918b-4d29-838d-ed8507398b21\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":10,\"created_at\":\"2026-01-23T11:00:13.808835+00:00\",\"description\":null,\"handle\":\"test-handle-94cf752f98fda23c\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2026-01-23T11:00:13.808835+00:00\",\"name\":\"test-name-94cf752f98fda23c\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21/permission-settings\"}}}}}", "headers": { "Content-Type": [ - "application/json" + "application/vnd.api+json" ] }, "statusCode": 201, @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "a6665158-2491-e7cb-dd4c-ae02014ba600" + "id": "193b42ba-776e-7a41-9028-fa219ef2f403" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" + "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Get_a_team_link_returns_OK_response-1769166013\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links", + "path": "/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21/links", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"b1c355f0-f84a-11f0-8d16-da7ad0900002\",\"attributes\":{\"team_id\":\"35d819d9-918b-4d29-838d-ed8507398b21\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1769166013\",\"url\":\"https://example.com\",\"position\":0}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,21 +57,21 @@ "timeToLive": { "unlimited": true }, - "id": "04ff94ad-85bb-ad81-2c48-6f4afed2b1b3" + "id": "cc87beb1-aa22-c0f9-f480-396c052f48d0" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002", + "path": "/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21/links/b1c355f0-f84a-11f0-8d16-da7ad0900002", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"2e91164e-405b-11ee-9f5b-da7ad0900002\",\"attributes\":{\"team_id\":\"2e757196-405b-11ee-bc70-da7ad0900002\",\"label\":\"Test-Get_a_team_link_returns_OK_response-1692647085\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"id\":\"b1c355f0-f84a-11f0-8d16-da7ad0900002\",\"type\":\"team_links\",\"attributes\":{\"label\":\"Test-Get_a_team_link_returns_OK_response-1769166013\",\"position\":0,\"team_id\":\"35d819d9-918b-4d29-838d-ed8507398b21\",\"url\":\"https://example.com\"}}}", "headers": { "Content-Type": [ - "application/json" + "application/vnd.api+json" ] }, "statusCode": 200, @@ -83,13 +83,13 @@ "timeToLive": { "unlimited": true }, - "id": "87baa1f7-ab28-a641-3aaf-96c198fb2b89" + "id": "c5412809-e403-adf0-f6d9-8482034eb7fe" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002/links/2e91164e-405b-11ee-9f5b-da7ad0900002", + "path": "/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21/links/b1c355f0-f84a-11f0-8d16-da7ad0900002", "keepAlive": false, "secure": true }, @@ -104,13 +104,13 @@ "timeToLive": { "unlimited": true }, - "id": "cbfef412-54c4-b23c-63c0-6ba45af9f0fb" + "id": "434b5eed-3db7-752e-2638-d60aa8b65bba" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/2e757196-405b-11ee-bc70-da7ad0900002", + "path": "/api/v2/team/35d819d9-918b-4d29-838d-ed8507398b21", "keepAlive": false, "secure": true }, @@ -125,6 +125,6 @@ "timeToLive": { "unlimited": true }, - "id": "338eee1c-ee34-cb4d-b50e-e192c778c370" + "id": "7189d72c-fd2f-4bbf-dd94-116ac7e74dcc" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.freeze index d6c4862f1f5..e97109a744f 100644 --- a/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.freeze +++ b/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.freeze @@ -1 +1 @@ -2023-08-21T19:44:50.990Z \ No newline at end of file +2026-01-23T11:00:15.520Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.json index 265147945b0..066d8ac8d26 100644 --- a/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Remove_a_team_link_returns_No_Content_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-174fbe08316e4419\",\"name\":\"test-name-174fbe08316e4419\"},\"type\":\"team\"}}" + "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-5e7e3d924d3cf03e\",\"name\":\"test-name-5e7e3d924d3cf03e\"},\"type\":\"team\"}}" }, "headers": {}, "method": "POST", @@ -12,10 +12,10 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team\",\"id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"attributes\":{\"name\":\"test-name-174fbe08316e4419\",\"handle\":\"test-handle-174fbe08316e4419\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:51.098613+00:00\",\"modified_at\":\"2023-08-21T19:44:51.098619+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/permission-settings\"}}}}}\n", + "body": "{\"data\":{\"id\":\"59e1efcf-eb13-4a2b-8fcf-64590d56007f\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":7,\"created_at\":\"2026-01-23T11:00:15.837894+00:00\",\"description\":null,\"handle\":\"test-handle-5e7e3d924d3cf03e\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2026-01-23T11:00:15.837894+00:00\",\"name\":\"test-name-5e7e3d924d3cf03e\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f/permission-settings\"}}}}}", "headers": { "Content-Type": [ - "application/json" + "application/vnd.api+json" ] }, "statusCode": 201, @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "30ca486e-4dc1-0194-738a-4bbed53e06eb" + "id": "65aed4cf-85b8-65f5-fc72-3b4698e78e93" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" + "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1769166015\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links", + "path": "/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f/links", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"3194a5c2-405b-11ee-b009-da7ad0900002\",\"attributes\":{\"team_id\":\"3174aa4c-405b-11ee-9d78-da7ad0900002\",\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1692647090\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"b2fba45e-f84a-11f0-9d5d-da7ad0900002\",\"attributes\":{\"team_id\":\"59e1efcf-eb13-4a2b-8fcf-64590d56007f\",\"label\":\"Test-Remove_a_team_link_returns_No_Content_response-1769166015\",\"url\":\"https://example.com\",\"position\":0}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "6fa873e6-9e49-2630-6244-ea09237a7c9e" + "id": "cf8c303d-cecf-6fb9-4976-d158ce2a929c" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002", + "path": "/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f/links/b2fba45e-f84a-11f0-9d5d-da7ad0900002", "keepAlive": false, "secure": true }, @@ -78,18 +78,18 @@ "timeToLive": { "unlimited": true }, - "id": "0a26643b-7dcb-0167-b894-93c627ebf1ba" + "id": "56784d0a-945e-4e64-c29f-39146fe0efe0" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002/links/3194a5c2-405b-11ee-b009-da7ad0900002", + "path": "/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f/links/b2fba45e-f84a-11f0-9d5d-da7ad0900002", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"errors\":[\"Link for ID 3194a5c2-405b-11ee-b009-da7ad0900002 not found\"]}", + "body": "{\"errors\":[\"Link for ID b2fba45e-f84a-11f0-9d5d-da7ad0900002 not found\"]}", "headers": { "Content-Type": [ "application/json" @@ -104,13 +104,13 @@ "timeToLive": { "unlimited": true }, - "id": "0a26643b-7dcb-0167-b894-93c627ebf1bb" + "id": "56784d0a-945e-4e64-c29f-39146fe0efe1" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/3174aa4c-405b-11ee-9d78-da7ad0900002", + "path": "/api/v2/team/59e1efcf-eb13-4a2b-8fcf-64590d56007f", "keepAlive": false, "secure": true }, @@ -125,6 +125,6 @@ "timeToLive": { "unlimited": true }, - "id": "a592b9bb-0b8d-ad62-0587-b46b2d6801a9" + "id": "27eff17a-655b-8192-7d3d-21e6501ef95d" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.freeze index 272098258dc..050e95d3408 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.freeze @@ -1 +1 @@ -2023-08-21T19:44:53.594Z \ No newline at end of file +2026-01-23T11:00:17.594Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.json index 9a22395a133..296c5d7668c 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_team_link_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-9503f929e485f83e\",\"name\":\"test-name-9503f929e485f83e\"},\"type\":\"team\"}}" + "json": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-98fa6b5d3df15a52\",\"name\":\"test-name-98fa6b5d3df15a52\"},\"type\":\"team\"}}" }, "headers": {}, "method": "POST", @@ -12,10 +12,10 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team\",\"id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"attributes\":{\"name\":\"test-name-9503f929e485f83e\",\"handle\":\"test-handle-9503f929e485f83e\",\"summary\":null,\"description\":null,\"avatar\":null,\"banner\":null,\"visible_modules\":[],\"hidden_modules\":[],\"created_at\":\"2023-08-21T19:44:53.699451+00:00\",\"modified_at\":\"2023-08-21T19:44:53.699457+00:00\",\"user_count\":0,\"link_count\":0},\"relationships\":{\"team_links\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links\"}},\"user_team_permissions\":{\"links\":{\"related\":\"/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/permission-settings\"}}}}}\n", + "body": "{\"data\":{\"id\":\"ec95ccd2-5cf4-494a-971c-84a604f7dde5\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":0,\"created_at\":\"2026-01-23T11:00:17.893904+00:00\",\"description\":null,\"handle\":\"test-handle-98fa6b5d3df15a52\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2026-01-23T11:00:17.893904+00:00\",\"name\":\"test-name-98fa6b5d3df15a52\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5/permission-settings\"}}}}}", "headers": { "Content-Type": [ - "application/json" + "application/vnd.api+json" ] }, "statusCode": 201, @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "eadb1d75-8a6b-6cff-4f86-522db8c34666" + "id": "4203b725-728c-d562-4a50-8fd99f5ec822" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" + "json": "{\"data\":{\"attributes\":{\"label\":\"Test-Update_a_team_link_returns_OK_response-1769166017\",\"position\":0,\"url\":\"https://example.com\"},\"type\":\"team_links\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links", + "path": "/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5/links", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"Test-Update_a_team_link_returns_OK_response-1692647093\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"b433501a-f84a-11f0-9cd8-da7ad0900002\",\"attributes\":{\"team_id\":\"ec95ccd2-5cf4-494a-971c-84a604f7dde5\",\"label\":\"Test-Update_a_team_link_returns_OK_response-1769166017\",\"url\":\"https://example.com\",\"position\":0}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,7 +57,7 @@ "timeToLive": { "unlimited": true }, - "id": "3afbdd5a-4614-1771-a635-9d9a4f7e74f8" + "id": "fe5ab57b-fb04-e419-24b4-415100bec4b4" }, { "httpRequest": { @@ -67,12 +67,12 @@ }, "headers": {}, "method": "PATCH", - "path": "/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002", + "path": "/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5/links/b433501a-f84a-11f0-9cd8-da7ad0900002", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"331f8b00-405b-11ee-bdcc-da7ad0900002\",\"attributes\":{\"team_id\":\"3301859c-405b-11ee-aedf-da7ad0900002\",\"label\":\"New Label\",\"url\":\"https://example.com\",\"position\":0}}}\n", + "body": "{\"data\":{\"type\":\"team_links\",\"id\":\"b433501a-f84a-11f0-9cd8-da7ad0900002\",\"attributes\":{\"team_id\":\"ec95ccd2-5cf4-494a-971c-84a604f7dde5\",\"label\":\"New Label\",\"url\":\"https://example.com\",\"position\":0}}}\n", "headers": { "Content-Type": [ "application/json" @@ -87,13 +87,13 @@ "timeToLive": { "unlimited": true }, - "id": "b4718c69-7ade-117e-7459-31e55e2e7d1a" + "id": "8820e453-dbe5-2e81-505f-fbe13cd5cee8" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002/links/331f8b00-405b-11ee-bdcc-da7ad0900002", + "path": "/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5/links/b433501a-f84a-11f0-9cd8-da7ad0900002", "keepAlive": false, "secure": true }, @@ -108,13 +108,13 @@ "timeToLive": { "unlimited": true }, - "id": "66e8d1ce-6f47-361e-cf36-91887f0a88dc" + "id": "804bc70e-b64f-bbde-205a-46fc0111b929" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/team/3301859c-405b-11ee-aedf-da7ad0900002", + "path": "/api/v2/team/ec95ccd2-5cf4-494a-971c-84a604f7dde5", "keepAlive": false, "secure": true }, @@ -129,6 +129,6 @@ "timeToLive": { "unlimited": true }, - "id": "735e2a8e-b25a-3be8-cbf6-192051aac772" + "id": "e7f967da-49e1-77ac-ea37-5d98fa7ffde8" } ] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index ccc027734e2..1a620afb10f 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature @@ -9,7 +9,7 @@ Feature: Security Monitoring And a valid "appKeyAuth" key in the system And an instance of "SecurityMonitoring" API - @team:DataDog/k9-investigation + @skip @team:DataDog/k9-investigation Scenario: Attach security finding to a Jira issue returns "OK" response Given new "AttachJiraIssue" request And body with value {"data": {"attributes": {"jira_issue_url": "https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105476"}, "relationships": {"findings": {"data": [{"id": "OTQ3NjJkMmYwMTIzMzMxNTc1Y2Q4MTA5NWU0NTBmMDl-ZjE3NjMxZWVkYzBjZGI1NDY2NWY2OGQxZDk4MDY4MmI=", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}} @@ -30,21 +30,21 @@ Feature: Security Monitoring And the response "data.attributes.status_group" is equal to "SG_OPEN" And the response "data.attributes.insights" has item with field "resource_id" with value "ZGZhMDI3ZjdjMDM3YjJmNzcxNTlhZGMwMjdmZWNiNTZ-MTVlYTNmYWU3NjNlOTNlYTE2YjM4N2JmZmI4Yjk5N2Y=" - @team:DataDog/k9-investigation + @skip @team:DataDog/k9-investigation Scenario: Attach security findings to a Jira issue returns "Bad Request" response Given new "AttachJiraIssue" request And body with value {"data": {"attributes": {"jira_issue_url": "https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105476"}, "relationships": {"findings": {"data": []}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}} When the request is sent Then the response status is 400 Bad Request - @team:DataDog/k9-investigation + @skip @team:DataDog/k9-investigation Scenario: Attach security findings to a Jira issue returns "Not Found" response Given new "AttachJiraIssue" request And body with value {"data": {"attributes": {"jira_issue_url": "https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105476"}, "relationships": {"findings": {"data": [{"id": "wrong-finding-id", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}} When the request is sent Then the response status is 404 Not Found - @team:DataDog/k9-investigation + @skip @team:DataDog/k9-investigation Scenario: Attach security findings to a Jira issue returns "OK" response Given new "AttachJiraIssue" request And body with value {"data": {"attributes": {"jira_issue_url": "https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-105476"}, "relationships": {"findings": {"data": [{"id": "OTQ3NjJkMmYwMTIzMzMxNTc1Y2Q4MTA5NWU0NTBmMDl-ZjE3NjMxZWVkYzBjZGI1NDY2NWY2OGQxZDk4MDY4MmI=", "type": "findings"}, {"id": "MTNjN2ZmYWMzMDIxYmU1ZDFiZDRjNWUwN2I1NzVmY2F-YTA3MzllMTUzNWM3NmEyZjdiNzEzOWM5YmViZTMzOGM=", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}} @@ -280,75 +280,27 @@ Feature: Security Monitoring Then the response status is 200 OK And the response "terraformContent" is equal to "resource \"datadog_security_monitoring_rule\" \"_{{ unique_hash }}\" {\n\tname = \"_{{ unique_hash }}\"\n\tenabled = true\n\tquery {\n\t\tquery = \"@test:true\"\n\t\tgroup_by_fields = []\n\t\thas_optional_group_by_fields = false\n\t\tdistinct_fields = []\n\t\taggregation = \"count\"\n\t\tname = \"\"\n\t\tdata_source = \"logs\"\n\t}\n\toptions {\n\t\tkeep_alive = 3600\n\t\tmax_signal_duration = 86400\n\t\tdetection_method = \"threshold\"\n\t\tevaluation_window = 900\n\t}\n\tcase {\n\t\tname = \"\"\n\t\tstatus = \"info\"\n\t\tnotifications = []\n\t\tcondition = \"a > 0\"\n\t}\n\tmessage = \"Test rule\"\n\ttags = []\n\thas_extended_title = false\n\ttype = \"log_detection\"\n}\n" - @team:DataDog/k9-investigation - Scenario: Create Jira issue for security finding returns "Created" response - Given new "CreateJiraIssues" request - And body with value {"data": [{"attributes": {"title": "A title", "description": "A description"}, "relationships": {"findings": {"data": [{"id": "YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}]} - When the request is sent - Then the response status is 201 Created - And the response "data" has length 1 - And the response "data[0]" has field "id" - And the response "data[0].attributes.title" is equal to "A title" - And the response "data[0].attributes.description" is equal to "A description" - And the response "data[0].attributes.type" is equal to "SECURITY" - And the response "data[0].attributes.insights" has length 1 - And the response "data[0].attributes.insights[0].resource_id" is equal to "YmNlZmJhYTcyMDU5ZDk0ZDhiNjRmNGI0NDk4MDdiNzN-MDJlMjg0NzNmYzJiODY2MzJkNjU0OTI4NmVhZTUyY2U=" - And the response "data[0].attributes.insights[0].type" is equal to "SECURITY_FINDING" - And the response "data[0].attributes.jira_issue.status" is equal to "COMPLETED" - - @team:DataDog/k9-investigation - Scenario: Create Jira issue for security findings returns "Created" response - Given new "CreateJiraIssues" request - And body with value {"data": [{"attributes": {"title": "A title", "description": "A description"}, "relationships": {"findings": {"data": [{"id": "a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==", "type": "findings"}, {"id": "eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}]} - When the request is sent - Then the response status is 201 Created - And the response "data" has length 1 - And the response "data[0]" has field "id" - And the response "data[0].attributes.title" is equal to "A title" - And the response "data[0].attributes.description" is equal to "A description" - And the response "data[0].attributes.type" is equal to "SECURITY" - And the response "data[0].attributes.insights" has length 2 - And the response "data[0].attributes.insights[1].resource_id" is equal to "eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==" - And the response "data[0].attributes.insights[1].type" is equal to "SECURITY_FINDING" - And the response "data[0].attributes.insights[0].resource_id" is equal to "a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==" - And the response "data[0].attributes.insights[0].type" is equal to "SECURITY_FINDING" - And the response "data[0].attributes.jira_issue.status" is equal to "COMPLETED" - - @team:DataDog/k9-investigation + @generated @skip @team:DataDog/k9-investigation Scenario: Create Jira issues for security findings returns "Bad Request" response - Given new "CreateJiraIssues" request - And body with value {"data": [{"attributes": {}, "relationships": {"findings": {"data": []}, "project": {"data": {"id": "7f198869-c7ef-4afc-97cf-da5cdc13b5c3", "type": "projects"}}}, "type": "jira_issues"}]} + Given operation "CreateJiraIssues" enabled + And new "CreateJiraIssues" request + And body with value {"data": [{"attributes": {"assignee_id": "f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0", "description": "A description of the Jira issue.", "fields": {"key1": "value", "key2": ["value"], "key3": {"key4": "value"}}, "priority": "NOT_DEFINED", "title": "A title for the Jira issue."}, "relationships": {"findings": {"data": [{"id": "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==", "type": "findings"}]}, "project": {"data": {"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001", "type": "projects"}}}, "type": "jira_issues"}]} When the request is sent Then the response status is 400 Bad Request - @team:DataDog/k9-investigation + @generated @skip @team:DataDog/k9-investigation Scenario: Create Jira issues for security findings returns "Created" response - Given new "CreateJiraIssues" request - And body with value {"data": [{"attributes": {"title": "A title", "description": "A description"}, "relationships": {"findings": {"data": [{"id": "eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}, {"attributes": {"title": "A title", "description": "A description"}, "relationships": {"findings": {"data": [{"id": "a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==", "type": "findings"}]}, "project": {"data": {"id": "959a6f71-bac8-4027-b1d3-2264f569296f", "type": "projects"}}}, "type": "jira_issues"}]} + Given operation "CreateJiraIssues" enabled + And new "CreateJiraIssues" request + And body with value {"data": [{"attributes": {"assignee_id": "f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0", "description": "A description of the Jira issue.", "fields": {"key1": "value", "key2": ["value"], "key3": {"key4": "value"}}, "priority": "NOT_DEFINED", "title": "A title for the Jira issue."}, "relationships": {"findings": {"data": [{"id": "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==", "type": "findings"}]}, "project": {"data": {"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001", "type": "projects"}}}, "type": "jira_issues"}]} When the request is sent Then the response status is 201 Created - And the response "data" has length 2 - And the response "data[0]" has field "id" - And the response "data[0].attributes.title" is equal to "A title" - And the response "data[0].attributes.description" is equal to "A description" - And the response "data[0].attributes.type" is equal to "SECURITY" - And the response "data[0].attributes.insights" has length 1 - And the response "data[0].attributes.insights[0].resource_id" is equal to "eWswLWJsdC1hZm5-aS0wMjRlYTgwMzVkZTU1MGIwYQ==" - And the response "data[0].attributes.insights[0].type" is equal to "SECURITY_FINDING" - And the response "data[0].attributes.jira_issue.status" is equal to "COMPLETED" - And the response "data[1]" has field "id" - And the response "data[1].attributes.title" is equal to "A title" - And the response "data[1].attributes.description" is equal to "A description" - And the response "data[1].attributes.type" is equal to "SECURITY" - And the response "data[1].attributes.insights" has length 1 - And the response "data[1].attributes.insights[0].resource_id" is equal to "a3ZoLXNjbS14eXV-aS0wNWY5MGYwMGE4NDg2ODdlOA==" - And the response "data[1].attributes.insights[0].type" is equal to "SECURITY_FINDING" - And the response "data[1].attributes.jira_issue.status" is equal to "COMPLETED" - @team:DataDog/k9-investigation + @generated @skip @team:DataDog/k9-investigation Scenario: Create Jira issues for security findings returns "Not Found" response - Given new "CreateJiraIssues" request - And body with value {"data": [{"attributes": {}, "relationships": {"findings": {"data": [{"id": "ZGZhMDI3ZjdjMDM3YjJmNzcxNTlhZGMwMjdmZWNiNTZ-MTVlYTNmYWU3NjNlOTNlYTE2YjM4N2JmZmI4Yjk5N2Y=", "type": "findings"}]}, "project": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "projects"}}}, "type": "jira_issues"}]} + Given operation "CreateJiraIssues" enabled + And new "CreateJiraIssues" request + And body with value {"data": [{"attributes": {"assignee_id": "f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0", "description": "A description of the Jira issue.", "fields": {"key1": "value", "key2": ["value"], "key3": {"key4": "value"}}, "priority": "NOT_DEFINED", "title": "A title for the Jira issue."}, "relationships": {"findings": {"data": [{"id": "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==", "type": "findings"}]}, "project": {"data": {"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001", "type": "projects"}}}, "type": "jira_issues"}]} When the request is sent Then the response status is 404 Not Found diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 7619933d2f8..a3000f46bff 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -5081,7 +5081,8 @@ "parameters": [ { "name": "team_id", - "source": "data.attributes.team_id" + "origin": "path", + "source": "team_id" }, { "name": "link_id",