diff --git a/.apigentools-info b/.apigentools-info index f50525e68cf..17081c0e373 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-04-04 20:19:28.929107", - "spec_repo_commit": "3909ab62" + "regenerated": "2025-04-06 16:06:37.559390", + "spec_repo_commit": "fe3756c4" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-04-04 20:19:28.944541", - "spec_repo_commit": "3909ab62" + "regenerated": "2025-04-06 16:06:37.575416", + "spec_repo_commit": "fe3756c4" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 87935c5f60b..0ed29638c65 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -50645,9 +50645,6 @@ paths: summary: List historical jobs tags: - Security Monitoring - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' post: description: Run a historical job. operationId: RunHistoricalJob @@ -50687,9 +50684,6 @@ paths: operator: OR permissions: - security_monitoring_rules_write - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' /api/v2/siem-historical-detections/jobs/signal_convert: post: description: Convert a job result to a signal. @@ -50721,9 +50715,6 @@ paths: operator: OR permissions: - security_monitoring_signals_write - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' /api/v2/siem-historical-detections/jobs/{job_id}: delete: description: Delete an existing job. @@ -50752,9 +50743,6 @@ paths: summary: Delete an existing job tags: - Security Monitoring - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' get: description: Get a job's details. operationId: GetHistoricalJob @@ -50787,9 +50775,6 @@ paths: operator: OR permissions: - security_monitoring_rules_read - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' /api/v2/siem-historical-detections/jobs/{job_id}/cancel: patch: description: Cancel a historical job. @@ -50823,9 +50808,6 @@ paths: operator: OR permissions: - security_monitoring_rules_write - x-unstable: '**Note**: This endpoint is in beta and may be subject to changes. - - Please check the documentation regularly for updates.' /api/v2/slo/report: post: description: 'Create a job to generate an SLO report. The report job is processed diff --git a/examples/v2/security-monitoring/CancelHistoricalJob.java b/examples/v2/security-monitoring/CancelHistoricalJob.java index 6b02bc4d791..89fd3f77975 100644 --- a/examples/v2/security-monitoring/CancelHistoricalJob.java +++ b/examples/v2/security-monitoring/CancelHistoricalJob.java @@ -7,8 +7,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.cancelHistoricalJob", true); - defaultClient.setUnstableOperationEnabled("v2.runHistoricalJob", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); // there is a valid "historical_job" in the system diff --git a/examples/v2/security-monitoring/ConvertJobResultToSignal.java b/examples/v2/security-monitoring/ConvertJobResultToSignal.java index 97fb282e878..46814c09644 100644 --- a/examples/v2/security-monitoring/ConvertJobResultToSignal.java +++ b/examples/v2/security-monitoring/ConvertJobResultToSignal.java @@ -13,7 +13,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.convertJobResultToSignal", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); ConvertJobResultsToSignalsRequest body = diff --git a/examples/v2/security-monitoring/DeleteHistoricalJob.java b/examples/v2/security-monitoring/DeleteHistoricalJob.java index 393d437eb26..5a1cab63e50 100644 --- a/examples/v2/security-monitoring/DeleteHistoricalJob.java +++ b/examples/v2/security-monitoring/DeleteHistoricalJob.java @@ -7,7 +7,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.deleteHistoricalJob", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); try { diff --git a/examples/v2/security-monitoring/GetHistoricalJob.java b/examples/v2/security-monitoring/GetHistoricalJob.java index 4d7e5be994f..cd4333c1edf 100644 --- a/examples/v2/security-monitoring/GetHistoricalJob.java +++ b/examples/v2/security-monitoring/GetHistoricalJob.java @@ -8,8 +8,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.getHistoricalJob", true); - defaultClient.setUnstableOperationEnabled("v2.runHistoricalJob", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); // there is a valid "historical_job" in the system diff --git a/examples/v2/security-monitoring/ListHistoricalJobs.java b/examples/v2/security-monitoring/ListHistoricalJobs.java index 63a819d2537..5560b8b9afe 100644 --- a/examples/v2/security-monitoring/ListHistoricalJobs.java +++ b/examples/v2/security-monitoring/ListHistoricalJobs.java @@ -9,8 +9,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.listHistoricalJobs", true); - defaultClient.setUnstableOperationEnabled("v2.runHistoricalJob", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); // there is a valid "historical_job" in the system diff --git a/examples/v2/security-monitoring/RunHistoricalJob.java b/examples/v2/security-monitoring/RunHistoricalJob.java index 7c9413d8637..e19b39eb85d 100644 --- a/examples/v2/security-monitoring/RunHistoricalJob.java +++ b/examples/v2/security-monitoring/RunHistoricalJob.java @@ -22,7 +22,6 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.runHistoricalJob", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); RunHistoricalJobRequest body = diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 3e0e7436dd7..bf75950be34 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -409,19 +409,13 @@ public class ApiClient { put("v2.updateAWSAccount", false); put("v2.listAWSLogsServices", false); put("v2.getAggregatedConnections", false); - put("v2.cancelHistoricalJob", false); - put("v2.convertJobResultToSignal", false); - put("v2.deleteHistoricalJob", false); put("v2.getFinding", false); - put("v2.getHistoricalJob", false); put("v2.getRuleVersionHistory", false); put("v2.getSBOM", false); put("v2.listFindings", false); - put("v2.listHistoricalJobs", false); put("v2.listVulnerabilities", false); put("v2.listVulnerableAssets", false); put("v2.muteFindings", false); - put("v2.runHistoricalJob", false); put("v2.createScorecardOutcomesBatch", false); put("v2.createScorecardRule", false); put("v2.deleteScorecardRule", 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 60eede6b955..bccb4390b21 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 @@ -147,13 +147,6 @@ public CompletableFuture cancelHistoricalJobAsync(String jobId) { * */ public ApiResponse cancelHistoricalJobWithHttpInfo(String jobId) throws ApiException { - // Check if unstable operation is enabled - String operationId = "cancelHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -197,16 +190,6 @@ public ApiResponse cancelHistoricalJobWithHttpInfo(String jobId) throws Ap * @return CompletableFuture<ApiResponse<Void>> */ public CompletableFuture> cancelHistoricalJobWithHttpInfoAsync(String jobId) { - // Check if unstable operation is enabled - String operationId = "cancelHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -445,13 +428,6 @@ public CompletableFuture convertJobResultToSignalAsync( */ public ApiResponse convertJobResultToSignalWithHttpInfo( ConvertJobResultsToSignalsRequest body) throws ApiException { - // Check if unstable operation is enabled - String operationId = "convertJobResultToSignal"; - 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 @@ -494,16 +470,6 @@ public ApiResponse convertJobResultToSignalWithHttpInfo( */ public CompletableFuture> convertJobResultToSignalWithHttpInfoAsync( ConvertJobResultsToSignalsRequest body) { - // Check if unstable operation is enabled - String operationId = "convertJobResultToSignal"; - 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 @@ -1440,13 +1406,6 @@ public CompletableFuture deleteHistoricalJobAsync(String jobId) { * */ public ApiResponse deleteHistoricalJobWithHttpInfo(String jobId) throws ApiException { - // Check if unstable operation is enabled - String operationId = "deleteHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -1490,16 +1449,6 @@ public ApiResponse deleteHistoricalJobWithHttpInfo(String jobId) throws Ap * @return CompletableFuture<ApiResponse<Void>> */ public CompletableFuture> deleteHistoricalJobWithHttpInfoAsync(String jobId) { - // Check if unstable operation is enabled - String operationId = "deleteHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -3010,13 +2959,6 @@ public CompletableFuture getHistoricalJobAsync(String job */ public ApiResponse getHistoricalJobWithHttpInfo(String jobId) throws ApiException { - // Check if unstable operation is enabled - String operationId = "getHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -3061,16 +3003,6 @@ public ApiResponse getHistoricalJobWithHttpInfo(String jo */ public CompletableFuture> getHistoricalJobWithHttpInfoAsync( String jobId) { - // Check if unstable operation is enabled - String operationId = "getHistoricalJob"; - 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 = null; // verify the required parameter 'jobId' is set @@ -5289,13 +5221,6 @@ public CompletableFuture listHistoricalJobsAsync( */ public ApiResponse listHistoricalJobsWithHttpInfo( ListHistoricalJobsOptionalParameters parameters) throws ApiException { - // Check if unstable operation is enabled - String operationId = "listHistoricalJobs"; - 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 = null; Long pageSize = parameters.pageSize; Long pageNumber = parameters.pageNumber; @@ -5342,16 +5267,6 @@ public ApiResponse listHistoricalJobsWithHttpInfo( */ public CompletableFuture> listHistoricalJobsWithHttpInfoAsync(ListHistoricalJobsOptionalParameters parameters) { - // Check if unstable operation is enabled - String operationId = "listHistoricalJobs"; - 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 = null; Long pageSize = parameters.pageSize; Long pageNumber = parameters.pageNumber; @@ -8227,13 +8142,6 @@ public CompletableFuture runHistoricalJobAsync(RunHistoricalJ */ public ApiResponse runHistoricalJobWithHttpInfo(RunHistoricalJobRequest body) throws ApiException { - // Check if unstable operation is enabled - String operationId = "runHistoricalJob"; - 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 @@ -8276,16 +8184,6 @@ public ApiResponse runHistoricalJobWithHttpInfo(RunHistorical */ public CompletableFuture> runHistoricalJobWithHttpInfoAsync( RunHistoricalJobRequest body) { - // Check if unstable operation is enabled - String operationId = "runHistoricalJob"; - 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/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 f30d22b3aa1..1f2c8e2c814 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 @@ -11,33 +11,28 @@ Feature: Security Monitoring @team:DataDog/k9-cloud-security-platform Scenario: Cancel a historical job returns "Bad Request" response - Given operation "CancelHistoricalJob" enabled - And new "CancelHistoricalJob" request + Given new "CancelHistoricalJob" request And request contains "job_id" parameter with value "inva-lid" When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Cancel a historical job returns "Conflict" response - Given operation "CancelHistoricalJob" enabled - And new "CancelHistoricalJob" request + Given new "CancelHistoricalJob" request And request contains "job_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 409 Conflict @team:DataDog/k9-cloud-security-platform Scenario: Cancel a historical job returns "Not Found" response - Given operation "CancelHistoricalJob" enabled - And new "CancelHistoricalJob" request + Given new "CancelHistoricalJob" request And request contains "job_id" parameter with value "8e2a37fb-b0c8-4761-a7f0-0a8d6a98ba93" When the request is sent Then the response status is 404 Not Found @team:DataDog/k9-cloud-security-platform Scenario: Cancel a historical job returns "OK" response - Given operation "CancelHistoricalJob" enabled - And operation "RunHistoricalJob" enabled - And new "CancelHistoricalJob" request + Given new "CancelHistoricalJob" request And there is a valid "historical_job" in the system And request contains "job_id" parameter from "historical_job.data.id" When the request is sent @@ -93,24 +88,21 @@ Feature: Security Monitoring @team:DataDog/k9-cloud-security-platform Scenario: Convert a job result to a signal returns "Bad Request" response - Given operation "ConvertJobResultToSignal" enabled - And new "ConvertJobResultToSignal" request + Given new "ConvertJobResultToSignal" request And body with value {"data": {"attributes": {"jobResultIds": [""], "notifications": [""], "signalMessage": "A large number of failed login attempts.", "signalSeverity": "critical"}, "type": "historicalDetectionsJobResultSignalConversion"}} When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Convert a job result to a signal returns "Not Found" response - Given operation "ConvertJobResultToSignal" enabled - And new "ConvertJobResultToSignal" request + Given new "ConvertJobResultToSignal" request And body with value {"data": {"attributes": {"jobResultIds": [""], "notifications": [""], "signalMessage": "A large number of failed login attempts.", "signalSeverity": "critical"}, "type": "historicalDetectionsJobResultSignalConversion"}} When the request is sent Then the response status is 404 Not Found @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Convert a job result to a signal returns "OK" response - Given operation "ConvertJobResultToSignal" enabled - And new "ConvertJobResultToSignal" request + Given new "ConvertJobResultToSignal" request And body with value {"data": {"attributes": {"jobResultIds": [""], "notifications": [""], "signalMessage": "A large number of failed login attempts.", "signalSeverity": "critical"}, "type": "historicalDetectionsJobResultSignalConversion"}} When the request is sent Then the response status is 204 OK @@ -410,32 +402,28 @@ Feature: Security Monitoring @team:DataDog/k9-cloud-security-platform Scenario: Delete an existing job returns "Bad Request" response - Given operation "DeleteHistoricalJob" enabled - And new "DeleteHistoricalJob" request + Given new "DeleteHistoricalJob" request And request contains "job_id" parameter with value "inva-lid" When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Delete an existing job returns "Conflict" response - Given operation "DeleteHistoricalJob" enabled - And new "DeleteHistoricalJob" request + Given new "DeleteHistoricalJob" request And request contains "job_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 409 Conflict @team:DataDog/k9-cloud-security-platform Scenario: Delete an existing job returns "Not Found" response - Given operation "DeleteHistoricalJob" enabled - And new "DeleteHistoricalJob" request + Given new "DeleteHistoricalJob" request And request contains "job_id" parameter with value "8e2a37fb-b0c8-4761-a7f0-0a8d6a98ba93" When the request is sent Then the response status is 404 Not Found @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Delete an existing job returns "OK" response - Given operation "DeleteHistoricalJob" enabled - And new "DeleteHistoricalJob" request + Given new "DeleteHistoricalJob" request And request contains "job_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 OK @@ -519,25 +507,21 @@ Feature: Security Monitoring @team:DataDog/k9-cloud-security-platform Scenario: Get a job's details returns "Bad Request" response - Given operation "GetHistoricalJob" enabled - And new "GetHistoricalJob" request + Given new "GetHistoricalJob" request And request contains "job_id" parameter with value "inva-lid" When the request is sent Then the response status is 400 Bad Request @team:DataDog/k9-cloud-security-platform Scenario: Get a job's details returns "Not Found" response - Given operation "GetHistoricalJob" enabled - And new "GetHistoricalJob" request + Given new "GetHistoricalJob" request And request contains "job_id" parameter with value "8e2a37fb-b0c8-4761-a7f0-0a8d6a98ba93" When the request is sent Then the response status is 404 Not Found @team:DataDog/k9-cloud-security-platform Scenario: Get a job's details returns "OK" response - Given operation "GetHistoricalJob" enabled - And operation "RunHistoricalJob" enabled - And new "GetHistoricalJob" request + Given new "GetHistoricalJob" request And there is a valid "historical_job" in the system And request contains "job_id" parameter from "historical_job.data.id" When the request is sent @@ -801,16 +785,13 @@ Feature: Security Monitoring @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: List historical jobs returns "Bad Request" response - Given operation "ListHistoricalJobs" enabled - And new "ListHistoricalJobs" request + Given new "ListHistoricalJobs" request When the request is sent Then the response status is 400 Bad Request @team:DataDog/k9-cloud-security-platform Scenario: List historical jobs returns "OK" response - Given operation "ListHistoricalJobs" enabled - And operation "RunHistoricalJob" enabled - And new "ListHistoricalJobs" request + Given new "ListHistoricalJobs" request And there is a valid "historical_job" in the system And request contains "filter[query]" parameter with value "id:{{historical_job.data.id}}" When the request is sent @@ -1006,24 +987,21 @@ Feature: Security Monitoring @team:DataDog/k9-cloud-security-platform Scenario: Run a historical job returns "Bad Request" response - Given operation "RunHistoricalJob" enabled - And new "RunHistoricalJob" request + Given new "RunHistoricalJob" request And body with value {"data":{"type":"historicalDetectionsJobCreate","attributes":{"jobDefinition":{"type":"log_detection","name":"Excessive number of failed attempts.","queries":[{"query":"source:non_existing_src_weekend","aggregation":"count","groupByFields":[],"distinctFields":[]}],"cases":[{"name":"Condition 1","status":"info","notifications":[],"condition":"a > 1"}],"options":{"keepAlive":3600,"maxSignalDuration":86400,"evaluationWindow":900},"message":"A large number of failed login attempts.","tags":[],"from":1730387522611,"to":1730391122611,"index":"non_existing_index"}}}} When the request is sent Then the response status is 400 Bad Request @team:DataDog/k9-cloud-security-platform Scenario: Run a historical job returns "Not Found" response - Given operation "RunHistoricalJob" enabled - And new "RunHistoricalJob" request + Given new "RunHistoricalJob" request And body with value {"data": { "type": "historicalDetectionsJobCreate", "attributes": {"fromRule": {"caseIndex": 0, "from": 1730201035064, "id": "non-existng", "index": "main", "notifications": [], "to": 1730204635115}}}} When the request is sent Then the response status is 404 Not Found @team:DataDog/k9-cloud-security-platform Scenario: Run a historical job returns "Status created" response - Given operation "RunHistoricalJob" enabled - And new "RunHistoricalJob" request + Given new "RunHistoricalJob" request And body with value {"data":{"type":"historicalDetectionsJobCreate","attributes":{"jobDefinition":{"type":"log_detection","name":"Excessive number of failed attempts.","queries":[{"query":"source:non_existing_src_weekend","aggregation":"count","groupByFields":[],"distinctFields":[]}],"cases":[{"name":"Condition 1","status":"info","notifications":[],"condition":"a > 1"}],"options":{"keepAlive":3600,"maxSignalDuration":86400,"evaluationWindow":900},"message":"A large number of failed login attempts.","tags":[],"from":1730387522611,"to":1730387532611,"index":"main"}}}} When the request is sent Then the response status is 201 Status created