From f6349ea2b687383106f5f69a217e12069f48f01a Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 16 May 2025 10:39:03 +0000 Subject: [PATCH] Regenerate client from commit 302f87a7 of spec repo --- .apigentools-info | 8 +-- .generator/schemas/v2/openapi.yaml | 50 +++++++++++++--- .../ListFindings_2932019633.java | 27 +++++++++ .../client/v2/api/SecurityMonitoringApi.java | 29 ++++++++++ .../client/v2/model/FindingAttributes.java | 58 ++++++++++++++++++- .../client/v2/api/security_monitoring.feature | 8 +++ 6 files changed, 168 insertions(+), 12 deletions(-) create mode 100644 examples/v2/security-monitoring/ListFindings_2932019633.java diff --git a/.apigentools-info b/.apigentools-info index 1fb4a8d55fe..bb0f561a18d 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-05-14 15:44:18.459381", - "spec_repo_commit": "64f5e7ee" + "regenerated": "2025-05-16 10:37:08.566052", + "spec_repo_commit": "302f87a7" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-05-14 15:44:18.474808", - "spec_repo_commit": "64f5e7ee" + "regenerated": "2025-05-16 10:37:08.582842", + "spec_repo_commit": "302f87a7" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 094dc6eb79f..9f06597761b 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -14944,6 +14944,10 @@ components: FindingAttributes: description: The JSON:API attributes of the finding. properties: + datadog_link: + $ref: '#/components/schemas/FindingDatadogLink' + description: + $ref: '#/components/schemas/FindingDescription' evaluation: $ref: '#/components/schemas/FindingEvaluation' evaluation_changed_at: @@ -14965,6 +14969,25 @@ components: vulnerability_type: $ref: '#/components/schemas/FindingVulnerabilityType' type: object + FindingDatadogLink: + description: The Datadog relative link for this finding. + example: /security/compliance?panels=cpfinding%7Cevent%7CruleId%3Adef-000-u5t%7CresourceId%3Ae8c9ab7c52ebd7bf2fdb4db641082d7d%7CtabId%3Aoverview + type: string + FindingDescription: + description: The description and remediation steps for this finding. + example: '## Remediation + + + ### From the console + + + 1. Go to Storage Account + + 2. For each Storage Account, navigate to Data Protection + + 3. Select Set soft delete enabled and enter the number of days to retain soft + deleted data.' + type: string FindingEvaluation: description: The evaluation of the finding. enum: @@ -52046,13 +52069,18 @@ paths: the equal sign: `filter[evaluation_changed_at]=>=1678809373257`.\n\nQuery parameters must be only among the documented ones and with values of correct types. Duplicated query parameters (e.g. `filter[status]=low&filter[status]=info`) - are not allowed.\n\n### Response\n\nThe response includes an array of finding - objects, pagination metadata, and a count of items that match the query.\n\nEach - finding object contains the following:\n\n- The finding ID that can be used - in a `GetFinding` request to retrieve the full finding details.\n- Core attributes, - including status, evaluation, high-level resource details, muted state, and - rule details.\n- `evaluation_changed_at` and `resource_discovery_date` time - stamps.\n- An array of associated tags.\n" + are not allowed.\n\n### Additional Extension\n\nAdditional extension fields + are available for some findings.\n\nThe data is available by including the + query parameter `?detailed_findings=true` in the request.\n\nThe following + fields are available for findings:\n- `description`: The description and remediation + steps for this finding.\n- `datadog_link`: The Datadog relative link for this + finding.\n\n### Response\n\nThe response includes an array of finding objects, + pagination metadata, and a count of items that match the query.\n\nEach finding + object contains the following:\n\n- The finding ID that can be used in a `GetFinding` + request to retrieve the full finding details.\n- Core attributes, including + status, evaluation, high-level resource details, muted state, and rule details.\n- + `evaluation_changed_at` and `resource_discovery_date` time stamps.\n- An array + of associated tags.\n" operationId: ListFindings parameters: - description: Limit the number of findings returned. Must be <= 1000. @@ -52155,6 +52183,14 @@ paths: items: $ref: '#/components/schemas/FindingVulnerabilityType' type: array + - description: Return additional fields for some findings. + example: + - true + in: query + name: detailed_findings + required: false + schema: + type: boolean responses: '200': content: diff --git a/examples/v2/security-monitoring/ListFindings_2932019633.java b/examples/v2/security-monitoring/ListFindings_2932019633.java new file mode 100644 index 00000000000..c2871599212 --- /dev/null +++ b/examples/v2/security-monitoring/ListFindings_2932019633.java @@ -0,0 +1,27 @@ +// List findings returns "OK" response with details + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.api.SecurityMonitoringApi.ListFindingsOptionalParameters; +import com.datadog.api.client.v2.model.ListFindingsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listFindings", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + ListFindingsResponse result = + apiInstance.listFindings(new ListFindingsOptionalParameters().detailedFindings(true)); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#listFindings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index ed207320cd0..7c1c8b9f185 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 @@ -5132,6 +5132,7 @@ public static class ListFindingsOptionalParameters { private FindingEvaluation filterEvaluation; private FindingStatus filterStatus; private List filterVulnerabilityType; + private Boolean detailedFindings; /** * Set pageLimit. @@ -5285,6 +5286,17 @@ public ListFindingsOptionalParameters filterVulnerabilityType( this.filterVulnerabilityType = filterVulnerabilityType; return this; } + + /** + * Set detailedFindings. + * + * @param detailedFindings Return additional fields for some findings. (optional) + * @return ListFindingsOptionalParameters + */ + public ListFindingsOptionalParameters detailedFindings(Boolean detailedFindings) { + this.detailedFindings = detailedFindings; + return this; + } } /** @@ -5435,6 +5447,17 @@ public PaginationIterable listFindingsWithPagination( * Duplicated query parameters (e.g. filter[status]=low&filter[status]=info) are * not allowed. * + *

Additional Extension

+ * + *

Additional extension fields are available for some findings. + * + *

The data is available by including the query parameter ?detailed_findings=true + * in the request. + * + *

The following fields are available for findings: - description: The description + * and remediation steps for this finding. - datadog_link: The Datadog relative link + * for this finding. + * *

Response

* *

The response includes an array of finding objects, pagination metadata, and a count of items @@ -5488,6 +5511,7 @@ public ApiResponse listFindingsWithHttpInfo( FindingEvaluation filterEvaluation = parameters.filterEvaluation; FindingStatus filterStatus = parameters.filterStatus; List filterVulnerabilityType = parameters.filterVulnerabilityType; + Boolean detailedFindings = parameters.detailedFindings; // create path and map variables String localVarPath = "/api/v2/posture_management/findings"; @@ -5513,6 +5537,8 @@ public ApiResponse listFindingsWithHttpInfo( localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); localVarQueryParams.addAll( apiClient.parameterToPairs("multi", "filter[vulnerability_type]", filterVulnerabilityType)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "detailed_findings", detailedFindings)); Invocation.Builder builder = apiClient.createBuilder( @@ -5568,6 +5594,7 @@ public CompletableFuture> listFindingsWithHttp FindingEvaluation filterEvaluation = parameters.filterEvaluation; FindingStatus filterStatus = parameters.filterStatus; List filterVulnerabilityType = parameters.filterVulnerabilityType; + Boolean detailedFindings = parameters.detailedFindings; // create path and map variables String localVarPath = "/api/v2/posture_management/findings"; @@ -5593,6 +5620,8 @@ public CompletableFuture> listFindingsWithHttp localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); localVarQueryParams.addAll( apiClient.parameterToPairs("multi", "filter[vulnerability_type]", filterVulnerabilityType)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "detailed_findings", detailedFindings)); Invocation.Builder builder; try { diff --git a/src/main/java/com/datadog/api/client/v2/model/FindingAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FindingAttributes.java index 1906418fd7f..87c836854fb 100644 --- a/src/main/java/com/datadog/api/client/v2/model/FindingAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/FindingAttributes.java @@ -20,6 +20,8 @@ /** The JSON:API attributes of the finding. */ @JsonPropertyOrder({ + FindingAttributes.JSON_PROPERTY_DATADOG_LINK, + FindingAttributes.JSON_PROPERTY_DESCRIPTION, FindingAttributes.JSON_PROPERTY_EVALUATION, FindingAttributes.JSON_PROPERTY_EVALUATION_CHANGED_AT, FindingAttributes.JSON_PROPERTY_MUTE, @@ -35,6 +37,12 @@ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class FindingAttributes { @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATADOG_LINK = "datadog_link"; + private String datadogLink; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + public static final String JSON_PROPERTY_EVALUATION = "evaluation"; private FindingEvaluation evaluation; @@ -65,6 +73,48 @@ public class FindingAttributes { public static final String JSON_PROPERTY_VULNERABILITY_TYPE = "vulnerability_type"; private FindingVulnerabilityType vulnerabilityType; + public FindingAttributes datadogLink(String datadogLink) { + this.datadogLink = datadogLink; + return this; + } + + /** + * The Datadog relative link for this finding. + * + * @return datadogLink + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATADOG_LINK) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDatadogLink() { + return datadogLink; + } + + public void setDatadogLink(String datadogLink) { + this.datadogLink = datadogLink; + } + + public FindingAttributes description(String description) { + this.description = description; + return this; + } + + /** + * The description and remediation steps for this finding. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + public FindingAttributes evaluation(FindingEvaluation evaluation) { this.evaluation = evaluation; this.unparsed |= !evaluation.isValid(); @@ -353,7 +403,9 @@ public boolean equals(Object o) { return false; } FindingAttributes findingAttributes = (FindingAttributes) o; - return Objects.equals(this.evaluation, findingAttributes.evaluation) + return Objects.equals(this.datadogLink, findingAttributes.datadogLink) + && Objects.equals(this.description, findingAttributes.description) + && Objects.equals(this.evaluation, findingAttributes.evaluation) && Objects.equals(this.evaluationChangedAt, findingAttributes.evaluationChangedAt) && Objects.equals(this.mute, findingAttributes.mute) && Objects.equals(this.resource, findingAttributes.resource) @@ -369,6 +421,8 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( + datadogLink, + description, evaluation, evaluationChangedAt, mute, @@ -386,6 +440,8 @@ public int hashCode() { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FindingAttributes {\n"); + sb.append(" datadogLink: ").append(toIndentedString(datadogLink)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" evaluation: ").append(toIndentedString(evaluation)).append("\n"); sb.append(" evaluationChangedAt: ") .append(toIndentedString(evaluationChangedAt)) 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 0d71c0b6e18..dd147f50173 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 @@ -840,6 +840,14 @@ Feature: Security Monitoring Then the response status is 200 OK And the response "data[0].type" is equal to "finding" + @replay-only @team:DataDog/cloud-security-posture-management + Scenario: List findings returns "OK" response with details + Given operation "ListFindings" enabled + And new "ListFindings" request + And request contains "detailed_findings" parameter with value true + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-security-posture-management @with-pagination Scenario: List findings returns "OK" response with pagination Given operation "ListFindings" enabled