From 7cd69663cc0809e876d4bc6811687179982cb258 Mon Sep 17 00:00:00 2001 From: "fingerprint-dx-team-actions-runner[bot]" <197604345+fingerprint-dx-team-actions-runner[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2026 15:45:02 +0000 Subject: [PATCH 1/4] feat: sync OpenAPI schema to v3.10.0 --- ...promised-device-integrity-events-search.md | 5 ++ .../compromised-device-integrity-events.md | 5 ++ .changeset/pre.json | 8 +++ .changeset/v3-deprecation-dates.md | 5 ++ .schema-version | 2 +- docs/Event.md | 1 + docs/FingerprintApi.md | 15 +++-- res/fingerprint-server-api.yaml | 61 ++++++++++++++----- .../fingerprint/v4/api/FingerprintApi.java | 46 ++++++++++---- .../java/com/fingerprint/v4/model/Event.java | 34 +++++++++++ .../errors/400_edge_event_not_updatable.json | 6 ++ .../mocks/errors/400_event_too_old.json | 6 ++ .../errors/504_search_timeout_exceeded.json | 6 ++ .../resources/mocks/events/get_event_200.json | 3 +- .../get_event_200_with_unknown_field.json | 1 + .../mocks/events/get_event_ruleset_200.json | 1 + .../events/search/get_event_search_200.json | 3 +- 17 files changed, 174 insertions(+), 34 deletions(-) create mode 100644 .changeset/compromised-device-integrity-events-search.md create mode 100644 .changeset/compromised-device-integrity-events.md create mode 100644 .changeset/pre.json create mode 100644 .changeset/v3-deprecation-dates.md create mode 100644 sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json create mode 100644 sdk/src/test/resources/mocks/errors/400_event_too_old.json create mode 100644 sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json diff --git a/.changeset/compromised-device-integrity-events-search.md b/.changeset/compromised-device-integrity-events-search.md new file mode 100644 index 00000000..b6e5390e --- /dev/null +++ b/.changeset/compromised-device-integrity-events-search.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: Add `compromised_device_integrity` filter query parameter diff --git a/.changeset/compromised-device-integrity-events.md b/.changeset/compromised-device-integrity-events.md new file mode 100644 index 00000000..0dce8db2 --- /dev/null +++ b/.changeset/compromised-device-integrity-events.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `compromised_device_integrity` to `Event` diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..a7c0dedd --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,8 @@ +{ + "mode": "pre", + "tag": "rc", + "initialVersions": { + "java-sdk": "8.9.0" + }, + "changesets": [] +} diff --git a/.changeset/v3-deprecation-dates.md b/.changeset/v3-deprecation-dates.md new file mode 100644 index 00000000..7fd75cdd --- /dev/null +++ b/.changeset/v3-deprecation-dates.md @@ -0,0 +1,5 @@ +--- +'java-sdk': patch +--- + +Set the Server API v3 deprecation date to October 31, 2026 and the end-of-life date to October 31, 2027 in the endpoint descriptions diff --git a/.schema-version b/.schema-version index 65aee83a..aef07c2c 100644 --- a/.schema-version +++ b/.schema-version @@ -1 +1 @@ -v3.9.0 \ No newline at end of file +v3.10.0 \ No newline at end of file diff --git a/docs/Event.md b/docs/Event.md index 87e44134..961d277f 100644 --- a/docs/Event.md +++ b/docs/Event.md @@ -36,6 +36,7 @@ Contains results from Fingerprint Identification and all active Smart Signals. S |**botType** | **String** | Additional classification of the bot type if detected. | [optional] | |**botInfo** | [**BotInfo**](BotInfo.md) | | [optional] | |**clonedApp** | **Boolean** | Android specific cloned application detection. There are 2 values: * `true` - Presence of app cloners work detected (e.g. fully cloned application found or launch of it inside of a not main working profile detected). * `false` - No signs of cloned application detected or the client is not Android. | [optional] | +|**compromisedDeviceIntegrity** | **Boolean** | `true` if the Android device's boot or system integrity is compromised (e.g., an unlocked bootloader or a failed verified boot), so the device cannot be trusted. `false` if no integrity issue was detected. Available from Android SDK 2.6.0+. | [optional] | |**developerTools** | **Boolean** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. | [optional] | |**deviceDetails** | [**DeviceDetails**](DeviceDetails.md) | | [optional] | |**emulator** | **Boolean** | Android specific emulator detection. There are 2 values: * `true` - Emulated environment detected (e.g. launch inside of AVD). * `false` - No signs of emulated environment detected or the client is not Android. | [optional] | diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index c2c5b03b..35f6e844 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -321,8 +321,9 @@ public class FingerprintApiExample { Boolean torNode = true; // Boolean | Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus = SearchEventsIncrementalIdentificationStatus.fromValue("partially_completed"); // SearchEventsIncrementalIdentificationStatus | Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. Boolean simulator = true; // Boolean | Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. - Boolean activeCall = true; // Boolean | Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. List source = Arrays.asList(); // List | Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + Boolean activeCall = true; // Boolean | Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. + Boolean compromisedDeviceIntegrity = true; // Boolean | Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. try { EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() .setLimit(limit) @@ -377,8 +378,9 @@ public class FingerprintApiExample { .setTorNode(torNode) .setIncrementalIdentificationStatus(incrementalIdentificationStatus) .setSimulator(simulator) + .setSource(source) .setActiveCall(activeCall) - .setSource(source)); + .setCompromisedDeviceIntegrity(compromisedDeviceIntegrity)); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage()); @@ -453,8 +455,9 @@ Object containing optional parameters for API method. Supports a fluent interfac | **torNode** | **Boolean**| Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. | [optional] | | **incrementalIdentificationStatus** | **SearchEventsIncrementalIdentificationStatus**| Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. | [optional] [enum: partially_completed, completed] | | **simulator** | **Boolean**| Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. | [optional] | -| **activeCall** | **Boolean**| Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. | [optional] | | **source** | **List<SearchEventsSource>**| Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. | [optional] | +| **activeCall** | **Boolean**| Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. | [optional] | +| **compromisedDeviceIntegrity** | **Boolean**| Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. | [optional] | ### Return type @@ -493,7 +496,9 @@ Change information in existing events specified by `event_id` or *flag suspiciou When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. -**Warning** It's not possible to update events older than one month. +**Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer. + +**Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. @@ -563,7 +568,7 @@ null (empty response body) | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | OK. | - | -| **400** | Bad request. The request payload is not valid. | - | +| **400** | Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. | - | | **403** | Forbidden. Access to this API is denied. | - | | **404** | Not found. The event ID cannot be found in this workspace's data. | - | | **409** | Conflict. The event is not mutable yet. | - | diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 531bdae8..59c5d83a 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -145,7 +145,14 @@ paths: so the Server API permits updating these attributes after the fact. - **Warning** It's not possible to update events older than one month. + **Warning** You can only update events created within the last 10 days. + Updating an older event returns HTTP 400 with the message `event is too + old to be updated (> 10 days)`, even if your plan retains events for + longer. + + + **Warning** Events created by the Automation Intelligence API (`POST + /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may @@ -176,7 +183,9 @@ paths: '200': description: OK. '400': - description: Bad request. The request payload is not valid. + description: >- + Bad request. The request payload is not valid, the event is older + than 10 days, or the event cannot be updated. content: application/json: schema: @@ -954,18 +963,6 @@ paths: > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. - - name: active_call - in: query - schema: - type: boolean - description: > - Filter events by Active Call Detection result on mobile devices. - - - > Note: When using this parameter, only events with the - `active_call` property set to `true` or `false` are returned. Events - without an `active_call` Smart Signal result are left out of the - response. - name: source in: query required: false @@ -989,6 +986,31 @@ paths: > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + - name: active_call + in: query + schema: + type: boolean + description: > + Filter events by Active Call Detection result on mobile devices. + + + > Note: When using this parameter, only events with the + `active_call` property set to `true` or `false` are returned. Events + without an `active_call` Smart Signal result are left out of the + response. + - name: compromised_device_integrity + in: query + schema: + type: boolean + description: > + Filter events by Compromised Device Integrity result on Android + devices. + + + > Note: When using this parameter, only events with the + `compromised_device_integrity` property set to `true` or `false` are + returned. Events without a `compromised_device_integrity` Smart + Signal result are left out of the response. responses: '200': description: Events matching the filter(s). @@ -2075,6 +2097,13 @@ components: * `false` - No signs of cloned application detected or the client is not Android. + CompromisedDeviceIntegrity: + type: boolean + description: > + `true` if the Android device's boot or system integrity is compromised + (e.g., an unlocked bootloader or a failed verified boot), so the device + cannot be trusted. `false` if no integrity issue was detected. Available + from Android SDK 2.6.0+. DeveloperTools: type: boolean description: > @@ -3304,6 +3333,10 @@ components: $ref: '#/components/schemas/ClonedApp' x-platforms: - android + compromised_device_integrity: + $ref: '#/components/schemas/CompromisedDeviceIntegrity' + x-platforms: + - android developer_tools: $ref: '#/components/schemas/DeveloperTools' x-platforms: diff --git a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java index e37c738a..50f66ead 100644 --- a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java @@ -344,8 +344,9 @@ public static class SearchEventsOptionalParams { private Boolean torNode; private SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus; private Boolean simulator; - private Boolean activeCall; private List source; + private Boolean activeCall; + private Boolean compromisedDeviceIntegrity; /** * getter for limit - Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. @@ -1158,6 +1159,21 @@ public SearchEventsOptionalParams setSimulator(Boolean simulator) { return this; } + /** + * getter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + */ + public List getSource() { + return source; + } + + /** + * setter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + */ + public SearchEventsOptionalParams setSource(List source) { + this.source = source; + return this; + } + /** * getter for activeCall - Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. */ @@ -1174,17 +1190,18 @@ public SearchEventsOptionalParams setActiveCall(Boolean activeCall) { } /** - * getter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + * getter for compromisedDeviceIntegrity - Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. */ - public List getSource() { - return source; + public Boolean getCompromisedDeviceIntegrity() { + return compromisedDeviceIntegrity; } /** - * setter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + * setter for compromisedDeviceIntegrity - Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. */ - public SearchEventsOptionalParams setSource(List source) { - this.source = source; + public SearchEventsOptionalParams setCompromisedDeviceIntegrity( + Boolean compromisedDeviceIntegrity) { + this.compromisedDeviceIntegrity = compromisedDeviceIntegrity; return this; } } @@ -1379,11 +1396,16 @@ public ApiResponse searchEventsWithHttpInfo( searchEventsOptionalParams.getIncrementalIdentificationStatus())); localVarQueryParams.addAll( apiClient.parameterToPairs("", "simulator", searchEventsOptionalParams.getSimulator())); + localVarQueryParams.addAll( + apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource())); localVarQueryParams.addAll( apiClient.parameterToPairs( "", "active_call", searchEventsOptionalParams.getActiveCall())); localVarQueryParams.addAll( - apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource())); + apiClient.parameterToPairs( + "", + "compromised_device_integrity", + searchEventsOptionalParams.getCompromisedDeviceIntegrity())); } final String localVarAccept = apiClient.selectHeaderAccept("application/json"); @@ -1410,7 +1432,7 @@ public ApiResponse searchEventsWithHttpInfo( /** * Update an event - * Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. + * Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer. **Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. * @param eventId The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-get-function#event_id). (required) A value that is not a valid identifier is rejected with an {@link ApiException} before a request is sent. * @param eventUpdate (required) * @throws ApiException if fails to make API call @@ -1418,7 +1440,7 @@ public ApiResponse searchEventsWithHttpInfo( * * * - * + * * * * @@ -1430,7 +1452,7 @@ public void updateEvent(String eventId, EventUpdate eventUpdate) throws ApiExcep /** * Update an event - * Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. + * Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer. **Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. * @param eventId The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-get-function#event_id). (required) A value that is not a valid identifier is rejected with an {@link ApiException} before a request is sent. * @param eventUpdate (required) * @return ApiResponse @@ -1439,7 +1461,7 @@ public void updateEvent(String eventId, EventUpdate eventUpdate) throws ApiExcep *
Status Code Description Response Headers
200 OK. -
400 Bad request. The request payload is not valid. -
400 Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. -
403 Forbidden. Access to this API is denied. -
404 Not found. The event ID cannot be found in this workspace's data. -
409 Conflict. The event is not mutable yet. -
* * - * + * * * * diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Event.java b/sdk/src/main/java/com/fingerprint/v4/model/Event.java index b49f2041..3847b303 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Event.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Event.java @@ -53,6 +53,7 @@ Event.JSON_PROPERTY_BOT_TYPE, Event.JSON_PROPERTY_BOT_INFO, Event.JSON_PROPERTY_CLONED_APP, + Event.JSON_PROPERTY_COMPROMISED_DEVICE_INTEGRITY, Event.JSON_PROPERTY_DEVELOPER_TOOLS, Event.JSON_PROPERTY_DEVICE_DETAILS, Event.JSON_PROPERTY_EMULATOR, @@ -184,6 +185,10 @@ public class Event { public static final String JSON_PROPERTY_CLONED_APP = "cloned_app"; @jakarta.annotation.Nullable private Boolean clonedApp; + public static final String JSON_PROPERTY_COMPROMISED_DEVICE_INTEGRITY = + "compromised_device_integrity"; + @jakarta.annotation.Nullable private Boolean compromisedDeviceIntegrity; + public static final String JSON_PROPERTY_DEVELOPER_TOOLS = "developer_tools"; @jakarta.annotation.Nullable private Boolean developerTools; @@ -931,6 +936,30 @@ public void setClonedApp(@jakarta.annotation.Nullable Boolean clonedApp) { this.clonedApp = clonedApp; } + public Event compromisedDeviceIntegrity( + @jakarta.annotation.Nullable Boolean compromisedDeviceIntegrity) { + this.compromisedDeviceIntegrity = compromisedDeviceIntegrity; + return this; + } + + /** + * `true` if the Android device's boot or system integrity is compromised (e.g., an unlocked bootloader or a failed verified boot), so the device cannot be trusted. `false` if no integrity issue was detected. Available from Android SDK 2.6.0+. + * @return compromisedDeviceIntegrity + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_COMPROMISED_DEVICE_INTEGRITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getCompromisedDeviceIntegrity() { + return compromisedDeviceIntegrity; + } + + @JsonProperty(value = JSON_PROPERTY_COMPROMISED_DEVICE_INTEGRITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCompromisedDeviceIntegrity( + @jakarta.annotation.Nullable Boolean compromisedDeviceIntegrity) { + this.compromisedDeviceIntegrity = compromisedDeviceIntegrity; + } + public Event developerTools(@jakarta.annotation.Nullable Boolean developerTools) { this.developerTools = developerTools; return this; @@ -1830,6 +1859,7 @@ public boolean equals(Object o) { && Objects.equals(this.botType, event.botType) && Objects.equals(this.botInfo, event.botInfo) && Objects.equals(this.clonedApp, event.clonedApp) + && Objects.equals(this.compromisedDeviceIntegrity, event.compromisedDeviceIntegrity) && Objects.equals(this.developerTools, event.developerTools) && Objects.equals(this.deviceDetails, event.deviceDetails) && Objects.equals(this.emulator, event.emulator) @@ -1901,6 +1931,7 @@ public int hashCode() { botType, botInfo, clonedApp, + compromisedDeviceIntegrity, developerTools, deviceDetails, emulator, @@ -1977,6 +2008,9 @@ public String toString() { sb.append(" botType: ").append(toIndentedString(botType)).append("\n"); sb.append(" botInfo: ").append(toIndentedString(botInfo)).append("\n"); sb.append(" clonedApp: ").append(toIndentedString(clonedApp)).append("\n"); + sb.append(" compromisedDeviceIntegrity: ") + .append(toIndentedString(compromisedDeviceIntegrity)) + .append("\n"); sb.append(" developerTools: ").append(toIndentedString(developerTools)).append("\n"); sb.append(" deviceDetails: ").append(toIndentedString(deviceDetails)).append("\n"); sb.append(" emulator: ").append(toIndentedString(emulator)).append("\n"); diff --git a/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json b/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json new file mode 100644 index 00000000..a74f678a --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "failed", + "message": "edge events cannot be updated" + } +} diff --git a/sdk/src/test/resources/mocks/errors/400_event_too_old.json b/sdk/src/test/resources/mocks/errors/400_event_too_old.json new file mode 100644 index 00000000..b6fdc58d --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_event_too_old.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "failed", + "message": "event is too old to be updated (> 10 days)" + } +} diff --git a/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json b/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json new file mode 100644 index 00000000..cc5fcbd7 --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "failed", + "message": "gateway timeout" + } +} diff --git a/sdk/src/test/resources/mocks/events/get_event_200.json b/sdk/src/test/resources/mocks/events/get_event_200.json index e3446c04..a2456b91 100644 --- a/sdk/src/test/resources/mocks/events/get_event_200.json +++ b/sdk/src/test/resources/mocks/events/get_event_200.json @@ -319,5 +319,6 @@ "ml_score": 0.01 } ], - "active_call": false + "active_call": false, + "compromised_device_integrity": false } diff --git a/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json b/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json index 39bc6324..8c326426 100644 --- a/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json +++ b/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json @@ -321,5 +321,6 @@ } ], "active_call": false, + "compromised_device_integrity": false, "unknown_field": "unknown_field_value" } diff --git a/sdk/src/test/resources/mocks/events/get_event_ruleset_200.json b/sdk/src/test/resources/mocks/events/get_event_ruleset_200.json index 94863ac3..f2ebfe99 100644 --- a/sdk/src/test/resources/mocks/events/get_event_ruleset_200.json +++ b/sdk/src/test/resources/mocks/events/get_event_ruleset_200.json @@ -320,6 +320,7 @@ } ], "active_call": false, + "compromised_device_integrity": false, "rule_action": { "type": "block", "status_code": 403, diff --git a/sdk/src/test/resources/mocks/events/search/get_event_search_200.json b/sdk/src/test/resources/mocks/events/search/get_event_search_200.json index 5729c37d..f746fd86 100644 --- a/sdk/src/test/resources/mocks/events/search/get_event_search_200.json +++ b/sdk/src/test/resources/mocks/events/search/get_event_search_200.json @@ -321,7 +321,8 @@ "ml_score": 0.01 } ], - "active_call": false + "active_call": false, + "compromised_device_integrity": false } ], "pagination_key": "S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q" From fa5cda7e3311e64e5a15cb84bae5790f01f37ce2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:05:03 +0000 Subject: [PATCH 2/4] chore: address OpenAPI schema sync review feedback - Keep `active_call` before `source` in search params to avoid a breaking change - Remove unneeded changesets and unused error mock fixtures - Regenerate sources and docs from templates Co-authored-by: Orkuncakilkaya <5910168+Orkuncakilkaya@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 --- ...promised-device-integrity-events-search.md | 5 ---- .changeset/v3-deprecation-dates.md | 5 ---- docs/FingerprintApi.md | 6 ++-- res/fingerprint-server-api.yaml | 24 +++++++-------- .../fingerprint/v4/api/FingerprintApi.java | 30 +++++++++---------- .../v4/api/FingerprintApiTest.java | 8 +++-- .../errors/400_edge_event_not_updatable.json | 6 ---- .../mocks/errors/400_event_too_old.json | 6 ---- .../errors/504_search_timeout_exceeded.json | 6 ---- 9 files changed, 36 insertions(+), 60 deletions(-) delete mode 100644 .changeset/compromised-device-integrity-events-search.md delete mode 100644 .changeset/v3-deprecation-dates.md delete mode 100644 sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json delete mode 100644 sdk/src/test/resources/mocks/errors/400_event_too_old.json delete mode 100644 sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json diff --git a/.changeset/compromised-device-integrity-events-search.md b/.changeset/compromised-device-integrity-events-search.md deleted file mode 100644 index b6e5390e..00000000 --- a/.changeset/compromised-device-integrity-events-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': minor ---- - -**events-search**: Add `compromised_device_integrity` filter query parameter diff --git a/.changeset/v3-deprecation-dates.md b/.changeset/v3-deprecation-dates.md deleted file mode 100644 index 7fd75cdd..00000000 --- a/.changeset/v3-deprecation-dates.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': patch ---- - -Set the Server API v3 deprecation date to October 31, 2026 and the end-of-life date to October 31, 2027 in the endpoint descriptions diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 35f6e844..2e75d589 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -321,8 +321,8 @@ public class FingerprintApiExample { Boolean torNode = true; // Boolean | Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus = SearchEventsIncrementalIdentificationStatus.fromValue("partially_completed"); // SearchEventsIncrementalIdentificationStatus | Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. Boolean simulator = true; // Boolean | Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. - List source = Arrays.asList(); // List | Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. Boolean activeCall = true; // Boolean | Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. + List source = Arrays.asList(); // List | Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. Boolean compromisedDeviceIntegrity = true; // Boolean | Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. try { EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() @@ -378,8 +378,8 @@ public class FingerprintApiExample { .setTorNode(torNode) .setIncrementalIdentificationStatus(incrementalIdentificationStatus) .setSimulator(simulator) - .setSource(source) .setActiveCall(activeCall) + .setSource(source) .setCompromisedDeviceIntegrity(compromisedDeviceIntegrity)); System.out.println(result); } catch (ApiException e) { @@ -455,8 +455,8 @@ Object containing optional parameters for API method. Supports a fluent interfac | **torNode** | **Boolean**| Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. | [optional] | | **incrementalIdentificationStatus** | **SearchEventsIncrementalIdentificationStatus**| Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. | [optional] [enum: partially_completed, completed] | | **simulator** | **Boolean**| Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. | [optional] | -| **source** | **List<SearchEventsSource>**| Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. | [optional] | | **activeCall** | **Boolean**| Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. | [optional] | +| **source** | **List<SearchEventsSource>**| Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. | [optional] | | **compromisedDeviceIntegrity** | **Boolean**| Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. | [optional] | ### Return type diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 59c5d83a..a5e376b8 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -963,6 +963,18 @@ paths: > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. + - name: active_call + in: query + schema: + type: boolean + description: > + Filter events by Active Call Detection result on mobile devices. + + + > Note: When using this parameter, only events with the + `active_call` property set to `true` or `false` are returned. Events + without an `active_call` Smart Signal result are left out of the + response. - name: source in: query required: false @@ -986,18 +998,6 @@ paths: > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. - - name: active_call - in: query - schema: - type: boolean - description: > - Filter events by Active Call Detection result on mobile devices. - - - > Note: When using this parameter, only events with the - `active_call` property set to `true` or `false` are returned. Events - without an `active_call` Smart Signal result are left out of the - response. - name: compromised_device_integrity in: query schema: diff --git a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java index 50f66ead..9dd8b9e2 100644 --- a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java @@ -344,8 +344,8 @@ public static class SearchEventsOptionalParams { private Boolean torNode; private SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus; private Boolean simulator; - private List source; private Boolean activeCall; + private List source; private Boolean compromisedDeviceIntegrity; /** @@ -1160,32 +1160,32 @@ public SearchEventsOptionalParams setSimulator(Boolean simulator) { } /** - * getter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + * getter for activeCall - Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. */ - public List getSource() { - return source; + public Boolean getActiveCall() { + return activeCall; } /** - * setter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + * setter for activeCall - Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. */ - public SearchEventsOptionalParams setSource(List source) { - this.source = source; + public SearchEventsOptionalParams setActiveCall(Boolean activeCall) { + this.activeCall = activeCall; return this; } /** - * getter for activeCall - Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. + * getter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. */ - public Boolean getActiveCall() { - return activeCall; + public List getSource() { + return source; } /** - * setter for activeCall - Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. + * setter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. */ - public SearchEventsOptionalParams setActiveCall(Boolean activeCall) { - this.activeCall = activeCall; + public SearchEventsOptionalParams setSource(List source) { + this.source = source; return this; } @@ -1396,11 +1396,11 @@ public ApiResponse searchEventsWithHttpInfo( searchEventsOptionalParams.getIncrementalIdentificationStatus())); localVarQueryParams.addAll( apiClient.parameterToPairs("", "simulator", searchEventsOptionalParams.getSimulator())); - localVarQueryParams.addAll( - apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource())); localVarQueryParams.addAll( apiClient.parameterToPairs( "", "active_call", searchEventsOptionalParams.getActiveCall())); + localVarQueryParams.addAll( + apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource())); localVarQueryParams.addAll( apiClient.parameterToPairs( "", diff --git a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java index 6c4df7ed..31a804dc 100644 --- a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java +++ b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java @@ -504,8 +504,9 @@ public void searchEventsMaximumParamsTest() throws ApiException { final SearchEventsIncrementalIdentificationStatus INCREMENTAL_IDENTIFICATION_STATUS = SearchEventsIncrementalIdentificationStatus.PARTIALLY_COMPLETED; final Boolean SIMULATOR = true; - final List SOURCE = Arrays.asList(SearchEventsSource.EDGE); final Boolean ACTIVE_CALL = true; + final List SOURCE = Arrays.asList(SearchEventsSource.EDGE); + final Boolean COMPROMISED_DEVICE_INTEGRITY = true; Map expectedQueryParams = new HashMap<>(); expectedQueryParams.put("limit", String.valueOf(LIMIT)); @@ -552,6 +553,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { "incremental_identification_status", String.valueOf(INCREMENTAL_IDENTIFICATION_STATUS)); expectedQueryParams.put("simulator", String.valueOf(SIMULATOR)); expectedQueryParams.put("active_call", String.valueOf(ACTIVE_CALL)); + expectedQueryParams.put( + "compromised_device_integrity", String.valueOf(COMPROMISED_DEVICE_INTEGRITY)); final int arrayQueryParamsCount = ENVIRONMENT.size() @@ -636,8 +639,9 @@ public void searchEventsMaximumParamsTest() throws ApiException { .setHighRecallId(HIGH_RECALL_ID) .setIncrementalIdentificationStatus(INCREMENTAL_IDENTIFICATION_STATUS) .setSimulator(SIMULATOR) + .setActiveCall(ACTIVE_CALL) .setSource(SOURCE) - .setActiveCall(ACTIVE_CALL)); + .setCompromisedDeviceIntegrity(COMPROMISED_DEVICE_INTEGRITY)); List events = response.getEvents(); assertEquals(events.size(), 1); } diff --git a/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json b/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json deleted file mode 100644 index a74f678a..00000000 --- a/sdk/src/test/resources/mocks/errors/400_edge_event_not_updatable.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "failed", - "message": "edge events cannot be updated" - } -} diff --git a/sdk/src/test/resources/mocks/errors/400_event_too_old.json b/sdk/src/test/resources/mocks/errors/400_event_too_old.json deleted file mode 100644 index b6fdc58d..00000000 --- a/sdk/src/test/resources/mocks/errors/400_event_too_old.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "failed", - "message": "event is too old to be updated (> 10 days)" - } -} diff --git a/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json b/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json deleted file mode 100644 index cc5fcbd7..00000000 --- a/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "failed", - "message": "gateway timeout" - } -} From ebe478aa4865fd86c34de13d008c00c1f128169f Mon Sep 17 00:00:00 2001 From: Orkun Date: Fri, 30 Oct 2026 17:25:49 +0300 Subject: [PATCH 3/4] test: assert `compromised_device_integrity` in event responses Co-Authored-By: Claude Opus 5.5 --- .../test/java/com/fingerprint/v4/api/FingerprintApiTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java index 31a804dc..a42aa55b 100644 --- a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java +++ b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java @@ -218,6 +218,7 @@ public void getEventTest() throws ApiException { assertFalse(response.getVirtualMachine()); assertInstanceOf(VelocityData.class, response.getVelocity().getDistinctCountry()); assertFalse(response.getLocationSpoofing()); + assertFalse(response.getCompromisedDeviceIntegrity()); assertEquals(0L, response.getFactoryResetTimestamp()); assertNotNull(response.getTags()); assertTrue(response.getTags().isEmpty()); @@ -447,6 +448,7 @@ public void searchEventsMinimumParamsTest() throws ApiException { assertFalse(event.getVirtualMachine()); assertInstanceOf(VelocityData.class, event.getVelocity().getDistinctVisitorIdByLinkedId()); assertFalse(event.getLocationSpoofing()); + assertFalse(event.getCompromisedDeviceIntegrity()); assertEquals(0L, event.getFactoryResetTimestamp()); } From ce6529c2875cc10b1c558eafde719a97b4dd666e Mon Sep 17 00:00:00 2001 From: Orkun Date: Mon, 2 Nov 2026 12:37:39 +0300 Subject: [PATCH 4/4] chore: add changeset for `compromised_device_integrity` search filter Co-Authored-By: Claude Opus 5.5 --- .changeset/compromised-device-integrity-events-search.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/compromised-device-integrity-events-search.md diff --git a/.changeset/compromised-device-integrity-events-search.md b/.changeset/compromised-device-integrity-events-search.md new file mode 100644 index 00000000..3d5e0854 --- /dev/null +++ b/.changeset/compromised-device-integrity-events-search.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: Add `compromised_device_integrity` filter parameter
Status Code Description Response Headers
200 OK. -
400 Bad request. The request payload is not valid. -
400 Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. -
403 Forbidden. Access to this API is denied. -
404 Not found. The event ID cannot be found in this workspace's data. -
409 Conflict. The event is not mutable yet. -