Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/events-search-active-call-filter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'java-sdk': minor
---

**events-search**: Add `active_call` filter parameter
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'java-sdk': minor
---

Add `keyboard_layout_name` to `RawDeviceAttributes`
2 changes: 1 addition & 1 deletion .schema-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.6.0
v3.7.0
3 changes: 3 additions & 0 deletions docs/FingerprintApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ 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<SearchEventsSource> source = Arrays.asList(); // 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.
try {
EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams()
Expand Down Expand Up @@ -375,6 +376,7 @@ public class FingerprintApiExample {
.setTorNode(torNode)
.setIncrementalIdentificationStatus(incrementalIdentificationStatus)
.setSimulator(simulator)
.setActiveCall(activeCall)
.setSource(source));
System.out.println(result);
} catch (ApiException e) {
Expand Down Expand Up @@ -450,6 +452,7 @@ 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&lt;SearchEventsSource&gt;**| 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] |

### Return type
Expand Down
1 change: 1 addition & 0 deletions docs/RawDeviceAttributes.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ A curated subset of raw browser/device attributes that the API surface exposes.
|**batteryCharging** | **Boolean** | When `true`, the device is currently charging. Available only for web devices on Chromium-based browsers. | [optional] |
|**batteryLowPowerMode** | **Boolean** | Whether the device's low power mode is enabled. Available only for Android and iOS devices. | [optional] |
|**keyboardLayoutHash** | **String** | Unique identifier for the user's keyboard layout. | [optional] |
|**keyboardLayoutName** | **String** | Name of the user's configured keyboard layout as a BCP 47-style identifier. Only available in Chromium-based browsers, omitted otherwise. | [optional] |



24 changes: 24 additions & 0 deletions res/fingerprint-server-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -954,6 +954,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
Expand Down Expand Up @@ -2971,6 +2983,16 @@ components:
examples:
- 3f33b68235d36b8821147349f1161379
description: Unique identifier for the user's keyboard layout.
KeyboardLayoutName:
type: string
examples:
- en-US
- de-DE
- ja-JP
description: >-
Name of the user's configured keyboard layout as a BCP 47-style
identifier. Only available in Chromium-based browsers, omitted
otherwise.
RawDeviceAttributes:
type: object
description: >
Expand Down Expand Up @@ -3045,6 +3067,8 @@ components:
$ref: '#/components/schemas/BatteryLowPowerMode'
keyboard_layout_hash:
$ref: '#/components/schemas/KeyboardLayoutHash'
keyboard_layout_name:
$ref: '#/components/schemas/KeyboardLayoutName'
Labels:
type: array
items:
Expand Down
19 changes: 19 additions & 0 deletions sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ public static class SearchEventsOptionalParams {
private Boolean torNode;
private SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus;
private Boolean simulator;
private Boolean activeCall;
private List<SearchEventsSource> source;

/**
Expand Down Expand Up @@ -1143,6 +1144,21 @@ public SearchEventsOptionalParams setSimulator(Boolean simulator) {
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.
*/
public Boolean getActiveCall() {
return activeCall;
}

/**
* 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 setActiveCall(Boolean activeCall) {
this.activeCall = activeCall;
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.
*/
Expand Down Expand Up @@ -1347,6 +1363,9 @@ public ApiResponse<EventSearch> searchEventsWithHttpInfo(
searchEventsOptionalParams.getIncrementalIdentificationStatus()));
localVarQueryParams.addAll(
apiClient.parameterToPairs("", "simulator", searchEventsOptionalParams.getSimulator()));
localVarQueryParams.addAll(
apiClient.parameterToPairs(
"", "active_call", searchEventsOptionalParams.getActiveCall()));
localVarQueryParams.addAll(
apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@
RawDeviceAttributes.JSON_PROPERTY_BATTERY_LEVEL,
RawDeviceAttributes.JSON_PROPERTY_BATTERY_CHARGING,
RawDeviceAttributes.JSON_PROPERTY_BATTERY_LOW_POWER_MODE,
RawDeviceAttributes.JSON_PROPERTY_KEYBOARD_LAYOUT_HASH
RawDeviceAttributes.JSON_PROPERTY_KEYBOARD_LAYOUT_HASH,
RawDeviceAttributes.JSON_PROPERTY_KEYBOARD_LAYOUT_NAME
})
@jakarta.annotation.Generated(
value = "org.openapitools.codegen.languages.JavaClientCodegen",
Expand Down Expand Up @@ -160,6 +161,9 @@ public class RawDeviceAttributes {
public static final String JSON_PROPERTY_KEYBOARD_LAYOUT_HASH = "keyboard_layout_hash";
@jakarta.annotation.Nullable private String keyboardLayoutHash;

public static final String JSON_PROPERTY_KEYBOARD_LAYOUT_NAME = "keyboard_layout_name";
@jakarta.annotation.Nullable private String keyboardLayoutName;

public RawDeviceAttributes() {}

public RawDeviceAttributes fontPreferences(
Expand Down Expand Up @@ -930,6 +934,29 @@ public void setKeyboardLayoutHash(@jakarta.annotation.Nullable String keyboardLa
this.keyboardLayoutHash = keyboardLayoutHash;
}

public RawDeviceAttributes keyboardLayoutName(
@jakarta.annotation.Nullable String keyboardLayoutName) {
this.keyboardLayoutName = keyboardLayoutName;
return this;
}

/**
* Name of the user's configured keyboard layout as a BCP 47-style identifier. Only available in Chromium-based browsers, omitted otherwise.
* @return keyboardLayoutName
*/
@jakarta.annotation.Nullable
@JsonProperty(value = JSON_PROPERTY_KEYBOARD_LAYOUT_NAME, required = false)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public String getKeyboardLayoutName() {
return keyboardLayoutName;
}

@JsonProperty(value = JSON_PROPERTY_KEYBOARD_LAYOUT_NAME, required = false)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setKeyboardLayoutName(@jakarta.annotation.Nullable String keyboardLayoutName) {
this.keyboardLayoutName = keyboardLayoutName;
}

/**
* Return true if this RawDeviceAttributes object is equal to o.
*/
Expand Down Expand Up @@ -974,7 +1001,8 @@ public boolean equals(Object o) {
&& Objects.equals(this.batteryLevel, rawDeviceAttributes.batteryLevel)
&& Objects.equals(this.batteryCharging, rawDeviceAttributes.batteryCharging)
&& Objects.equals(this.batteryLowPowerMode, rawDeviceAttributes.batteryLowPowerMode)
&& Objects.equals(this.keyboardLayoutHash, rawDeviceAttributes.keyboardLayoutHash);
&& Objects.equals(this.keyboardLayoutHash, rawDeviceAttributes.keyboardLayoutHash)
&& Objects.equals(this.keyboardLayoutName, rawDeviceAttributes.keyboardLayoutName);
}

@Override
Expand Down Expand Up @@ -1012,7 +1040,8 @@ public int hashCode() {
batteryLevel,
batteryCharging,
batteryLowPowerMode,
keyboardLayoutHash);
keyboardLayoutHash,
keyboardLayoutName);
}

@Override
Expand Down Expand Up @@ -1056,6 +1085,7 @@ public String toString() {
.append(toIndentedString(batteryLowPowerMode))
.append("\n");
sb.append(" keyboardLayoutHash: ").append(toIndentedString(keyboardLayoutHash)).append("\n");
sb.append(" keyboardLayoutName: ").append(toIndentedString(keyboardLayoutName)).append("\n");
sb.append("}");
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,7 @@ public void searchEventsMaximumParamsTest() throws ApiException {
SearchEventsIncrementalIdentificationStatus.PARTIALLY_COMPLETED;
final Boolean SIMULATOR = true;
final List<SearchEventsSource> SOURCE = Arrays.asList(SearchEventsSource.EDGE);
final Boolean ACTIVE_CALL = true;

Map<String, String> expectedQueryParams = new HashMap<>();
expectedQueryParams.put("limit", String.valueOf(LIMIT));
Expand Down Expand Up @@ -550,6 +551,7 @@ public void searchEventsMaximumParamsTest() throws ApiException {
expectedQueryParams.put(
"incremental_identification_status", String.valueOf(INCREMENTAL_IDENTIFICATION_STATUS));
expectedQueryParams.put("simulator", String.valueOf(SIMULATOR));
expectedQueryParams.put("active_call", String.valueOf(ACTIVE_CALL));

final int arrayQueryParamsCount =
ENVIRONMENT.size()
Expand Down Expand Up @@ -634,7 +636,8 @@ public void searchEventsMaximumParamsTest() throws ApiException {
.setHighRecallId(HIGH_RECALL_ID)
.setIncrementalIdentificationStatus(INCREMENTAL_IDENTIFICATION_STATUS)
.setSimulator(SIMULATOR)
.setSource(SOURCE));
.setSource(SOURCE)
.setActiveCall(ACTIVE_CALL));
List<Event> events = response.getEvents();
assertEquals(events.size(), 1);
}
Expand Down
1 change: 1 addition & 0 deletions sdk/src/test/resources/mocks/events/get_event_200.json
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@
"date_time_locale": "en-US",
"audio": 124.04347745512496,
"keyboard_layout_hash": "691e3845c85c202a1514b6fd7ef17065",
"keyboard_layout_name": "en-US",
"battery_charging": true,
"battery_level": 80,
"battery_low_power_mode": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
"date_time_locale": "en-US",
"audio": 124.04347745512496,
"keyboard_layout_hash": "691e3845c85c202a1514b6fd7ef17065",
"keyboard_layout_name": "en-US",
"battery_charging": true,
"battery_level": 80,
"battery_low_power_mode": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@
"date_time_locale": "en-US",
"audio": 124.04347745512496,
"keyboard_layout_hash": "691e3845c85c202a1514b6fd7ef17065",
"keyboard_layout_name": "en-US",
"battery_charging": true,
"battery_level": 80,
"battery_low_power_mode": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@
"date_time_locale": "en-US",
"audio": 124.04347745512496,
"keyboard_layout_hash": "691e3845c85c202a1514b6fd7ef17065",
"keyboard_layout_name": "en-US",
"battery_charging": true,
"battery_level": 80,
"battery_low_power_mode": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@
"date_time_locale": "en-US",
"audio": 124.04347745512496,
"keyboard_layout_hash": "691e3845c85c202a1514b6fd7ef17065",
"keyboard_layout_name": "en-US",
"battery_charging": true,
"battery_level": 80,
"battery_low_power_mode": true,
Expand Down