From 87311b1420c87e3eb71b5d2968576bdb6f20ef7a Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Tue, 3 Feb 2026 14:53:38 +0000 Subject: [PATCH] Regenerate client from commit ed01520 of spec repo --- .generator/schemas/v2/openapi.yaml | 455 +++++++++++++++++ .../CreateSignalInvestigation.java | 40 ++ .../GetInvestigationFeedback.java | 26 + .../UpdateInvestigationFeedback.java | 57 +++ .../com/datadog/api/client/ApiClient.java | 3 + .../client/v2/api/SecurityMonitoringApi.java | 472 ++++++++++++++++++ ...ringSignalInvestigationFeedbackMetric.java | 237 +++++++++ ...ingSignalInvestigationFeedbackRequest.java | 154 ++++++ ...nvestigationFeedbackRequestAttributes.java | 316 ++++++++++++ ...ignalInvestigationFeedbackRequestData.java | 194 +++++++ ...ngSignalInvestigationFeedbackResponse.java | 154 ++++++ ...vestigationFeedbackResponseAttributes.java | 289 +++++++++++ ...gnalInvestigationFeedbackResponseData.java | 222 ++++++++ ...ingSignalInvestigationFeedbackSection.java | 223 +++++++++ ...toringSignalInvestigationFeedbackType.java | 63 +++ ...yMonitoringSignalInvestigationRequest.java | 151 ++++++ ...gSignalInvestigationRequestAttributes.java | 182 +++++++ ...itoringSignalInvestigationRequestData.java | 190 +++++++ ...MonitoringSignalInvestigationResponse.java | 151 ++++++ ...SignalInvestigationResponseAttributes.java | 275 ++++++++++ ...toringSignalInvestigationResponseData.java | 218 ++++++++ ...ityMonitoringSignalInvestigationState.java | 65 +++ ...rityMonitoringSignalInvestigationStep.java | 160 ++++++ ...nitoringSignalInvestigationStepOutput.java | 258 ++++++++++ ...gSignalInvestigationStepOutputVerdict.java | 69 +++ ...rityMonitoringSignalInvestigationType.java | 63 +++ .../client/v2/api/security_monitoring.feature | 72 +++ .../com/datadog/api/client/v2/api/undo.json | 18 + 28 files changed, 4777 insertions(+) create mode 100644 examples/v2/security-monitoring/CreateSignalInvestigation.java create mode 100644 examples/v2/security-monitoring/GetInvestigationFeedback.java create mode 100644 examples/v2/security-monitoring/UpdateInvestigationFeedback.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackMetric.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackSection.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationState.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStep.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutput.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutputVerdict.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationType.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 840ac4eef97..92bd2709b5f 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -53721,6 +53721,310 @@ components: required: - data type: object + SecurityMonitoringSignalInvestigationFeedbackMetric: + description: A feedback metric containing user response. + properties: + placeholder: + description: Placeholder text for the metric. + example: Enter your feedback here + type: string + prompt: + description: The question or prompt. + example: How helpful was this investigation? + type: string + response: + description: The user's response. + example: Very helpful + type: string + type: + description: The type of metric. + example: sentiment + type: string + required: + - type + - prompt + - response + type: object + SecurityMonitoringSignalInvestigationFeedbackRequest: + description: Request body for submitting investigation feedback. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackRequestData' + required: + - data + type: object + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes: + description: Attributes for investigation feedback. + properties: + feedback: + description: The feedback text. + example: positive + type: string + feedback_content: + description: Structured feedback content. + items: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackSection' + type: array + incomplete: + description: Whether the feedback is incomplete. + example: false + type: boolean + rating: + description: The rating value. + example: positive + type: string + signal_id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + type: + description: The type of feedback. + example: metrics + type: string + required: + - signal_id + - feedback + type: object + SecurityMonitoringSignalInvestigationFeedbackRequestData: + description: Data for submitting investigation feedback. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackRequestAttributes' + type: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackType' + required: + - type + - attributes + type: object + SecurityMonitoringSignalInvestigationFeedbackResponse: + description: Response containing investigation feedback. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackResponseData' + required: + - data + type: object + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes: + description: Attributes of investigation feedback. + properties: + feedback: + description: The feedback text. + example: positive + type: string + feedback_content: + description: Structured feedback content. + items: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackSection' + type: array + investigation_id: + description: The unique ID of the investigation. + example: 550e8400-e29b-41d4-a716-446655440001 + type: string + rating: + description: The rating value. + example: positive + type: string + signal_id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + required: + - feedback + - signal_id + - investigation_id + type: object + SecurityMonitoringSignalInvestigationFeedbackResponseData: + description: Data containing investigation feedback. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackResponseAttributes' + id: + description: The unique ID of the investigation. + example: 550e8400-e29b-41d4-a716-446655440001 + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackType' + required: + - id + - type + - attributes + type: object + SecurityMonitoringSignalInvestigationFeedbackSection: + description: A feedback section containing metrics. + properties: + id: + description: The section identifier. + example: section-1 + type: string + metrics: + description: Array of feedback metrics. + items: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackMetric' + type: array + title: + description: The section title. + example: Investigation Quality + type: string + required: + - id + - title + - metrics + type: object + SecurityMonitoringSignalInvestigationFeedbackType: + description: The type of feedback. + enum: + - investigation_feedback + example: investigation_feedback + type: string + x-enum-varnames: + - INVESTIGATION_FEEDBACK + SecurityMonitoringSignalInvestigationRequest: + description: Request body for creating a security signal investigation. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationRequestData' + required: + - data + type: object + SecurityMonitoringSignalInvestigationRequestAttributes: + description: Attributes for creating a signal investigation. + properties: + deployment: + description: Optional deployment override for the investigation. + example: live + type: string + signal_id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + required: + - signal_id + type: object + SecurityMonitoringSignalInvestigationRequestData: + description: Data for creating a signal investigation. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationRequestAttributes' + type: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationType' + required: + - type + - attributes + type: object + SecurityMonitoringSignalInvestigationResponse: + description: Response containing investigation details for a security signal. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationResponseData' + required: + - data + type: object + SecurityMonitoringSignalInvestigationResponseAttributes: + description: Attributes of a signal investigation response. + properties: + investigation_id: + description: The unique ID of the investigation. + example: 550e8400-e29b-41d4-a716-446655440001 + type: string + rule_id: + description: The ID of the rule that triggered the signal. + example: def-000-an8 + type: string + signal_id: + description: The unique ID of the security signal. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + state: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationState' + step: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationStep' + required: + - signal_id + - rule_id + - investigation_id + type: object + SecurityMonitoringSignalInvestigationResponseData: + description: Data containing the investigation details. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationResponseAttributes' + id: + description: The unique ID of the investigation. + example: 550e8400-e29b-41d4-a716-446655440001 + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationType' + required: + - id + - type + - attributes + type: object + SecurityMonitoringSignalInvestigationState: + description: The state of the investigation. + enum: + - investigating + - completed + example: completed + type: string + x-enum-varnames: + - INVESTIGATING + - COMPLETED + SecurityMonitoringSignalInvestigationStep: + description: Information about an investigation step. + properties: + stepOutputs: + description: Array of step outputs. + items: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationStepOutput' + type: array + required: + - stepOutputs + type: object + SecurityMonitoringSignalInvestigationStepOutput: + description: Output from an investigation step. + properties: + currentStepAnalysisOneliner: + description: A one-line summary of the step analysis. + example: This appears to be a potential security threat. + type: string + currentStepAnalysisSummary: + description: A detailed summary of the step analysis. + example: The analysis indicates unusual access patterns that warrant further + investigation. + type: string + name: + description: The name of the investigation step. + example: startStep + type: string + verdict: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationStepOutputVerdict' + required: + - name + - currentStepAnalysisSummary + - verdict + type: object + SecurityMonitoringSignalInvestigationStepOutputVerdict: + description: The verdict from the investigation step. + enum: + - unspecified + - benign + - suspicious + - inconclusive + example: benign + type: string + x-enum-varnames: + - UNSPECIFIED + - BENIGN + - SUSPICIOUS + - INCONCLUSIVE + SecurityMonitoringSignalInvestigationType: + description: The type of investigation signal. + enum: + - investigation_signal + example: investigation_signal + type: string + x-enum-varnames: + - INVESTIGATION_SIGNAL SecurityMonitoringSignalListRequest: description: The request for a security signal list. properties: @@ -93882,6 +94186,157 @@ paths: operator: OR permissions: - security_monitoring_signals_read + /api/v2/security_monitoring/signals/investigation: + post: + description: Create an investigation for a security signal using AI-powered + analysis. + operationId: CreateSignalInvestigation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationResponse' + 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: + - security_monitoring_signals_read + summary: Create a security signal investigation + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_signals_read + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/security_monitoring/signals/investigation/feedback: + put: + description: Provide feedback on a security signal investigation. + operationId: UpdateInvestigationFeedback + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackRequest' + required: true + responses: + '200': + 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: + - security_monitoring_signals_read + summary: Update investigation feedback + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_signals_read + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/security_monitoring/signals/investigation/feedback/{signal_id}: + get: + description: Retrieve feedback for a security signal investigation. + operationId: GetInvestigationFeedback + parameters: + - $ref: '#/components/parameters/SignalID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringSignalInvestigationFeedbackResponse' + 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: + - security_monitoring_signals_read + summary: Get investigation feedback + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_signals_read + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/security_monitoring/signals/search: post: description: 'Returns security signals that match a search query. diff --git a/examples/v2/security-monitoring/CreateSignalInvestigation.java b/examples/v2/security-monitoring/CreateSignalInvestigation.java new file mode 100644 index 00000000000..68964e6e265 --- /dev/null +++ b/examples/v2/security-monitoring/CreateSignalInvestigation.java @@ -0,0 +1,40 @@ +// Create a security signal investigation 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.SecurityMonitoringSignalInvestigationRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationRequestAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationRequestData; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationType; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createSignalInvestigation", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringSignalInvestigationRequest body = + new SecurityMonitoringSignalInvestigationRequest() + .data( + new SecurityMonitoringSignalInvestigationRequestData() + .attributes( + new SecurityMonitoringSignalInvestigationRequestAttributes() + .deployment("live") + .signalId("AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA")) + .type(SecurityMonitoringSignalInvestigationType.INVESTIGATION_SIGNAL)); + + try { + SecurityMonitoringSignalInvestigationResponse result = + apiInstance.createSignalInvestigation(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#createSignalInvestigation"); + 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/GetInvestigationFeedback.java b/examples/v2/security-monitoring/GetInvestigationFeedback.java new file mode 100644 index 00000000000..6c0f8a04048 --- /dev/null +++ b/examples/v2/security-monitoring/GetInvestigationFeedback.java @@ -0,0 +1,26 @@ +// Get investigation feedback 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.SecurityMonitoringSignalInvestigationFeedbackResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getInvestigationFeedback", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringSignalInvestigationFeedbackResponse result = + apiInstance.getInvestigationFeedback("signal_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#getInvestigationFeedback"); + 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/UpdateInvestigationFeedback.java b/examples/v2/security-monitoring/UpdateInvestigationFeedback.java new file mode 100644 index 00000000000..49b48110001 --- /dev/null +++ b/examples/v2/security-monitoring/UpdateInvestigationFeedback.java @@ -0,0 +1,57 @@ +// Update investigation feedback 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.SecurityMonitoringSignalInvestigationFeedbackMetric; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackRequestAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackRequestData; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackSection; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateInvestigationFeedback", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringSignalInvestigationFeedbackRequest body = + new SecurityMonitoringSignalInvestigationFeedbackRequest() + .data( + new SecurityMonitoringSignalInvestigationFeedbackRequestData() + .attributes( + new SecurityMonitoringSignalInvestigationFeedbackRequestAttributes() + .feedback("positive") + .feedbackContent( + Collections.singletonList( + new SecurityMonitoringSignalInvestigationFeedbackSection() + .id("section-1") + .metrics( + Collections.singletonList( + new SecurityMonitoringSignalInvestigationFeedbackMetric() + .placeholder("Enter your feedback here") + .prompt("How helpful was this investigation?") + .response("Very helpful") + .type("sentiment"))) + .title("Investigation Quality"))) + .incomplete(false) + .rating("positive") + .signalId("AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA") + .type("metrics")) + .type( + SecurityMonitoringSignalInvestigationFeedbackType.INVESTIGATION_FEEDBACK)); + + try { + apiInstance.updateInvestigationFeedback(body); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#updateInvestigationFeedback"); + 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 fcadf72e1e8..c43a41a7d1f 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -777,8 +777,10 @@ public class ApiClient { put("v2.updateOpenAPI", false); put("v2.cancelThreatHuntingJob", false); put("v2.convertJobResultToSignal", false); + put("v2.createSignalInvestigation", false); put("v2.deleteThreatHuntingJob", false); put("v2.getFinding", false); + put("v2.getInvestigationFeedback", false); put("v2.getRuleVersionHistory", false); put("v2.getSecretsRules", false); put("v2.getSecurityMonitoringHistsignal", false); @@ -794,6 +796,7 @@ public class ApiClient { put("v2.muteFindings", false); put("v2.runThreatHuntingJob", false); put("v2.searchSecurityMonitoringHistsignals", false); + put("v2.updateInvestigationFeedback", 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 652774643e8..f3d391ba40b 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 @@ -75,6 +75,10 @@ import com.datadog.api.client.v2.model.SecurityMonitoringSignal; import com.datadog.api.client.v2.model.SecurityMonitoringSignalAssigneeUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalIncidentsUpdateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationFeedbackResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringSignalInvestigationResponse; import com.datadog.api.client.v2.model.SecurityMonitoringSignalListRequest; import com.datadog.api.client.v2.model.SecurityMonitoringSignalListRequestPage; import com.datadog.api.client.v2.model.SecurityMonitoringSignalResponse; @@ -2138,6 +2142,163 @@ public SecurityMonitoringSuppressionResponse createSecurityMonitoringSuppression new GenericType() {}); } + /** + * Create a security signal investigation. + * + *

See {@link #createSignalInvestigationWithHttpInfo}. + * + * @param body (required) + * @return SecurityMonitoringSignalInvestigationResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalInvestigationResponse createSignalInvestigation( + SecurityMonitoringSignalInvestigationRequest body) throws ApiException { + return createSignalInvestigationWithHttpInfo(body).getData(); + } + + /** + * Create a security signal investigation. + * + *

See {@link #createSignalInvestigationWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture<SecurityMonitoringSignalInvestigationResponse> + */ + public CompletableFuture + createSignalInvestigationAsync(SecurityMonitoringSignalInvestigationRequest body) { + return createSignalInvestigationWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create an investigation for a security signal using AI-powered analysis. + * + * @param body (required) + * @return ApiResponse<SecurityMonitoringSignalInvestigationResponse> + * @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 + createSignalInvestigationWithHttpInfo(SecurityMonitoringSignalInvestigationRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "createSignalInvestigation"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createSignalInvestigation"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/investigation"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSignalInvestigation", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create a security signal investigation. + * + *

See {@link #createSignalInvestigationWithHttpInfo}. + * + * @param body (required) + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringSignalInvestigationResponse>> + */ + public CompletableFuture> + createSignalInvestigationWithHttpInfoAsync( + SecurityMonitoringSignalInvestigationRequest body) { + // Check if unstable operation is enabled + String operationId = "createSignalInvestigation"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createSignalInvestigation")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/investigation"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSignalInvestigation", + 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( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Create a new signal-based notification rule. * @@ -4728,6 +4889,166 @@ public CompletableFuture> getFindingWithHttpInfo new GenericType() {}); } + /** + * Get investigation feedback. + * + *

See {@link #getInvestigationFeedbackWithHttpInfo}. + * + * @param signalId The ID of the signal. (required) + * @return SecurityMonitoringSignalInvestigationFeedbackResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalInvestigationFeedbackResponse getInvestigationFeedback( + String signalId) throws ApiException { + return getInvestigationFeedbackWithHttpInfo(signalId).getData(); + } + + /** + * Get investigation feedback. + * + *

See {@link #getInvestigationFeedbackWithHttpInfoAsync}. + * + * @param signalId The ID of the signal. (required) + * @return CompletableFuture<SecurityMonitoringSignalInvestigationFeedbackResponse> + */ + public CompletableFuture + getInvestigationFeedbackAsync(String signalId) { + return getInvestigationFeedbackWithHttpInfoAsync(signalId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Retrieve feedback for a security signal investigation. + * + * @param signalId The ID of the signal. (required) + * @return ApiResponse<SecurityMonitoringSignalInvestigationFeedbackResponse> + * @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 + getInvestigationFeedbackWithHttpInfo(String signalId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getInvestigationFeedback"; + 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 'signalId' is set + if (signalId == null) { + throw new ApiException( + 400, "Missing the required parameter 'signalId' when calling getInvestigationFeedback"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/signals/investigation/feedback/{signal_id}" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getInvestigationFeedback", + 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 investigation feedback. + * + *

See {@link #getInvestigationFeedbackWithHttpInfo}. + * + * @param signalId The ID of the signal. (required) + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringSignalInvestigationFeedbackResponse>> + */ + public CompletableFuture> + getInvestigationFeedbackWithHttpInfoAsync(String signalId) { + // Check if unstable operation is enabled + String operationId = "getInvestigationFeedback"; + 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 'signalId' is set + if (signalId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'signalId' when calling getInvestigationFeedback")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/signals/investigation/feedback/{signal_id}" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getInvestigationFeedback", + 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 getResourceEvaluationFilters. */ public static class GetResourceEvaluationFiltersOptionalParameters { private String cloudProvider; @@ -14485,6 +14806,157 @@ public ApiResponse updateCustomFrameworkWithHttpI new GenericType() {}); } + /** + * Update investigation feedback. + * + *

See {@link #updateInvestigationFeedbackWithHttpInfo}. + * + * @param body (required) + * @throws ApiException if fails to make API call + */ + public void updateInvestigationFeedback(SecurityMonitoringSignalInvestigationFeedbackRequest body) + throws ApiException { + updateInvestigationFeedbackWithHttpInfo(body); + } + + /** + * Update investigation feedback. + * + *

See {@link #updateInvestigationFeedbackWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture + */ + public CompletableFuture updateInvestigationFeedbackAsync( + SecurityMonitoringSignalInvestigationFeedbackRequest body) { + return updateInvestigationFeedbackWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Provide feedback on a security signal investigation. + * + * @param body (required) + * @return ApiResponse<Void> + * @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 updateInvestigationFeedbackWithHttpInfo( + SecurityMonitoringSignalInvestigationFeedbackRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateInvestigationFeedback"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateInvestigationFeedback"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/investigation/feedback"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateInvestigationFeedback", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PUT", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Update investigation feedback. + * + *

See {@link #updateInvestigationFeedbackWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> updateInvestigationFeedbackWithHttpInfoAsync( + SecurityMonitoringSignalInvestigationFeedbackRequest body) { + // Check if unstable operation is enabled + String operationId = "updateInvestigationFeedback"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling updateInvestigationFeedback")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/signals/investigation/feedback"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateInvestigationFeedback", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PUT", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + /** * Update resource filters. * diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackMetric.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackMetric.java new file mode 100644 index 00000000000..982b61815a5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackMetric.java @@ -0,0 +1,237 @@ +/* + * 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; + +/** A feedback metric containing user response. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackMetric.JSON_PROPERTY_PLACEHOLDER, + SecurityMonitoringSignalInvestigationFeedbackMetric.JSON_PROPERTY_PROMPT, + SecurityMonitoringSignalInvestigationFeedbackMetric.JSON_PROPERTY_RESPONSE, + SecurityMonitoringSignalInvestigationFeedbackMetric.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackMetric { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PLACEHOLDER = "placeholder"; + private String placeholder; + + public static final String JSON_PROPERTY_PROMPT = "prompt"; + private String prompt; + + public static final String JSON_PROPERTY_RESPONSE = "response"; + private String response; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public SecurityMonitoringSignalInvestigationFeedbackMetric() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackMetric( + @JsonProperty(required = true, value = JSON_PROPERTY_PROMPT) String prompt, + @JsonProperty(required = true, value = JSON_PROPERTY_RESPONSE) String response, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type) { + this.prompt = prompt; + this.response = response; + this.type = type; + } + + public SecurityMonitoringSignalInvestigationFeedbackMetric placeholder(String placeholder) { + this.placeholder = placeholder; + return this; + } + + /** + * Placeholder text for the metric. + * + * @return placeholder + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PLACEHOLDER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPlaceholder() { + return placeholder; + } + + public void setPlaceholder(String placeholder) { + this.placeholder = placeholder; + } + + public SecurityMonitoringSignalInvestigationFeedbackMetric prompt(String prompt) { + this.prompt = prompt; + return this; + } + + /** + * The question or prompt. + * + * @return prompt + */ + @JsonProperty(JSON_PROPERTY_PROMPT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPrompt() { + return prompt; + } + + public void setPrompt(String prompt) { + this.prompt = prompt; + } + + public SecurityMonitoringSignalInvestigationFeedbackMetric response(String response) { + this.response = response; + return this; + } + + /** + * The user's response. + * + * @return response + */ + @JsonProperty(JSON_PROPERTY_RESPONSE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getResponse() { + return response; + } + + public void setResponse(String response) { + this.response = response; + } + + public SecurityMonitoringSignalInvestigationFeedbackMetric type(String type) { + this.type = type; + return this; + } + + /** + * The type of metric. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getType() { + return type; + } + + public void setType(String type) { + 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 SecurityMonitoringSignalInvestigationFeedbackMetric + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackMetric 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 SecurityMonitoringSignalInvestigationFeedbackMetric object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackMetric + securityMonitoringSignalInvestigationFeedbackMetric = + (SecurityMonitoringSignalInvestigationFeedbackMetric) o; + return Objects.equals( + this.placeholder, securityMonitoringSignalInvestigationFeedbackMetric.placeholder) + && Objects.equals(this.prompt, securityMonitoringSignalInvestigationFeedbackMetric.prompt) + && Objects.equals( + this.response, securityMonitoringSignalInvestigationFeedbackMetric.response) + && Objects.equals(this.type, securityMonitoringSignalInvestigationFeedbackMetric.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackMetric.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(placeholder, prompt, response, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackMetric {\n"); + sb.append(" placeholder: ").append(toIndentedString(placeholder)).append("\n"); + sb.append(" prompt: ").append(toIndentedString(prompt)).append("\n"); + sb.append(" response: ").append(toIndentedString(response)).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/SecurityMonitoringSignalInvestigationFeedbackRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequest.java new file mode 100644 index 00000000000..5df7417e53e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequest.java @@ -0,0 +1,154 @@ +/* + * 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 submitting investigation feedback. */ +@JsonPropertyOrder({SecurityMonitoringSignalInvestigationFeedbackRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringSignalInvestigationFeedbackRequestData data; + + public SecurityMonitoringSignalInvestigationFeedbackRequest() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringSignalInvestigationFeedbackRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequest data( + SecurityMonitoringSignalInvestigationFeedbackRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data for submitting investigation feedback. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackRequestData getData() { + return data; + } + + public void setData(SecurityMonitoringSignalInvestigationFeedbackRequestData 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 SecurityMonitoringSignalInvestigationFeedbackRequest + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackRequest 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 SecurityMonitoringSignalInvestigationFeedbackRequest object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackRequest + securityMonitoringSignalInvestigationFeedbackRequest = + (SecurityMonitoringSignalInvestigationFeedbackRequest) o; + return Objects.equals(this.data, securityMonitoringSignalInvestigationFeedbackRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackRequest {\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/SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.java new file mode 100644 index 00000000000..aec63b76efb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.java @@ -0,0 +1,316 @@ +/* + * 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; + +/** Attributes for investigation feedback. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_FEEDBACK, + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_FEEDBACK_CONTENT, + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_INCOMPLETE, + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_RATING, + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_SIGNAL_ID, + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackRequestAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FEEDBACK = "feedback"; + private String feedback; + + public static final String JSON_PROPERTY_FEEDBACK_CONTENT = "feedback_content"; + private List feedbackContent = null; + + public static final String JSON_PROPERTY_INCOMPLETE = "incomplete"; + private Boolean incomplete; + + public static final String JSON_PROPERTY_RATING = "rating"; + private String rating; + + public static final String JSON_PROPERTY_SIGNAL_ID = "signal_id"; + private String signalId; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_FEEDBACK) String feedback, + @JsonProperty(required = true, value = JSON_PROPERTY_SIGNAL_ID) String signalId) { + this.feedback = feedback; + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes feedback(String feedback) { + this.feedback = feedback; + return this; + } + + /** + * The feedback text. + * + * @return feedback + */ + @JsonProperty(JSON_PROPERTY_FEEDBACK) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getFeedback() { + return feedback; + } + + public void setFeedback(String feedback) { + this.feedback = feedback; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes feedbackContent( + List feedbackContent) { + this.feedbackContent = feedbackContent; + for (SecurityMonitoringSignalInvestigationFeedbackSection item : feedbackContent) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes addFeedbackContentItem( + SecurityMonitoringSignalInvestigationFeedbackSection feedbackContentItem) { + if (this.feedbackContent == null) { + this.feedbackContent = new ArrayList<>(); + } + this.feedbackContent.add(feedbackContentItem); + this.unparsed |= feedbackContentItem.unparsed; + return this; + } + + /** + * Structured feedback content. + * + * @return feedbackContent + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FEEDBACK_CONTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getFeedbackContent() { + return feedbackContent; + } + + public void setFeedbackContent( + List feedbackContent) { + this.feedbackContent = feedbackContent; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes incomplete( + Boolean incomplete) { + this.incomplete = incomplete; + return this; + } + + /** + * Whether the feedback is incomplete. + * + * @return incomplete + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCOMPLETE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIncomplete() { + return incomplete; + } + + public void setIncomplete(Boolean incomplete) { + this.incomplete = incomplete; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes rating(String rating) { + this.rating = rating; + return this; + } + + /** + * The rating value. + * + * @return rating + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RATING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getRating() { + return rating; + } + + public void setRating(String rating) { + this.rating = rating; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes signalId(String signalId) { + this.signalId = signalId; + return this; + } + + /** + * The unique ID of the security signal. + * + * @return signalId + */ + @JsonProperty(JSON_PROPERTY_SIGNAL_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSignalId() { + return signalId; + } + + public void setSignalId(String signalId) { + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes type(String type) { + this.type = type; + return this; + } + + /** + * The type of feedback. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getType() { + return type; + } + + public void setType(String type) { + 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 SecurityMonitoringSignalInvestigationFeedbackRequestAttributes + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes 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 SecurityMonitoringSignalInvestigationFeedbackRequestAttributes object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes + securityMonitoringSignalInvestigationFeedbackRequestAttributes = + (SecurityMonitoringSignalInvestigationFeedbackRequestAttributes) o; + return Objects.equals( + this.feedback, securityMonitoringSignalInvestigationFeedbackRequestAttributes.feedback) + && Objects.equals( + this.feedbackContent, + securityMonitoringSignalInvestigationFeedbackRequestAttributes.feedbackContent) + && Objects.equals( + this.incomplete, + securityMonitoringSignalInvestigationFeedbackRequestAttributes.incomplete) + && Objects.equals( + this.rating, securityMonitoringSignalInvestigationFeedbackRequestAttributes.rating) + && Objects.equals( + this.signalId, securityMonitoringSignalInvestigationFeedbackRequestAttributes.signalId) + && Objects.equals( + this.type, securityMonitoringSignalInvestigationFeedbackRequestAttributes.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackRequestAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + feedback, feedbackContent, incomplete, rating, signalId, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackRequestAttributes {\n"); + sb.append(" feedback: ").append(toIndentedString(feedback)).append("\n"); + sb.append(" feedbackContent: ").append(toIndentedString(feedbackContent)).append("\n"); + sb.append(" incomplete: ").append(toIndentedString(incomplete)).append("\n"); + sb.append(" rating: ").append(toIndentedString(rating)).append("\n"); + sb.append(" signalId: ").append(toIndentedString(signalId)).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/SecurityMonitoringSignalInvestigationFeedbackRequestData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestData.java new file mode 100644 index 00000000000..b35bccb7eea --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackRequestData.java @@ -0,0 +1,194 @@ +/* + * 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 submitting investigation feedback. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackRequestData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalInvestigationFeedbackRequestData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackRequestData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalInvestigationFeedbackRequestAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalInvestigationFeedbackType type; + + public SecurityMonitoringSignalInvestigationFeedbackRequestData() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackRequestData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringSignalInvestigationFeedbackType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestData attributes( + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for investigation feedback. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackRequestAttributes getAttributes() { + return attributes; + } + + public void setAttributes( + SecurityMonitoringSignalInvestigationFeedbackRequestAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalInvestigationFeedbackRequestData type( + SecurityMonitoringSignalInvestigationFeedbackType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of feedback. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalInvestigationFeedbackType 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 SecurityMonitoringSignalInvestigationFeedbackRequestData + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackRequestData 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 SecurityMonitoringSignalInvestigationFeedbackRequestData object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackRequestData + securityMonitoringSignalInvestigationFeedbackRequestData = + (SecurityMonitoringSignalInvestigationFeedbackRequestData) o; + return Objects.equals( + this.attributes, securityMonitoringSignalInvestigationFeedbackRequestData.attributes) + && Objects.equals(this.type, securityMonitoringSignalInvestigationFeedbackRequestData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackRequestData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackRequestData {\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/SecurityMonitoringSignalInvestigationFeedbackResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponse.java new file mode 100644 index 00000000000..c8ce9f34d11 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponse.java @@ -0,0 +1,154 @@ +/* + * 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; + +/** Response containing investigation feedback. */ +@JsonPropertyOrder({SecurityMonitoringSignalInvestigationFeedbackResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringSignalInvestigationFeedbackResponseData data; + + public SecurityMonitoringSignalInvestigationFeedbackResponse() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringSignalInvestigationFeedbackResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponse data( + SecurityMonitoringSignalInvestigationFeedbackResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data containing investigation feedback. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackResponseData getData() { + return data; + } + + public void setData(SecurityMonitoringSignalInvestigationFeedbackResponseData 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 SecurityMonitoringSignalInvestigationFeedbackResponse + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackResponse 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 SecurityMonitoringSignalInvestigationFeedbackResponse object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackResponse + securityMonitoringSignalInvestigationFeedbackResponse = + (SecurityMonitoringSignalInvestigationFeedbackResponse) o; + return Objects.equals(this.data, securityMonitoringSignalInvestigationFeedbackResponse.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackResponse {\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/SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.java new file mode 100644 index 00000000000..995354c6ada --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.java @@ -0,0 +1,289 @@ +/* + * 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; + +/** Attributes of investigation feedback. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.JSON_PROPERTY_FEEDBACK, + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.JSON_PROPERTY_FEEDBACK_CONTENT, + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.JSON_PROPERTY_INVESTIGATION_ID, + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.JSON_PROPERTY_RATING, + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes.JSON_PROPERTY_SIGNAL_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackResponseAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FEEDBACK = "feedback"; + private String feedback; + + public static final String JSON_PROPERTY_FEEDBACK_CONTENT = "feedback_content"; + private List feedbackContent = null; + + public static final String JSON_PROPERTY_INVESTIGATION_ID = "investigation_id"; + private String investigationId; + + public static final String JSON_PROPERTY_RATING = "rating"; + private String rating; + + public static final String JSON_PROPERTY_SIGNAL_ID = "signal_id"; + private String signalId; + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_FEEDBACK) String feedback, + @JsonProperty(required = true, value = JSON_PROPERTY_INVESTIGATION_ID) String investigationId, + @JsonProperty(required = true, value = JSON_PROPERTY_SIGNAL_ID) String signalId) { + this.feedback = feedback; + this.investigationId = investigationId; + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes feedback(String feedback) { + this.feedback = feedback; + return this; + } + + /** + * The feedback text. + * + * @return feedback + */ + @JsonProperty(JSON_PROPERTY_FEEDBACK) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getFeedback() { + return feedback; + } + + public void setFeedback(String feedback) { + this.feedback = feedback; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes feedbackContent( + List feedbackContent) { + this.feedbackContent = feedbackContent; + for (SecurityMonitoringSignalInvestigationFeedbackSection item : feedbackContent) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes addFeedbackContentItem( + SecurityMonitoringSignalInvestigationFeedbackSection feedbackContentItem) { + if (this.feedbackContent == null) { + this.feedbackContent = new ArrayList<>(); + } + this.feedbackContent.add(feedbackContentItem); + this.unparsed |= feedbackContentItem.unparsed; + return this; + } + + /** + * Structured feedback content. + * + * @return feedbackContent + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FEEDBACK_CONTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getFeedbackContent() { + return feedbackContent; + } + + public void setFeedbackContent( + List feedbackContent) { + this.feedbackContent = feedbackContent; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes investigationId( + String investigationId) { + this.investigationId = investigationId; + return this; + } + + /** + * The unique ID of the investigation. + * + * @return investigationId + */ + @JsonProperty(JSON_PROPERTY_INVESTIGATION_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getInvestigationId() { + return investigationId; + } + + public void setInvestigationId(String investigationId) { + this.investigationId = investigationId; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes rating(String rating) { + this.rating = rating; + return this; + } + + /** + * The rating value. + * + * @return rating + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RATING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getRating() { + return rating; + } + + public void setRating(String rating) { + this.rating = rating; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes signalId(String signalId) { + this.signalId = signalId; + return this; + } + + /** + * The unique ID of the security signal. + * + * @return signalId + */ + @JsonProperty(JSON_PROPERTY_SIGNAL_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSignalId() { + return signalId; + } + + public void setSignalId(String signalId) { + this.signalId = signalId; + } + + /** + * 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 SecurityMonitoringSignalInvestigationFeedbackResponseAttributes + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes 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 SecurityMonitoringSignalInvestigationFeedbackResponseAttributes object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes + securityMonitoringSignalInvestigationFeedbackResponseAttributes = + (SecurityMonitoringSignalInvestigationFeedbackResponseAttributes) o; + return Objects.equals( + this.feedback, securityMonitoringSignalInvestigationFeedbackResponseAttributes.feedback) + && Objects.equals( + this.feedbackContent, + securityMonitoringSignalInvestigationFeedbackResponseAttributes.feedbackContent) + && Objects.equals( + this.investigationId, + securityMonitoringSignalInvestigationFeedbackResponseAttributes.investigationId) + && Objects.equals( + this.rating, securityMonitoringSignalInvestigationFeedbackResponseAttributes.rating) + && Objects.equals( + this.signalId, securityMonitoringSignalInvestigationFeedbackResponseAttributes.signalId) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackResponseAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + feedback, feedbackContent, investigationId, rating, signalId, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackResponseAttributes {\n"); + sb.append(" feedback: ").append(toIndentedString(feedback)).append("\n"); + sb.append(" feedbackContent: ").append(toIndentedString(feedbackContent)).append("\n"); + sb.append(" investigationId: ").append(toIndentedString(investigationId)).append("\n"); + sb.append(" rating: ").append(toIndentedString(rating)).append("\n"); + sb.append(" signalId: ").append(toIndentedString(signalId)).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/SecurityMonitoringSignalInvestigationFeedbackResponseData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseData.java new file mode 100644 index 00000000000..25002b2889e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackResponseData.java @@ -0,0 +1,222 @@ +/* + * 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 investigation feedback. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackResponseData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalInvestigationFeedbackResponseData.JSON_PROPERTY_ID, + SecurityMonitoringSignalInvestigationFeedbackResponseData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackResponseData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalInvestigationFeedbackResponseAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalInvestigationFeedbackType type; + + public SecurityMonitoringSignalInvestigationFeedbackResponseData() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackResponseData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringSignalInvestigationFeedbackType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseData attributes( + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of investigation feedback. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackResponseAttributes getAttributes() { + return attributes; + } + + public void setAttributes( + SecurityMonitoringSignalInvestigationFeedbackResponseAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalInvestigationFeedbackResponseData id(String id) { + this.id = id; + return this; + } + + /** + * The unique ID of the investigation. + * + * @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 SecurityMonitoringSignalInvestigationFeedbackResponseData type( + SecurityMonitoringSignalInvestigationFeedbackType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of feedback. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationFeedbackType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalInvestigationFeedbackType 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 SecurityMonitoringSignalInvestigationFeedbackResponseData + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackResponseData 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 SecurityMonitoringSignalInvestigationFeedbackResponseData object is equal + * to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackResponseData + securityMonitoringSignalInvestigationFeedbackResponseData = + (SecurityMonitoringSignalInvestigationFeedbackResponseData) o; + return Objects.equals( + this.attributes, securityMonitoringSignalInvestigationFeedbackResponseData.attributes) + && Objects.equals(this.id, securityMonitoringSignalInvestigationFeedbackResponseData.id) + && Objects.equals(this.type, securityMonitoringSignalInvestigationFeedbackResponseData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackResponseData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackResponseData {\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/SecurityMonitoringSignalInvestigationFeedbackSection.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackSection.java new file mode 100644 index 00000000000..1ce26b79f86 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackSection.java @@ -0,0 +1,223 @@ +/* + * 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; + +/** A feedback section containing metrics. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationFeedbackSection.JSON_PROPERTY_ID, + SecurityMonitoringSignalInvestigationFeedbackSection.JSON_PROPERTY_METRICS, + SecurityMonitoringSignalInvestigationFeedbackSection.JSON_PROPERTY_TITLE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationFeedbackSection { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_METRICS = "metrics"; + private List metrics = new ArrayList<>(); + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public SecurityMonitoringSignalInvestigationFeedbackSection() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationFeedbackSection( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_METRICS) + List metrics, + @JsonProperty(required = true, value = JSON_PROPERTY_TITLE) String title) { + this.id = id; + this.metrics = metrics; + this.title = title; + } + + public SecurityMonitoringSignalInvestigationFeedbackSection id(String id) { + this.id = id; + return this; + } + + /** + * The section identifier. + * + * @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 SecurityMonitoringSignalInvestigationFeedbackSection metrics( + List metrics) { + this.metrics = metrics; + for (SecurityMonitoringSignalInvestigationFeedbackMetric item : metrics) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringSignalInvestigationFeedbackSection addMetricsItem( + SecurityMonitoringSignalInvestigationFeedbackMetric metricsItem) { + this.metrics.add(metricsItem); + this.unparsed |= metricsItem.unparsed; + return this; + } + + /** + * Array of feedback metrics. + * + * @return metrics + */ + @JsonProperty(JSON_PROPERTY_METRICS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getMetrics() { + return metrics; + } + + public void setMetrics(List metrics) { + this.metrics = metrics; + } + + public SecurityMonitoringSignalInvestigationFeedbackSection title(String title) { + this.title = title; + return this; + } + + /** + * The section title. + * + * @return title + */ + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * 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 SecurityMonitoringSignalInvestigationFeedbackSection + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationFeedbackSection 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 SecurityMonitoringSignalInvestigationFeedbackSection object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationFeedbackSection + securityMonitoringSignalInvestigationFeedbackSection = + (SecurityMonitoringSignalInvestigationFeedbackSection) o; + return Objects.equals(this.id, securityMonitoringSignalInvestigationFeedbackSection.id) + && Objects.equals( + this.metrics, securityMonitoringSignalInvestigationFeedbackSection.metrics) + && Objects.equals(this.title, securityMonitoringSignalInvestigationFeedbackSection.title) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationFeedbackSection.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, metrics, title, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationFeedbackSection {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" metrics: ").append(toIndentedString(metrics)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).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/SecurityMonitoringSignalInvestigationFeedbackType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackType.java new file mode 100644 index 00000000000..2aebbd4ecd2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationFeedbackType.java @@ -0,0 +1,63 @@ +/* + * 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.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of feedback. */ +@JsonSerialize( + using = + SecurityMonitoringSignalInvestigationFeedbackType + .SecurityMonitoringSignalInvestigationFeedbackTypeSerializer.class) +public class SecurityMonitoringSignalInvestigationFeedbackType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("investigation_feedback")); + + public static final SecurityMonitoringSignalInvestigationFeedbackType INVESTIGATION_FEEDBACK = + new SecurityMonitoringSignalInvestigationFeedbackType("investigation_feedback"); + + SecurityMonitoringSignalInvestigationFeedbackType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringSignalInvestigationFeedbackTypeSerializer + extends StdSerializer { + public SecurityMonitoringSignalInvestigationFeedbackTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringSignalInvestigationFeedbackTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringSignalInvestigationFeedbackType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringSignalInvestigationFeedbackType fromValue(String value) { + return new SecurityMonitoringSignalInvestigationFeedbackType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequest.java new file mode 100644 index 00000000000..0fd26b7b837 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequest.java @@ -0,0 +1,151 @@ +/* + * 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 creating a security signal investigation. */ +@JsonPropertyOrder({SecurityMonitoringSignalInvestigationRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringSignalInvestigationRequestData data; + + public SecurityMonitoringSignalInvestigationRequest() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringSignalInvestigationRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringSignalInvestigationRequest data( + SecurityMonitoringSignalInvestigationRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data for creating a signal investigation. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationRequestData getData() { + return data; + } + + public void setData(SecurityMonitoringSignalInvestigationRequestData 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 SecurityMonitoringSignalInvestigationRequest + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationRequest 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 SecurityMonitoringSignalInvestigationRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationRequest securityMonitoringSignalInvestigationRequest = + (SecurityMonitoringSignalInvestigationRequest) o; + return Objects.equals(this.data, securityMonitoringSignalInvestigationRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationRequest {\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/SecurityMonitoringSignalInvestigationRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestAttributes.java new file mode 100644 index 00000000000..c8fbc9f25da --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestAttributes.java @@ -0,0 +1,182 @@ +/* + * 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; + +/** Attributes for creating a signal investigation. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationRequestAttributes.JSON_PROPERTY_DEPLOYMENT, + SecurityMonitoringSignalInvestigationRequestAttributes.JSON_PROPERTY_SIGNAL_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationRequestAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DEPLOYMENT = "deployment"; + private String deployment; + + public static final String JSON_PROPERTY_SIGNAL_ID = "signal_id"; + private String signalId; + + public SecurityMonitoringSignalInvestigationRequestAttributes() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationRequestAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_SIGNAL_ID) String signalId) { + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationRequestAttributes deployment(String deployment) { + this.deployment = deployment; + return this; + } + + /** + * Optional deployment override for the investigation. + * + * @return deployment + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DEPLOYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDeployment() { + return deployment; + } + + public void setDeployment(String deployment) { + this.deployment = deployment; + } + + public SecurityMonitoringSignalInvestigationRequestAttributes signalId(String signalId) { + this.signalId = signalId; + return this; + } + + /** + * The unique ID of the security signal. + * + * @return signalId + */ + @JsonProperty(JSON_PROPERTY_SIGNAL_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSignalId() { + return signalId; + } + + public void setSignalId(String signalId) { + this.signalId = signalId; + } + + /** + * 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 SecurityMonitoringSignalInvestigationRequestAttributes + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationRequestAttributes 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 SecurityMonitoringSignalInvestigationRequestAttributes object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationRequestAttributes + securityMonitoringSignalInvestigationRequestAttributes = + (SecurityMonitoringSignalInvestigationRequestAttributes) o; + return Objects.equals( + this.deployment, securityMonitoringSignalInvestigationRequestAttributes.deployment) + && Objects.equals( + this.signalId, securityMonitoringSignalInvestigationRequestAttributes.signalId) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationRequestAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(deployment, signalId, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationRequestAttributes {\n"); + sb.append(" deployment: ").append(toIndentedString(deployment)).append("\n"); + sb.append(" signalId: ").append(toIndentedString(signalId)).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/SecurityMonitoringSignalInvestigationRequestData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestData.java new file mode 100644 index 00000000000..6376cc78ad4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationRequestData.java @@ -0,0 +1,190 @@ +/* + * 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 creating a signal investigation. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationRequestData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalInvestigationRequestData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationRequestData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalInvestigationRequestAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalInvestigationType type; + + public SecurityMonitoringSignalInvestigationRequestData() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationRequestData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalInvestigationRequestAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringSignalInvestigationType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringSignalInvestigationRequestData attributes( + SecurityMonitoringSignalInvestigationRequestAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for creating a signal investigation. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationRequestAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringSignalInvestigationRequestAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalInvestigationRequestData type( + SecurityMonitoringSignalInvestigationType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of investigation signal. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalInvestigationType 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 SecurityMonitoringSignalInvestigationRequestData + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationRequestData 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 SecurityMonitoringSignalInvestigationRequestData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationRequestData + securityMonitoringSignalInvestigationRequestData = + (SecurityMonitoringSignalInvestigationRequestData) o; + return Objects.equals( + this.attributes, securityMonitoringSignalInvestigationRequestData.attributes) + && Objects.equals(this.type, securityMonitoringSignalInvestigationRequestData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationRequestData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationRequestData {\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/SecurityMonitoringSignalInvestigationResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponse.java new file mode 100644 index 00000000000..5b7849aeff7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponse.java @@ -0,0 +1,151 @@ +/* + * 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; + +/** Response containing investigation details for a security signal. */ +@JsonPropertyOrder({SecurityMonitoringSignalInvestigationResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringSignalInvestigationResponseData data; + + public SecurityMonitoringSignalInvestigationResponse() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringSignalInvestigationResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringSignalInvestigationResponse data( + SecurityMonitoringSignalInvestigationResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data containing the investigation details. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationResponseData getData() { + return data; + } + + public void setData(SecurityMonitoringSignalInvestigationResponseData 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 SecurityMonitoringSignalInvestigationResponse + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationResponse 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 SecurityMonitoringSignalInvestigationResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationResponse securityMonitoringSignalInvestigationResponse = + (SecurityMonitoringSignalInvestigationResponse) o; + return Objects.equals(this.data, securityMonitoringSignalInvestigationResponse.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationResponse {\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/SecurityMonitoringSignalInvestigationResponseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseAttributes.java new file mode 100644 index 00000000000..fe062d68f1e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseAttributes.java @@ -0,0 +1,275 @@ +/* + * 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; + +/** Attributes of a signal investigation response. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationResponseAttributes.JSON_PROPERTY_INVESTIGATION_ID, + SecurityMonitoringSignalInvestigationResponseAttributes.JSON_PROPERTY_RULE_ID, + SecurityMonitoringSignalInvestigationResponseAttributes.JSON_PROPERTY_SIGNAL_ID, + SecurityMonitoringSignalInvestigationResponseAttributes.JSON_PROPERTY_STATE, + SecurityMonitoringSignalInvestigationResponseAttributes.JSON_PROPERTY_STEP +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationResponseAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_INVESTIGATION_ID = "investigation_id"; + private String investigationId; + + public static final String JSON_PROPERTY_RULE_ID = "rule_id"; + private String ruleId; + + public static final String JSON_PROPERTY_SIGNAL_ID = "signal_id"; + private String signalId; + + public static final String JSON_PROPERTY_STATE = "state"; + private SecurityMonitoringSignalInvestigationState state; + + public static final String JSON_PROPERTY_STEP = "step"; + private SecurityMonitoringSignalInvestigationStep step; + + public SecurityMonitoringSignalInvestigationResponseAttributes() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationResponseAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_INVESTIGATION_ID) String investigationId, + @JsonProperty(required = true, value = JSON_PROPERTY_RULE_ID) String ruleId, + @JsonProperty(required = true, value = JSON_PROPERTY_SIGNAL_ID) String signalId) { + this.investigationId = investigationId; + this.ruleId = ruleId; + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationResponseAttributes investigationId( + String investigationId) { + this.investigationId = investigationId; + return this; + } + + /** + * The unique ID of the investigation. + * + * @return investigationId + */ + @JsonProperty(JSON_PROPERTY_INVESTIGATION_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getInvestigationId() { + return investigationId; + } + + public void setInvestigationId(String investigationId) { + this.investigationId = investigationId; + } + + public SecurityMonitoringSignalInvestigationResponseAttributes ruleId(String ruleId) { + this.ruleId = ruleId; + return this; + } + + /** + * The ID of the rule that triggered the signal. + * + * @return ruleId + */ + @JsonProperty(JSON_PROPERTY_RULE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRuleId() { + return ruleId; + } + + public void setRuleId(String ruleId) { + this.ruleId = ruleId; + } + + public SecurityMonitoringSignalInvestigationResponseAttributes signalId(String signalId) { + this.signalId = signalId; + return this; + } + + /** + * The unique ID of the security signal. + * + * @return signalId + */ + @JsonProperty(JSON_PROPERTY_SIGNAL_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSignalId() { + return signalId; + } + + public void setSignalId(String signalId) { + this.signalId = signalId; + } + + public SecurityMonitoringSignalInvestigationResponseAttributes state( + SecurityMonitoringSignalInvestigationState state) { + this.state = state; + this.unparsed |= !state.isValid(); + return this; + } + + /** + * The state of the investigation. + * + * @return state + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalInvestigationState getState() { + return state; + } + + public void setState(SecurityMonitoringSignalInvestigationState state) { + if (!state.isValid()) { + this.unparsed = true; + } + this.state = state; + } + + public SecurityMonitoringSignalInvestigationResponseAttributes step( + SecurityMonitoringSignalInvestigationStep step) { + this.step = step; + this.unparsed |= step.unparsed; + return this; + } + + /** + * Information about an investigation step. + * + * @return step + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STEP) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringSignalInvestigationStep getStep() { + return step; + } + + public void setStep(SecurityMonitoringSignalInvestigationStep step) { + this.step = step; + } + + /** + * 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 SecurityMonitoringSignalInvestigationResponseAttributes + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationResponseAttributes 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 SecurityMonitoringSignalInvestigationResponseAttributes object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationResponseAttributes + securityMonitoringSignalInvestigationResponseAttributes = + (SecurityMonitoringSignalInvestigationResponseAttributes) o; + return Objects.equals( + this.investigationId, + securityMonitoringSignalInvestigationResponseAttributes.investigationId) + && Objects.equals( + this.ruleId, securityMonitoringSignalInvestigationResponseAttributes.ruleId) + && Objects.equals( + this.signalId, securityMonitoringSignalInvestigationResponseAttributes.signalId) + && Objects.equals(this.state, securityMonitoringSignalInvestigationResponseAttributes.state) + && Objects.equals(this.step, securityMonitoringSignalInvestigationResponseAttributes.step) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationResponseAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(investigationId, ruleId, signalId, state, step, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationResponseAttributes {\n"); + sb.append(" investigationId: ").append(toIndentedString(investigationId)).append("\n"); + sb.append(" ruleId: ").append(toIndentedString(ruleId)).append("\n"); + sb.append(" signalId: ").append(toIndentedString(signalId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" step: ").append(toIndentedString(step)).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/SecurityMonitoringSignalInvestigationResponseData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseData.java new file mode 100644 index 00000000000..22496afcdd9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationResponseData.java @@ -0,0 +1,218 @@ +/* + * 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 investigation details. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationResponseData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringSignalInvestigationResponseData.JSON_PROPERTY_ID, + SecurityMonitoringSignalInvestigationResponseData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationResponseData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringSignalInvestigationResponseAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringSignalInvestigationType type; + + public SecurityMonitoringSignalInvestigationResponseData() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationResponseData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringSignalInvestigationResponseAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringSignalInvestigationType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringSignalInvestigationResponseData attributes( + SecurityMonitoringSignalInvestigationResponseAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of a signal investigation response. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationResponseAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringSignalInvestigationResponseAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringSignalInvestigationResponseData id(String id) { + this.id = id; + return this; + } + + /** + * The unique ID of the investigation. + * + * @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 SecurityMonitoringSignalInvestigationResponseData type( + SecurityMonitoringSignalInvestigationType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of investigation signal. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationType getType() { + return type; + } + + public void setType(SecurityMonitoringSignalInvestigationType 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 SecurityMonitoringSignalInvestigationResponseData + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationResponseData 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 SecurityMonitoringSignalInvestigationResponseData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationResponseData + securityMonitoringSignalInvestigationResponseData = + (SecurityMonitoringSignalInvestigationResponseData) o; + return Objects.equals( + this.attributes, securityMonitoringSignalInvestigationResponseData.attributes) + && Objects.equals(this.id, securityMonitoringSignalInvestigationResponseData.id) + && Objects.equals(this.type, securityMonitoringSignalInvestigationResponseData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationResponseData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationResponseData {\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/SecurityMonitoringSignalInvestigationState.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationState.java new file mode 100644 index 00000000000..4eda4b2bca6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationState.java @@ -0,0 +1,65 @@ +/* + * 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.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The state of the investigation. */ +@JsonSerialize( + using = + SecurityMonitoringSignalInvestigationState + .SecurityMonitoringSignalInvestigationStateSerializer.class) +public class SecurityMonitoringSignalInvestigationState extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("investigating", "completed")); + + public static final SecurityMonitoringSignalInvestigationState INVESTIGATING = + new SecurityMonitoringSignalInvestigationState("investigating"); + public static final SecurityMonitoringSignalInvestigationState COMPLETED = + new SecurityMonitoringSignalInvestigationState("completed"); + + SecurityMonitoringSignalInvestigationState(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringSignalInvestigationStateSerializer + extends StdSerializer { + public SecurityMonitoringSignalInvestigationStateSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringSignalInvestigationStateSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringSignalInvestigationState value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringSignalInvestigationState fromValue(String value) { + return new SecurityMonitoringSignalInvestigationState(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStep.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStep.java new file mode 100644 index 00000000000..b8ab52ef20f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStep.java @@ -0,0 +1,160 @@ +/* + * 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; + +/** Information about an investigation step. */ +@JsonPropertyOrder({SecurityMonitoringSignalInvestigationStep.JSON_PROPERTY_STEP_OUTPUTS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationStep { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_STEP_OUTPUTS = "stepOutputs"; + private List stepOutputs = new ArrayList<>(); + + public SecurityMonitoringSignalInvestigationStep() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationStep( + @JsonProperty(required = true, value = JSON_PROPERTY_STEP_OUTPUTS) + List stepOutputs) { + this.stepOutputs = stepOutputs; + } + + public SecurityMonitoringSignalInvestigationStep stepOutputs( + List stepOutputs) { + this.stepOutputs = stepOutputs; + for (SecurityMonitoringSignalInvestigationStepOutput item : stepOutputs) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringSignalInvestigationStep addStepOutputsItem( + SecurityMonitoringSignalInvestigationStepOutput stepOutputsItem) { + this.stepOutputs.add(stepOutputsItem); + this.unparsed |= stepOutputsItem.unparsed; + return this; + } + + /** + * Array of step outputs. + * + * @return stepOutputs + */ + @JsonProperty(JSON_PROPERTY_STEP_OUTPUTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getStepOutputs() { + return stepOutputs; + } + + public void setStepOutputs(List stepOutputs) { + this.stepOutputs = stepOutputs; + } + + /** + * 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 SecurityMonitoringSignalInvestigationStep + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationStep 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 SecurityMonitoringSignalInvestigationStep object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationStep securityMonitoringSignalInvestigationStep = + (SecurityMonitoringSignalInvestigationStep) o; + return Objects.equals(this.stepOutputs, securityMonitoringSignalInvestigationStep.stepOutputs) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationStep.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(stepOutputs, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationStep {\n"); + sb.append(" stepOutputs: ").append(toIndentedString(stepOutputs)).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/SecurityMonitoringSignalInvestigationStepOutput.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutput.java new file mode 100644 index 00000000000..4563cd97821 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutput.java @@ -0,0 +1,258 @@ +/* + * 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; + +/** Output from an investigation step. */ +@JsonPropertyOrder({ + SecurityMonitoringSignalInvestigationStepOutput.JSON_PROPERTY_CURRENT_STEP_ANALYSIS_ONELINER, + SecurityMonitoringSignalInvestigationStepOutput.JSON_PROPERTY_CURRENT_STEP_ANALYSIS_SUMMARY, + SecurityMonitoringSignalInvestigationStepOutput.JSON_PROPERTY_NAME, + SecurityMonitoringSignalInvestigationStepOutput.JSON_PROPERTY_VERDICT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringSignalInvestigationStepOutput { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CURRENT_STEP_ANALYSIS_ONELINER = + "currentStepAnalysisOneliner"; + private String currentStepAnalysisOneliner; + + public static final String JSON_PROPERTY_CURRENT_STEP_ANALYSIS_SUMMARY = + "currentStepAnalysisSummary"; + private String currentStepAnalysisSummary; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_VERDICT = "verdict"; + private SecurityMonitoringSignalInvestigationStepOutputVerdict verdict; + + public SecurityMonitoringSignalInvestigationStepOutput() {} + + @JsonCreator + public SecurityMonitoringSignalInvestigationStepOutput( + @JsonProperty(required = true, value = JSON_PROPERTY_CURRENT_STEP_ANALYSIS_SUMMARY) + String currentStepAnalysisSummary, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_VERDICT) + SecurityMonitoringSignalInvestigationStepOutputVerdict verdict) { + this.currentStepAnalysisSummary = currentStepAnalysisSummary; + this.name = name; + this.verdict = verdict; + this.unparsed |= !verdict.isValid(); + } + + public SecurityMonitoringSignalInvestigationStepOutput currentStepAnalysisOneliner( + String currentStepAnalysisOneliner) { + this.currentStepAnalysisOneliner = currentStepAnalysisOneliner; + return this; + } + + /** + * A one-line summary of the step analysis. + * + * @return currentStepAnalysisOneliner + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CURRENT_STEP_ANALYSIS_ONELINER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCurrentStepAnalysisOneliner() { + return currentStepAnalysisOneliner; + } + + public void setCurrentStepAnalysisOneliner(String currentStepAnalysisOneliner) { + this.currentStepAnalysisOneliner = currentStepAnalysisOneliner; + } + + public SecurityMonitoringSignalInvestigationStepOutput currentStepAnalysisSummary( + String currentStepAnalysisSummary) { + this.currentStepAnalysisSummary = currentStepAnalysisSummary; + return this; + } + + /** + * A detailed summary of the step analysis. + * + * @return currentStepAnalysisSummary + */ + @JsonProperty(JSON_PROPERTY_CURRENT_STEP_ANALYSIS_SUMMARY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getCurrentStepAnalysisSummary() { + return currentStepAnalysisSummary; + } + + public void setCurrentStepAnalysisSummary(String currentStepAnalysisSummary) { + this.currentStepAnalysisSummary = currentStepAnalysisSummary; + } + + public SecurityMonitoringSignalInvestigationStepOutput name(String name) { + this.name = name; + return this; + } + + /** + * The name of the investigation step. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityMonitoringSignalInvestigationStepOutput verdict( + SecurityMonitoringSignalInvestigationStepOutputVerdict verdict) { + this.verdict = verdict; + this.unparsed |= !verdict.isValid(); + return this; + } + + /** + * The verdict from the investigation step. + * + * @return verdict + */ + @JsonProperty(JSON_PROPERTY_VERDICT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringSignalInvestigationStepOutputVerdict getVerdict() { + return verdict; + } + + public void setVerdict(SecurityMonitoringSignalInvestigationStepOutputVerdict verdict) { + if (!verdict.isValid()) { + this.unparsed = true; + } + this.verdict = verdict; + } + + /** + * 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 SecurityMonitoringSignalInvestigationStepOutput + */ + @JsonAnySetter + public SecurityMonitoringSignalInvestigationStepOutput 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 SecurityMonitoringSignalInvestigationStepOutput object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringSignalInvestigationStepOutput + securityMonitoringSignalInvestigationStepOutput = + (SecurityMonitoringSignalInvestigationStepOutput) o; + return Objects.equals( + this.currentStepAnalysisOneliner, + securityMonitoringSignalInvestigationStepOutput.currentStepAnalysisOneliner) + && Objects.equals( + this.currentStepAnalysisSummary, + securityMonitoringSignalInvestigationStepOutput.currentStepAnalysisSummary) + && Objects.equals(this.name, securityMonitoringSignalInvestigationStepOutput.name) + && Objects.equals(this.verdict, securityMonitoringSignalInvestigationStepOutput.verdict) + && Objects.equals( + this.additionalProperties, + securityMonitoringSignalInvestigationStepOutput.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + currentStepAnalysisOneliner, + currentStepAnalysisSummary, + name, + verdict, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringSignalInvestigationStepOutput {\n"); + sb.append(" currentStepAnalysisOneliner: ") + .append(toIndentedString(currentStepAnalysisOneliner)) + .append("\n"); + sb.append(" currentStepAnalysisSummary: ") + .append(toIndentedString(currentStepAnalysisSummary)) + .append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" verdict: ").append(toIndentedString(verdict)).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/SecurityMonitoringSignalInvestigationStepOutputVerdict.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutputVerdict.java new file mode 100644 index 00000000000..1bfecb00922 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationStepOutputVerdict.java @@ -0,0 +1,69 @@ +/* + * 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.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The verdict from the investigation step. */ +@JsonSerialize( + using = + SecurityMonitoringSignalInvestigationStepOutputVerdict + .SecurityMonitoringSignalInvestigationStepOutputVerdictSerializer.class) +public class SecurityMonitoringSignalInvestigationStepOutputVerdict extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("unspecified", "benign", "suspicious", "inconclusive")); + + public static final SecurityMonitoringSignalInvestigationStepOutputVerdict UNSPECIFIED = + new SecurityMonitoringSignalInvestigationStepOutputVerdict("unspecified"); + public static final SecurityMonitoringSignalInvestigationStepOutputVerdict BENIGN = + new SecurityMonitoringSignalInvestigationStepOutputVerdict("benign"); + public static final SecurityMonitoringSignalInvestigationStepOutputVerdict SUSPICIOUS = + new SecurityMonitoringSignalInvestigationStepOutputVerdict("suspicious"); + public static final SecurityMonitoringSignalInvestigationStepOutputVerdict INCONCLUSIVE = + new SecurityMonitoringSignalInvestigationStepOutputVerdict("inconclusive"); + + SecurityMonitoringSignalInvestigationStepOutputVerdict(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringSignalInvestigationStepOutputVerdictSerializer + extends StdSerializer { + public SecurityMonitoringSignalInvestigationStepOutputVerdictSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringSignalInvestigationStepOutputVerdictSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringSignalInvestigationStepOutputVerdict value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringSignalInvestigationStepOutputVerdict fromValue(String value) { + return new SecurityMonitoringSignalInvestigationStepOutputVerdict(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationType.java new file mode 100644 index 00000000000..7b9a1ce5d63 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalInvestigationType.java @@ -0,0 +1,63 @@ +/* + * 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.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of investigation signal. */ +@JsonSerialize( + using = + SecurityMonitoringSignalInvestigationType + .SecurityMonitoringSignalInvestigationTypeSerializer.class) +public class SecurityMonitoringSignalInvestigationType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("investigation_signal")); + + public static final SecurityMonitoringSignalInvestigationType INVESTIGATION_SIGNAL = + new SecurityMonitoringSignalInvestigationType("investigation_signal"); + + SecurityMonitoringSignalInvestigationType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringSignalInvestigationTypeSerializer + extends StdSerializer { + public SecurityMonitoringSignalInvestigationTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringSignalInvestigationTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringSignalInvestigationType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringSignalInvestigationType fromValue(String value) { + return new SecurityMonitoringSignalInvestigationType(value); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index ccc027734e2..f5c5e55c0e5 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 @@ -578,6 +578,30 @@ Feature: Security Monitoring And the response "data.attributes.exclusion_filters[0].name" is equal to "Exclude staging" And the response "data.attributes.exclusion_filters[0].query" is equal to "source:staging" + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a security signal investigation returns "Bad Request" response + Given operation "CreateSignalInvestigation" enabled + And new "CreateSignalInvestigation" request + And body with value {"data": {"attributes": {"deployment": "live", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA"}, "type": "investigation_signal"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a security signal investigation returns "Not Found" response + Given operation "CreateSignalInvestigation" enabled + And new "CreateSignalInvestigation" request + And body with value {"data": {"attributes": {"deployment": "live", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA"}, "type": "investigation_signal"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a security signal investigation returns "OK" response + Given operation "CreateSignalInvestigation" enabled + And new "CreateSignalInvestigation" request + And body with value {"data": {"attributes": {"deployment": "live", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA"}, "type": "investigation_signal"}} + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Create a suppression rule returns "Bad Request" response Given new "CreateSecurityMonitoringSuppression" request @@ -1284,6 +1308,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 Notification rule details. + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get investigation feedback returns "Bad Request" response + Given operation "GetInvestigationFeedback" enabled + And new "GetInvestigationFeedback" request + And request contains "signal_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 investigation feedback returns "Not Found" response + Given operation "GetInvestigationFeedback" enabled + And new "GetInvestigationFeedback" request + And request contains "signal_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 investigation feedback returns "OK" response + Given operation "GetInvestigationFeedback" enabled + And new "GetInvestigationFeedback" request + And request contains "signal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @skip-go @skip-java @skip-ruby @team:DataDog/k9-cloud-security-platform Scenario: Get rule version history returns "OK" response Given operation "GetRuleVersionHistory" enabled @@ -2007,6 +2055,30 @@ Feature: Security Monitoring And the response "name" is equal to "{{ unique }}-Updated" And the response "id" has the same value as "security_rule.id" + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update investigation feedback returns "Bad Request" response + Given operation "UpdateInvestigationFeedback" enabled + And new "UpdateInvestigationFeedback" request + And body with value {"data": {"attributes": {"feedback": "positive", "feedback_content": [{"id": "section-1", "metrics": [{"placeholder": "Enter your feedback here", "prompt": "How helpful was this investigation?", "response": "Very helpful", "type": "sentiment"}], "title": "Investigation Quality"}], "incomplete": false, "rating": "positive", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA", "type": "metrics"}, "type": "investigation_feedback"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update investigation feedback returns "Not Found" response + Given operation "UpdateInvestigationFeedback" enabled + And new "UpdateInvestigationFeedback" request + And body with value {"data": {"attributes": {"feedback": "positive", "feedback_content": [{"id": "section-1", "metrics": [{"placeholder": "Enter your feedback here", "prompt": "How helpful was this investigation?", "response": "Very helpful", "type": "sentiment"}], "title": "Investigation Quality"}], "incomplete": false, "rating": "positive", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA", "type": "metrics"}, "type": "investigation_feedback"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update investigation feedback returns "OK" response + Given operation "UpdateInvestigationFeedback" enabled + And new "UpdateInvestigationFeedback" request + And body with value {"data": {"attributes": {"feedback": "positive", "feedback_content": [{"id": "section-1", "metrics": [{"placeholder": "Enter your feedback here", "prompt": "How helpful was this investigation?", "response": "Very helpful", "type": "sentiment"}], "title": "Investigation Quality"}], "incomplete": false, "rating": "positive", "signal_id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA", "type": "metrics"}, "type": "investigation_feedback"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-cloud-security-platform Scenario: Update resource filters returns "Bad Request" response Given new "UpdateResourceEvaluationFilters" 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 41fa31182a8..4fbc7c857d7 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 @@ -4579,6 +4579,24 @@ "type": "safe" } }, + "CreateSignalInvestigation": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "UpdateInvestigationFeedback": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetInvestigationFeedback": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "SearchSecurityMonitoringSignals": { "tag": "Security Monitoring", "undo": {