From cd33bb9b12a108ea851e9e08a96705b6f74730b6 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 3 Sep 2025 13:41:16 +0000 Subject: [PATCH] Regenerate client from commit 56e171d of spec repo --- .generator/schemas/v2/openapi.yaml | 270 ++++- .../GetSecurityMonitoringHistsignal.java | 27 + ...tSecurityMonitoringHistsignalsByJobId.java | 27 + .../ListSecurityMonitoringHistsignals.java | 27 + .../SearchSecurityMonitoringHistsignals.java | 48 + .../com/datadog/api/client/ApiClient.java | 4 + .../client/v2/api/SecurityMonitoringApi.java | 1006 ++++++++++++++++- .../client/v2/api/security_monitoring.feature | 93 ++ .../com/datadog/api/client/v2/api/undo.json | 24 + 9 files changed, 1452 insertions(+), 74 deletions(-) create mode 100644 examples/v2/security-monitoring/GetSecurityMonitoringHistsignal.java create mode 100644 examples/v2/security-monitoring/GetSecurityMonitoringHistsignalsByJobId.java create mode 100644 examples/v2/security-monitoring/ListSecurityMonitoringHistsignals.java create mode 100644 examples/v2/security-monitoring/SearchSecurityMonitoringHistsignals.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index cb3f6062e01..21b4b1eb3c6 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -433,6 +433,13 @@ components: required: true schema: type: string + HistoricalSignalID: + description: The ID of the historical signal. + in: path + name: histsignal_id + required: true + schema: + type: string IncidentAttachmentFilterQueryParameter: description: Specifies which types of attachments are included in the response. explode: false @@ -745,6 +752,58 @@ components: required: true schema: type: string + QueryFilterFrom: + description: The minimum timestamp for requested security signals. + example: '2019-01-02T09:42:36.320Z' + in: query + name: filter[from] + required: false + schema: + format: date-time + type: string + QueryFilterSearch: + description: The search query for security signals. + example: security:attack status:high + in: query + name: filter[query] + required: false + schema: + type: string + QueryFilterTo: + description: The maximum timestamp for requested security signals. + example: '2019-01-03T09:42:36.320Z' + in: query + name: filter[to] + required: false + schema: + format: date-time + type: string + QueryPageCursor: + description: A list of results using the cursor provided in the previous query. + example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + in: query + name: page[cursor] + required: false + schema: + type: string + QueryPageLimit: + description: The maximum number of security signals in the response. + example: 25 + in: query + name: page[limit] + required: false + schema: + default: 10 + format: int32 + maximum: 1000 + type: integer + QuerySort: + description: The order of the security signals in results. + in: query + name: sort + required: false + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalsSort' RelationInclude: description: Include relationship data. explode: true @@ -65338,52 +65397,12 @@ paths: security signals.' operationId: ListSecurityMonitoringSignals parameters: - - description: The search query for security signals. - example: security:attack status:high - in: query - name: filter[query] - required: false - schema: - type: string - - description: The minimum timestamp for requested security signals. - example: '2019-01-02T09:42:36.320Z' - in: query - name: filter[from] - required: false - schema: - format: date-time - type: string - - description: The maximum timestamp for requested security signals. - example: '2019-01-03T09:42:36.320Z' - in: query - name: filter[to] - required: false - schema: - format: date-time - type: string - - description: The order of the security signals in results. - in: query - name: sort - required: false - schema: - $ref: '#/components/schemas/SecurityMonitoringSignalsSort' - - description: A list of results using the cursor provided in the previous query. - example: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== - in: query - name: page[cursor] - required: false - schema: - type: string - - description: The maximum number of security signals in the response. - example: 25 - in: query - name: page[limit] - required: false - schema: - default: 10 - format: int32 - maximum: 1000 - type: integer + - $ref: '#/components/parameters/QueryFilterSearch' + - $ref: '#/components/parameters/QueryFilterFrom' + - $ref: '#/components/parameters/QueryFilterTo' + - $ref: '#/components/parameters/QuerySort' + - $ref: '#/components/parameters/QueryPageCursor' + - $ref: '#/components/parameters/QueryPageLimit' responses: '200': content: @@ -66664,6 +66683,123 @@ paths: permissions: - incident_settings_write x-unstable: '**Note**: This endpoint is deprecated.' + /api/v2/siem-historical-detections/histsignals: + get: + description: List hist signals. + operationId: ListSecurityMonitoringHistsignals + parameters: + - $ref: '#/components/parameters/QueryFilterSearch' + - $ref: '#/components/parameters/QueryFilterFrom' + - $ref: '#/components/parameters/QueryFilterTo' + - $ref: '#/components/parameters/QuerySort' + - $ref: '#/components/parameters/QueryPageCursor' + - $ref: '#/components/parameters/QueryPageLimit' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalsListResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_signals_read + summary: List hist signals + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_signals_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/histsignals/search: + get: + description: Search hist signals. + operationId: SearchSecurityMonitoringHistsignals + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalListRequest' + required: false + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalsListResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_signals_read + summary: Search hist signals + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_signals_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/histsignals/{histsignal_id}: + get: + description: Get a hist signal's details. + operationId: GetSecurityMonitoringHistsignal + parameters: + - $ref: '#/components/parameters/HistoricalSignalID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_signals_read + summary: Get a hist signal's details + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_signals_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: get: description: List historical jobs. @@ -66885,6 +67021,48 @@ paths: - 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/{job_id}/histsignals: + get: + description: Get a job's hist signals. + operationId: GetSecurityMonitoringHistsignalsByJobId + parameters: + - $ref: '#/components/parameters/HistoricalJobID' + - $ref: '#/components/parameters/QueryFilterSearch' + - $ref: '#/components/parameters/QueryFilterFrom' + - $ref: '#/components/parameters/QueryFilterTo' + - $ref: '#/components/parameters/QuerySort' + - $ref: '#/components/parameters/QueryPageCursor' + - $ref: '#/components/parameters/QueryPageLimit' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalsListResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_signals_read + summary: Get a job's hist signals + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_signals_read + 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: diff --git a/examples/v2/security-monitoring/GetSecurityMonitoringHistsignal.java b/examples/v2/security-monitoring/GetSecurityMonitoringHistsignal.java new file mode 100644 index 00000000000..348739fa74a --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringHistsignal.java @@ -0,0 +1,27 @@ +// Get a hist signal's details returns "OK" 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.SecurityMonitoringSignalResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getSecurityMonitoringHistsignal", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringSignalResponse result = + apiInstance.getSecurityMonitoringHistsignal("histsignal_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#getSecurityMonitoringHistsignal"); + 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/GetSecurityMonitoringHistsignalsByJobId.java b/examples/v2/security-monitoring/GetSecurityMonitoringHistsignalsByJobId.java new file mode 100644 index 00000000000..871e6663271 --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringHistsignalsByJobId.java @@ -0,0 +1,27 @@ +// Get a job's hist signals returns "OK" 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.SecurityMonitoringSignalsListResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getSecurityMonitoringHistsignalsByJobId", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringSignalsListResponse result = + apiInstance.getSecurityMonitoringHistsignalsByJobId("job_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#getSecurityMonitoringHistsignalsByJobId"); + 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/ListSecurityMonitoringHistsignals.java b/examples/v2/security-monitoring/ListSecurityMonitoringHistsignals.java new file mode 100644 index 00000000000..006dbae9830 --- /dev/null +++ b/examples/v2/security-monitoring/ListSecurityMonitoringHistsignals.java @@ -0,0 +1,27 @@ +// List hist signals returns "OK" 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.SecurityMonitoringSignalsListResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listSecurityMonitoringHistsignals", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringSignalsListResponse result = + apiInstance.listSecurityMonitoringHistsignals(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#listSecurityMonitoringHistsignals"); + 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/SearchSecurityMonitoringHistsignals.java b/examples/v2/security-monitoring/SearchSecurityMonitoringHistsignals.java new file mode 100644 index 00000000000..9634551f115 --- /dev/null +++ b/examples/v2/security-monitoring/SearchSecurityMonitoringHistsignals.java @@ -0,0 +1,48 @@ +// Search hist signals returns "OK" 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.api.SecurityMonitoringApi.SearchSecurityMonitoringHistsignalsOptionalParameters; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalListRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalListRequestFilter; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalListRequestPage; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsListResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsSort; +import java.time.OffsetDateTime; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.searchSecurityMonitoringHistsignals", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringSignalListRequest body = + new SecurityMonitoringSignalListRequest() + .filter( + new SecurityMonitoringSignalListRequestFilter() + .from(OffsetDateTime.parse("2019-01-02T09:42:36.320Z")) + .query("security:attack status:high") + .to(OffsetDateTime.parse("2019-01-03T09:42:36.320Z"))) + .page( + new SecurityMonitoringSignalListRequestPage() + .cursor( + "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==") + .limit(25)) + .sort(SecurityMonitoringSignalsSort.TIMESTAMP_ASCENDING); + + try { + SecurityMonitoringSignalsListResponse result = + apiInstance.searchSecurityMonitoringHistsignals( + new SearchSecurityMonitoringHistsignalsOptionalParameters().body(body)); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#searchSecurityMonitoringHistsignals"); + 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 f42026e67b9..296e4dcb148 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -699,13 +699,17 @@ public class ApiClient { put("v2.getHistoricalJob", false); put("v2.getRuleVersionHistory", false); put("v2.getSBOM", false); + put("v2.getSecurityMonitoringHistsignal", false); + put("v2.getSecurityMonitoringHistsignalsByJobId", false); put("v2.listAssetsSBOMs", false); put("v2.listFindings", false); put("v2.listHistoricalJobs", false); + put("v2.listSecurityMonitoringHistsignals", false); put("v2.listVulnerabilities", false); put("v2.listVulnerableAssets", false); put("v2.muteFindings", false); put("v2.runHistoricalJob", false); + put("v2.searchSecurityMonitoringHistsignals", false); put("v2.createDataset", false); put("v2.deleteDataset", false); put("v2.getAllDatasets", 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 14b80d60672..288a766d228 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 @@ -4413,6 +4413,485 @@ public CompletableFuture> getSecurityFilterW new GenericType() {}); } + /** + * Get a hist signal's details. + * + *

See {@link #getSecurityMonitoringHistsignalWithHttpInfo}. + * + * @param histsignalId The ID of the historical signal. (required) + * @return SecurityMonitoringSignalResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalResponse getSecurityMonitoringHistsignal(String histsignalId) + throws ApiException { + return getSecurityMonitoringHistsignalWithHttpInfo(histsignalId).getData(); + } + + /** + * Get a hist signal's details. + * + *

See {@link #getSecurityMonitoringHistsignalWithHttpInfoAsync}. + * + * @param histsignalId The ID of the historical signal. (required) + * @return CompletableFuture<SecurityMonitoringSignalResponse> + */ + public CompletableFuture getSecurityMonitoringHistsignalAsync( + String histsignalId) { + return getSecurityMonitoringHistsignalWithHttpInfoAsync(histsignalId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get a hist signal's details. + * + * @param histsignalId The ID of the historical signal. (required) + * @return ApiResponse<SecurityMonitoringSignalResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getSecurityMonitoringHistsignalWithHttpInfo( + String histsignalId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringHistsignal"; + 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 'histsignalId' is set + if (histsignalId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'histsignalId' when calling" + + " getSecurityMonitoringHistsignal"); + } + // create path and map variables + String localVarPath = + "/api/v2/siem-historical-detections/histsignals/{histsignal_id}" + .replaceAll( + "\\{" + "histsignal_id" + "\\}", apiClient.escapeString(histsignalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringHistsignal", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a hist signal's details. + * + *

See {@link #getSecurityMonitoringHistsignalWithHttpInfo}. + * + * @param histsignalId The ID of the historical signal. (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalResponse>> + */ + public CompletableFuture> + getSecurityMonitoringHistsignalWithHttpInfoAsync(String histsignalId) { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringHistsignal"; + 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 'histsignalId' is set + if (histsignalId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'histsignalId' when calling" + + " getSecurityMonitoringHistsignal")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/siem-historical-detections/histsignals/{histsignal_id}" + .replaceAll( + "\\{" + "histsignal_id" + "\\}", apiClient.escapeString(histsignalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringHistsignal", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to getSecurityMonitoringHistsignalsByJobId. */ + public static class GetSecurityMonitoringHistsignalsByJobIdOptionalParameters { + private String filterQuery; + private OffsetDateTime filterFrom; + private OffsetDateTime filterTo; + private SecurityMonitoringSignalsSort sort; + private String pageCursor; + private Integer pageLimit; + + /** + * Set filterQuery. + * + * @param filterQuery The search query for security signals. (optional) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters filterQuery( + String filterQuery) { + this.filterQuery = filterQuery; + return this; + } + + /** + * Set filterFrom. + * + * @param filterFrom The minimum timestamp for requested security signals. (optional) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters filterFrom( + OffsetDateTime filterFrom) { + this.filterFrom = filterFrom; + return this; + } + + /** + * Set filterTo. + * + * @param filterTo The maximum timestamp for requested security signals. (optional) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters filterTo( + OffsetDateTime filterTo) { + this.filterTo = filterTo; + return this; + } + + /** + * Set sort. + * + * @param sort The order of the security signals in results. (optional) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters sort( + SecurityMonitoringSignalsSort sort) { + this.sort = sort; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor A list of results using the cursor provided in the previous query. + * (optional) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit The maximum number of security signals in the response. (optional, default + * to 10) + * @return GetSecurityMonitoringHistsignalsByJobIdOptionalParameters + */ + public GetSecurityMonitoringHistsignalsByJobIdOptionalParameters pageLimit(Integer pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * Get a job's hist signals. + * + *

See {@link #getSecurityMonitoringHistsignalsByJobIdWithHttpInfo}. + * + * @param jobId The ID of the job. (required) + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse getSecurityMonitoringHistsignalsByJobId(String jobId) + throws ApiException { + return getSecurityMonitoringHistsignalsByJobIdWithHttpInfo( + jobId, new GetSecurityMonitoringHistsignalsByJobIdOptionalParameters()) + .getData(); + } + + /** + * Get a job's hist signals. + * + *

See {@link #getSecurityMonitoringHistsignalsByJobIdWithHttpInfoAsync}. + * + * @param jobId The ID of the job. (required) + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + getSecurityMonitoringHistsignalsByJobIdAsync(String jobId) { + return getSecurityMonitoringHistsignalsByJobIdWithHttpInfoAsync( + jobId, new GetSecurityMonitoringHistsignalsByJobIdOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get a job's hist signals. + * + *

See {@link #getSecurityMonitoringHistsignalsByJobIdWithHttpInfo}. + * + * @param jobId The ID of the job. (required) + * @param parameters Optional parameters for the request. + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse getSecurityMonitoringHistsignalsByJobId( + String jobId, GetSecurityMonitoringHistsignalsByJobIdOptionalParameters parameters) + throws ApiException { + return getSecurityMonitoringHistsignalsByJobIdWithHttpInfo(jobId, parameters).getData(); + } + + /** + * Get a job's hist signals. + * + *

See {@link #getSecurityMonitoringHistsignalsByJobIdWithHttpInfoAsync}. + * + * @param jobId The ID of the job. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + getSecurityMonitoringHistsignalsByJobIdAsync( + String jobId, GetSecurityMonitoringHistsignalsByJobIdOptionalParameters parameters) { + return getSecurityMonitoringHistsignalsByJobIdWithHttpInfoAsync(jobId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get a job's hist signals. + * + * @param jobId The ID of the job. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<SecurityMonitoringSignalsListResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + getSecurityMonitoringHistsignalsByJobIdWithHttpInfo( + String jobId, GetSecurityMonitoringHistsignalsByJobIdOptionalParameters parameters) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringHistsignalsByJobId"; + 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 + if (jobId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'jobId' when calling" + + " getSecurityMonitoringHistsignalsByJobId"); + } + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/siem-historical-detections/jobs/{job_id}/histsignals" + .replaceAll("\\{" + "job_id" + "\\}", apiClient.escapeString(jobId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringHistsignalsByJobId", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a job's hist signals. + * + *

See {@link #getSecurityMonitoringHistsignalsByJobIdWithHttpInfo}. + * + * @param jobId The ID of the job. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalsListResponse>> + */ + public CompletableFuture> + getSecurityMonitoringHistsignalsByJobIdWithHttpInfoAsync( + String jobId, GetSecurityMonitoringHistsignalsByJobIdOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringHistsignalsByJobId"; + 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 + if (jobId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'jobId' when calling" + + " getSecurityMonitoringHistsignalsByJobId")); + return result; + } + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/siem-historical-detections/jobs/{job_id}/histsignals" + .replaceAll("\\{" + "job_id" + "\\}", apiClient.escapeString(jobId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringHistsignalsByJobId", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Get a rule's details. * @@ -6733,26 +7212,254 @@ public ApiResponse listHistoricalJobsWithHttpInfo( } /** - * Get all security filters. + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfo}. + * + * @return SecurityFiltersResponse + * @throws ApiException if fails to make API call + */ + public SecurityFiltersResponse listSecurityFilters() throws ApiException { + return listSecurityFiltersWithHttpInfo().getData(); + } + + /** + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityFiltersResponse> + */ + public CompletableFuture listSecurityFiltersAsync() { + return listSecurityFiltersWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of configured security filters with their definitions. + * + * @return ApiResponse<SecurityFiltersResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listSecurityFiltersWithHttpInfo() + throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<SecurityFiltersResponse>> + */ + public CompletableFuture> + listSecurityFiltersWithHttpInfoAsync() { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listSecurityMonitoringHistsignals. */ + public static class ListSecurityMonitoringHistsignalsOptionalParameters { + private String filterQuery; + private OffsetDateTime filterFrom; + private OffsetDateTime filterTo; + private SecurityMonitoringSignalsSort sort; + private String pageCursor; + private Integer pageLimit; + + /** + * Set filterQuery. + * + * @param filterQuery The search query for security signals. (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters filterQuery(String filterQuery) { + this.filterQuery = filterQuery; + return this; + } + + /** + * Set filterFrom. + * + * @param filterFrom The minimum timestamp for requested security signals. (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters filterFrom( + OffsetDateTime filterFrom) { + this.filterFrom = filterFrom; + return this; + } + + /** + * Set filterTo. + * + * @param filterTo The maximum timestamp for requested security signals. (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters filterTo(OffsetDateTime filterTo) { + this.filterTo = filterTo; + return this; + } + + /** + * Set sort. + * + * @param sort The order of the security signals in results. (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters sort( + SecurityMonitoringSignalsSort sort) { + this.sort = sort; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor A list of results using the cursor provided in the previous query. + * (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit The maximum number of security signals in the response. (optional, default + * to 10) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters pageLimit(Integer pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals() + throws ApiException { + return listSecurityMonitoringHistsignalsWithHttpInfo( + new ListSecurityMonitoringHistsignalsOptionalParameters()) + .getData(); + } + + /** + * List hist signals. * - *

See {@link #listSecurityFiltersWithHttpInfo}. + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. * - * @return SecurityFiltersResponse + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + listSecurityMonitoringHistsignalsAsync() { + return listSecurityMonitoringHistsignalsWithHttpInfoAsync( + new ListSecurityMonitoringHistsignalsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return SecurityMonitoringSignalsListResponse * @throws ApiException if fails to make API call */ - public SecurityFiltersResponse listSecurityFilters() throws ApiException { - return listSecurityFiltersWithHttpInfo().getData(); + public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + return listSecurityMonitoringHistsignalsWithHttpInfo(parameters).getData(); } /** - * Get all security filters. + * List hist signals. * - *

See {@link #listSecurityFiltersWithHttpInfoAsync}. + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. * - * @return CompletableFuture<SecurityFiltersResponse> + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> */ - public CompletableFuture listSecurityFiltersAsync() { - return listSecurityFiltersWithHttpInfoAsync() + public CompletableFuture + listSecurityMonitoringHistsignalsAsync( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) { + return listSecurityMonitoringHistsignalsWithHttpInfoAsync(parameters) .thenApply( response -> { return response.getData(); @@ -6760,32 +7467,57 @@ public CompletableFuture listSecurityFiltersAsync() { } /** - * Get the list of configured security filters with their definitions. + * List hist signals. * - * @return ApiResponse<SecurityFiltersResponse> + * @param parameters Optional parameters for the request. + * @return ApiResponse<SecurityMonitoringSignalsListResponse> * @throws ApiException if fails to make API call * @http.response.details * * * * + * * + * * *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
*/ - public ApiResponse listSecurityFiltersWithHttpInfo() - throws ApiException { + public ApiResponse + listSecurityMonitoringHistsignalsWithHttpInfo( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listSecurityMonitoringHistsignals"; + 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; + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; // create path and map variables - String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFilters", + "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, @@ -6798,37 +7530,65 @@ public ApiResponse listSecurityFiltersWithHttpInfo() localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get all security filters. + * List hist signals. * - *

See {@link #listSecurityFiltersWithHttpInfo}. + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. * - * @return CompletableFuture<ApiResponse<SecurityFiltersResponse>> + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalsListResponse>> */ - public CompletableFuture> - listSecurityFiltersWithHttpInfoAsync() { + public CompletableFuture> + listSecurityMonitoringHistsignalsWithHttpInfoAsync( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listSecurityMonitoringHistsignals"; + 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; + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; // create path and map variables - String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFilters", + "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = + new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -6840,7 +7600,7 @@ public ApiResponse listSecurityFiltersWithHttpInfo() localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** Manage optional parameters to listSecurityMonitoringRules. */ @@ -9715,6 +10475,196 @@ public CompletableFuture> runHistoricalJobWithHtt new GenericType() {}); } + /** Manage optional parameters to searchSecurityMonitoringHistsignals. */ + public static class SearchSecurityMonitoringHistsignalsOptionalParameters { + private SecurityMonitoringSignalListRequest body; + + /** + * Set body. + * + * @param body (optional) + * @return SearchSecurityMonitoringHistsignalsOptionalParameters + */ + public SearchSecurityMonitoringHistsignalsOptionalParameters body( + SecurityMonitoringSignalListRequest body) { + this.body = body; + return this; + } + } + + /** + * Search hist signals. + * + *

See {@link #searchSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse searchSecurityMonitoringHistsignals() + throws ApiException { + return searchSecurityMonitoringHistsignalsWithHttpInfo( + new SearchSecurityMonitoringHistsignalsOptionalParameters()) + .getData(); + } + + /** + * Search hist signals. + * + *

See {@link #searchSecurityMonitoringHistsignalsWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + searchSecurityMonitoringHistsignalsAsync() { + return searchSecurityMonitoringHistsignalsWithHttpInfoAsync( + new SearchSecurityMonitoringHistsignalsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Search hist signals. + * + *

See {@link #searchSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse searchSecurityMonitoringHistsignals( + SearchSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + return searchSecurityMonitoringHistsignalsWithHttpInfo(parameters).getData(); + } + + /** + * Search hist signals. + * + *

See {@link #searchSecurityMonitoringHistsignalsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + searchSecurityMonitoringHistsignalsAsync( + SearchSecurityMonitoringHistsignalsOptionalParameters parameters) { + return searchSecurityMonitoringHistsignalsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Search hist signals. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<SecurityMonitoringSignalsListResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + searchSecurityMonitoringHistsignalsWithHttpInfo( + SearchSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "searchSecurityMonitoringHistsignals"; + 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 = parameters.body; + // create path and map variables + String localVarPath = "/api/v2/siem-historical-detections/histsignals/search"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.searchSecurityMonitoringHistsignals", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Search hist signals. + * + *

See {@link #searchSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalsListResponse>> + */ + public CompletableFuture> + searchSecurityMonitoringHistsignalsWithHttpInfoAsync( + SearchSecurityMonitoringHistsignalsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "searchSecurityMonitoringHistsignals"; + 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 = parameters.body; + // create path and map variables + String localVarPath = "/api/v2/siem-historical-detections/histsignals/search"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.searchSecurityMonitoringHistsignals", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** Manage optional parameters to searchSecurityMonitoringSignals. */ public static class SearchSecurityMonitoringSignalsOptionalParameters { private SecurityMonitoringSignalListRequest body; 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 89424290ce1..c06b0abac08 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 @@ -591,6 +591,30 @@ Feature: Security Monitoring Then the response status is 200 OK And the response "data.attributes.evaluation" is equal to "pass" + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a hist signal's details returns "Bad Request" response + Given operation "GetSecurityMonitoringHistsignal" enabled + And new "GetSecurityMonitoringHistsignal" request + And request contains "histsignal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a hist signal's details returns "Not Found" response + Given operation "GetSecurityMonitoringHistsignal" enabled + And new "GetSecurityMonitoringHistsignal" request + And request contains "histsignal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a hist signal's details returns "OK" response + Given operation "GetSecurityMonitoringHistsignal" enabled + And new "GetSecurityMonitoringHistsignal" request + And request contains "histsignal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform Scenario: Get a job's details returns "Bad Request" response Given operation "GetHistoricalJob" enabled @@ -617,6 +641,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a job's hist signals returns "Bad Request" response + Given operation "GetSecurityMonitoringHistsignalsByJobId" enabled + And new "GetSecurityMonitoringHistsignalsByJobId" request + And request contains "job_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a job's hist signals returns "Not Found" response + Given operation "GetSecurityMonitoringHistsignalsByJobId" enabled + And new "GetSecurityMonitoringHistsignalsByJobId" request + And request contains "job_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a job's hist signals returns "OK" response + Given operation "GetSecurityMonitoringHistsignalsByJobId" enabled + And new "GetSecurityMonitoringHistsignalsByJobId" request + And request contains "job_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Get a list of security signals returns "Bad Request" response Given new "SearchSecurityMonitoringSignals" request @@ -942,6 +990,27 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List hist signals returns "Bad Request" response + Given operation "ListSecurityMonitoringHistsignals" enabled + And new "ListSecurityMonitoringHistsignals" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List hist signals returns "Not Found" response + Given operation "ListSecurityMonitoringHistsignals" enabled + And new "ListSecurityMonitoringHistsignals" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List hist signals returns "OK" response + Given operation "ListSecurityMonitoringHistsignals" enabled + And new "ListSecurityMonitoringHistsignals" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: List historical jobs returns "Bad Request" response Given operation "ListHistoricalJobs" enabled @@ -1186,6 +1255,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 201 Status created + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Search hist signals returns "Bad Request" response + Given operation "SearchSecurityMonitoringHistsignals" enabled + And new "SearchSecurityMonitoringHistsignals" request + And body with value {"filter": {"from": "2019-01-02T09:42:36.320Z", "query": "security:attack status:high", "to": "2019-01-03T09:42:36.320Z"}, "page": {"cursor": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==", "limit": 25}, "sort": "timestamp"} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Search hist signals returns "Not Found" response + Given operation "SearchSecurityMonitoringHistsignals" enabled + And new "SearchSecurityMonitoringHistsignals" request + And body with value {"filter": {"from": "2019-01-02T09:42:36.320Z", "query": "security:attack status:high", "to": "2019-01-03T09:42:36.320Z"}, "page": {"cursor": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==", "limit": 25}, "sort": "timestamp"} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Search hist signals returns "OK" response + Given operation "SearchSecurityMonitoringHistsignals" enabled + And new "SearchSecurityMonitoringHistsignals" request + And body with value {"filter": {"from": "2019-01-02T09:42:36.320Z", "query": "security:attack status:high", "to": "2019-01-03T09:42:36.320Z"}, "page": {"cursor": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==", "limit": 25}, "sort": "timestamp"} + When the request is sent + Then the response status is 200 OK + @skip @team:DataDog/k9-cloud-security-platform Scenario: Test a rule returns "Bad Request" response Given new "TestSecurityMonitoringRule" request 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 3ae6306bca4..b3731714ef6 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 @@ -3362,6 +3362,24 @@ "type": "idempotent" } }, + "ListSecurityMonitoringHistsignals": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "SearchSecurityMonitoringHistsignals": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "GetSecurityMonitoringHistsignal": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "ListHistoricalJobs": { "tag": "Security Monitoring", "undo": { @@ -3398,6 +3416,12 @@ "type": "idempotent" } }, + "GetSecurityMonitoringHistsignalsByJobId": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "CreateSLOReportJob": { "tag": "Service Level Objectives", "undo": {