diff --git a/.changeset/forty-seas-prove.md b/.changeset/forty-seas-prove.md new file mode 100644 index 0000000..4f10093 --- /dev/null +++ b/.changeset/forty-seas-prove.md @@ -0,0 +1,5 @@ +--- +'fingerprint-pro-server-api-java-sdk': minor +--- + +Add `relay` detection method to the VPN Detection Smart Signal diff --git a/.changeset/good-experts-watch.md b/.changeset/good-experts-watch.md new file mode 100644 index 0000000..2e24306 --- /dev/null +++ b/.changeset/good-experts-watch.md @@ -0,0 +1,5 @@ +--- +'fingerprint-pro-server-api-java-sdk': minor +--- + +**events-search**: Add a new `events/search` API endpoint. Allow users to search for identification events matching one or more search criteria, for example, visitor ID, IP address, bot detection result, etc. diff --git a/.changeset/orange-poets-drive.md b/.changeset/orange-poets-drive.md new file mode 100644 index 0000000..c297c6f --- /dev/null +++ b/.changeset/orange-poets-drive.md @@ -0,0 +1,5 @@ +--- +'fingerprint-pro-server-api-java-sdk': minor +--- + +**events**: Add a `suspect` field to the `identification` product schema \ No newline at end of file diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000..66e6693 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,8 @@ +{ + "mode": "pre", + "tag": "develop", + "initialVersions": { + "fingerprint-pro-server-api-java-sdk": "7.2.0" + }, + "changesets": [] +} diff --git a/README.md b/README.md index 4d92a45..10d66f8 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ Class | Method | HTTP request | Description *FingerprintApi* | [**getEvent**](docs/FingerprintApi.md#getEvent) | **GET** /events/{request_id} | Get event by request ID *FingerprintApi* | [**getRelatedVisitors**](docs/FingerprintApi.md#getRelatedVisitors) | **GET** /related-visitors | Get Related Visitors *FingerprintApi* | [**getVisits**](docs/FingerprintApi.md#getVisits) | **GET** /visitors/{visitor_id} | Get visits by visitor ID +*FingerprintApi* | [**searchEvents**](docs/FingerprintApi.md#searchEvents) | **GET** /events/search | Get events via search *FingerprintApi* | [**updateEvent**](docs/FingerprintApi.md#updateEvent) | **PUT** /events/{request_id} | Update an event with a given request ID *FingerprintApi* | [**webhookTrace**](docs/FingerprintApi.md#webhookTrace) | **TRACE** /webhook | @@ -351,6 +352,8 @@ Class | Method | HTTP request | Description - [RelatedVisitorsResponse](docs/RelatedVisitorsResponse.md) - [RemoteControl](docs/RemoteControl.md) - [RootApps](docs/RootApps.md) + - [SearchEventsResponse](docs/SearchEventsResponse.md) + - [SearchEventsResponseEventsInner](docs/SearchEventsResponseEventsInner.md) - [SuspectScore](docs/SuspectScore.md) - [Tampering](docs/Tampering.md) - [Tor](docs/Tor.md) diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 2445459..6096d4d 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -8,6 +8,7 @@ All URIs are relative to *https://api.fpjs.io* | [**getEvent**](FingerprintApi.md#getEvent) | **GET** /events/{request_id} | Get event by request ID | | [**getRelatedVisitors**](FingerprintApi.md#getRelatedVisitors) | **GET** /related-visitors | Get Related Visitors | | [**getVisits**](FingerprintApi.md#getVisits) | **GET** /visitors/{visitor_id} | Get visits by visitor ID | +| [**searchEvents**](FingerprintApi.md#searchEvents) | **GET** /events/search | Get events via search | | [**updateEvent**](FingerprintApi.md#updateEvent) | **PUT** /events/{request_id} | Update an event with a given request ID | | [**webhookTrace**](FingerprintApi.md#webhookTrace) | **TRACE** /webhook | | @@ -376,6 +377,102 @@ public class FingerprintApiExample { | **429** | Too Many Requests. The request is throttled. | * Retry-After - Indicates how many seconds you should wait before attempting the next request.
| +## searchEvents + +> SearchEventsResponse searchEvents(limit, visitorId, bot, ipAddress, linkedId, start, end, reverse, suspect) + +Get events via search + +Search for identification events, including Smart Signals, using multiple filtering criteria. If you don't provide `start` or `end` parameters, the default search range is the last 7 days. + +Please note that events include mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. We recommend you **ignore** mobile signals for such requests. + + +### Example + +```java +package main; + +import com.fingerprint.api.FingerprintApi; +import com.fingerprint.model.EventsGetResponse; +import com.fingerprint.model.EventsUpdateRequest; +import com.fingerprint.model.VisitorsGetResponse; +import com.fingerprint.sdk.ApiClient; +import com.fingerprint.sdk.ApiException; +import com.fingerprint.sdk.Configuration; +import com.fingerprint.sdk.Region; + +public class FingerprintApiExample { + // Fingerprint Pro Secret API Key + private static final String FPJS_API_SECRET = "Fingerprint Pro Secret API Key"; + public static void main(String... args) { + // Create a new api client instance from Configuration with your Fingerprint Pro Server API Key and your Fingerprint Pro Server API Region. + /* + You can specify a region on getDefaultApiClient function's second parameter + If you leave the second parameter empty, then Region.GLOBAL will be used as a default region + Options for regions are: + Region.GLOBAL + Region.EUROPE + Region.ASIA + */ + ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); + FingerprintApi api = new FingerprintApi(client); + Integer limit = 10; // Integer | Limit the number of events returned. + String visitorId = "visitorId_example"; // String | Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. + String bot = "all"; // String | Filter events by the bot detection result, specifically: - events where any kind of bot was detected. - events where a good bot was detected. - events where a bad bot was detected. - events where no bot was detected. + String ipAddress = "ipAddress_example"; // String | Filter events by IP address range. The range can be as specific as a single IP (/32 for IPv4 or /128 for IPv6) All ip_address filters must use CIDR notation, for example, 10.0.0.0/24, 192.168.0.1/32 + String linkedId = "linkedId_example"; // String | Filter events by your custom identifier. You can use [linked IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to associate identification requests with your own identifier, for example, session ID, purchase ID, or transaction ID. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. + Long start = 56L; // Long | Filter events with a timestamp greater than the start time, in Unix time (milliseconds). + Long end = 56L; // Long | Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). + Boolean reverse = true; // Boolean | Sort events in reverse timestamp order. + Boolean suspect = true; // Boolean | Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). + try { + SearchEventsResponse result = apiInstance.searchEvents(limit, visitorId, bot, ipAddress, linkedId, start, end, reverse, suspect); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage()); + } + } +} +``` + + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **limit** | **Integer**| Limit the number of events returned. | | +| **visitorId** | **String**| Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. | [optional] | +| **bot** | **String**| Filter events by the bot detection result, specifically: - events where any kind of bot was detected. - events where a good bot was detected. - events where a bad bot was detected. - events where no bot was detected. | [optional] [enum: all, good, bad, none] | +| **ipAddress** | **String**| Filter events by IP address range. The range can be as specific as a single IP (/32 for IPv4 or /128 for IPv6) All ip_address filters must use CIDR notation, for example, 10.0.0.0/24, 192.168.0.1/32 | [optional] | +| **linkedId** | **String**| Filter events by your custom identifier. You can use [linked IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to associate identification requests with your own identifier, for example, session ID, purchase ID, or transaction ID. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. | [optional] | +| **start** | **Long**| Filter events with a timestamp greater than the start time, in Unix time (milliseconds). | [optional] | +| **end** | **Long**| Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). | [optional] | +| **reverse** | **Boolean**| Sort events in reverse timestamp order. | [optional] | +| **suspect** | **Boolean**| Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). | [optional] | + +### Return type + +[**SearchEventsResponse**](SearchEventsResponse.md) + +### Authorization + +[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Events matching the filter(s). | - | +| **400** | Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. | - | +| **403** | Forbidden. Access to this API is denied. | - | + + ## updateEvent > updateEvent(requestId, eventsUpdateRequest) diff --git a/docs/SearchEventsResponse.md b/docs/SearchEventsResponse.md new file mode 100644 index 0000000..3ec2a5f --- /dev/null +++ b/docs/SearchEventsResponse.md @@ -0,0 +1,15 @@ + + +# SearchEventsResponse + +Contains a list of all identification events matching the specified search criteria. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**events** | [**List<SearchEventsResponseEventsInner>**](SearchEventsResponseEventsInner.md) | | [optional] | +|**paginationKey** | **String** | | [optional] | + + + diff --git a/docs/SearchEventsResponseEventsInner.md b/docs/SearchEventsResponseEventsInner.md new file mode 100644 index 0000000..4b469d6 --- /dev/null +++ b/docs/SearchEventsResponseEventsInner.md @@ -0,0 +1,14 @@ + + +# SearchEventsResponseEventsInner + +Device intelligence results for the identification event. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**products** | [**Products**](Products.md) | | | + + + diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index af3cc9b..fd40920 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -142,6 +142,131 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /events/search: + get: + tags: + - Fingerprint + operationId: searchEvents + summary: Get events via search + description: > + Search for identification events, including Smart Signals, using + multiple filtering criteria. If you don't provide `start` or `end` + parameters, the default search range is the last 7 days. + + + Please note that events include mobile signals (e.g. `rootApps`) even if + the request originated from a non-mobile platform. We recommend you + **ignore** mobile signals for such requests. + parameters: + - name: limit + in: query + required: true + schema: + type: integer + format: int32 + minimum: 1 + example: 10 + description: | + Limit the number of events returned. + - name: visitor_id + in: query + schema: + type: string + description: > + Unique [visitor + identifier](https://dev.fingerprint.com/reference/get-function#visitorid) + issued by Fingerprint Pro. + + Filter for events matching this `visitor_id`. + - name: bot + in: query + schema: + type: string + enum: + - all + - good + - bad + - none + description: | + Filter events by the bot detection result, specifically: + - events where any kind of bot was detected. + - events where a good bot was detected. + - events where a bad bot was detected. + - events where no bot was detected. + - name: ip_address + in: query + schema: + type: string + description: > + Filter events by IP address range. The range can be as specific as a + single IP (/32 for IPv4 or /128 for IPv6) + + All ip_address filters must use CIDR notation, for example, + 10.0.0.0/24, 192.168.0.1/32 + - name: linked_id + in: query + schema: + type: string + description: > + Filter events by your custom identifier. + + + You can use [linked + IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to + associate identification requests with your own identifier, for + example, session ID, purchase ID, or transaction ID. You can then + use this `linked_id` parameter to retrieve all events associated + with your custom identifier. + - name: start + in: query + schema: + type: integer + format: int64 + description: > + Filter events with a timestamp greater than the start time, in Unix + time (milliseconds). + - name: end + in: query + schema: + type: integer + format: int64 + description: > + Filter events with a timestamp smaller than the end time, in Unix + time (milliseconds). + - name: reverse + in: query + schema: + type: boolean + description: | + Sort events in reverse timestamp order. + - name: suspect + in: query + schema: + type: boolean + description: > + Filter events previously tagged as suspicious via the [Update + API](https://dev.fingerprint.com/reference/updateevent). + responses: + '200': + description: Events matching the filter(s). + content: + application/json: + schema: + $ref: '#/components/schemas/SearchEventsResponse' + '400': + description: >- + Bad request. One or more supplied search parameters are invalid, or + a required parameter is missing. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '403': + description: Forbidden. Access to this API is denied. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /visitors/{visitor_id}: get: tags: @@ -1874,6 +1999,25 @@ components: suspect: type: boolean description: Suspect flag indicating observed suspicious or fraudulent event + SearchEventsResponse: + type: object + description: >- + Contains a list of all identification events matching the specified + search criteria. + additionalProperties: false + properties: + events: + type: array + items: + type: object + description: Device intelligence results for the identification event. + required: + - products + properties: + products: + $ref: '#/components/schemas/Products' + paginationKey: + type: string Visit: type: object additionalProperties: false diff --git a/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java index b07791f..fa6fe71 100644 --- a/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java @@ -14,6 +14,7 @@ import com.fingerprint.model.EventsGetResponse; import com.fingerprint.model.EventsUpdateRequest; import com.fingerprint.model.RelatedVisitorsResponse; +import com.fingerprint.model.SearchEventsResponse; import com.fingerprint.model.VisitorsGetResponse; import com.fingerprint.model.Webhook; @@ -379,6 +380,104 @@ public ApiResponse getVisitsWithHttpInfo(String visitorId, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType, false); } + /** + * Get events via search + * Search for identification events, including Smart Signals, using multiple filtering criteria. If you don't provide `start` or `end` parameters, the default search range is the last 7 days. Please note that events include mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. We recommend you **ignore** mobile signals for such requests. + * @param limit Limit the number of events returned. (required) + * @param visitorId Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. (optional) + * @param bot Filter events by the bot detection result, specifically: - events where any kind of bot was detected. - events where a good bot was detected. - events where a bad bot was detected. - events where no bot was detected. (optional) + * @param ipAddress Filter events by IP address range. The range can be as specific as a single IP (/32 for IPv4 or /128 for IPv6) All ip_address filters must use CIDR notation, for example, 10.0.0.0/24, 192.168.0.1/32 (optional) + * @param linkedId Filter events by your custom identifier. You can use [linked IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to associate identification requests with your own identifier, for example, session ID, purchase ID, or transaction ID. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. (optional) + * @param start Filter events with a timestamp greater than the start time, in Unix time (milliseconds). (optional) + * @param end Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). (optional) + * @param reverse Sort events in reverse timestamp order. (optional) + * @param suspect Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). (optional) + * @return SearchEventsResponse + * @throws ApiException if fails to make API call + * @http.response.details + + + + + +
Status Code Description Response Headers
200 Events matching the filter(s). -
400 Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. -
403 Forbidden. Access to this API is denied. -
+ */ + public SearchEventsResponse searchEvents(Integer limit, String visitorId, String bot, String ipAddress, String linkedId, Long start, Long end, Boolean reverse, Boolean suspect) throws ApiException { + return searchEventsWithHttpInfo(limit, visitorId, bot, ipAddress, linkedId, start, end, reverse, suspect).getData(); + } + + /** + * Get events via search + * Search for identification events, including Smart Signals, using multiple filtering criteria. If you don't provide `start` or `end` parameters, the default search range is the last 7 days. Please note that events include mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. We recommend you **ignore** mobile signals for such requests. + * @param limit Limit the number of events returned. (required) + * @param visitorId Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. (optional) + * @param bot Filter events by the bot detection result, specifically: - events where any kind of bot was detected. - events where a good bot was detected. - events where a bad bot was detected. - events where no bot was detected. (optional) + * @param ipAddress Filter events by IP address range. The range can be as specific as a single IP (/32 for IPv4 or /128 for IPv6) All ip_address filters must use CIDR notation, for example, 10.0.0.0/24, 192.168.0.1/32 (optional) + * @param linkedId Filter events by your custom identifier. You can use [linked IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to associate identification requests with your own identifier, for example, session ID, purchase ID, or transaction ID. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. (optional) + * @param start Filter events with a timestamp greater than the start time, in Unix time (milliseconds). (optional) + * @param end Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). (optional) + * @param reverse Sort events in reverse timestamp order. (optional) + * @param suspect Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). (optional) + * @return ApiResponse<SearchEventsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + + + + + +
Status Code Description Response Headers
200 Events matching the filter(s). -
400 Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. -
403 Forbidden. Access to this API is denied. -
+ */ + public ApiResponse searchEventsWithHttpInfo(Integer limit, String visitorId, String bot, String ipAddress, String linkedId, Long start, Long end, Boolean reverse, Boolean suspect) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'limit' is set + if (limit == null) { + throw new ApiException(400, "Missing the required parameter 'limit' when calling searchEvents"); + } + + // create path and map variables + String localVarPath = "/events/search"; + + // query params + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "visitor_id", visitorId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "bot", bot)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "ip_address", ipAddress)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "linked_id", linkedId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "start", start)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "end", end)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "reverse", reverse)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "suspect", suspect)); + + + + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + + final String[] localVarContentTypes = { + + }; + final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + + String[] localVarAuthNames = new String[] { "ApiKeyHeader", "ApiKeyQuery" }; + + GenericType localVarReturnType = new GenericType() {}; + + return apiClient.invokeAPI("FingerprintApi.searchEvents", localVarPath, "GET", localVarQueryParams, localVarPostBody, + localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, + localVarAuthNames, localVarReturnType, false); + } /** * Update an event with a given request ID * Change information in existing events specified by `requestId` or *flag suspicious events*. When an event is created, it is assigned `linkedId` and `tag` submitted through the JS agent parameters. This information might not be available on the client so the Server API allows for updating the attributes after the fact. **Warning** It's not possible to update events older than 10 days. diff --git a/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java b/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java new file mode 100644 index 0000000..87f3b12 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java @@ -0,0 +1,140 @@ +package com.fingerprint.model; + +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fingerprint.model.SearchEventsResponseEventsInner; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Contains a list of all identification events matching the specified search criteria. + */ + +@Schema(description = "Contains a list of all identification events matching the specified search criteria.") +@JsonPropertyOrder({ + SearchEventsResponse.JSON_PROPERTY_EVENTS, + SearchEventsResponse.JSON_PROPERTY_PAGINATION_KEY +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class SearchEventsResponse { + public static final String JSON_PROPERTY_EVENTS = "events"; + private List events = null; + + public static final String JSON_PROPERTY_PAGINATION_KEY = "paginationKey"; + private String paginationKey; + + public SearchEventsResponse() { + } + + public SearchEventsResponse events(List events) { + this.events = events; + return this; + } + + public SearchEventsResponse addSearchEventsResponseEventsInnerItem(SearchEventsResponseEventsInner eventsItem) { + if (this.events == null) { + this.events = new ArrayList<>(); + } + this.events.add(eventsItem); + return this; + } + + /** + * Get events + * @return events + **/ + @jakarta.annotation.Nullable + @Schema(description = "") + @JsonProperty(JSON_PROPERTY_EVENTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getEvents() { + return events; + } + + + @JsonProperty(JSON_PROPERTY_EVENTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEvents(List events) { + this.events = events; + } + + + public SearchEventsResponse paginationKey(String paginationKey) { + this.paginationKey = paginationKey; + return this; + } + + /** + * Get paginationKey + * @return paginationKey + **/ + @jakarta.annotation.Nullable + @Schema(description = "") + @JsonProperty(JSON_PROPERTY_PAGINATION_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getPaginationKey() { + return paginationKey; + } + + + @JsonProperty(JSON_PROPERTY_PAGINATION_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPaginationKey(String paginationKey) { + this.paginationKey = paginationKey; + } + + + /** + * Return true if this SearchEventsResponse object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchEventsResponse searchEventsResponse = (SearchEventsResponse) o; + return Objects.equals(this.events, searchEventsResponse.events) && + Objects.equals(this.paginationKey, searchEventsResponse.paginationKey); + } + + @Override + public int hashCode() { + return Objects.hash(events, paginationKey); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchEventsResponse {\n"); + sb.append(" events: ").append(toIndentedString(events)).append("\n"); + sb.append(" paginationKey: ").append(toIndentedString(paginationKey)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/sdk/src/main/java/com/fingerprint/model/SearchEventsResponseEventsInner.java b/sdk/src/main/java/com/fingerprint/model/SearchEventsResponseEventsInner.java new file mode 100644 index 0000000..919fd7d --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/SearchEventsResponseEventsInner.java @@ -0,0 +1,99 @@ +package com.fingerprint.model; + +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fingerprint.model.Products; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Device intelligence results for the identification event. + */ + +@Schema(description = "Device intelligence results for the identification event.") +@JsonPropertyOrder({ + SearchEventsResponseEventsInner.JSON_PROPERTY_PRODUCTS +}) +@JsonTypeName("SearchEventsResponse_events_inner") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class SearchEventsResponseEventsInner { + public static final String JSON_PROPERTY_PRODUCTS = "products"; + private Products products; + + public SearchEventsResponseEventsInner() { + } + + public SearchEventsResponseEventsInner products(Products products) { + this.products = products; + return this; + } + + /** + * Get products + * @return products + **/ + @jakarta.annotation.Nonnull + @Schema(required = true, description = "") + @JsonProperty(JSON_PROPERTY_PRODUCTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public Products getProducts() { + return products; + } + + + @JsonProperty(JSON_PROPERTY_PRODUCTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProducts(Products products) { + this.products = products; + } + + + /** + * Return true if this SearchEventsResponse_events_inner object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchEventsResponseEventsInner searchEventsResponseEventsInner = (SearchEventsResponseEventsInner) o; + return Objects.equals(this.products, searchEventsResponseEventsInner.products); + } + + @Override + public int hashCode() { + return Objects.hash(products); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchEventsResponseEventsInner {\n"); + sb.append(" products: ").append(toIndentedString(products)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} +