From f771cb8f2d8ff3b1e089ef48163422f64ebe1f06 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 7 Sep 2026 14:42:20 +0000 Subject: [PATCH] Regenerate client from commit 9306156 of spec repo --- .generator/schemas/v2/openapi.yaml | 36 +++++++- .../SearchSecurityMonitoringSignals.java | 11 +-- .../SecurityMonitoringSignalAttributes.java | 41 ++++++++- ...rityMonitoringSignalsListResponseMeta.java | 89 ++++++++++++++++++- .../client/v2/api/security_monitoring.feature | 7 +- .../test-runner-data/manifest.json | 7 ++ ...-security-signals-returns-ok-response.json | 28 ++++++ .../v2/security-monitoring.json | 41 +++++++++ 8 files changed, 243 insertions(+), 17 deletions(-) create mode 100644 src/test/resources/generated-test/test-runner-data/v2/security-monitoring/get-a-list-of-security-signals-returns-ok-response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 682c9d1e9b3..69560d96b14 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -102133,9 +102133,21 @@ components: additionalProperties: {} description: "The object containing all signal attributes and their\nassociated values." properties: + attributes: + additionalProperties: {} + description: A JSON object of attributes in the security signal, returned when listing or searching signals. + example: + workflow: + first_seen: "2020-06-23T14:46:01.000Z" + last_seen: "2020-06-23T14:46:49.000Z" + rule: + id: 0f5-e0c-805 + name: "Brute Force Attack Grouped By User" + version: 12 + type: object custom: additionalProperties: {} - description: A JSON object of attributes in the security signal. + description: A JSON object of attributes in the security signal, returned when retrieving a single signal. example: workflow: first_seen: "2020-06-23T14:46:01.000Z" @@ -102968,8 +102980,21 @@ components: SecurityMonitoringSignalsListResponseMeta: description: Meta attributes. properties: + elapsed: + description: The time elapsed in milliseconds. + example: 132 + format: int64 + type: integer page: $ref: '#/components/schemas/SecurityMonitoringSignalsListResponseMetaPage' + request_id: + description: The unique identifier of the request. + example: example-request-id + type: string + status: + description: The status of the response. + example: done + type: string type: object SecurityMonitoringSignalsListResponseMetaPage: description: Paging attributes. @@ -205487,6 +205512,12 @@ paths: value: data: - attributes: + attributes: + workflow: + rule: + id: 0f5-e0c-805 + name: "Brute Force Attack Grouped By User" + version: 12 tags: - "source:cloudtrail" id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA @@ -205494,8 +205525,11 @@ paths: links: next: "" meta: + elapsed: 132 page: after: eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ== + request_id: example-request-id + status: done schema: $ref: '#/components/schemas/SecurityMonitoringSignalsListResponse' description: OK diff --git a/examples/v2/security-monitoring/SearchSecurityMonitoringSignals.java b/examples/v2/security-monitoring/SearchSecurityMonitoringSignals.java index 23ed2b5233f..5a3d9782d25 100644 --- a/examples/v2/security-monitoring/SearchSecurityMonitoringSignals.java +++ b/examples/v2/security-monitoring/SearchSecurityMonitoringSignals.java @@ -1,5 +1,4 @@ // Get a list of security signals returns "OK" response - import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; import com.datadog.api.client.v2.api.SecurityMonitoringApi; @@ -20,14 +19,10 @@ public static void main(String[] args) { new SecurityMonitoringSignalListRequest() .filter( new SecurityMonitoringSignalListRequestFilter() - .from(OffsetDateTime.parse("2019-01-02T09:42:36.320Z")) + .from(OffsetDateTime.now().plusMinutes(-15)) .query("security:attack status:high") - .to(OffsetDateTime.parse("2019-01-03T09:42:36.320Z"))) - .page( - new SecurityMonitoringSignalListRequestPage() - .cursor( - "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==") - .limit(25)) + .to(OffsetDateTime.now())) + .page(new SecurityMonitoringSignalListRequestPage().limit(25)) .sort(SecurityMonitoringSignalsSort.TIMESTAMP_ASCENDING); try { diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalAttributes.java index 7cbb7f7cf3a..01adf35cb21 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalAttributes.java @@ -21,6 +21,7 @@ /** The object containing all signal attributes and their associated values. */ @JsonPropertyOrder({ + SecurityMonitoringSignalAttributes.JSON_PROPERTY_ATTRIBUTES, SecurityMonitoringSignalAttributes.JSON_PROPERTY_CUSTOM, SecurityMonitoringSignalAttributes.JSON_PROPERTY_MESSAGE, SecurityMonitoringSignalAttributes.JSON_PROPERTY_TAGS, @@ -30,6 +31,9 @@ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class SecurityMonitoringSignalAttributes { @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private Map attributes = null; + public static final String JSON_PROPERTY_CUSTOM = "custom"; private Map custom = null; @@ -42,6 +46,35 @@ public class SecurityMonitoringSignalAttributes { public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; private OffsetDateTime timestamp; + public SecurityMonitoringSignalAttributes attributes(Map attributes) { + this.attributes = attributes; + return this; + } + + public SecurityMonitoringSignalAttributes putAttributesItem(String key, Object attributesItem) { + if (this.attributes == null) { + this.attributes = new HashMap<>(); + } + this.attributes.put(key, attributesItem); + return this; + } + + /** + * A JSON object of attributes in the security signal, returned when listing or searching signals. + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + public SecurityMonitoringSignalAttributes custom(Map custom) { this.custom = custom; return this; @@ -56,7 +89,7 @@ public SecurityMonitoringSignalAttributes putCustomItem(String key, Object custo } /** - * A JSON object of attributes in the security signal. + * A JSON object of attributes in the security signal, returned when retrieving a single signal. * * @return custom */ @@ -199,7 +232,8 @@ public boolean equals(Object o) { } SecurityMonitoringSignalAttributes securityMonitoringSignalAttributes = (SecurityMonitoringSignalAttributes) o; - return Objects.equals(this.custom, securityMonitoringSignalAttributes.custom) + return Objects.equals(this.attributes, securityMonitoringSignalAttributes.attributes) + && Objects.equals(this.custom, securityMonitoringSignalAttributes.custom) && Objects.equals(this.message, securityMonitoringSignalAttributes.message) && Objects.equals(this.tags, securityMonitoringSignalAttributes.tags) && Objects.equals(this.timestamp, securityMonitoringSignalAttributes.timestamp) @@ -209,13 +243,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(custom, message, tags, timestamp, additionalProperties); + return Objects.hash(attributes, custom, message, tags, timestamp, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SecurityMonitoringSignalAttributes {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); sb.append(" custom: ").append(toIndentedString(custom)).append("\n"); sb.append(" message: ").append(toIndentedString(message)).append("\n"); sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsListResponseMeta.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsListResponseMeta.java index e1eec903459..b08e2a354cc 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsListResponseMeta.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSignalsListResponseMeta.java @@ -17,14 +17,49 @@ import java.util.Objects; /** Meta attributes. */ -@JsonPropertyOrder({SecurityMonitoringSignalsListResponseMeta.JSON_PROPERTY_PAGE}) +@JsonPropertyOrder({ + SecurityMonitoringSignalsListResponseMeta.JSON_PROPERTY_ELAPSED, + SecurityMonitoringSignalsListResponseMeta.JSON_PROPERTY_PAGE, + SecurityMonitoringSignalsListResponseMeta.JSON_PROPERTY_REQUEST_ID, + SecurityMonitoringSignalsListResponseMeta.JSON_PROPERTY_STATUS +}) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class SecurityMonitoringSignalsListResponseMeta { @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ELAPSED = "elapsed"; + private Long elapsed; + public static final String JSON_PROPERTY_PAGE = "page"; private SecurityMonitoringSignalsListResponseMetaPage page; + public static final String JSON_PROPERTY_REQUEST_ID = "request_id"; + private String requestId; + + public static final String JSON_PROPERTY_STATUS = "status"; + private String status; + + public SecurityMonitoringSignalsListResponseMeta elapsed(Long elapsed) { + this.elapsed = elapsed; + return this; + } + + /** + * The time elapsed in milliseconds. + * + * @return elapsed + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ELAPSED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getElapsed() { + return elapsed; + } + + public void setElapsed(Long elapsed) { + this.elapsed = elapsed; + } + public SecurityMonitoringSignalsListResponseMeta page( SecurityMonitoringSignalsListResponseMetaPage page) { this.page = page; @@ -51,6 +86,48 @@ public void setPage(SecurityMonitoringSignalsListResponseMetaPage page) { } } + public SecurityMonitoringSignalsListResponseMeta requestId(String requestId) { + this.requestId = requestId; + return this; + } + + /** + * The unique identifier of the request. + * + * @return requestId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REQUEST_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public SecurityMonitoringSignalsListResponseMeta status(String status) { + this.status = status; + return this; + } + + /** + * The status of the response. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. @@ -108,7 +185,10 @@ public boolean equals(Object o) { } SecurityMonitoringSignalsListResponseMeta securityMonitoringSignalsListResponseMeta = (SecurityMonitoringSignalsListResponseMeta) o; - return Objects.equals(this.page, securityMonitoringSignalsListResponseMeta.page) + return Objects.equals(this.elapsed, securityMonitoringSignalsListResponseMeta.elapsed) + && Objects.equals(this.page, securityMonitoringSignalsListResponseMeta.page) + && Objects.equals(this.requestId, securityMonitoringSignalsListResponseMeta.requestId) + && Objects.equals(this.status, securityMonitoringSignalsListResponseMeta.status) && Objects.equals( this.additionalProperties, securityMonitoringSignalsListResponseMeta.additionalProperties); @@ -116,14 +196,17 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(page, additionalProperties); + return Objects.hash(elapsed, page, requestId, status, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SecurityMonitoringSignalsListResponseMeta {\n"); + sb.append(" elapsed: ").append(toIndentedString(elapsed)).append("\n"); sb.append(" page: ").append(toIndentedString(page)).append("\n"); + sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index 12b40ab104a..bc79271b78a 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 @@ -1787,12 +1787,15 @@ Feature: Security Monitoring When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/cloud-siem + @team:DataDog/cloud-siem Scenario: Get a list of security signals returns "OK" response Given new "SearchSecurityMonitoringSignals" request - And body with value {"filter": {"from": "2019-01-02T09:42:36.320Z", "query": "security:attack status:high", "to": "2019-01-03T09:42:36.320Z"}, "page": {"cursor": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==", "limit": 25}, "sort": "timestamp"} + And body with value {"filter": {"from": "{{ timeISO("now-15m") }}", "query": "security:attack status:high", "to": "{{ timeISO("now") }}"}, "page": {"limit": 25}, "sort": "timestamp"} When the request is sent Then the response status is 200 OK + And the response "meta" has field "elapsed" + And the response "meta" has field "request_id" + And the response "meta.status" is equal to "done" @replay-only @skip-validation @team:DataDog/cloud-siem @with-pagination Scenario: Get a list of security signals returns "OK" response with pagination diff --git a/src/test/resources/generated-test/test-runner-data/manifest.json b/src/test/resources/generated-test/test-runner-data/manifest.json index a4f966c5aed..850b86ad8eb 100644 --- a/src/test/resources/generated-test/test-runner-data/manifest.json +++ b/src/test/resources/generated-test/test-runner-data/manifest.json @@ -9730,6 +9730,13 @@ "scenario": "Get a job's details returns \"OK\" response", "version": "v2" }, + { + "feature": "Security Monitoring", + "feature_file": "../../com/datadog/api/client/v2/api/security_monitoring.feature", + "file": "v2/security-monitoring/get-a-list-of-security-signals-returns-ok-response.json", + "scenario": "Get a list of security signals returns \"OK\" response", + "version": "v2" + }, { "feature": "Security Monitoring", "feature_file": "../../com/datadog/api/client/v2/api/security_monitoring.feature", diff --git a/src/test/resources/generated-test/test-runner-data/v2/security-monitoring/get-a-list-of-security-signals-returns-ok-response.json b/src/test/resources/generated-test/test-runner-data/v2/security-monitoring/get-a-list-of-security-signals-returns-ok-response.json new file mode 100644 index 00000000000..febe0297911 --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v2/security-monitoring/get-a-list-of-security-signals-returns-ok-response.json @@ -0,0 +1,28 @@ +{ + "api": "SecurityMonitoring", + "expected_status": 200, + "feature": "Security Monitoring", + "id": "v2/Security Monitoring/Get a list of security signals returns \"OK\" response", + "operation_id": "SearchSecurityMonitoringSignals", + "request": { + "body": { + "schema": { + "format": null, + "ref": "SecurityMonitoringSignalListRequest", + "type": "object" + }, + "source": "inline", + "value": { + "$openapi_transformer_template": "{\"filter\": {\"from\": \"{{ timeISO(\"now-15m\") }}\", \"query\": \"security:attack status:high\", \"to\": \"{{ timeISO(\"now\") }}\"}, \"page\": {\"limit\": 25}, \"sort\": \"timestamp\"}" + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/security_monitoring/signals/search" + }, + "scenario": "Get a list of security signals returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/src/test/resources/generated-test/test-server-data/v2/security-monitoring.json b/src/test/resources/generated-test/test-server-data/v2/security-monitoring.json index 16d767e78e9..d73c2d96ce3 100644 --- a/src/test/resources/generated-test/test-server-data/v2/security-monitoring.json +++ b/src/test/resources/generated-test/test-server-data/v2/security-monitoring.json @@ -6315,6 +6315,47 @@ "scenario": "Get a job's details returns \"OK\" response", "version": "v2" }, + { + "feature": "Security Monitoring", + "frozen_at": "2026-09-07T11:46:49.362Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "filter": { + "from": "2026-09-07T11:31:49.362Z", + "query": "security:attack status:high", + "to": "2026-09-07T11:46:49.362Z" + }, + "page": { + "limit": 25 + }, + "sort": "timestamp" + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/security_monitoring/signals/search", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"elapsed\":24,\"request_id\":\"pddv1ChZqcnNodVBJQ1RWQ3Z2c3ZWNk16b1hnIiwKHEcyOE2iTY5xAPH0dcTcAYFseqFJt4YjCHkKmO4SDDns4KG5VTag-ijkzg\",\"status\":\"done\"}}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Get a list of security signals returns \"OK\" response", + "version": "v2" + }, { "feature": "Security Monitoring", "frozen_at": "2022-04-13T11:32:57.080Z",