From 83dd120163acb00961c7184ca97c48d17ae7fa70 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 17 Apr 2026 12:19:17 +0000 Subject: [PATCH] Regenerate client from commit cc1a5d2 of spec repo --- .generator/schemas/v2/openapi.yaml | 156 +++++++++ .../BulkEditSecurityMonitoringSignals.java | 50 +++ .../EditSecurityMonitoringSignal.java | 47 +++ .../client/v2/api/SecurityMonitoringApi.java | 312 ++++++++++++++++++ ...urityMonitoringSignalUpdateAttributes.java | 261 +++++++++++++++ .../SecurityMonitoringSignalUpdateData.java | 183 ++++++++++ ...SecurityMonitoringSignalUpdateRequest.java | 148 +++++++++ ...curityMonitoringSignalsBulkUpdateData.java | 211 ++++++++++++ ...ityMonitoringSignalsBulkUpdateRequest.java | 161 +++++++++ .../client/v2/api/security_monitoring.feature | 38 +++ .../com/datadog/api/client/v2/api/undo.json | 12 + 11 files changed, 1579 insertions(+) create mode 100644 examples/v2/security-monitoring/BulkEditSecurityMonitoringSignals.java create mode 100644 examples/v2/security-monitoring/EditSecurityMonitoringSignal.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateRequest.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 3ac7ae5f2b7..2231a2405db 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -64029,6 +64029,38 @@ components: type: string x-enum-varnames: - SIGNAL + SecurityMonitoringSignalUpdateAttributes: + description: Attributes for updating one or more triage attributes of a security signal. + properties: + archive_comment: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveComment" + archive_reason: + $ref: "#/components/schemas/SecurityMonitoringSignalArchiveReason" + assignee: + $ref: "#/components/schemas/SecurityMonitoringTriageUser" + state: + $ref: "#/components/schemas/SecurityMonitoringSignalState" + version: + $ref: "#/components/schemas/SecurityMonitoringSignalVersion" + type: object + SecurityMonitoringSignalUpdateData: + description: Data containing the triage update for a security signal. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringSignalMetadataType" + required: + - attributes + type: object + SecurityMonitoringSignalUpdateRequest: + description: Request body for updating the triage attributes of a security signal. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateData" + required: + - data + type: object SecurityMonitoringSignalVersion: description: Version of the updated signal. If server side version is higher, update will be rejected. format: int64 @@ -64182,6 +64214,33 @@ components: - count - events type: object + SecurityMonitoringSignalsBulkUpdateData: + description: Data for updating a single security signal in a bulk update operation. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateAttributes" + id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + type: + $ref: "#/components/schemas/SecurityMonitoringSignalType" + required: + - id + - attributes + type: object + SecurityMonitoringSignalsBulkUpdateRequest: + description: Request body for updating multiple attributes of multiple security signals. + properties: + data: + description: An array of signal updates. + items: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkUpdateData" + maxItems: 199 + type: array + required: + - data + type: object SecurityMonitoringSignalsListResponse: description: "The response object with all security signals matching the request\nand pagination information." properties: @@ -114190,6 +114249,51 @@ paths: operator: OR permissions: - security_monitoring_signals_write + /api/v2/security_monitoring/signals/bulk/update: + patch: + description: |- + Update one or more triage attributes of multiple security signals at once. + The maximum number of signals that can be updated in a single request is 199. + operationId: BulkEditSecurityMonitoringSignals + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkUpdateRequest" + description: Attributes describing the signal updates. + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SecurityMonitoringSignalsBulkTriageUpdateResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Bulk update security signals + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - security_monitoring_signals_write /api/v2/security_monitoring/signals/search: post: description: |- @@ -114479,6 +114583,58 @@ paths: permissions: - security_monitoring_rules_read - security_monitoring_signals_read + /api/v2/security_monitoring/signals/{signal_id}/update: + patch: + description: |- + Update one or more triage attributes of a security signal. + operationId: EditSecurityMonitoringSignal + parameters: + - $ref: "#/components/parameters/SignalID" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SecurityMonitoringSignalUpdateRequest" + description: Attributes describing the signal triage update. + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SecurityMonitoringSignalTriageUpdateResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update a security signal's triage attributes + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - security_monitoring_signals_write /api/v2/security_monitoring/terraform/{resource_type}/bulk: post: description: |- diff --git a/examples/v2/security-monitoring/BulkEditSecurityMonitoringSignals.java b/examples/v2/security-monitoring/BulkEditSecurityMonitoringSignals.java new file mode 100644 index 00000000000..e675e8208c0 --- /dev/null +++ b/examples/v2/security-monitoring/BulkEditSecurityMonitoringSignals.java @@ -0,0 +1,50 @@ +// Bulk update security 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.SecurityMonitoringSignalArchiveReason; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalState; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalType; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalUpdateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkTriageUpdateResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkUpdateData; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkUpdateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringTriageUser; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringSignalsBulkUpdateRequest body = + new SecurityMonitoringSignalsBulkUpdateRequest() + .data( + Collections.singletonList( + new SecurityMonitoringSignalsBulkUpdateData() + .attributes( + new SecurityMonitoringSignalUpdateAttributes() + .archiveReason(SecurityMonitoringSignalArchiveReason.NONE) + .assignee( + new SecurityMonitoringTriageUser() + .name(null) + .uuid("773b045d-ccf8-4808-bd3b-955ef6a8c940")) + .state(SecurityMonitoringSignalState.OPEN)) + .id("AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA") + .type(SecurityMonitoringSignalType.SIGNAL))); + + try { + SecurityMonitoringSignalsBulkTriageUpdateResponse result = + apiInstance.bulkEditSecurityMonitoringSignals(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#bulkEditSecurityMonitoringSignals"); + 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/EditSecurityMonitoringSignal.java b/examples/v2/security-monitoring/EditSecurityMonitoringSignal.java new file mode 100644 index 00000000000..3ec6e9ff991 --- /dev/null +++ b/examples/v2/security-monitoring/EditSecurityMonitoringSignal.java @@ -0,0 +1,47 @@ +// Update a security signal's triage attributes 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.SecurityMonitoringSignalArchiveReason; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalMetadataType; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalState; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalTriageUpdateResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalUpdateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalUpdateData; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalUpdateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringTriageUser; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringSignalUpdateRequest body = + new SecurityMonitoringSignalUpdateRequest() + .data( + new SecurityMonitoringSignalUpdateData() + .attributes( + new SecurityMonitoringSignalUpdateAttributes() + .archiveReason(SecurityMonitoringSignalArchiveReason.NONE) + .assignee( + new SecurityMonitoringTriageUser() + .name(null) + .uuid("773b045d-ccf8-4808-bd3b-955ef6a8c940")) + .state(SecurityMonitoringSignalState.OPEN)) + .type(SecurityMonitoringSignalMetadataType.SIGNAL_METADATA)); + + try { + SecurityMonitoringSignalTriageUpdateResponse result = + apiInstance.editSecurityMonitoringSignal("signal_id", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#editSecurityMonitoringSignal"); + 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/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index ff95fa787d0..405562817b3 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 @@ -85,9 +85,11 @@ import com.datadog.api.client.v2.model.SecurityMonitoringSignalStateUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalSuggestedActionsResponse; import com.datadog.api.client.v2.model.SecurityMonitoringSignalTriageUpdateResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkAssigneeUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkStateUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkTriageUpdateResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalsBulkUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalsListResponse; import com.datadog.api.client.v2.model.SecurityMonitoringSignalsSort; import com.datadog.api.client.v2.model.SecurityMonitoringSuppressionCreateRequest; @@ -600,6 +602,148 @@ public CompletableFuture> attachJiraIssueWithHt new GenericType() {}); } + /** + * Bulk update security signals. + * + *

See {@link #bulkEditSecurityMonitoringSignalsWithHttpInfo}. + * + * @param body Attributes describing the signal updates. (required) + * @return SecurityMonitoringSignalsBulkTriageUpdateResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsBulkTriageUpdateResponse bulkEditSecurityMonitoringSignals( + SecurityMonitoringSignalsBulkUpdateRequest body) throws ApiException { + return bulkEditSecurityMonitoringSignalsWithHttpInfo(body).getData(); + } + + /** + * Bulk update security signals. + * + *

See {@link #bulkEditSecurityMonitoringSignalsWithHttpInfoAsync}. + * + * @param body Attributes describing the signal updates. (required) + * @return CompletableFuture<SecurityMonitoringSignalsBulkTriageUpdateResponse> + */ + public CompletableFuture + bulkEditSecurityMonitoringSignalsAsync(SecurityMonitoringSignalsBulkUpdateRequest body) { + return bulkEditSecurityMonitoringSignalsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update one or more triage attributes of multiple security signals at once. The maximum number + * of signals that can be updated in a single request is 199. + * + * @param body Attributes describing the signal updates. (required) + * @return ApiResponse<SecurityMonitoringSignalsBulkTriageUpdateResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse + bulkEditSecurityMonitoringSignalsWithHttpInfo(SecurityMonitoringSignalsBulkUpdateRequest body) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling bulkEditSecurityMonitoringSignals"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/bulk/update"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.bulkEditSecurityMonitoringSignals", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Bulk update security signals. + * + *

See {@link #bulkEditSecurityMonitoringSignalsWithHttpInfo}. + * + * @param body Attributes describing the signal updates. (required) + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringSignalsBulkTriageUpdateResponse>> + */ + public CompletableFuture> + bulkEditSecurityMonitoringSignalsWithHttpInfoAsync( + SecurityMonitoringSignalsBulkUpdateRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " bulkEditSecurityMonitoringSignals")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/bulk/update"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.bulkEditSecurityMonitoringSignals", + 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( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Bulk update triage assignee of security signals. * @@ -4706,6 +4850,174 @@ public CompletableFuture> detachCaseWithHttpInfoAsync(DetachCa null); } + /** + * Update a security signal's triage attributes. + * + *

See {@link #editSecurityMonitoringSignalWithHttpInfo}. + * + * @param signalId The ID of the signal. (required) + * @param body Attributes describing the signal triage update. (required) + * @return SecurityMonitoringSignalTriageUpdateResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalTriageUpdateResponse editSecurityMonitoringSignal( + String signalId, SecurityMonitoringSignalUpdateRequest body) throws ApiException { + return editSecurityMonitoringSignalWithHttpInfo(signalId, body).getData(); + } + + /** + * Update a security signal's triage attributes. + * + *

See {@link #editSecurityMonitoringSignalWithHttpInfoAsync}. + * + * @param signalId The ID of the signal. (required) + * @param body Attributes describing the signal triage update. (required) + * @return CompletableFuture<SecurityMonitoringSignalTriageUpdateResponse> + */ + public CompletableFuture + editSecurityMonitoringSignalAsync( + String signalId, SecurityMonitoringSignalUpdateRequest body) { + return editSecurityMonitoringSignalWithHttpInfoAsync(signalId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update one or more triage attributes of a security signal. + * + * @param signalId The ID of the signal. (required) + * @param body Attributes describing the signal triage update. (required) + * @return ApiResponse<SecurityMonitoringSignalTriageUpdateResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + editSecurityMonitoringSignalWithHttpInfo( + String signalId, SecurityMonitoringSignalUpdateRequest body) throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'signalId' is set + if (signalId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'signalId' when calling editSecurityMonitoringSignal"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling editSecurityMonitoringSignal"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/signals/{signal_id}/update" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.editSecurityMonitoringSignal", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update a security signal's triage attributes. + * + *

See {@link #editSecurityMonitoringSignalWithHttpInfo}. + * + * @param signalId The ID of the signal. (required) + * @param body Attributes describing the signal triage update. (required) + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringSignalTriageUpdateResponse>> + */ + public CompletableFuture> + editSecurityMonitoringSignalWithHttpInfoAsync( + String signalId, SecurityMonitoringSignalUpdateRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'signalId' is set + if (signalId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'signalId' when calling" + + " editSecurityMonitoringSignal")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling editSecurityMonitoringSignal")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/signals/{signal_id}/update" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.editSecurityMonitoringSignal", + 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( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Modify the triage assignee of a security signal. * diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateAttributes.java new file mode 100644 index 00000000000..446e0f8ad67 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateAttributes.java @@ -0,0 +1,261 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for updating one or more triage attributes of a security signal. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalUpdateAttributes.JSON_PROPERTY_ARCHIVE_COMMENT, + SecurityMonitoringSignalUpdateAttributes.JSON_PROPERTY_ARCHIVE_REASON, + SecurityMonitoringSignalUpdateAttributes.JSON_PROPERTY_ASSIGNEE, + SecurityMonitoringSignalUpdateAttributes.JSON_PROPERTY_STATE, + SecurityMonitoringSignalUpdateAttributes.JSON_PROPERTY_VERSION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalUpdateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ARCHIVE_COMMENT = "archive_comment"; + private String archiveComment; + + public static final String JSON_PROPERTY_ARCHIVE_REASON = "archive_reason"; + private SecurityMonitoringSignalArchiveReason archiveReason; + + public static final String JSON_PROPERTY_ASSIGNEE = "assignee"; + private SecurityMonitoringTriageUser assignee; + + public static final String JSON_PROPERTY_STATE = "state"; + private SecurityMonitoringSignalState state; + + public static final String JSON_PROPERTY_VERSION = "version"; + private Long version; + + public SecurityMonitoringSignalUpdateAttributes archiveComment(String archiveComment) { + this.archiveComment = archiveComment; + return this; + } + + /** + * Optional comment to display on archived signals. + * + * @return archiveComment + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ARCHIVE_COMMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getArchiveComment() { + return archiveComment; + } + + public void setArchiveComment(String archiveComment) { + this.archiveComment = archiveComment; + } + + public SecurityMonitoringSignalUpdateAttributes archiveReason( + SecurityMonitoringSignalArchiveReason archiveReason) { + this.archiveReason = archiveReason; + this.unparsed |= !archiveReason.isValid(); + return this; + } + + /** + * Reason a signal is archived. + * + * @return archiveReason + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ARCHIVE_REASON) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalArchiveReason getArchiveReason() { + return archiveReason; + } + + public void setArchiveReason(SecurityMonitoringSignalArchiveReason archiveReason) { + if (!archiveReason.isValid()) { + this.unparsed = true; + } + this.archiveReason = archiveReason; + } + + public SecurityMonitoringSignalUpdateAttributes assignee(SecurityMonitoringTriageUser assignee) { + this.assignee = assignee; + this.unparsed |= assignee.unparsed; + return this; + } + + /** + * Object representing a given user entity. + * + * @return assignee + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSIGNEE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringTriageUser getAssignee() { + return assignee; + } + + public void setAssignee(SecurityMonitoringTriageUser assignee) { + this.assignee = assignee; + } + + public SecurityMonitoringSignalUpdateAttributes state(SecurityMonitoringSignalState state) { + this.state = state; + this.unparsed |= !state.isValid(); + return this; + } + + /** + * The new triage state of the signal. + * + * @return state + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalState getState() { + return state; + } + + public void setState(SecurityMonitoringSignalState state) { + if (!state.isValid()) { + this.unparsed = true; + } + this.state = state; + } + + public SecurityMonitoringSignalUpdateAttributes version(Long version) { + this.version = version; + return this; + } + + /** + * Version of the updated signal. If server side version is higher, update will be rejected. + * + * @return version + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VERSION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringSignalUpdateAttributes + */ + @JsonAnySetter + public SecurityMonitoringSignalUpdateAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringSignalUpdateAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalUpdateAttributes securityMonitoringSignalUpdateAttributes = + (SecurityMonitoringSignalUpdateAttributes) o; + return Objects.equals( + this.archiveComment, securityMonitoringSignalUpdateAttributes.archiveComment) + && Objects.equals( + this.archiveReason, securityMonitoringSignalUpdateAttributes.archiveReason) + && Objects.equals(this.assignee, securityMonitoringSignalUpdateAttributes.assignee) + && Objects.equals(this.state, securityMonitoringSignalUpdateAttributes.state) + && Objects.equals(this.version, securityMonitoringSignalUpdateAttributes.version) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalUpdateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + archiveComment, archiveReason, assignee, state, version, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalUpdateAttributes {\n"); + sb.append(" archiveComment: ").append(toIndentedString(archiveComment)).append("\n"); + sb.append(" archiveReason: ").append(toIndentedString(archiveReason)).append("\n"); + sb.append(" assignee: ").append(toIndentedString(assignee)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateData.java new file mode 100644 index 00000000000..58292c16d46 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateData.java @@ -0,0 +1,183 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data containing the triage update for a security signal. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalUpdateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalUpdateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalUpdateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalUpdateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalMetadataType type = + SecurityMonitoringSignalMetadataType.SIGNAL_METADATA; + + public SecurityMonitoringSignalUpdateData() {} + + @JsonCreator + public SecurityMonitoringSignalUpdateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalUpdateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + } + + public SecurityMonitoringSignalUpdateData attributes( + SecurityMonitoringSignalUpdateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating one or more triage attributes of a security signal. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalUpdateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringSignalUpdateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalUpdateData type(SecurityMonitoringSignalMetadataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of event. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalMetadataType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalMetadataType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringSignalUpdateData + */ + @JsonAnySetter + public SecurityMonitoringSignalUpdateData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringSignalUpdateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalUpdateData securityMonitoringSignalUpdateData = + (SecurityMonitoringSignalUpdateData) o; + return Objects.equals(this.attributes, securityMonitoringSignalUpdateData.attributes) + && Objects.equals(this.type, securityMonitoringSignalUpdateData.type) + && Objects.equals( + this.additionalProperties, securityMonitoringSignalUpdateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalUpdateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateRequest.java new file mode 100644 index 00000000000..20814d4c2b6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalUpdateRequest.java @@ -0,0 +1,148 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request body for updating the triage attributes of a security signal. */ +@JsonPropertyOrder({SecurityMonitoringSignalUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringSignalUpdateData data; + + public SecurityMonitoringSignalUpdateRequest() {} + + @JsonCreator + public SecurityMonitoringSignalUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringSignalUpdateData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringSignalUpdateRequest data(SecurityMonitoringSignalUpdateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data containing the triage update for a security signal. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalUpdateData getData() { + return data; + } + + public void setData(SecurityMonitoringSignalUpdateData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringSignalUpdateRequest + */ + @JsonAnySetter + public SecurityMonitoringSignalUpdateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringSignalUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalUpdateRequest securityMonitoringSignalUpdateRequest = + (SecurityMonitoringSignalUpdateRequest) o; + return Objects.equals(this.data, securityMonitoringSignalUpdateRequest.data) + && Objects.equals( + this.additionalProperties, securityMonitoringSignalUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateData.java new file mode 100644 index 00000000000..9dcaad95edf --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateData.java @@ -0,0 +1,211 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data for updating a single security signal in a bulk update operation. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalsBulkUpdateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalsBulkUpdateData.JSON_PROPERTY_ID, + SecurityMonitoringSignalsBulkUpdateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalsBulkUpdateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalUpdateAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalType type = SecurityMonitoringSignalType.SIGNAL; + + public SecurityMonitoringSignalsBulkUpdateData() {} + + @JsonCreator + public SecurityMonitoringSignalsBulkUpdateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalUpdateAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + } + + public SecurityMonitoringSignalsBulkUpdateData attributes( + SecurityMonitoringSignalUpdateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating one or more triage attributes of a security signal. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalUpdateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringSignalUpdateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalsBulkUpdateData id(String id) { + this.id = id; + return this; + } + + /** + * The unique ID of the security signal. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SecurityMonitoringSignalsBulkUpdateData type(SecurityMonitoringSignalType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of event. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringSignalsBulkUpdateData + */ + @JsonAnySetter + public SecurityMonitoringSignalsBulkUpdateData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringSignalsBulkUpdateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalsBulkUpdateData securityMonitoringSignalsBulkUpdateData = + (SecurityMonitoringSignalsBulkUpdateData) o; + return Objects.equals(this.attributes, securityMonitoringSignalsBulkUpdateData.attributes) + && Objects.equals(this.id, securityMonitoringSignalsBulkUpdateData.id) + && Objects.equals(this.type, securityMonitoringSignalsBulkUpdateData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalsBulkUpdateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalsBulkUpdateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateRequest.java new file mode 100644 index 00000000000..f92398e9a6a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsBulkUpdateRequest.java @@ -0,0 +1,161 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Request body for updating multiple attributes of multiple security signals. */ +@JsonPropertyOrder({SecurityMonitoringSignalsBulkUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalsBulkUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public SecurityMonitoringSignalsBulkUpdateRequest() {} + + @JsonCreator + public SecurityMonitoringSignalsBulkUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public SecurityMonitoringSignalsBulkUpdateRequest data( + List data) { + this.data = data; + for (SecurityMonitoringSignalsBulkUpdateData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringSignalsBulkUpdateRequest addDataItem( + SecurityMonitoringSignalsBulkUpdateData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * An array of signal updates. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringSignalsBulkUpdateRequest + */ + @JsonAnySetter + public SecurityMonitoringSignalsBulkUpdateRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringSignalsBulkUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalsBulkUpdateRequest securityMonitoringSignalsBulkUpdateRequest = + (SecurityMonitoringSignalsBulkUpdateRequest) o; + return Objects.equals(this.data, securityMonitoringSignalsBulkUpdateRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalsBulkUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalsBulkUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} 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 1da592aca20..fe7c62475a9 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 @@ -121,6 +121,20 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Bulk update security signals returns "Bad Request" response + Given new "BulkEditSecurityMonitoringSignals" request + And body with value {"data": [{"attributes": {"archive_reason": "none", "assignee": {"name": null, "uuid": "773b045d-ccf8-4808-bd3b-955ef6a8c940"}, "state": "open"}, "id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA", "type": "signal"}]} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Bulk update security signals returns "OK" response + Given new "BulkEditSecurityMonitoringSignals" request + And body with value {"data": [{"attributes": {"archive_reason": "none", "assignee": {"name": null, "uuid": "773b045d-ccf8-4808-bd3b-955ef6a8c940"}, "state": "open"}, "id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA", "type": "signal"}]} + When the request is sent + Then the response status is 200 OK + @skip @team:DataDog/k9-cloud-siem Scenario: Bulk update triage assignee of security signals returns "Bad Request" response Given operation "BulkEditSecurityMonitoringSignalsAssignee" enabled @@ -2188,6 +2202,30 @@ Feature: Security Monitoring And the response "data.attributes.filtered_data_type" is equal to "logs" And the response "data.attributes.name" is equal to "{{ unique }}" + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update a security signal's triage attributes returns "Bad Request" response + Given new "EditSecurityMonitoringSignal" request + And request contains "signal_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"archive_reason": "none", "assignee": {"name": null, "uuid": "773b045d-ccf8-4808-bd3b-955ef6a8c940"}, "state": "open"}, "type": "signal_metadata"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update a security signal's triage attributes returns "Not Found" response + Given new "EditSecurityMonitoringSignal" request + And request contains "signal_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"archive_reason": "none", "assignee": {"name": null, "uuid": "773b045d-ccf8-4808-bd3b-955ef6a8c940"}, "state": "open"}, "type": "signal_metadata"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update a security signal's triage attributes returns "OK" response + Given new "EditSecurityMonitoringSignal" request + And request contains "signal_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"archive_reason": "none", "assignee": {"name": null, "uuid": "773b045d-ccf8-4808-bd3b-955ef6a8c940"}, "state": "open"}, "type": "signal_metadata"}} + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem Scenario: Update a suppression rule returns "Bad Request" response Given new "UpdateSecurityMonitoringSuppression" 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 f78cd823b2c..5dfdd19c83a 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 @@ -5674,6 +5674,12 @@ "type": "idempotent" } }, + "BulkEditSecurityMonitoringSignals": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "SearchSecurityMonitoringSignals": { "tag": "Security Monitoring", "undo": { @@ -5716,6 +5722,12 @@ "type": "safe" } }, + "EditSecurityMonitoringSignal": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "BulkExportSecurityMonitoringTerraformResources": { "tag": "Security Monitoring", "undo": {