diff --git a/.changeset/weak-eagles-deliver.md b/.changeset/weak-eagles-deliver.md new file mode 100644 index 00000000..59ce9ce6 --- /dev/null +++ b/.changeset/weak-eagles-deliver.md @@ -0,0 +1,5 @@ +--- +"fingerprint-pro-server-api-java-sdk": major +--- + +Migrate to Server API v4 diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore index 85659b5b..fda2c229 100644 --- a/.openapi-generator-ignore +++ b/.openapi-generator-ignore @@ -3,7 +3,7 @@ build.sbt git_push.sh api/* src/test/java/com/fingerprint/model/* +src/main/java/com/fingerprint/model/AbstractOpenApiSchema.java src/main/AndroidManifest.xml .github/workflows/maven.yml pom.xml -src/main/AndroidManifest.xml \ No newline at end of file diff --git a/README.md b/README.md index 34842e12..3efd1201 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ The following versions of Java are supported - Java 11 - Java 17 - Java 21 +- Java 25 ## Installation @@ -109,8 +110,8 @@ Please follow the [installation](#installation) instruction and execute the foll package main; import com.fingerprint.api.FingerprintApi; -import com.fingerprint.model.EventsGetResponse; -import com.fingerprint.model.EventsUpdateRequest; +import com.fingerprint.model.Events; +import com.fingerprint.model.UpdateEvents; import com.fingerprint.model.VisitorsGetResponse; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; @@ -122,8 +123,8 @@ public class FingerprintApiExample { private static final String FPJS_API_SECRET = "Fingerprint Secret API Key"; // A mandatory visitorId of a specific visitor private static final String FPJS_VISITOR_ID = "visitorId"; - // An optional requestId made by a specific visitor - private static final String FPJS_REQUEST_ID = "requestId"; + // An optional eventId initiated by a specific visitor + private static final String FPJS_EVENT_ID = "eventId"; // An optional linkedId of the visit private static final String FPJS_LINKED_ID = "linkedId"; // An optional parameter limiting scanned results @@ -146,7 +147,7 @@ public class FingerprintApiExample { // Get an event with a given requestId try { // Fetch the event with a given requestId - EventsGetResponse response = api.getEvent(FPJS_REQUEST_ID); + Event response = api.getEvent(FPJS_EVENT_ID); System.out.println(response.getProducts().toString()); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.getEvent:" + e.getMessage()); @@ -169,40 +170,13 @@ public class FingerprintApiExample { // Update an event with a given requestId try { - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setLinkedId("myNewLinkedId"); - api.updateEvent(FPJS_REQUEST_ID, request); + api.updateEvent(FPJS_EVENT_ID, request); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.updateEvent:" + e.getMessage()); } - // Get a specific visitor's all visits - try { - // Fetch all visits with a given visitorId, with a page limit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, null, null, LIMIT, null, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - - // Get a specific visitor's all visits with a linkedId - try { - // Fetch all visits with a given visitorId, with a page limit, skipping the first visit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, null, FPJS_LINKED_ID, LIMIT, PAGINATION_KEY, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - - // Use all the parameters on getVisits - try { - // Fetch the visitor's all visits with a given requestId and linkedId with a page limit while skipping the first visit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, FPJS_REQUEST_ID, FPJS_LINKED_ID, LIMIT, PAGINATION_KEY, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - // Delete visitor data with a given visitorID try { api.deleteVisitorData(FPJS_VISITOR_ID); @@ -284,153 +258,56 @@ class WebhookController { ## Documentation for API Endpoints -All URIs are relative to *https://api.fpjs.io* +All URIs are relative to *https://api.fpjs.io/v4* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *FingerprintApi* | [**deleteVisitorData**](docs/FingerprintApi.md#deleteVisitorData) | **DELETE** /visitors/{visitor_id} | Delete data by visitor ID -*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 | Dummy path to describe webhook format. +*FingerprintApi* | [**getEvent**](docs/FingerprintApi.md#getEvent) | **GET** /events/{event_id} | Get an event by event ID +*FingerprintApi* | [**searchEvents**](docs/FingerprintApi.md#searchEvents) | **GET** /events | Search events +*FingerprintApi* | [**updateEvent**](docs/FingerprintApi.md#updateEvent) | **PATCH** /events/{event_id} | Update an event ## Documentation for Models - - [Botd](docs/Botd.md) - - [BotdBot](docs/BotdBot.md) - - [BotdBotResult](docs/BotdBotResult.md) + - [BotResult](docs/BotResult.md) - [BrowserDetails](docs/BrowserDetails.md) - - [ClonedApp](docs/ClonedApp.md) - - [DeprecatedGeolocation](docs/DeprecatedGeolocation.md) - - [DeveloperTools](docs/DeveloperTools.md) - - [Emulator](docs/Emulator.md) - [Error](docs/Error.md) - [ErrorCode](docs/ErrorCode.md) - - [ErrorPlainResponse](docs/ErrorPlainResponse.md) - [ErrorResponse](docs/ErrorResponse.md) - - [EventsGetResponse](docs/EventsGetResponse.md) - - [EventsUpdateRequest](docs/EventsUpdateRequest.md) - - [FactoryReset](docs/FactoryReset.md) - - [Frida](docs/Frida.md) + - [Event](docs/Event.md) + - [EventSearch](docs/EventSearch.md) + - [EventUpdate](docs/EventUpdate.md) - [Geolocation](docs/Geolocation.md) - - [GeolocationCity](docs/GeolocationCity.md) - - [GeolocationContinent](docs/GeolocationContinent.md) - - [GeolocationCountry](docs/GeolocationCountry.md) - - [GeolocationSubdivision](docs/GeolocationSubdivision.md) - - [HighActivity](docs/HighActivity.md) - - [IPBlocklist](docs/IPBlocklist.md) - - [IPBlocklistDetails](docs/IPBlocklistDetails.md) + - [GeolocationSubdivisionsInner](docs/GeolocationSubdivisionsInner.md) + - [IPBlockList](docs/IPBlockList.md) - [IPInfo](docs/IPInfo.md) - - [IPInfoASN](docs/IPInfoASN.md) - - [IPInfoDataCenter](docs/IPInfoDataCenter.md) - [IPInfoV4](docs/IPInfoV4.md) - [IPInfoV6](docs/IPInfoV6.md) - [Identification](docs/Identification.md) - [IdentificationConfidence](docs/IdentificationConfidence.md) - - [IdentificationSeenAt](docs/IdentificationSeenAt.md) - - [Incognito](docs/Incognito.md) - - [Jailbroken](docs/Jailbroken.md) - - [LocationSpoofing](docs/LocationSpoofing.md) - - [MitMAttack](docs/MitMAttack.md) - - [PrivacySettings](docs/PrivacySettings.md) - - [ProductBotd](docs/ProductBotd.md) - - [ProductClonedApp](docs/ProductClonedApp.md) - - [ProductDeveloperTools](docs/ProductDeveloperTools.md) - - [ProductEmulator](docs/ProductEmulator.md) - - [ProductFactoryReset](docs/ProductFactoryReset.md) - - [ProductFrida](docs/ProductFrida.md) - - [ProductHighActivity](docs/ProductHighActivity.md) - - [ProductIPBlocklist](docs/ProductIPBlocklist.md) - - [ProductIPInfo](docs/ProductIPInfo.md) - - [ProductIdentification](docs/ProductIdentification.md) - - [ProductIncognito](docs/ProductIncognito.md) - - [ProductJailbroken](docs/ProductJailbroken.md) - - [ProductLocationSpoofing](docs/ProductLocationSpoofing.md) - - [ProductMitMAttack](docs/ProductMitMAttack.md) - - [ProductPrivacySettings](docs/ProductPrivacySettings.md) - - [ProductProximity](docs/ProductProximity.md) - - [ProductProxy](docs/ProductProxy.md) - - [ProductRawDeviceAttributes](docs/ProductRawDeviceAttributes.md) - - [ProductRemoteControl](docs/ProductRemoteControl.md) - - [ProductRootApps](docs/ProductRootApps.md) - - [ProductSuspectScore](docs/ProductSuspectScore.md) - - [ProductTampering](docs/ProductTampering.md) - - [ProductTor](docs/ProductTor.md) - - [ProductVPN](docs/ProductVPN.md) - - [ProductVelocity](docs/ProductVelocity.md) - - [ProductVirtualMachine](docs/ProductVirtualMachine.md) - - [Products](docs/Products.md) + - [Integration](docs/Integration.md) + - [IntegrationSubintegration](docs/IntegrationSubintegration.md) - [Proximity](docs/Proximity.md) - - [Proxy](docs/Proxy.md) - [ProxyConfidence](docs/ProxyConfidence.md) - [ProxyDetails](docs/ProxyDetails.md) - - [RawDeviceAttribute](docs/RawDeviceAttribute.md) - - [RawDeviceAttributeError](docs/RawDeviceAttributeError.md) - - [RelatedVisitor](docs/RelatedVisitor.md) - - [RelatedVisitorsResponse](docs/RelatedVisitorsResponse.md) - - [RemoteControl](docs/RemoteControl.md) - - [RootApps](docs/RootApps.md) - [SDK](docs/SDK.md) - - [SearchEventsResponse](docs/SearchEventsResponse.md) - - [SearchEventsResponseEventsInner](docs/SearchEventsResponseEventsInner.md) - - [SupplementaryID](docs/SupplementaryID.md) - - [SuspectScore](docs/SuspectScore.md) - - [Tampering](docs/Tampering.md) - - [Tor](docs/Tor.md) - - [VPN](docs/VPN.md) - - [VPNConfidence](docs/VPNConfidence.md) - - [VPNMethods](docs/VPNMethods.md) + - [SupplementaryIDHighRecall](docs/SupplementaryIDHighRecall.md) + - [TamperingDetails](docs/TamperingDetails.md) + - [TriggeredByInner](docs/TriggeredByInner.md) - [Velocity](docs/Velocity.md) - [VelocityData](docs/VelocityData.md) - - [VelocityIntervals](docs/VelocityIntervals.md) - - [VirtualMachine](docs/VirtualMachine.md) - - [Visit](docs/Visit.md) - - [VisitorsGetResponse](docs/VisitorsGetResponse.md) - - [Webhook](docs/Webhook.md) - - [WebhookClonedApp](docs/WebhookClonedApp.md) - - [WebhookDeveloperTools](docs/WebhookDeveloperTools.md) - - [WebhookEmulator](docs/WebhookEmulator.md) - - [WebhookFactoryReset](docs/WebhookFactoryReset.md) - - [WebhookFrida](docs/WebhookFrida.md) - - [WebhookHighActivity](docs/WebhookHighActivity.md) - - [WebhookIPBlocklist](docs/WebhookIPBlocklist.md) - - [WebhookIPInfo](docs/WebhookIPInfo.md) - - [WebhookJailbroken](docs/WebhookJailbroken.md) - - [WebhookLocationSpoofing](docs/WebhookLocationSpoofing.md) - - [WebhookMitMAttack](docs/WebhookMitMAttack.md) - - [WebhookPrivacySettings](docs/WebhookPrivacySettings.md) - - [WebhookProximity](docs/WebhookProximity.md) - - [WebhookProxy](docs/WebhookProxy.md) - - [WebhookRemoteControl](docs/WebhookRemoteControl.md) - - [WebhookRootApps](docs/WebhookRootApps.md) - - [WebhookSupplementaryIDs](docs/WebhookSupplementaryIDs.md) - - [WebhookSuspectScore](docs/WebhookSuspectScore.md) - - [WebhookTampering](docs/WebhookTampering.md) - - [WebhookTor](docs/WebhookTor.md) - - [WebhookVPN](docs/WebhookVPN.md) - - [WebhookVelocity](docs/WebhookVelocity.md) - - [WebhookVirtualMachine](docs/WebhookVirtualMachine.md) + - [VpnConfidence](docs/VpnConfidence.md) + - [VpnMethods](docs/VpnMethods.md) ## Documentation for Authorization Authentication schemes defined for the API: -### ApiKeyHeader - - -- **Type**: API key -- **API key parameter name**: Auth-API-Key -- **Location**: HTTP header - -### ApiKeyQuery +### bearerAuth -- **Type**: API key -- **API key parameter name**: api_key -- **Location**: URL query string +- **Type**: HTTP basic authentication ## Documentation for sealed results diff --git a/docs/BotdBotResult.md b/docs/BotResult.md similarity index 66% rename from docs/BotdBotResult.md rename to docs/BotResult.md index 727f15f1..255ff3b4 100644 --- a/docs/BotdBotResult.md +++ b/docs/BotResult.md @@ -1,8 +1,8 @@ -# BotdBotResult - Bot detection result: - * `notDetected` - the visitor is not a bot +# BotResult +Bot detection result: + * `not_detected` - the visitor is not a bot * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on @@ -10,7 +10,7 @@ ## Enum -* `NOT_DETECTED` (value: `"notDetected"`) +* `NOT_DETECTED` (value: `"not_detected"`) * `GOOD` (value: `"good"`) diff --git a/docs/Botd.md b/docs/Botd.md deleted file mode 100644 index 2e78eb33..00000000 --- a/docs/Botd.md +++ /dev/null @@ -1,21 +0,0 @@ - - -# Botd - -Contains all the information from Bot Detection product - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**bot** | [**BotdBot**](BotdBot.md) | | | -|**meta** | **Map<String, Object>** | A customer-provided value or an object that was sent with identification request. | [optional] | -|**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | -|**url** | **String** | Page URL from which the request was sent. | | -|**ip** | **String** | IP address of the requesting browser or bot. | | -|**time** | **OffsetDateTime** | Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. | | -|**userAgent** | **String** | | | -|**requestId** | **String** | Unique identifier of the user's request. | | - - - diff --git a/docs/BotdBot.md b/docs/BotdBot.md deleted file mode 100644 index 84fc5aef..00000000 --- a/docs/BotdBot.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# BotdBot - -Stores bot detection result - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | [**BotdBotResult**](BotdBotResult.md) | | | -|**type** | **String** | | [optional] | - - - diff --git a/docs/BrowserDetails.md b/docs/BrowserDetails.md index ba4fa973..2f9118b3 100644 --- a/docs/BrowserDetails.md +++ b/docs/BrowserDetails.md @@ -13,7 +13,6 @@ |**os** | **String** | | | |**osVersion** | **String** | | | |**device** | **String** | | | -|**userAgent** | **String** | | | diff --git a/docs/ClonedApp.md b/docs/ClonedApp.md deleted file mode 100644 index c38777f0..00000000 --- a/docs/ClonedApp.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# ClonedApp - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **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. | | - - - diff --git a/docs/DeprecatedGeolocation.md b/docs/DeprecatedGeolocation.md deleted file mode 100644 index 3c42d3dd..00000000 --- a/docs/DeprecatedGeolocation.md +++ /dev/null @@ -1,22 +0,0 @@ - - -# DeprecatedGeolocation - -This field is **deprecated** and will not return a result for **applications created after January 23rd, 2024**. Please use the [IP Geolocation Smart signal](https://dev.fingerprint.com/docs/smart-signals-overview#ip-geolocation) for geolocation information. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**accuracyRadius** | **Integer** | The IP address is likely to be within this radius (in km) of the specified location. | [optional] | -|**latitude** | **Double** | | [optional] | -|**longitude** | **Double** | | [optional] | -|**postalCode** | **String** | | [optional] | -|**timezone** | **String** | | [optional] | -|**city** | [**GeolocationCity**](GeolocationCity.md) | | [optional] | -|**country** | [**GeolocationCountry**](GeolocationCountry.md) | | [optional] | -|**continent** | [**GeolocationContinent**](GeolocationContinent.md) | | [optional] | -|**subdivisions** | [**List<GeolocationSubdivision>**](GeolocationSubdivision.md) | | [optional] | - - - diff --git a/docs/DeveloperTools.md b/docs/DeveloperTools.md deleted file mode 100644 index 13e48048..00000000 --- a/docs/DeveloperTools.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# DeveloperTools - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. | | - - - diff --git a/docs/Emulator.md b/docs/Emulator.md deleted file mode 100644 index fe6f39f0..00000000 --- a/docs/Emulator.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# Emulator - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **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. | | - - - diff --git a/docs/Error.md b/docs/Error.md index e1aa14df..680a4ad1 100644 --- a/docs/Error.md +++ b/docs/Error.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**code** | [**ErrorCode**](ErrorCode.md) | | | +|**code** | **ErrorCode** | | | |**message** | **String** | | | diff --git a/docs/ErrorCode.md b/docs/ErrorCode.md index c1074513..5d0202c7 100644 --- a/docs/ErrorCode.md +++ b/docs/ErrorCode.md @@ -1,52 +1,67 @@ # ErrorCode - Error code: - * `RequestCannotBeParsed` - the query parameters or JSON payload contains some errors - that prevented us from parsing it (wrong type/surpassed limits). - * `TokenRequired` - `Auth-API-Key` header is missing or empty. - * `TokenNotFound` - no Fingerprint application found for specified secret key. - * `SubscriptionNotActive` - Fingerprint application is not active. - * `WrongRegion` - server and application region differ. - * `FeatureNotEnabled` - this feature (for example, Delete API) is not enabled for your application. - * `RequestNotFound` - the specified request ID was not found. It never existed, expired, or it has been deleted. - * `VisitorNotFound` - The specified visitor ID was not found. It never existed or it may have already been deleted. - * `TooManyRequests` - the limit on secret API key requests per second has been exceeded. - * `429 Too Many Requests` - the limit on secret API key requests per second has been exceeded. - * `StateNotReady` - The event specified with request id is - not ready for updates yet. Try again. - This error happens in rare cases when update API is called immediately - after receiving the request id on the client. In case you need to send - information right away, we recommend using the JS agent API instead. - * `Failed` - internal server error. +Error code: +* `request_cannot_be_parsed` - The query parameters or JSON payload contains some errors + that prevented us from parsing it (wrong type/surpassed limits). +* `secret_api_key_required` - secret API key in header is missing or empty. +* `secret_api_key_not_found` - No Fingerprint workspace found for specified secret API key. +* `public_api_key_required` - public API key in header is missing or empty. +* `public_api_key_not_found` - No Fingerprint workspace found for specified public API key. +* `subscription_not_active` - Fingerprint workspace is not active. +* `wrong_region` - Server and workspace region differ. +* `feature_not_enabled` - This feature (for example, Delete API) is not enabled for your workspace. +* `request_not_found` - The specified event ID was not found. It never existed, expired, or it has been deleted. +* `visitor_not_found` - The specified visitor ID was not found. It never existed or it may have already been deleted. +* `too_many_requests` - The limit on secret API key requests per second has been exceeded. +* `state_not_ready` - The event specified with event ID is + not ready for updates yet. Try again. + This error happens in rare cases when update API is called immediately + after receiving the event ID on the client. In case you need to send + information right away, we recommend using the JS agent API instead. +* `failed` - Internal server error. +* `event_not_found` - The specified event ID was not found. It never existed, expired, or it has been deleted. +* `missing_module` - The request is invalid because it is missing a required module. +* `payload_too_large` - The request payload is too large and cannot be processed. +* `service_unavailable` - The service was unable to process the request. ## Enum -* `REQUEST_CANNOT_BE_PARSED` (value: `"RequestCannotBeParsed"`) +* `REQUEST_CANNOT_BE_PARSED` (value: `"request_cannot_be_parsed"`) -* `TOKEN_REQUIRED` (value: `"TokenRequired"`) +* `SECRET_API_KEY_REQUIRED` (value: `"secret_api_key_required"`) -* `TOKEN_NOT_FOUND` (value: `"TokenNotFound"`) +* `SECRET_API_KEY_NOT_FOUND` (value: `"secret_api_key_not_found"`) -* `SUBSCRIPTION_NOT_ACTIVE` (value: `"SubscriptionNotActive"`) +* `PUBLIC_API_KEY_REQUIRED` (value: `"public_api_key_required"`) -* `WRONG_REGION` (value: `"WrongRegion"`) +* `PUBLIC_API_KEY_NOT_FOUND` (value: `"public_api_key_not_found"`) -* `FEATURE_NOT_ENABLED` (value: `"FeatureNotEnabled"`) +* `SUBSCRIPTION_NOT_ACTIVE` (value: `"subscription_not_active"`) -* `REQUEST_NOT_FOUND` (value: `"RequestNotFound"`) +* `WRONG_REGION` (value: `"wrong_region"`) -* `VISITOR_NOT_FOUND` (value: `"VisitorNotFound"`) +* `FEATURE_NOT_ENABLED` (value: `"feature_not_enabled"`) -* `TOO_MANY_REQUESTS` (value: `"TooManyRequests"`) +* `REQUEST_NOT_FOUND` (value: `"request_not_found"`) -* `_429_TOO_MANY_REQUESTS` (value: `"429 Too Many Requests"`) +* `VISITOR_NOT_FOUND` (value: `"visitor_not_found"`) -* `STATE_NOT_READY` (value: `"StateNotReady"`) +* `TOO_MANY_REQUESTS` (value: `"too_many_requests"`) -* `FAILED` (value: `"Failed"`) +* `STATE_NOT_READY` (value: `"state_not_ready"`) + +* `FAILED` (value: `"failed"`) + +* `EVENT_NOT_FOUND` (value: `"event_not_found"`) + +* `MISSING_MODULE` (value: `"missing_module"`) + +* `PAYLOAD_TOO_LARGE` (value: `"payload_too_large"`) + +* `SERVICE_UNAVAILABLE` (value: `"service_unavailable"`) diff --git a/docs/ErrorPlainResponse.md b/docs/ErrorPlainResponse.md deleted file mode 100644 index 76ddeb83..00000000 --- a/docs/ErrorPlainResponse.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# ErrorPlainResponse - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**error** | **String** | | | - - - diff --git a/docs/Event.md b/docs/Event.md new file mode 100644 index 00000000..be240759 --- /dev/null +++ b/docs/Event.md @@ -0,0 +1,60 @@ + + +# Event + +Contains results from Fingerprint Identification and all active Smart Signals. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**eventId** | **String** | Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp For example: `1758130560902.8tRtrH` | | +|**timestamp** | **Long** | Timestamp of the event with millisecond precision in Unix time. | | +|**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | +|**environmentId** | **String** | Environment Id of the event. For example: `ae_47abaca3db2c7c43` | [optional] | +|**suspect** | **Boolean** | Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent). | [optional] | +|**sdk** | [**SDK**](SDK.md) | | [optional] | +|**replayed** | **Boolean** | `true` if we determined that this payload was replayed, `false` otherwise. | [optional] | +|**identification** | [**Identification**](Identification.md) | | [optional] | +|**supplementaryIdHighRecall** | [**SupplementaryIDHighRecall**](SupplementaryIDHighRecall.md) | | [optional] | +|**tags** | **Object** | A customer-provided value or an object that was sent with the identification request or updated later. | [optional] | +|**url** | **String** | Page URL from which the request was sent. For example `https://example.com/` | [optional] | +|**bundleId** | **String** | Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` | [optional] | +|**packageName** | **String** | Package name of the Android application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` | [optional] | +|**ipAddress** | **String** | IP address of the requesting browser or bot. | [optional] | +|**userAgent** | **String** | User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....` | [optional] | +|**clientReferrer** | **String** | Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark) For example: `https://example.com/blog/my-article` | [optional] | +|**browserDetails** | [**BrowserDetails**](BrowserDetails.md) | | [optional] | +|**proximity** | [**Proximity**](Proximity.md) | | [optional] | +|**bot** | **BotResult** | | [optional] | +|**botType** | **String** | Additional classification of the bot type if detected. | [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] | +|**developerTools** | **Boolean** | `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. | [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] | +|**factoryResetTimestamp** | **Long** | The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC) as a value of 0. See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. | [optional] | +|**frida** | **Boolean** | [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. | [optional] | +|**ipBlocklist** | [**IPBlockList**](IPBlockList.md) | | [optional] | +|**ipInfo** | [**IPInfo**](IPInfo.md) | | [optional] | +|**proxy** | **Boolean** | IP address was used by a public proxy provider or belonged to a known recent residential proxy | [optional] | +|**proxyConfidence** | **ProxyConfidence** | | [optional] | +|**proxyDetails** | [**ProxyDetails**](ProxyDetails.md) | | [optional] | +|**incognito** | **Boolean** | `true` if we detected incognito mode used in the browser, `false` otherwise. | [optional] | +|**jailbroken** | **Boolean** | iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. | [optional] | +|**locationSpoofing** | **Boolean** | Flag indicating whether the request came from a mobile device with location spoofing enabled. | [optional] | +|**mitmAttack** | **Boolean** | * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) to learn more about this Smart Signal. | [optional] | +|**privacySettings** | **Boolean** | `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. | [optional] | +|**rootApps** | **Boolean** | Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. | [optional] | +|**suspectScore** | **Integer** | Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score | [optional] | +|**tampering** | **Boolean** | Flag indicating browser tampering was detected. This happens when either: * There are inconsistencies in the browser configuration that cross internal tampering thresholds (see `tampering_details.anomaly_score`). * The browser signature resembles an \"anti-detect\" browser specifically designed to evade fingerprinting (see `tampering_details.anti_detect_browser`). | [optional] | +|**tamperingDetails** | [**TamperingDetails**](TamperingDetails.md) | | [optional] | +|**velocity** | [**Velocity**](Velocity.md) | | [optional] | +|**virtualMachine** | **Boolean** | `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. | [optional] | +|**vpn** | **Boolean** | VPN or other anonymizing service has been used when sending the request. | [optional] | +|**vpnConfidence** | **VpnConfidence** | | [optional] | +|**vpnOriginTimezone** | **String** | Local timezone which is used in timezone_mismatch method. | [optional] | +|**vpnOriginCountry** | **String** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). | [optional] | +|**vpnMethods** | [**VpnMethods**](VpnMethods.md) | | [optional] | +|**highActivityDevice** | **Boolean** | Flag indicating if the request came from a high-activity visitor. | [optional] | + + + diff --git a/docs/EventSearch.md b/docs/EventSearch.md new file mode 100644 index 00000000..40c4d581 --- /dev/null +++ b/docs/EventSearch.md @@ -0,0 +1,16 @@ + + +# EventSearch + +Contains a list of all identification events matching the specified search criteria. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**events** | [**List<Event>**](Event.md) | | | +|**paginationKey** | **String** | Use this value in the `pagination_key` parameter to request the next page of search results. | [optional] | +|**totalHits** | **Long** | This value represents the total number of events matching the search query, up to the limit provided in the `total_hits` query parameter. Only present if the `total_hits` query parameter was provided. | [optional] | + + + diff --git a/docs/EventUpdate.md b/docs/EventUpdate.md new file mode 100644 index 00000000..d88cb7e4 --- /dev/null +++ b/docs/EventUpdate.md @@ -0,0 +1,15 @@ + + +# EventUpdate + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**linkedId** | **String** | Linked Id value to assign to the existing event | [optional] | +|**tags** | **Object** | A customer-provided value or an object that was sent with the identification request or updated later. | [optional] | +|**suspect** | **Boolean** | Suspect flag indicating observed suspicious or fraudulent event | [optional] | + + + diff --git a/docs/EventsGetResponse.md b/docs/EventsGetResponse.md deleted file mode 100644 index 50fa1961..00000000 --- a/docs/EventsGetResponse.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# EventsGetResponse - -Contains results from all activated products - Fingerprint Pro, Bot Detection, and others. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**products** | [**Products**](Products.md) | | | - - - diff --git a/docs/EventsUpdateRequest.md b/docs/EventsUpdateRequest.md deleted file mode 100644 index 8eb30788..00000000 --- a/docs/EventsUpdateRequest.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# EventsUpdateRequest - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**linkedId** | **String** | LinkedID value to assign to the existing event | [optional] | -|**tag** | **Map<String, Object>** | A customer-provided value or an object that was sent with identification request. | [optional] | -|**suspect** | **Boolean** | Suspect flag indicating observed suspicious or fraudulent event | [optional] | - - - diff --git a/docs/FactoryReset.md b/docs/FactoryReset.md deleted file mode 100644 index d684683e..00000000 --- a/docs/FactoryReset.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# FactoryReset - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**time** | **OffsetDateTime** | Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. | | -|**timestamp** | **Long** | This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. | | - - - diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index e8904c7a..23110bc7 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -1,16 +1,13 @@ # FingerprintApi -All URIs are relative to *https://api.fpjs.io* +All URIs are relative to *https://api.fpjs.io/v4* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**deleteVisitorData**](FingerprintApi.md#deleteVisitorData) | **DELETE** /visitors/{visitor_id} | Delete data by visitor ID | -| [**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 | Dummy path to describe webhook format. | +| [**getEvent**](FingerprintApi.md#getEvent) | **GET** /events/{event_id} | Get an event by event ID | +| [**searchEvents**](FingerprintApi.md#searchEvents) | **GET** /events | Search events | +| [**updateEvent**](FingerprintApi.md#updateEvent) | **PATCH** /events/{event_id} | Update an event | @@ -21,6 +18,7 @@ All URIs are relative to *https://api.fpjs.io* Delete data by visitor ID Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. + ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) @@ -38,8 +36,7 @@ Request deleting all data associated with the specified visitor ID. This API is ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. -- If you request [`/events` API](https://dev.fingerprint.com/reference/getevent) with a `request_id` that was made outside of the 10 days, you will still receive a valid response. -- If you request [`/visitors` API](https://dev.fingerprint.com/reference/getvisits) for the deleted visitor ID, the response will include identification requests that were made outside of those 10 days. +- If you request [`/v4/events` API](https://dev.fingerprint.com/reference/getevent) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. @@ -51,12 +48,9 @@ Please [contact our support team](https://fingerprint.com/support/) to enable it 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.model.*; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; -import com.fingerprint.sdk.Configuration; import com.fingerprint.sdk.Region; public class FingerprintApiExample { @@ -72,8 +66,7 @@ public class FingerprintApiExample { Region.EUROPE Region.ASIA */ - ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); - FingerprintApi api = new FingerprintApi(client); + FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); String visitorId = "visitorId_example"; // String | The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) you want to delete. try { api.deleteVisitorData(visitorId); @@ -98,7 +91,7 @@ null (empty response body) ### Authorization -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -117,15 +110,13 @@ null (empty response body) ## getEvent -> EventsGetResponse getEvent(requestId) +> Event getEvent(eventId) -Get event by request ID +Get an event by event ID -Get a detailed analysis of an individual identification event, including Smart Signals. -Please note that the response includes mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. -It is highly recommended that you **ignore** the mobile signals for such requests. +Get a detailed analysis of an individual identification event, including Smart Signals. -Use `requestId` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `requestId`. +Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. ### Example @@ -134,12 +125,9 @@ Use `requestId` as the URL path parameter. This API method is scoped to a reques 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.model.*; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; -import com.fingerprint.sdk.Configuration; import com.fingerprint.sdk.Region; public class FingerprintApiExample { @@ -155,11 +143,10 @@ public class FingerprintApiExample { Region.EUROPE Region.ASIA */ - ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); - FingerprintApi api = new FingerprintApi(client); - String requestId = "requestId_example"; // String | The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request. + FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); + String eventId = "eventId_example"; // String | The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request (`requestId` can be used in its place). try { - EventsGetResponse result = api.getEvent(requestId); + Event result = api.getEvent(eventId); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.getEvent:" + e.getMessage()); @@ -174,15 +161,15 @@ public class FingerprintApiExample { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **requestId** | **String**| The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request. | | +| **eventId** | **String**| The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request (`requestId` can be used in its place). | | ### Return type -[**EventsGetResponse**](EventsGetResponse.md) +[**Event**](Event.md) ### Authorization -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -193,199 +180,39 @@ public class FingerprintApiExample { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | OK. | - | +| **400** | Bad request. The event Id provided is not valid. | - | | **403** | Forbidden. Access to this API is denied. | - | -| **404** | Not found. The request ID cannot be found in this application's data. | - | - - -## getRelatedVisitors - -> RelatedVisitorsResponse getRelatedVisitors(visitorId) - -Get Related Visitors - -Related visitors API lets you link web visits and in-app browser visits that originated from the same mobile device. -It searches the past 6 months of identification events to find the visitor IDs that belong to the same mobile device as the given visitor ID. - -⚠️ Please note that this API is not enabled by default and is billable separately. ⚠️ - -If you would like to use Related visitors API, please contact our [support team](https://fingerprint.com/support). -To learn more, see [Related visitors API reference](https://dev.fingerprint.com/reference/related-visitors-api). - - -### 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 Secret API Key - private static final String FPJS_API_SECRET = "Fingerprint Secret API Key"; - public static void main(String... args) { - // Create a new api client instance from Configuration with your Fingerprint Server API Key and your Fingerprint 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); - String visitorId = "visitorId_example"; // String | The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) for which you want to find the other visitor IDs that originated from the same mobile device. - try { - RelatedVisitorsResponse result = api.getRelatedVisitors(visitorId); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getRelatedVisitors:" + e.getMessage()); - } - } -} -``` - - -### Parameters - - -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **visitorId** | **String**| The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) for which you want to find the other visitor IDs that originated from the same mobile device. | | - -### Return type - -[**RelatedVisitorsResponse**](RelatedVisitorsResponse.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** | OK. | - | -| **400** | Bad request. The visitor ID parameter is missing or in the wrong format. | - | -| **403** | Forbidden. Access to this API is denied. | - | -| **404** | Not found. The visitor ID cannot be found in this application's data. | - | -| **429** | Too Many Requests. The request is throttled. | - | - - -## getVisits - -> VisitorsGetResponse getVisits(visitorId, requestId, linkedId, limit, paginationKey, before) - -Get visits by visitor ID - -Get a history of visits (identification events) for a specific `visitorId`. Use the `visitorId` as a URL path parameter. -Only information from the _Identification_ product is returned. - -#### Headers - -* `Retry-After` — Present in case of `429 Too many requests`. Indicates how long you should wait before making a follow-up request. The value is non-negative decimal integer indicating the seconds to delay after the response is received. - - -### 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 Secret API Key - private static final String FPJS_API_SECRET = "Fingerprint Secret API Key"; - public static void main(String... args) { - // Create a new api client instance from Configuration with your Fingerprint Server API Key and your Fingerprint 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); - String visitorId = "visitorId_example"; // String | Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. - String requestId = "requestId_example"; // String | Filter visits by `requestId`. Every identification request has a unique identifier associated with it called `requestId`. This identifier is returned to the client in the identification [result](https://dev.fingerprint.com/reference/get-function#requestid). When you filter visits by `requestId`, only one visit will be returned. - String linkedId = "linkedId_example"; // String | Filter visits by your custom identifier. You can use [`linkedId`](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. - Integer limit = 56; // Integer | Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. - String paginationKey = "paginationKey_example"; // String | Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. - Long before = 56L; // Long | ⚠️ Deprecated pagination method, please use `paginationKey` instead. Timestamp (in milliseconds since epoch) used to paginate results. - try { - VisitorsGetResponse result = api.getVisits(visitorId, requestId, linkedId, limit, paginationKey, before); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - } -} -``` - - -### Parameters +| **404** | Not found. The event Id cannot be found in this workspace's data. | - | +| **500** | Workspace error. | - | -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **visitorId** | **String**| Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. | | -| **requestId** | **String**| Filter visits by `requestId`. Every identification request has a unique identifier associated with it called `requestId`. This identifier is returned to the client in the identification [result](https://dev.fingerprint.com/reference/get-function#requestid). When you filter visits by `requestId`, only one visit will be returned. | [optional] | -| **linkedId** | **String**| Filter visits by your custom identifier. You can use [`linkedId`](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] | -| **limit** | **Integer**| Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. | [optional] | -| **paginationKey** | **String**| Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. | [optional] | -| **before** | **Long**| ⚠️ Deprecated pagination method, please use `paginationKey` instead. Timestamp (in milliseconds since epoch) used to paginate results. | [optional] | - -### Return type +## searchEvents -[**VisitorsGetResponse**](VisitorsGetResponse.md) +> EventSearch searchEvents(searchEventsOptionalParams) -### Authorization +Search events -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) +## Search -### HTTP request headers +The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: -- **Content-Type**: Not defined -- **Accept**: application/json +- Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. +- Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. +- Excluding all bot traffic from the query (`good` and `bad` bots) -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -| **200** | OK. | - | -| **400** | Bad request. The visitor ID or query parameters are missing or in the wrong format. | - | -| **403** | Forbidden. Access to this API is denied. | - | -| **429** | Too Many Requests. The request is throttled. | * Retry-After - Indicates how many seconds you should wait before attempting the next request.
| +If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. +### Filtering events with the `suspect` flag -## searchEvents +The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. -> SearchEventsResponse searchEvents(limit, searchEventsOptionalParams) +You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. -Get events via search +### Environment scoping -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. +If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. -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. +Smart Signals not activated for your workspace or are not included in the response. ### Example @@ -394,12 +221,9 @@ Please note that events include mobile signals (e.g. `rootApps`) even if the req 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.model.*; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; -import com.fingerprint.sdk.Configuration; import com.fingerprint.sdk.Region; public class FingerprintApiExample { @@ -415,50 +239,54 @@ public class FingerprintApiExample { Region.EUROPE Region.ASIA */ - ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); - FingerprintApi api = new FingerprintApi(client); + FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); Integer limit = 10; // Integer | Limit the number of events returned. - String paginationKey = "paginationKey_example"; // String | Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 200 results for your search using `limit`, but there are more than 200 events total matching your request), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events/search?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/events/search?limit=200&pagination_key=1740815825085` - 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: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `products.botd.data.bot.result` property set to a valid value are returned. Events without a `products.botd` Smart Signal result are left out of the response. - 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. + String paginationKey = "paginationKey_example"; // String | Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` + String visitorId = "visitorId_example"; // String | Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. + String bot = "all"; // String | Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `botd.bot` property set to a valid value are returned. Events without a `botd` Smart Signal result are left out of the response. + String ipAddress = "ipAddress_example"; // String | Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 + String asn = "asn_example"; // String | + 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. + String url = "url_example"; // String | Filter events by the URL (`url` property) associated with the event. + String origin = "origin_example"; // String | Filter events by the origin field of the event. Origin could be the website domain or mobile app bundle ID (eg: com.foo.bar) 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). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. - Boolean vpn = true; // Boolean | Filter events by VPN Detection result. > Note: When using this parameter, only events with the `products.vpn.data.result` property set to `true` or `false` are returned. Events without a `products.vpn` Smart Signal result are left out of the response. - Boolean virtualMachine = true; // Boolean | Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `products.virtualMachine.data.result` property set to `true` or `false` are returned. Events without a `products.virtualMachine` Smart Signal result are left out of the response. - Boolean tampering = true; // Boolean | Filter events by Tampering Detection result. > Note: When using this parameter, only events with the `products.tampering.data.result` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. - Boolean antiDetectBrowser = true; // Boolean | Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `products.tampering.data.antiDetectBrowser` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. - Boolean incognito = true; // Boolean | Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `products.incognito.data.result` property set to `true` or `false` are returned. Events without a `products.incognito` Smart Signal result are left out of the response. - Boolean privacySettings = true; // Boolean | Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `products.privacySettings.data.result` property set to `true` or `false` are returned. Events without a `products.privacySettings` Smart Signal result are left out of the response. - Boolean jailbroken = true; // Boolean | Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `products.jailbroken.data.result` property set to `true` or `false` are returned. Events without a `products.jailbroken` Smart Signal result are left out of the response. - Boolean frida = true; // Boolean | Filter events by Frida Detection result. > Note: When using this parameter, only events with the `products.frida.data.result` property set to `true` or `false` are returned. Events without a `products.frida` Smart Signal result are left out of the response. - Boolean factoryReset = true; // Boolean | Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with the `products.factoryReset.data.result` property set to `true` or `false` are returned. Events without a `products.factoryReset` Smart Signal result are left out of the response. - Boolean clonedApp = true; // Boolean | Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `products.clonedApp.data.result` property set to `true` or `false` are returned. Events without a `products.clonedApp` Smart Signal result are left out of the response. - Boolean emulator = true; // Boolean | Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `products.emulator.data.result` property set to `true` or `false` are returned. Events without a `products.emulator` Smart Signal result are left out of the response. - Boolean rootApps = true; // Boolean | Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `products.rootApps.data.result` property set to `true` or `false` are returned. Events without a `products.rootApps` Smart Signal result are left out of the response. - String vpnConfidence = "high"; // String | Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `products.vpn.data.confidence` property set to a valid value are returned. Events without a `products.vpn` Smart Signal result are left out of the response. - Float minSuspectScore = 3.4F; // Float | Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `products.suspectScore.data.result` property set to a value exceeding your threshold are returned. Events without a `products.suspectScore` Smart Signal result are left out of the response. - Boolean ipBlocklist = true; // Boolean | Filter events by IP Blocklist Detection result. > Note: When using this parameter, only events with the `products.ipBlocklist.data.result` property set to `true` or `false` are returned. Events without a `products.ipBlocklist` Smart Signal result are left out of the response. - Boolean datacenter = true; // Boolean | Filter events by Datacenter Detection result. > Note: When using this parameter, only events with the `products.ipInfo.data.v4.datacenter.result` or `products.ipInfo.data.v6.datacenter.result` property set to `true` or `false` are returned. Events without a `products.ipInfo` Smart Signal result are left out of the response. - Boolean developerTools = true; // Boolean | Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `products.developerTools.data.result` property set to `true` or `false` are returned. Events without a `products.developerTools` Smart Signal result are left out of the response. - Boolean locationSpoofing = true; // Boolean | Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `products.locationSpoofing.data.result` property set to `true` or `false` are returned. Events without a `products.locationSpoofing` Smart Signal result are left out of the response. - Boolean mitmAttack = true; // Boolean | Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `products.mitmAttack.data.result` property set to `true` or `false` are returned. Events without a `products.mitmAttack` Smart Signal result are left out of the response. - Boolean proxy = true; // Boolean | Filter events by Proxy detection result. > Note: When using this parameter, only events with the `products.proxy.data.result` property set to `true` or `false` are returned. Events without a `products.proxy` Smart Signal result are left out of the response. - String sdkVersion = "sdkVersion_example"; // String | Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` - String sdkPlatform = "js"; // String | Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. - List environment = Arrays.asList(); // List | Filter for events by providing one or more environment IDs. - String proximityId = "proximityId_example"; // String | Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `products.proximity.id` property matching the provided ID are returned. Events without a `products.proximity` result are left out of the response. - Integer proximityPrecisionRadius = 10; // Integer | Filter events by Proximity Radius. > Note: When using this parameter, only events with the `products.proximity.precisionRadius` property set to a valid value are returned. Events without a `products.proximity` result are left out of the response. + Boolean suspect = true; // Boolean | Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. + Boolean vpn = true; // Boolean | Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. + Boolean virtualMachine = true; // Boolean | Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. + Boolean tampering = true; // Boolean | Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. + Boolean antiDetectBrowser = true; // Boolean | Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. + Boolean incognito = true; // Boolean | Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. + Boolean privacySettings = true; // Boolean | Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. + Boolean jailbroken = true; // Boolean | Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. + Boolean frida = true; // Boolean | Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. + Boolean factoryReset = true; // Boolean | Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. + Boolean clonedApp = true; // Boolean | Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. + Boolean emulator = true; // Boolean | Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. + Boolean rootApps = true; // Boolean | Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. + String vpnConfidence = "high,"; // String | Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. + Float minSuspectScore = 3.4F; // Float | Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. + Boolean developerTools = true; // Boolean | Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. + Boolean locationSpoofing = true; // Boolean | Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. + Boolean mitmAttack = true; // Boolean | Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. + Boolean proxy = true; // Boolean | Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. + String sdkVersion = "sdkVersion_example"; // String | Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` + String sdkPlatform = "js"; // String | Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. + List environment = Arrays.asList(); // List | Filter for events by providing one or more environment IDs (`environment_id` property). + String proximityId = "proximityId_example"; // String | Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. + Long totalHits = 56L; // Long | When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. try { - SearchEventsResponse result = api.searchEvents(limit, new FingerprintApi.SearchEventsOptionalParams() + EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() + .setLimit(limit) .setPaginationKey(paginationKey) .setVisitorId(visitorId) .setBot(bot) .setIpAddress(ipAddress) + .setAsn(asn) .setLinkedId(linkedId) + .setUrl(url) + .setOrigin(origin) .setStart(start) .setEnd(end) .setReverse(reverse) @@ -477,8 +305,6 @@ public class FingerprintApiExample { .setRootApps(rootApps) .setVpnConfidence(vpnConfidence) .setMinSuspectScore(minSuspectScore) - .setIpBlocklist(ipBlocklist) - .setDatacenter(datacenter) .setDeveloperTools(developerTools) .setLocationSpoofing(locationSpoofing) .setMitmAttack(mitmAttack) @@ -487,7 +313,7 @@ public class FingerprintApiExample { .setSdkPlatform(sdkPlatform) .setEnvironment(environment) .setProximityId(proximityId) - .setProximityPrecisionRadius(proximityPrecisionRadius)); + .setTotalHits(totalHits)); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage()); @@ -502,7 +328,6 @@ public class FingerprintApiExample { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **limit** | **Integer**| Limit the number of events returned. | | | **searchEventsOptionalParams** | [**FingerprintApi.SearchEventsOptionalParams**](#fingerprintapisearcheventsoptionalparams) | | [optional] | #### FingerprintApi.SearchEventsOptionalParams @@ -511,48 +336,50 @@ Object containing optional parameters for API method. Supports a fluent interfac | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **paginationKey** | **String**| Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 200 results for your search using `limit`, but there are more than 200 events total matching your request), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events/search?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/events/search?limit=200&pagination_key=1740815825085` | [optional] | -| **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: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `products.botd.data.bot.result` property set to a valid value are returned. Events without a `products.botd` Smart Signal result are left out of the response. | [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] | +| **limit** | **Integer**| Limit the number of events returned. | [optional] [default to 10] | +| **paginationKey** | **String**| Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` | [optional] | +| **visitorId** | **String**| Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. | [optional] | +| **bot** | **String**| Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `botd.bot` property set to a valid value are returned. Events without a `botd` Smart Signal result are left out of the response. | [optional] [enum: all, good, bad, none] | +| **ipAddress** | **String**| Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 | [optional] | +| **asn** | **String**| | [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] | +| **url** | **String**| Filter events by the URL (`url` property) associated with the event. | [optional] | +| **origin** | **String**| Filter events by the origin field of the event. Origin could be the website domain or mobile app bundle ID (eg: com.foo.bar) | [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). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. | [optional] | -| **vpn** | **Boolean**| Filter events by VPN Detection result. > Note: When using this parameter, only events with the `products.vpn.data.result` property set to `true` or `false` are returned. Events without a `products.vpn` Smart Signal result are left out of the response. | [optional] | -| **virtualMachine** | **Boolean**| Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `products.virtualMachine.data.result` property set to `true` or `false` are returned. Events without a `products.virtualMachine` Smart Signal result are left out of the response. | [optional] | -| **tampering** | **Boolean**| Filter events by Tampering Detection result. > Note: When using this parameter, only events with the `products.tampering.data.result` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. | [optional] | -| **antiDetectBrowser** | **Boolean**| Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `products.tampering.data.antiDetectBrowser` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. | [optional] | -| **incognito** | **Boolean**| Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `products.incognito.data.result` property set to `true` or `false` are returned. Events without a `products.incognito` Smart Signal result are left out of the response. | [optional] | -| **privacySettings** | **Boolean**| Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `products.privacySettings.data.result` property set to `true` or `false` are returned. Events without a `products.privacySettings` Smart Signal result are left out of the response. | [optional] | -| **jailbroken** | **Boolean**| Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `products.jailbroken.data.result` property set to `true` or `false` are returned. Events without a `products.jailbroken` Smart Signal result are left out of the response. | [optional] | -| **frida** | **Boolean**| Filter events by Frida Detection result. > Note: When using this parameter, only events with the `products.frida.data.result` property set to `true` or `false` are returned. Events without a `products.frida` Smart Signal result are left out of the response. | [optional] | -| **factoryReset** | **Boolean**| Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with the `products.factoryReset.data.result` property set to `true` or `false` are returned. Events without a `products.factoryReset` Smart Signal result are left out of the response. | [optional] | -| **clonedApp** | **Boolean**| Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `products.clonedApp.data.result` property set to `true` or `false` are returned. Events without a `products.clonedApp` Smart Signal result are left out of the response. | [optional] | -| **emulator** | **Boolean**| Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `products.emulator.data.result` property set to `true` or `false` are returned. Events without a `products.emulator` Smart Signal result are left out of the response. | [optional] | -| **rootApps** | **Boolean**| Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `products.rootApps.data.result` property set to `true` or `false` are returned. Events without a `products.rootApps` Smart Signal result are left out of the response. | [optional] | -| **vpnConfidence** | **String**| Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `products.vpn.data.confidence` property set to a valid value are returned. Events without a `products.vpn` Smart Signal result are left out of the response. | [optional] [enum: high, medium, low] | -| **minSuspectScore** | **Float**| Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `products.suspectScore.data.result` property set to a value exceeding your threshold are returned. Events without a `products.suspectScore` Smart Signal result are left out of the response. | [optional] | -| **ipBlocklist** | **Boolean**| Filter events by IP Blocklist Detection result. > Note: When using this parameter, only events with the `products.ipBlocklist.data.result` property set to `true` or `false` are returned. Events without a `products.ipBlocklist` Smart Signal result are left out of the response. | [optional] | -| **datacenter** | **Boolean**| Filter events by Datacenter Detection result. > Note: When using this parameter, only events with the `products.ipInfo.data.v4.datacenter.result` or `products.ipInfo.data.v6.datacenter.result` property set to `true` or `false` are returned. Events without a `products.ipInfo` Smart Signal result are left out of the response. | [optional] | -| **developerTools** | **Boolean**| Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `products.developerTools.data.result` property set to `true` or `false` are returned. Events without a `products.developerTools` Smart Signal result are left out of the response. | [optional] | -| **locationSpoofing** | **Boolean**| Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `products.locationSpoofing.data.result` property set to `true` or `false` are returned. Events without a `products.locationSpoofing` Smart Signal result are left out of the response. | [optional] | -| **mitmAttack** | **Boolean**| Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `products.mitmAttack.data.result` property set to `true` or `false` are returned. Events without a `products.mitmAttack` Smart Signal result are left out of the response. | [optional] | -| **proxy** | **Boolean**| Filter events by Proxy detection result. > Note: When using this parameter, only events with the `products.proxy.data.result` property set to `true` or `false` are returned. Events without a `products.proxy` Smart Signal result are left out of the response. | [optional] | -| **sdkVersion** | **String**| Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` | [optional] | -| **sdkPlatform** | **String**| Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. | [optional] [enum: js, android, ios] | -| **environment** | **List<String>**| Filter for events by providing one or more environment IDs. | [optional] | -| **proximityId** | **String**| Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `products.proximity.id` property matching the provided ID are returned. Events without a `products.proximity` result are left out of the response. | [optional] | -| **proximityPrecisionRadius** | **Integer**| Filter events by Proximity Radius. > Note: When using this parameter, only events with the `products.proximity.precisionRadius` property set to a valid value are returned. Events without a `products.proximity` result are left out of the response. | [optional] [enum: 10, 25, 65, 175, 450, 1200, 3300, 8500, 22500] | +| **suspect** | **Boolean**| Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. | [optional] | +| **vpn** | **Boolean**| Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. | [optional] | +| **virtualMachine** | **Boolean**| Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. | [optional] | +| **tampering** | **Boolean**| Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. | [optional] | +| **antiDetectBrowser** | **Boolean**| Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. | [optional] | +| **incognito** | **Boolean**| Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. | [optional] | +| **privacySettings** | **Boolean**| Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. | [optional] | +| **jailbroken** | **Boolean**| Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. | [optional] | +| **frida** | **Boolean**| Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. | [optional] | +| **factoryReset** | **Boolean**| Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. | [optional] | +| **clonedApp** | **Boolean**| Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. | [optional] | +| **emulator** | **Boolean**| Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. | [optional] | +| **rootApps** | **Boolean**| Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. | [optional] | +| **vpnConfidence** | **String**| Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. | [optional] [enum: high,, medium, low] | +| **minSuspectScore** | **Float**| Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. | [optional] | +| **developerTools** | **Boolean**| Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. | [optional] | +| **locationSpoofing** | **Boolean**| Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. | [optional] | +| **mitmAttack** | **Boolean**| Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. | [optional] | +| **proxy** | **Boolean**| Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. | [optional] | +| **sdkVersion** | **String**| Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` | [optional] | +| **sdkPlatform** | **String**| Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. | [optional] [enum: js, android, ios] | +| **environment** | **List<String>**| Filter for events by providing one or more environment IDs (`environment_id` property). | [optional] | +| **proximityId** | **String**| Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. | [optional] | +| **totalHits** | **Long**| When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. | [optional] | ### Return type -[**SearchEventsResponse**](SearchEventsResponse.md) +[**EventSearch**](EventSearch.md) ### Authorization -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -565,19 +392,24 @@ Object containing optional parameters for API method. Supports a fluent interfac | **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. | - | +| **500** | Workspace error. | - | ## updateEvent -> updateEvent(requestId, eventsUpdateRequest) +> updateEvent(eventId, eventUpdate) + +Update an event -Update an event with a given request ID +Change information in existing events specified by `event_id` or *flag suspicious events*. -Change information in existing events specified by `requestId` 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. -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 one month. -**Warning** It's not possible to update events older than 10 days. +**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. ### Example @@ -586,12 +418,9 @@ When an event is created, it is assigned `linkedId` and `tag` submitted through 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.model.*; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; -import com.fingerprint.sdk.Configuration; import com.fingerprint.sdk.Region; public class FingerprintApiExample { @@ -607,12 +436,11 @@ public class FingerprintApiExample { Region.EUROPE Region.ASIA */ - ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); - FingerprintApi api = new FingerprintApi(client); - String requestId = "requestId_example"; // String | The unique event [identifier](https://dev.fingerprint.com/reference/get-function#requestid). - EventsUpdateRequest eventsUpdateRequest = new EventsUpdateRequest(); // EventsUpdateRequest | + FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); + String eventId = "eventId_example"; // String | The unique event [identifier](https://dev.fingerprint.com/reference/get-function#event_id). + EventUpdate eventUpdate = new EventUpdate(); // EventUpdate | try { - api.updateEvent(requestId, eventsUpdateRequest); + api.updateEvent(eventId, eventUpdate); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.updateEvent:" + e.getMessage()); } @@ -626,8 +454,8 @@ public class FingerprintApiExample { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **requestId** | **String**| The unique event [identifier](https://dev.fingerprint.com/reference/get-function#requestid). | | -| **eventsUpdateRequest** | [**EventsUpdateRequest**](EventsUpdateRequest.md)| | | +| **eventId** | **String**| The unique event [identifier](https://dev.fingerprint.com/reference/get-function#event_id). | | +| **eventUpdate** | [**EventUpdate**](EventUpdate.md)| | | ### Return type @@ -635,7 +463,7 @@ null (empty response body) ### Authorization -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -648,80 +476,6 @@ null (empty response body) | **200** | OK. | - | | **400** | Bad request. The request payload is not valid. | - | | **403** | Forbidden. Access to this API is denied. | - | -| **404** | Not found. The request ID cannot be found in this application's data. | - | +| **404** | Not found. The event Id cannot be found in this workspace's data. | - | | **409** | Conflict. The event is not mutable yet. | - | - -## webhookTrace - -> webhookTrace(webhook) - -Dummy path to describe webhook format. - -Fake path to describe webhook format. More information about webhooks can be found in the [documentation](https://dev.fingerprint.com/docs/webhooks) - -### 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 Secret API Key - private static final String FPJS_API_SECRET = "Fingerprint Secret API Key"; - public static void main(String... args) { - // Create a new api client instance from Configuration with your Fingerprint Server API Key and your Fingerprint 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); - Webhook webhook = new Webhook(); // Webhook | - try { - api.webhookTrace(webhook); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.webhookTrace:" + e.getMessage()); - } - } -} -``` - - -### Parameters - - -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **webhook** | [**Webhook**](Webhook.md)| | [optional] | - -### Return type - -null (empty response body) - -### Authorization - -[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) - -### HTTP request headers - -- **Content-Type**: application/json -- **Accept**: Not defined - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -| **0** | Dummy for the schema | - | - diff --git a/docs/Frida.md b/docs/Frida.md deleted file mode 100644 index b40662af..00000000 --- a/docs/Frida.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# Frida - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. | | - - - diff --git a/docs/Geolocation.md b/docs/Geolocation.md index 0d2fde5d..a7eb49b1 100644 --- a/docs/Geolocation.md +++ b/docs/Geolocation.md @@ -12,10 +12,12 @@ |**longitude** | **Double** | | [optional] | |**postalCode** | **String** | | [optional] | |**timezone** | **String** | | [optional] | -|**city** | [**GeolocationCity**](GeolocationCity.md) | | [optional] | -|**country** | [**GeolocationCountry**](GeolocationCountry.md) | | [optional] | -|**continent** | [**GeolocationContinent**](GeolocationContinent.md) | | [optional] | -|**subdivisions** | [**List<GeolocationSubdivision>**](GeolocationSubdivision.md) | | [optional] | +|**cityName** | **String** | | [optional] | +|**countryCode** | **String** | | [optional] | +|**countryName** | **String** | | [optional] | +|**continentCode** | **String** | | [optional] | +|**continentName** | **String** | | [optional] | +|**subdivisions** | [**List<GeolocationSubdivisionsInner>**](GeolocationSubdivisionsInner.md) | | [optional] | diff --git a/docs/GeolocationCity.md b/docs/GeolocationCity.md deleted file mode 100644 index 6998820f..00000000 --- a/docs/GeolocationCity.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# GeolocationCity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**name** | **String** | | | - - - diff --git a/docs/GeolocationCountry.md b/docs/GeolocationCountry.md deleted file mode 100644 index 480af7e9..00000000 --- a/docs/GeolocationCountry.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# GeolocationCountry - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**code** | **String** | | | -|**name** | **String** | | | - - - diff --git a/docs/GeolocationSubdivision.md b/docs/GeolocationSubdivisionsInner.md similarity index 85% rename from docs/GeolocationSubdivision.md rename to docs/GeolocationSubdivisionsInner.md index 82f695bb..265a4c81 100644 --- a/docs/GeolocationSubdivision.md +++ b/docs/GeolocationSubdivisionsInner.md @@ -1,6 +1,6 @@ -# GeolocationSubdivision +# GeolocationSubdivisionsInner ## Properties diff --git a/docs/HighActivity.md b/docs/HighActivity.md deleted file mode 100644 index c7be21e1..00000000 --- a/docs/HighActivity.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# HighActivity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Flag indicating if the request came from a high-activity visitor. | | -|**dailyRequests** | **Long** | Number of requests from the same visitor in the previous day. | [optional] | - - - diff --git a/docs/IPBlocklistDetails.md b/docs/IPBlockList.md similarity index 56% rename from docs/IPBlocklistDetails.md rename to docs/IPBlockList.md index a4a3d137..503ef044 100644 --- a/docs/IPBlocklistDetails.md +++ b/docs/IPBlockList.md @@ -1,14 +1,15 @@ -# IPBlocklistDetails +# IPBlockList ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**emailSpam** | **Boolean** | IP address was part of a known email spam attack (SMTP). | | -|**attackSource** | **Boolean** | IP address was part of a known network attack (SSH/HTTPS). | | +|**emailSpam** | **Boolean** | IP address was part of a known email spam attack (SMTP). | [optional] | +|**attackSource** | **Boolean** | IP address was part of a known network attack (SSH/HTTPS). | [optional] | +|**torNode** | **Boolean** | IP address was part of known TOR network activity. | [optional] | diff --git a/docs/IPBlocklist.md b/docs/IPBlocklist.md deleted file mode 100644 index 450a001a..00000000 --- a/docs/IPBlocklist.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# IPBlocklist - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. | | -|**details** | [**IPBlocklistDetails**](IPBlocklistDetails.md) | | | - - - diff --git a/docs/IPInfoASN.md b/docs/IPInfoASN.md deleted file mode 100644 index a8200b5b..00000000 --- a/docs/IPInfoASN.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# IPInfoASN - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**asn** | **String** | | | -|**name** | **String** | | | -|**network** | **String** | | | - - - diff --git a/docs/IPInfoDataCenter.md b/docs/IPInfoDataCenter.md deleted file mode 100644 index 53df7442..00000000 --- a/docs/IPInfoDataCenter.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# IPInfoDataCenter - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | | | -|**name** | **String** | | | - - - diff --git a/docs/IPInfoV4.md b/docs/IPInfoV4.md index d1a46304..418148c8 100644 --- a/docs/IPInfoV4.md +++ b/docs/IPInfoV4.md @@ -8,9 +8,13 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**address** | **String** | | | -|**geolocation** | [**Geolocation**](Geolocation.md) | | | -|**asn** | [**IPInfoASN**](IPInfoASN.md) | | [optional] | -|**datacenter** | [**IPInfoDataCenter**](IPInfoDataCenter.md) | | [optional] | +|**geolocation** | [**Geolocation**](Geolocation.md) | | [optional] | +|**asn** | **String** | | [optional] | +|**asnName** | **String** | | [optional] | +|**asnNetwork** | **String** | | [optional] | +|**asnType** | **String** | | [optional] | +|**datacenterResult** | **Boolean** | | [optional] | +|**datacenterName** | **String** | | [optional] | diff --git a/docs/IPInfoV6.md b/docs/IPInfoV6.md index b585069c..dfd01e64 100644 --- a/docs/IPInfoV6.md +++ b/docs/IPInfoV6.md @@ -8,9 +8,13 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**address** | **String** | | | -|**geolocation** | [**Geolocation**](Geolocation.md) | | | -|**asn** | [**IPInfoASN**](IPInfoASN.md) | | [optional] | -|**datacenter** | [**IPInfoDataCenter**](IPInfoDataCenter.md) | | [optional] | +|**geolocation** | [**Geolocation**](Geolocation.md) | | [optional] | +|**asn** | **String** | | [optional] | +|**asnName** | **String** | | [optional] | +|**asnNetwork** | **String** | | [optional] | +|**asnType** | **String** | | [optional] | +|**datacenterResult** | **Boolean** | | [optional] | +|**datacenterName** | **String** | | [optional] | diff --git a/docs/Identification.md b/docs/Identification.md index 7aeb953f..0bed6d9e 100644 --- a/docs/Identification.md +++ b/docs/Identification.md @@ -7,26 +7,11 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**visitorId** | **String** | String of 20 characters that uniquely identifies the visitor's browser or mobile device. | | -|**requestId** | **String** | Unique identifier of the user's request. | | -|**browserDetails** | [**BrowserDetails**](BrowserDetails.md) | | | -|**incognito** | **Boolean** | Flag if user used incognito session. | | -|**ip** | **String** | IP address of the requesting browser or bot. | | -|**ipLocation** | [**DeprecatedGeolocation**](DeprecatedGeolocation.md) | | [optional] | -|**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | -|**suspect** | **Boolean** | Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent). | [optional] | -|**timestamp** | **Long** | Timestamp of the event with millisecond precision in Unix time. | | -|**time** | **OffsetDateTime** | Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. | | -|**url** | **String** | Page URL from which the request was sent. | | -|**tag** | **Map<String, Object>** | A customer-provided value or an object that was sent with identification request. | | +|**visitorId** | **String** | String of 20 characters that uniquely identifies the visitor's browser or mobile device. | | |**confidence** | [**IdentificationConfidence**](IdentificationConfidence.md) | | [optional] | |**visitorFound** | **Boolean** | Attribute represents if a visitor had been identified before. | | -|**firstSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | | -|**lastSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | | -|**components** | [**Map<String, RawDeviceAttribute>**](RawDeviceAttribute.md) | It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. | [optional] | -|**replayed** | **Boolean** | `true` if we determined that this payload was replayed, `false` otherwise. | | -|**sdk** | [**SDK**](SDK.md) | | [optional] | -|**environmentId** | **String** | Environment ID associated with the event | [optional] | +|**firstSeenAt** | **Long** | Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was first seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 | [optional] | +|**lastSeenAt** | **Long** | Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was last seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 | [optional] | diff --git a/docs/IdentificationConfidence.md b/docs/IdentificationConfidence.md index 33db85c1..dcef9960 100644 --- a/docs/IdentificationConfidence.md +++ b/docs/IdentificationConfidence.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**score** | **Double** | The confidence score is a floating-point number between 0 and 1 that represents the probability of accurate identification. | | -|**revision** | **String** | The revision name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method. | [optional] | +|**version** | **String** | The version name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method. | [optional] | |**comment** | **String** | | [optional] | diff --git a/docs/IdentificationSeenAt.md b/docs/IdentificationSeenAt.md deleted file mode 100644 index c7956617..00000000 --- a/docs/IdentificationSeenAt.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# IdentificationSeenAt - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**global** | **OffsetDateTime** | | | -|**subscription** | **OffsetDateTime** | | | - - - diff --git a/docs/Incognito.md b/docs/Incognito.md deleted file mode 100644 index 6485d880..00000000 --- a/docs/Incognito.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# Incognito - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if we detected incognito mode used in the browser, `false` otherwise. | | - - - diff --git a/docs/Integration.md b/docs/Integration.md new file mode 100644 index 00000000..f298f9b3 --- /dev/null +++ b/docs/Integration.md @@ -0,0 +1,15 @@ + + +# Integration + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | The name of the specific integration, e.g. \"fingerprint-pro-react\". | [optional] | +|**version** | **String** | The version of the specific integration, e.g. \"3.11.10\". | [optional] | +|**subintegration** | [**IntegrationSubintegration**](IntegrationSubintegration.md) | | [optional] | + + + diff --git a/docs/IntegrationSubintegration.md b/docs/IntegrationSubintegration.md new file mode 100644 index 00000000..773c0e23 --- /dev/null +++ b/docs/IntegrationSubintegration.md @@ -0,0 +1,14 @@ + + +# IntegrationSubintegration + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | The name of the specific subintegration, e.g. \"preact\". | [optional] | +|**version** | **String** | The version of the specific subintegration, e.g. \"10.21.0\". | [optional] | + + + diff --git a/docs/Jailbroken.md b/docs/Jailbroken.md deleted file mode 100644 index a246db60..00000000 --- a/docs/Jailbroken.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# Jailbroken - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. | | - - - diff --git a/docs/LocationSpoofing.md b/docs/LocationSpoofing.md deleted file mode 100644 index 99c1cbcd..00000000 --- a/docs/LocationSpoofing.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# LocationSpoofing - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Flag indicating whether the request came from a mobile device with location spoofing enabled. | | - - - diff --git a/docs/MitMAttack.md b/docs/MitMAttack.md deleted file mode 100644 index 9e30624e..00000000 --- a/docs/MitMAttack.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# MitMAttack - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) to learn more about this Smart Signal. | | - - - diff --git a/docs/PrivacySettings.md b/docs/PrivacySettings.md deleted file mode 100644 index 67e0b377..00000000 --- a/docs/PrivacySettings.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# PrivacySettings - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. | | - - - diff --git a/docs/ProductBotd.md b/docs/ProductBotd.md deleted file mode 100644 index 2a3ff6c3..00000000 --- a/docs/ProductBotd.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductBotd - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Botd**](Botd.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductClonedApp.md b/docs/ProductClonedApp.md deleted file mode 100644 index 7170618c..00000000 --- a/docs/ProductClonedApp.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductClonedApp - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**ClonedApp**](ClonedApp.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductDeveloperTools.md b/docs/ProductDeveloperTools.md deleted file mode 100644 index 1693f2e7..00000000 --- a/docs/ProductDeveloperTools.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductDeveloperTools - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**DeveloperTools**](DeveloperTools.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductEmulator.md b/docs/ProductEmulator.md deleted file mode 100644 index fe3f2b78..00000000 --- a/docs/ProductEmulator.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductEmulator - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Emulator**](Emulator.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductFactoryReset.md b/docs/ProductFactoryReset.md deleted file mode 100644 index 2fb75fc0..00000000 --- a/docs/ProductFactoryReset.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductFactoryReset - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**FactoryReset**](FactoryReset.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductFrida.md b/docs/ProductFrida.md deleted file mode 100644 index 8ad060cd..00000000 --- a/docs/ProductFrida.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductFrida - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Frida**](Frida.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductHighActivity.md b/docs/ProductHighActivity.md deleted file mode 100644 index 9bf6e6d1..00000000 --- a/docs/ProductHighActivity.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductHighActivity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**HighActivity**](HighActivity.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductIPBlocklist.md b/docs/ProductIPBlocklist.md deleted file mode 100644 index 72c5bc32..00000000 --- a/docs/ProductIPBlocklist.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductIPBlocklist - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**IPBlocklist**](IPBlocklist.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductIPInfo.md b/docs/ProductIPInfo.md deleted file mode 100644 index 58e5c5a8..00000000 --- a/docs/ProductIPInfo.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductIPInfo - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**IPInfo**](IPInfo.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductIdentification.md b/docs/ProductIdentification.md deleted file mode 100644 index d7b49679..00000000 --- a/docs/ProductIdentification.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductIdentification - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Identification**](Identification.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductIncognito.md b/docs/ProductIncognito.md deleted file mode 100644 index 2b94f4a1..00000000 --- a/docs/ProductIncognito.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductIncognito - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Incognito**](Incognito.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductJailbroken.md b/docs/ProductJailbroken.md deleted file mode 100644 index eb91019b..00000000 --- a/docs/ProductJailbroken.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductJailbroken - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Jailbroken**](Jailbroken.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductLocationSpoofing.md b/docs/ProductLocationSpoofing.md deleted file mode 100644 index ed155319..00000000 --- a/docs/ProductLocationSpoofing.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductLocationSpoofing - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**LocationSpoofing**](LocationSpoofing.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductMitMAttack.md b/docs/ProductMitMAttack.md deleted file mode 100644 index 39ca42f4..00000000 --- a/docs/ProductMitMAttack.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductMitMAttack - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**MitMAttack**](MitMAttack.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductPrivacySettings.md b/docs/ProductPrivacySettings.md deleted file mode 100644 index 82ea35cf..00000000 --- a/docs/ProductPrivacySettings.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductPrivacySettings - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**PrivacySettings**](PrivacySettings.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductProximity.md b/docs/ProductProximity.md deleted file mode 100644 index 589f608a..00000000 --- a/docs/ProductProximity.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductProximity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Proximity**](Proximity.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductProxy.md b/docs/ProductProxy.md deleted file mode 100644 index 2b53dd2d..00000000 --- a/docs/ProductProxy.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductProxy - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Proxy**](Proxy.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductRawDeviceAttributes.md b/docs/ProductRawDeviceAttributes.md deleted file mode 100644 index 248a9739..00000000 --- a/docs/ProductRawDeviceAttributes.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductRawDeviceAttributes - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Map<String, RawDeviceAttribute>**](RawDeviceAttribute.md) | It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductRemoteControl.md b/docs/ProductRemoteControl.md deleted file mode 100644 index d7e1bfcc..00000000 --- a/docs/ProductRemoteControl.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# ProductRemoteControl - -This product is deprecated. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**RemoteControl**](RemoteControl.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductRootApps.md b/docs/ProductRootApps.md deleted file mode 100644 index 769cb2f2..00000000 --- a/docs/ProductRootApps.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductRootApps - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**RootApps**](RootApps.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductSuspectScore.md b/docs/ProductSuspectScore.md deleted file mode 100644 index 61093d49..00000000 --- a/docs/ProductSuspectScore.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductSuspectScore - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**SuspectScore**](SuspectScore.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductTampering.md b/docs/ProductTampering.md deleted file mode 100644 index f058d250..00000000 --- a/docs/ProductTampering.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductTampering - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Tampering**](Tampering.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductTor.md b/docs/ProductTor.md deleted file mode 100644 index 45bd6c21..00000000 --- a/docs/ProductTor.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductTor - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Tor**](Tor.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductVPN.md b/docs/ProductVPN.md deleted file mode 100644 index e2f77524..00000000 --- a/docs/ProductVPN.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductVPN - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**VPN**](VPN.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductVelocity.md b/docs/ProductVelocity.md deleted file mode 100644 index f4b506fe..00000000 --- a/docs/ProductVelocity.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductVelocity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**Velocity**](Velocity.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/ProductVirtualMachine.md b/docs/ProductVirtualMachine.md deleted file mode 100644 index ba583fba..00000000 --- a/docs/ProductVirtualMachine.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ProductVirtualMachine - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**data** | [**VirtualMachine**](VirtualMachine.md) | | [optional] | -|**error** | [**Error**](Error.md) | | [optional] | - - - diff --git a/docs/Products.md b/docs/Products.md deleted file mode 100644 index 321e8cf6..00000000 --- a/docs/Products.md +++ /dev/null @@ -1,39 +0,0 @@ - - -# Products - -Contains all information about the request identified by `requestId`, depending on the pricing plan (Pro, Pro Plus, Enterprise) - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**identification** | [**ProductIdentification**](ProductIdentification.md) | | [optional] | -|**botd** | [**ProductBotd**](ProductBotd.md) | | [optional] | -|**rootApps** | [**ProductRootApps**](ProductRootApps.md) | | [optional] | -|**emulator** | [**ProductEmulator**](ProductEmulator.md) | | [optional] | -|**ipInfo** | [**ProductIPInfo**](ProductIPInfo.md) | | [optional] | -|**ipBlocklist** | [**ProductIPBlocklist**](ProductIPBlocklist.md) | | [optional] | -|**tor** | [**ProductTor**](ProductTor.md) | | [optional] | -|**vpn** | [**ProductVPN**](ProductVPN.md) | | [optional] | -|**proxy** | [**ProductProxy**](ProductProxy.md) | | [optional] | -|**incognito** | [**ProductIncognito**](ProductIncognito.md) | | [optional] | -|**tampering** | [**ProductTampering**](ProductTampering.md) | | [optional] | -|**clonedApp** | [**ProductClonedApp**](ProductClonedApp.md) | | [optional] | -|**factoryReset** | [**ProductFactoryReset**](ProductFactoryReset.md) | | [optional] | -|**jailbroken** | [**ProductJailbroken**](ProductJailbroken.md) | | [optional] | -|**frida** | [**ProductFrida**](ProductFrida.md) | | [optional] | -|**privacySettings** | [**ProductPrivacySettings**](ProductPrivacySettings.md) | | [optional] | -|**virtualMachine** | [**ProductVirtualMachine**](ProductVirtualMachine.md) | | [optional] | -|**rawDeviceAttributes** | [**ProductRawDeviceAttributes**](ProductRawDeviceAttributes.md) | | [optional] | -|**highActivity** | [**ProductHighActivity**](ProductHighActivity.md) | | [optional] | -|**locationSpoofing** | [**ProductLocationSpoofing**](ProductLocationSpoofing.md) | | [optional] | -|**suspectScore** | [**ProductSuspectScore**](ProductSuspectScore.md) | | [optional] | -|**remoteControl** | [**ProductRemoteControl**](ProductRemoteControl.md) | | [optional] | -|**velocity** | [**ProductVelocity**](ProductVelocity.md) | | [optional] | -|**developerTools** | [**ProductDeveloperTools**](ProductDeveloperTools.md) | | [optional] | -|**mitmAttack** | [**ProductMitMAttack**](ProductMitMAttack.md) | | [optional] | -|**proximity** | [**ProductProximity**](ProductProximity.md) | | [optional] | - - - diff --git a/docs/Proximity.md b/docs/Proximity.md index b89d7b27..389b4845 100644 --- a/docs/Proximity.md +++ b/docs/Proximity.md @@ -2,8 +2,7 @@ # Proximity -Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. - +Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. ## Properties @@ -11,13 +10,14 @@ Proximity ID represents a fixed geographical zone in a discrete global grid with |------------ | ------------- | ------------- | -------------| |**id** | **String** | A stable privacy-preserving identifier for a given proximity zone. | | |**precisionRadius** | [**PrecisionRadiusEnum**](#PrecisionRadiusEnum) | The radius of the proximity zone’s precision level, in meters. | | -|**confidence** | **Float** | A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. | | +|**confidence** | **Float** | A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. | | + ## Enum: PrecisionRadiusEnum | Name | Value | -|---- | ----- | +|---- | -----| | NUMBER_10 | 10 | | NUMBER_25 | 25 | | NUMBER_65 | 65 | diff --git a/docs/Proxy.md b/docs/Proxy.md deleted file mode 100644 index 254bdf66..00000000 --- a/docs/Proxy.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# Proxy - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | IP address was used by a public proxy provider or belonged to a known recent residential proxy | | -|**confidence** | [**ProxyConfidence**](ProxyConfidence.md) | | | -|**details** | [**ProxyDetails**](ProxyDetails.md) | | [optional] | - - - diff --git a/docs/ProxyConfidence.md b/docs/ProxyConfidence.md index b20d370a..f3329de5 100644 --- a/docs/ProxyConfidence.md +++ b/docs/ProxyConfidence.md @@ -1,9 +1,7 @@ # ProxyConfidence - Confidence level of the proxy detection. -If a proxy is not detected, confidence is "high". -If it's detected, can be "low", "medium", or "high". +Confidence level of the proxy detection. If a proxy is not detected, confidence is "high". If it's detected, can be "low", "medium", or "high". ## Enum diff --git a/docs/ProxyDetails.md b/docs/ProxyDetails.md index 9cc2aafa..221862c7 100644 --- a/docs/ProxyDetails.md +++ b/docs/ProxyDetails.md @@ -2,20 +2,21 @@ # ProxyDetails -Proxy detection details (present if proxy is detected) +Proxy detection details (present if `proxy` is `true`) ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**proxyType** | [**ProxyTypeEnum**](#ProxyTypeEnum) | Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers | | -|**lastSeenAt** | **OffsetDateTime** | ISO 8601 formatted timestamp in UTC with hourly resolution of when this IP was last seen as a proxy when available. | [optional] | +|**lastSeenAt** | **Long** | Unix millisecond timestamp with hourly resolution of when this IP was last seen as a proxy | [optional] | + ## Enum: ProxyTypeEnum | Name | Value | -|---- | ----- | +|---- | -----| | RESIDENTIAL | "residential" | | DATA_CENTER | "data_center" | diff --git a/docs/RawDeviceAttribute.md b/docs/RawDeviceAttribute.md deleted file mode 100644 index 9c74412f..00000000 --- a/docs/RawDeviceAttribute.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# RawDeviceAttribute - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**value** | **Object** | | [optional] | -|**error** | [**RawDeviceAttributeError**](RawDeviceAttributeError.md) | | [optional] | - - - diff --git a/docs/RawDeviceAttributeError.md b/docs/RawDeviceAttributeError.md deleted file mode 100644 index 6467d521..00000000 --- a/docs/RawDeviceAttributeError.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# RawDeviceAttributeError - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**name** | **String** | | [optional] | -|**message** | **String** | | [optional] | - - - diff --git a/docs/RelatedVisitor.md b/docs/RelatedVisitor.md deleted file mode 100644 index c24f4fcb..00000000 --- a/docs/RelatedVisitor.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# RelatedVisitor - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**visitorId** | **String** | Visitor ID of a browser that originates from the same mobile device as the input visitor ID. | | - - - diff --git a/docs/RelatedVisitorsResponse.md b/docs/RelatedVisitorsResponse.md deleted file mode 100644 index e06e35bf..00000000 --- a/docs/RelatedVisitorsResponse.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# RelatedVisitorsResponse - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**relatedVisitors** | [**List<RelatedVisitor>**](RelatedVisitor.md) | | | - - - diff --git a/docs/RemoteControl.md b/docs/RemoteControl.md deleted file mode 100644 index b52c54cf..00000000 --- a/docs/RemoteControl.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# RemoteControl - -This signal is deprecated. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. | | - - - diff --git a/docs/RootApps.md b/docs/RootApps.md deleted file mode 100644 index 1e0d2932..00000000 --- a/docs/RootApps.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# RootApps - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. | | - - - diff --git a/docs/SDK.md b/docs/SDK.md index fa24ade4..ae6c3904 100644 --- a/docs/SDK.md +++ b/docs/SDK.md @@ -8,8 +8,20 @@ Contains information about the SDK used to perform the request. | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**platform** | **String** | Platform of the SDK. | | -|**version** | **String** | SDK version string. | | +|**platform** | [**PlatformEnum**](#PlatformEnum) | Platform of the SDK used for the identification request. | | +|**version** | **String** | Version string of the SDK used for the identification request. For example: `\"3.12.1\"` | | +|**integrations** | [**List<Integration>**](Integration.md) | | [optional] | + + + +## Enum: PlatformEnum + +| Name | Value | +|---- | -----| +| JS | "js" | +| ANDROID | "android" | +| IOS | "ios" | +| UNKNOWN | "unknown" | diff --git a/docs/SearchEventsResponse.md b/docs/SearchEventsResponse.md deleted file mode 100644 index cbb2ebd1..00000000 --- a/docs/SearchEventsResponse.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# 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** | Use this value in the `pagination_key` parameter to request the next page of search results. | [optional] | - - - diff --git a/docs/SearchEventsResponseEventsInner.md b/docs/SearchEventsResponseEventsInner.md deleted file mode 100644 index 4b469d6e..00000000 --- a/docs/SearchEventsResponseEventsInner.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# SearchEventsResponseEventsInner - -Device intelligence results for the identification event. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**products** | [**Products**](Products.md) | | | - - - diff --git a/docs/SupplementaryID.md b/docs/SupplementaryID.md deleted file mode 100644 index f6de4357..00000000 --- a/docs/SupplementaryID.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# SupplementaryID - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**visitorId** | **String** | String of 20 characters that uniquely identifies the visitor's browser or mobile device. | [optional] | -|**visitorFound** | **Boolean** | Attribute represents if a visitor had been identified before. | [optional] | -|**confidence** | [**IdentificationConfidence**](IdentificationConfidence.md) | | [optional] | -|**firstSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | [optional] | -|**lastSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | [optional] | - - - diff --git a/docs/SupplementaryIDHighRecall.md b/docs/SupplementaryIDHighRecall.md new file mode 100644 index 00000000..887d3149 --- /dev/null +++ b/docs/SupplementaryIDHighRecall.md @@ -0,0 +1,18 @@ + + +# SupplementaryIDHighRecall + +A supplementary browser identifier that prioritizes coverage over precision. The High Recall ID algorithm matches more generously, i.e., this identifier will remain the same even when there are subtle differences between two requests. This algorithm does not create as many new visitor IDs as the standard algorithms do, but there could be an increase in false-positive identification. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**visitorId** | **String** | String of 20 characters that uniquely identifies the visitor's browser or mobile device. | | +|**visitorFound** | **Boolean** | Attribute represents if a visitor had been identified before. | | +|**confidence** | [**IdentificationConfidence**](IdentificationConfidence.md) | | [optional] | +|**firstSeenAt** | **Long** | Unix epoch time milliseconds timestamp indicating the time at which this ID was first seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 | [optional] | +|**lastSeenAt** | **Long** | Unix epoch time milliseconds timestamp indicating the time at which this ID was last seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 | [optional] | + + + diff --git a/docs/SuspectScore.md b/docs/SuspectScore.md deleted file mode 100644 index 1b36c89d..00000000 --- a/docs/SuspectScore.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# SuspectScore - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Integer** | Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score | | - - - diff --git a/docs/Tampering.md b/docs/Tampering.md deleted file mode 100644 index 5cf2e09d..00000000 --- a/docs/Tampering.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# Tampering - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. | | -|**anomalyScore** | **Double** | A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. | | -|**antiDetectBrowser** | **Boolean** | Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. | | - - - diff --git a/docs/TamperingDetails.md b/docs/TamperingDetails.md new file mode 100644 index 00000000..c1f53028 --- /dev/null +++ b/docs/TamperingDetails.md @@ -0,0 +1,14 @@ + + +# TamperingDetails + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**anomalyScore** | **Double** | Confidence score (`0.0 - 1.0`) for tampering detection: * Values above `0.5` indicate tampering. * Values below `0.5` indicate genuine browsers. | [optional] | +|**antiDetectBrowser** | **Boolean** | True if the identified browser resembles an \"anti-detect\" browser, such as Incognition, which attempts to evade identification by manipulating its fingerprint. | [optional] | + + + diff --git a/docs/Tor.md b/docs/Tor.md deleted file mode 100644 index c75164a9..00000000 --- a/docs/Tor.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# Tor - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request IP address is a known tor exit node, `false` otherwise. | | - - - diff --git a/docs/GeolocationContinent.md b/docs/TriggeredByInner.md similarity index 64% rename from docs/GeolocationContinent.md rename to docs/TriggeredByInner.md index e2ac3c9c..4941f15b 100644 --- a/docs/GeolocationContinent.md +++ b/docs/TriggeredByInner.md @@ -1,14 +1,15 @@ -# GeolocationContinent +# TriggeredByInner ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**code** | **String** | | | +|**id** | **String** | | | |**name** | **String** | | | +|**description** | **String** | | | diff --git a/docs/VPN.md b/docs/VPN.md deleted file mode 100644 index fb82f54e..00000000 --- a/docs/VPN.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# VPN - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | VPN or other anonymizing service has been used when sending the request. | | -|**confidence** | [**VPNConfidence**](VPNConfidence.md) | | | -|**originTimezone** | **String** | Local timezone which is used in timezoneMismatch method. | | -|**originCountry** | **String** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). | | -|**methods** | [**VPNMethods**](VPNMethods.md) | | | - - - diff --git a/docs/VPNConfidence.md b/docs/VPNConfidence.md deleted file mode 100644 index 8e952091..00000000 --- a/docs/VPNConfidence.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# VPNConfidence - A confidence rating for the VPN detection result — "low", "medium", or "high". Depends on the combination of results returned from all VPN detection methods. - -## Enum - - -* `LOW` (value: `"low"`) - -* `MEDIUM` (value: `"medium"`) - -* `HIGH` (value: `"high"`) - - - diff --git a/docs/Velocity.md b/docs/Velocity.md index 47962ed0..d9abf189 100644 --- a/docs/Velocity.md +++ b/docs/Velocity.md @@ -2,34 +2,19 @@ # Velocity -Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time -intervals: 5 minutes, 1 hour, and 24 hours as follows: - -- Number of distinct IP addresses associated to the visitor ID. -- Number of distinct linked IDs associated with the visitor ID. -- Number of distinct countries associated with the visitor ID. -- Number of identification events associated with the visitor ID. -- Number of identification events associated with the detected IP address. -- Number of distinct IP addresses associated with the provided linked ID. -- Number of distinct visitor IDs associated with the provided linked ID. - -The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, -`distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted -if the number of `events` for the visitor ID in the last 24 -hours (`events.intervals.['24h']`) is higher than 20.000. - +Sums key data points for a specific `visitor_id`, `ip_address` and `linked_id` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor Id. - Number of distinct linked Ids associated with the visitor Id. - Number of distinct countries associated with the visitor Id. - Number of identification events associated with the visitor Id. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked Id. - Number of distinct visitor Ids associated with the provided linked Id. The `24h` interval of `distinct_ip`, `distinct_linked_id`, `distinct_country`, `distinct_ip_by_linked_id` and `distinct_visitor_id_by_linked_id` will be omitted if the number of `events` for the visitor Id in the last 24 hours (`events.['24h']`) is higher than 20.000. All will not necessarily be returned in a response, some may be omitted if the associated event does not have the required data, such as a linked_id. ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**distinctIp** | [**VelocityData**](VelocityData.md) | | | -|**distinctLinkedId** | [**VelocityData**](VelocityData.md) | | | -|**distinctCountry** | [**VelocityData**](VelocityData.md) | | | -|**events** | [**VelocityData**](VelocityData.md) | | | -|**ipEvents** | [**VelocityData**](VelocityData.md) | | | -|**distinctIpByLinkedId** | [**VelocityData**](VelocityData.md) | | | -|**distinctVisitorIdByLinkedId** | [**VelocityData**](VelocityData.md) | | | +|**distinctIp** | [**VelocityData**](VelocityData.md) | | [optional] | +|**distinctLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | +|**distinctCountry** | [**VelocityData**](VelocityData.md) | | [optional] | +|**events** | [**VelocityData**](VelocityData.md) | | [optional] | +|**ipEvents** | [**VelocityData**](VelocityData.md) | | [optional] | +|**distinctIpByLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | +|**distinctVisitorIdByLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | diff --git a/docs/VelocityData.md b/docs/VelocityData.md index dbd33213..6b553849 100644 --- a/docs/VelocityData.md +++ b/docs/VelocityData.md @@ -2,12 +2,15 @@ # VelocityData +Is absent if the velocity data could not be generated for the visitor Id. ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**intervals** | [**VelocityIntervals**](VelocityIntervals.md) | | [optional] | +|**_5minutes** | **Integer** | Count for the last 5 minutes of velocity data, from the time of the event. | | +|**_1hour** | **Integer** | Count for the last 1 hour of velocity data, from the time of the event. | | +|**_24hours** | **Integer** | The `24_hours` interval of `distinct_ip`, `distinct_linked_id`, `distinct_country`, `distinct_ip_by_linked_id` and `distinct_visitor_id_by_linked_id` will be omitted if the number of `events` for the visitor Id in the last 24 hours (`events.['24_hours']`) is higher than 20.000. | [optional] | diff --git a/docs/VelocityIntervals.md b/docs/VelocityIntervals.md deleted file mode 100644 index 41a688d7..00000000 --- a/docs/VelocityIntervals.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# VelocityIntervals - -Is absent if the velocity data could not be generated for the visitor ID. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**_5m** | **Integer** | | | -|**_1h** | **Integer** | | | -|**_24h** | **Integer** | The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events`` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. | [optional] | - - - diff --git a/docs/VirtualMachine.md b/docs/VirtualMachine.md deleted file mode 100644 index 633cc7be..00000000 --- a/docs/VirtualMachine.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# VirtualMachine - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. | | - - - diff --git a/docs/Visit.md b/docs/Visit.md deleted file mode 100644 index 81beeb4a..00000000 --- a/docs/Visit.md +++ /dev/null @@ -1,27 +0,0 @@ - - -# Visit - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**requestId** | **String** | Unique identifier of the user's request. | | -|**browserDetails** | [**BrowserDetails**](BrowserDetails.md) | | | -|**incognito** | **Boolean** | Flag if user used incognito session. | | -|**ip** | **String** | IP address of the requesting browser or bot. | | -|**ipLocation** | [**DeprecatedGeolocation**](DeprecatedGeolocation.md) | | [optional] | -|**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | -|**timestamp** | **Long** | Timestamp of the event with millisecond precision in Unix time. | | -|**time** | **OffsetDateTime** | Time expressed according to ISO 8601 in UTC format, when the request from the client agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. | | -|**url** | **String** | Page URL from which the request was sent. | | -|**tag** | **Map<String, Object>** | A customer-provided value or an object that was sent with identification request. | | -|**confidence** | [**IdentificationConfidence**](IdentificationConfidence.md) | | [optional] | -|**visitorFound** | **Boolean** | Attribute represents if a visitor had been identified before. | | -|**firstSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | | -|**lastSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | | -|**components** | [**Map<String, RawDeviceAttribute>**](RawDeviceAttribute.md) | It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. | [optional] | - - - diff --git a/docs/VisitorsGetResponse.md b/docs/VisitorsGetResponse.md deleted file mode 100644 index 80559367..00000000 --- a/docs/VisitorsGetResponse.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# VisitorsGetResponse - -Pagination-related fields `lastTimestamp` and `paginationKey` are included if you use a pagination parameter like `limit` or `before` and there is more data available on the next page. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**visitorId** | **String** | | | -|**visits** | [**List<Visit>**](Visit.md) | | | -|**lastTimestamp** | **Long** | ⚠️ Deprecated paging attribute, please use `paginationKey` instead. Timestamp of the last visit in the current page of results. | [optional] | -|**paginationKey** | **String** | Request ID of the last visit in the current page of results. Use this value in the following request as the `paginationKey` parameter to get the next page of results. | [optional] | - - - diff --git a/docs/VpnConfidence.md b/docs/VpnConfidence.md new file mode 100644 index 00000000..f0d0d9ef --- /dev/null +++ b/docs/VpnConfidence.md @@ -0,0 +1,16 @@ + + +# VpnConfidence +A confidence rating for the VPN detection result — "low", "medium", or "high". Depends on the combination of results returned from all VPN detection methods. + +## Enum + + +* `LOW` (value: `"low"`) + +* `MEDIUM` (value: `"medium"`) + +* `HIGH` (value: `"high"`) + + + diff --git a/docs/VPNMethods.md b/docs/VpnMethods.md similarity index 52% rename from docs/VPNMethods.md rename to docs/VpnMethods.md index b477be42..07469bdc 100644 --- a/docs/VPNMethods.md +++ b/docs/VpnMethods.md @@ -1,17 +1,17 @@ -# VPNMethods +# VpnMethods ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**timezoneMismatch** | **Boolean** | The browser timezone doesn't match the timezone inferred from the request IP address. | | -|**publicVPN** | **Boolean** | Request IP address is owned and used by a public VPN service provider. | | -|**auxiliaryMobile** | **Boolean** | This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. | | -|**osMismatch** | **Boolean** | The browser runs on a different operating system than the operating system inferred from the request network signature. | | -|**relay** | **Boolean** | Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. | | +|**timezoneMismatch** | **Boolean** | The browser timezone doesn't match the timezone inferred from the request IP address. | [optional] | +|**publicVpn** | **Boolean** | Request IP address is owned and used by a public VPN service provider. | [optional] | +|**auxiliaryMobile** | **Boolean** | This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. | [optional] | +|**osMismatch** | **Boolean** | The browser runs on a different operating system than the operating system inferred from the request network signature. | [optional] | +|**relay** | **Boolean** | Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. | [optional] | diff --git a/docs/Webhook.md b/docs/Webhook.md deleted file mode 100644 index d173a8cd..00000000 --- a/docs/Webhook.md +++ /dev/null @@ -1,58 +0,0 @@ - - -# Webhook - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**requestId** | **String** | Unique identifier of the user's request. | | -|**url** | **String** | Page URL from which the request was sent. | | -|**ip** | **String** | IP address of the requesting browser or bot. | | -|**environmentId** | **String** | Environment ID of the event. | [optional] | -|**tag** | **Map<String, Object>** | A customer-provided value or an object that was sent with identification request. | [optional] | -|**time** | **OffsetDateTime** | Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. | | -|**timestamp** | **Long** | Timestamp of the event with millisecond precision in Unix time. | | -|**ipLocation** | [**DeprecatedGeolocation**](DeprecatedGeolocation.md) | | [optional] | -|**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | -|**visitorId** | **String** | String of 20 characters that uniquely identifies the visitor's browser or mobile device. | [optional] | -|**visitorFound** | **Boolean** | Attribute represents if a visitor had been identified before. | [optional] | -|**confidence** | [**IdentificationConfidence**](IdentificationConfidence.md) | | [optional] | -|**firstSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | [optional] | -|**lastSeenAt** | [**IdentificationSeenAt**](IdentificationSeenAt.md) | | [optional] | -|**browserDetails** | [**BrowserDetails**](BrowserDetails.md) | | [optional] | -|**incognito** | **Boolean** | Flag if user used incognito session. | [optional] | -|**clientReferrer** | **String** | | [optional] | -|**components** | [**Map<String, RawDeviceAttribute>**](RawDeviceAttribute.md) | It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. | [optional] | -|**bot** | [**BotdBot**](BotdBot.md) | | [optional] | -|**userAgent** | **String** | | [optional] | -|**rootApps** | [**WebhookRootApps**](WebhookRootApps.md) | | [optional] | -|**emulator** | [**WebhookEmulator**](WebhookEmulator.md) | | [optional] | -|**ipInfo** | [**WebhookIPInfo**](WebhookIPInfo.md) | | [optional] | -|**ipBlocklist** | [**WebhookIPBlocklist**](WebhookIPBlocklist.md) | | [optional] | -|**tor** | [**WebhookTor**](WebhookTor.md) | | [optional] | -|**vpn** | [**WebhookVPN**](WebhookVPN.md) | | [optional] | -|**proxy** | [**WebhookProxy**](WebhookProxy.md) | | [optional] | -|**tampering** | [**WebhookTampering**](WebhookTampering.md) | | [optional] | -|**clonedApp** | [**WebhookClonedApp**](WebhookClonedApp.md) | | [optional] | -|**factoryReset** | [**WebhookFactoryReset**](WebhookFactoryReset.md) | | [optional] | -|**jailbroken** | [**WebhookJailbroken**](WebhookJailbroken.md) | | [optional] | -|**frida** | [**WebhookFrida**](WebhookFrida.md) | | [optional] | -|**privacySettings** | [**WebhookPrivacySettings**](WebhookPrivacySettings.md) | | [optional] | -|**virtualMachine** | [**WebhookVirtualMachine**](WebhookVirtualMachine.md) | | [optional] | -|**rawDeviceAttributes** | [**Map<String, RawDeviceAttribute>**](RawDeviceAttribute.md) | It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. | [optional] | -|**highActivity** | [**WebhookHighActivity**](WebhookHighActivity.md) | | [optional] | -|**locationSpoofing** | [**WebhookLocationSpoofing**](WebhookLocationSpoofing.md) | | [optional] | -|**suspectScore** | [**WebhookSuspectScore**](WebhookSuspectScore.md) | | [optional] | -|**remoteControl** | [**WebhookRemoteControl**](WebhookRemoteControl.md) | | [optional] | -|**velocity** | [**WebhookVelocity**](WebhookVelocity.md) | | [optional] | -|**developerTools** | [**WebhookDeveloperTools**](WebhookDeveloperTools.md) | | [optional] | -|**mitmAttack** | [**WebhookMitMAttack**](WebhookMitMAttack.md) | | [optional] | -|**replayed** | **Boolean** | `true` if we determined that this payload was replayed, `false` otherwise. | [optional] | -|**sdk** | [**SDK**](SDK.md) | | | -|**supplementaryIds** | [**WebhookSupplementaryIDs**](WebhookSupplementaryIDs.md) | | [optional] | -|**proximity** | [**WebhookProximity**](WebhookProximity.md) | | [optional] | - - - diff --git a/docs/WebhookClonedApp.md b/docs/WebhookClonedApp.md deleted file mode 100644 index d15e65e0..00000000 --- a/docs/WebhookClonedApp.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookClonedApp - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **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] | - - - diff --git a/docs/WebhookDeveloperTools.md b/docs/WebhookDeveloperTools.md deleted file mode 100644 index 81e5e4fd..00000000 --- a/docs/WebhookDeveloperTools.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookDeveloperTools - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. | [optional] | - - - diff --git a/docs/WebhookEmulator.md b/docs/WebhookEmulator.md deleted file mode 100644 index 133c1dab..00000000 --- a/docs/WebhookEmulator.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookEmulator - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **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/WebhookFactoryReset.md b/docs/WebhookFactoryReset.md deleted file mode 100644 index df083a97..00000000 --- a/docs/WebhookFactoryReset.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# WebhookFactoryReset - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**time** | **OffsetDateTime** | Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. | [optional] | -|**timestamp** | **Long** | This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. | [optional] | - - - diff --git a/docs/WebhookFrida.md b/docs/WebhookFrida.md deleted file mode 100644 index fad02995..00000000 --- a/docs/WebhookFrida.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookFrida - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. | [optional] | - - - diff --git a/docs/WebhookHighActivity.md b/docs/WebhookHighActivity.md deleted file mode 100644 index 3be18dcb..00000000 --- a/docs/WebhookHighActivity.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# WebhookHighActivity - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Flag indicating if the request came from a high-activity visitor. | | -|**dailyRequests** | **Long** | Number of requests from the same visitor in the previous day. | [optional] | - - - diff --git a/docs/WebhookIPBlocklist.md b/docs/WebhookIPBlocklist.md deleted file mode 100644 index a18363a7..00000000 --- a/docs/WebhookIPBlocklist.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# WebhookIPBlocklist - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. | [optional] | -|**details** | [**IPBlocklistDetails**](IPBlocklistDetails.md) | | [optional] | - - - diff --git a/docs/WebhookIPInfo.md b/docs/WebhookIPInfo.md deleted file mode 100644 index cd052030..00000000 --- a/docs/WebhookIPInfo.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# WebhookIPInfo - -Details about the request IP address. Has separate fields for v4 and v6 IP address versions. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**v4** | [**IPInfoV4**](IPInfoV4.md) | | [optional] | -|**v6** | [**IPInfoV6**](IPInfoV6.md) | | [optional] | - - - diff --git a/docs/WebhookJailbroken.md b/docs/WebhookJailbroken.md deleted file mode 100644 index b8071a8e..00000000 --- a/docs/WebhookJailbroken.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookJailbroken - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. | [optional] | - - - diff --git a/docs/WebhookLocationSpoofing.md b/docs/WebhookLocationSpoofing.md deleted file mode 100644 index a3d360f3..00000000 --- a/docs/WebhookLocationSpoofing.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookLocationSpoofing - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Flag indicating whether the request came from a mobile device with location spoofing enabled. | [optional] | - - - diff --git a/docs/WebhookMitMAttack.md b/docs/WebhookMitMAttack.md deleted file mode 100644 index 9a2de4d8..00000000 --- a/docs/WebhookMitMAttack.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookMitMAttack - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-overview#mitm-attack-detection) to learn more about this Smart Signal. | [optional] | - - - diff --git a/docs/WebhookPrivacySettings.md b/docs/WebhookPrivacySettings.md deleted file mode 100644 index 81b6f1a9..00000000 --- a/docs/WebhookPrivacySettings.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookPrivacySettings - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. | [optional] | - - - diff --git a/docs/WebhookProximity.md b/docs/WebhookProximity.md deleted file mode 100644 index 3ce1120b..00000000 --- a/docs/WebhookProximity.md +++ /dev/null @@ -1,32 +0,0 @@ - - -# WebhookProximity - -Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**id** | **String** | A stable privacy-preserving identifier for a given proximity zone. | | -|**precisionRadius** | [**PrecisionRadiusEnum**](#PrecisionRadiusEnum) | The radius of the proximity zone’s precision level, in meters. | | -|**confidence** | **Float** | A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. | | - - -## Enum: PrecisionRadiusEnum - -| Name | Value | -|---- | ----- | -| NUMBER_10 | 10 | -| NUMBER_25 | 25 | -| NUMBER_65 | 65 | -| NUMBER_175 | 175 | -| NUMBER_450 | 450 | -| NUMBER_1200 | 1200 | -| NUMBER_3300 | 3300 | -| NUMBER_8500 | 8500 | -| NUMBER_22500 | 22500 | - - - diff --git a/docs/WebhookProxy.md b/docs/WebhookProxy.md deleted file mode 100644 index 5b7ad233..00000000 --- a/docs/WebhookProxy.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# WebhookProxy - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | IP address was used by a public proxy provider or belonged to a known recent residential proxy | [optional] | -|**confidence** | [**ProxyConfidence**](ProxyConfidence.md) | | [optional] | -|**details** | [**ProxyDetails**](ProxyDetails.md) | | [optional] | - - - diff --git a/docs/WebhookRemoteControl.md b/docs/WebhookRemoteControl.md deleted file mode 100644 index d2192345..00000000 --- a/docs/WebhookRemoteControl.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# WebhookRemoteControl - -This signal is deprecated. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. | [optional] | - - - diff --git a/docs/WebhookRootApps.md b/docs/WebhookRootApps.md deleted file mode 100644 index c9fa82d9..00000000 --- a/docs/WebhookRootApps.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookRootApps - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. | [optional] | - - - diff --git a/docs/WebhookSupplementaryIDs.md b/docs/WebhookSupplementaryIDs.md deleted file mode 100644 index 3b386426..00000000 --- a/docs/WebhookSupplementaryIDs.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# WebhookSupplementaryIDs - -Other identities that have been established for a given Visitor. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**standard** | [**SupplementaryID**](SupplementaryID.md) | | | -|**highRecall** | [**SupplementaryID**](SupplementaryID.md) | | | - - - diff --git a/docs/WebhookSuspectScore.md b/docs/WebhookSuspectScore.md deleted file mode 100644 index e1f2cba6..00000000 --- a/docs/WebhookSuspectScore.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookSuspectScore - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Integer** | Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score | [optional] | - - - diff --git a/docs/WebhookTampering.md b/docs/WebhookTampering.md deleted file mode 100644 index 26794b13..00000000 --- a/docs/WebhookTampering.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# WebhookTampering - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. | [optional] | -|**anomalyScore** | **Double** | A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. | [optional] | -|**antiDetectBrowser** | **Boolean** | Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. | [optional] | - - - diff --git a/docs/WebhookTor.md b/docs/WebhookTor.md deleted file mode 100644 index 09c12955..00000000 --- a/docs/WebhookTor.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookTor - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request IP address is a known tor exit node, `false` otherwise. | [optional] | - - - diff --git a/docs/WebhookVPN.md b/docs/WebhookVPN.md deleted file mode 100644 index a59a4f00..00000000 --- a/docs/WebhookVPN.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# WebhookVPN - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | VPN or other anonymizing service has been used when sending the request. | [optional] | -|**confidence** | [**VPNConfidence**](VPNConfidence.md) | | [optional] | -|**originTimezone** | **String** | Local timezone which is used in timezoneMismatch method. | [optional] | -|**originCountry** | **String** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). | [optional] | -|**methods** | [**VPNMethods**](VPNMethods.md) | | [optional] | - - - diff --git a/docs/WebhookVelocity.md b/docs/WebhookVelocity.md deleted file mode 100644 index 841b5997..00000000 --- a/docs/WebhookVelocity.md +++ /dev/null @@ -1,35 +0,0 @@ - - -# WebhookVelocity - -Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time -intervals: 5 minutes, 1 hour, and 24 hours as follows: - -- Number of distinct IP addresses associated to the visitor ID. -- Number of distinct linked IDs associated with the visitor ID. -- Number of distinct countries associated with the visitor ID. -- Number of identification events associated with the visitor ID. -- Number of identification events associated with the detected IP address. -- Number of distinct IP addresses associated with the provided linked ID. -- Number of distinct visitor IDs associated with the provided linked ID. - -The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, -`distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted -if the number of `events` for the visitor ID in the last 24 -hours (`events.intervals.['24h']`) is higher than 20.000. - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**distinctIp** | [**VelocityData**](VelocityData.md) | | [optional] | -|**distinctLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | -|**distinctCountry** | [**VelocityData**](VelocityData.md) | | [optional] | -|**events** | [**VelocityData**](VelocityData.md) | | [optional] | -|**ipEvents** | [**VelocityData**](VelocityData.md) | | [optional] | -|**distinctIpByLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | -|**distinctVisitorIdByLinkedId** | [**VelocityData**](VelocityData.md) | | [optional] | - - - diff --git a/docs/WebhookVirtualMachine.md b/docs/WebhookVirtualMachine.md deleted file mode 100644 index 5f4fa7a1..00000000 --- a/docs/WebhookVirtualMachine.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# WebhookVirtualMachine - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**result** | **Boolean** | `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. | [optional] | - - - diff --git a/examples/src/main/java/com/fingerprint/example/FunctionalTests.java b/examples/src/main/java/com/fingerprint/example/FunctionalTests.java index 33ecf5c1..90426b7c 100644 --- a/examples/src/main/java/com/fingerprint/example/FunctionalTests.java +++ b/examples/src/main/java/com/fingerprint/example/FunctionalTests.java @@ -29,12 +29,12 @@ public static void main(String... args) { long end = Instant.now().toEpochMilli(); long start = Instant.now().minus(90L, ChronoUnit.DAYS).toEpochMilli(); - String visitorId = ""; - String requestId = ""; + String eventId = ""; // Search events try { - final SearchEventsResponse events = api.searchEvents(2, new FingerprintApi.SearchEventsOptionalParams() + final EventSearch events = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() + .setLimit(2) .setStart(start) .setEnd(end) ); @@ -43,12 +43,9 @@ public static void main(String... args) { System.err.println("FingerprintApi.searchEvents: is empty"); System.exit(1); } - final ProductIdentification productIdentification = events.getEvents().get(0).getProducts().getIdentification(); - assert productIdentification != null; - Identification firstEventIdentificationData = productIdentification.getData(); - assert firstEventIdentificationData != null; - visitorId = firstEventIdentificationData.getVisitorId(); - requestId = firstEventIdentificationData.getRequestId(); + final Event firstEvent = events.getEvents().get(0); + assert firstEvent != null; + eventId = firstEvent.getEventId(); System.out.println(events.getEvents()); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage()); @@ -57,22 +54,13 @@ public static void main(String... args) { // Get identification event try { - final EventsGetResponse event = api.getEvent(requestId); + final Event event = api.getEvent(eventId); System.out.println(event); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.getEvent:" + e.getMessage()); System.exit(1); } - // Get visitor history - try { - final VisitorsGetResponse visits = api.getVisits(visitorId, null, null, null, null, null); - System.out.println(visits); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getEvent:" + e.getMessage()); - System.exit(1); - } - // Update identification event final String requestIdToUpdate = System.getenv("FPJS_REQUEST_ID_TO_UPDATE"); if (requestIdToUpdate != null) { @@ -80,7 +68,7 @@ public static void main(String... args) { final HashMap tags = new HashMap() {{ put("timestamp", new Timestamp(new Date().getTime())); }}; - api.updateEvent(requestIdToUpdate, new EventsUpdateRequest().tag(tags)); + api.updateEvent(requestIdToUpdate, new EventUpdate().tags(tags)); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.updateEvent:" + e.getMessage()); System.exit(1); @@ -100,7 +88,8 @@ public static void main(String... args) { // Check that old events are still match expected format try { - final SearchEventsResponse oldEvents = api.searchEvents(2, new FingerprintApi.SearchEventsOptionalParams() + final EventSearch oldEvents = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() + .setLimit(2) .setStart(start) .setEnd(end) .setReverse(true) @@ -110,20 +99,16 @@ public static void main(String... args) { System.err.println("FingerprintApi.searchEvents: is empty for old events"); System.exit(1); } - final ProductIdentification productIdentification = oldEvents.getEvents().get(0).getProducts().getIdentification(); - assert productIdentification != null; - Identification oldEventIdentificationData = productIdentification.getData(); - assert oldEventIdentificationData != null; - String oldVisitorId = oldEventIdentificationData.getVisitorId(); - String oldRequestId = oldEventIdentificationData.getRequestId(); - - if (requestId.equals(oldRequestId)) { + final Event oldEvent = oldEvents.getEvents().get(0); + assert oldEvent != null; + String oldRequestId = oldEvent.getEventId(); + + if (eventId.equals(oldRequestId)) { System.err.println("Old events are identical to new"); System.exit(1); } api.getEvent(oldRequestId); - api.getVisits(oldVisitorId, null, null, null, null, null); System.out.println("Old events are good"); } catch (ApiException e) { System.err.println("Exception when trying to read old data:" + e.getMessage()); diff --git a/examples/src/main/java/com/fingerprint/example/SealedResults.java b/examples/src/main/java/com/fingerprint/example/SealedResults.java index 4e1d007a..e0211d2f 100644 --- a/examples/src/main/java/com/fingerprint/example/SealedResults.java +++ b/examples/src/main/java/com/fingerprint/example/SealedResults.java @@ -1,7 +1,7 @@ package com.fingerprint.example; import com.fingerprint.Sealed; -import com.fingerprint.model.EventsGetResponse; +import com.fingerprint.model.Event; import java.util.Base64; @@ -10,7 +10,7 @@ public static void main(String... args) throws Exception { String SEALED_RESULT = System.getenv("BASE64_SEALED_RESULT"); String SEALED_KEY = System.getenv("BASE64_KEY"); - final EventsGetResponse event = Sealed.unsealEventResponse( + final Event event = Sealed.unsealEventResponse( Base64.getDecoder().decode(SEALED_RESULT), new Sealed.DecryptionKey[]{ new Sealed.DecryptionKey( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7ab784a..b8bd85d7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ jakarta-annotation-api = "2.0.0" jersey = "3.1.7" junit = "5.10.2" mockito = "3.12.4" -openapi = "7.7.0" +openapi = "7.16.0" swagger-annotations = "2.2.22" [libraries] diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 71a4fa75..64a735c9 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -1,14 +1,14 @@ -openapi: 3.0.3 +openapi: 3.1.1 info: - title: Fingerprint Server API + title: Server API description: > - Fingerprint Server API allows you to search, update, and delete - identification events in a server environment. It can be used for data - exports, decision-making, and data analysis scenarios. + # Overview Fingerprint Server API allows you to get, search, and update + Events in a server environment. It can be used for data exports, + decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. - version: '3' + version: '4' contact: name: Fingerprint Support email: support@fingerprint.com @@ -25,37 +25,30 @@ tags: description: API documentation url: https://dev.fingerprint.com/reference/pro-server-api servers: - - url: https://api.fpjs.io + - url: https://api.fpjs.io/v4 description: Global - - url: https://eu.api.fpjs.io + - url: https://eu.api.fpjs.io/v4 description: EU - - url: https://ap.api.fpjs.io + - url: https://ap.api.fpjs.io/v4 description: Asia (Mumbai) security: - - ApiKeyHeader: [] - - ApiKeyQuery: [] + - bearerAuth: [] paths: - /events/{request_id}: + /events/{event_id}: get: tags: - Fingerprint operationId: getEvent - summary: Get event by request ID + summary: Get an event by event ID description: > Get a detailed analysis of an individual identification event, including - Smart Signals. + Smart Signals. - Please note that the response includes mobile signals (e.g. `rootApps`) - even if the request originated from a non-mobile platform. - It is highly recommended that you **ignore** the mobile signals for such - requests. - - - Use `requestId` as the URL path parameter. This API method is scoped to - a request, i.e. all returned information is by `requestId`. + Use `event_id` as the URL path parameter. This API method is scoped to a + request, i.e. all returned information is by `event_id`. parameters: - - name: request_id + - name: event_id in: path required: true schema: @@ -63,14 +56,21 @@ paths: description: >- The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) - of each identification request. + of each identification request (`requestId` can be used in its + place). responses: '200': description: OK. content: application/json: schema: - $ref: '#/components/schemas/EventsGetResponse' + $ref: '#/components/schemas/Event' + '400': + description: Bad request. The event Id provided is not valid. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden. Access to this API is denied. content: @@ -78,45 +78,58 @@ paths: schema: $ref: '#/components/schemas/ErrorResponse' '404': - description: >- - Not found. The request ID cannot be found in this application's - data. + description: Not found. The event Id cannot be found in this workspace's data. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '500': + description: Workspace error. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - put: + patch: tags: - Fingerprint operationId: updateEvent - summary: Update an event with a given request ID + summary: Update an event description: > - Change information in existing events specified by `requestId` or *flag + Change information in existing events specified by `event_id` 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. + 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** It's not possible to update events older than 10 days. + **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. parameters: - - name: request_id + - name: event_id in: path required: true schema: type: string description: >- The unique event - [identifier](https://dev.fingerprint.com/reference/get-function#requestid). + [identifier](https://dev.fingerprint.com/reference/get-function#event_id). requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/EventsUpdateRequest' + $ref: '#/components/schemas/EventUpdate' responses: '200': description: OK. @@ -133,9 +146,7 @@ paths: schema: $ref: '#/components/schemas/ErrorResponse' '404': - description: >- - Not found. The request ID cannot be found in this application's - data. + description: Not found. The event Id cannot be found in this workspace's data. content: application/json: schema: @@ -146,29 +157,68 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - /events/search: + /events: get: tags: - Fingerprint operationId: searchEvents - summary: Get events via search + summary: Search events 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. + ## Search + + + The `/v4/events` endpoint provides a convenient way to search for past + events based on specific parameters. Typical use cases and queries + include: + + + - Searching for events associated with a single `visitor_id` within a + time range to get historical behavior of a visitor. + + - Searching for events associated with a single `linked_id` within a + time range to get all events associated with your internal account + identifier. + + - Excluding all bot traffic from the query (`good` and `bad` bots) + + + If you don't provide `start` or `end` parameters, the default search + range is the **last 7 days**. + + + ### Filtering events with the `suspect` flag + + + The `/v4/events` endpoint unlocks a powerful method for fraud protection + analytics. The `suspect` flag is exposed in all events where it was + previously set by the update API. - 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. + You can also apply the `suspect` query parameter as a filter to find all + potentially fraudulent activity that you previously marked as `suspect`. + This helps identify patterns of fraudulent behavior. + + + ### Environment scoping + + + If you use a secret key that is scoped to an environment, you will only + get events associated with the same environment. With a workspace-scoped + environment, you will get events from all environments. + + + Smart Signals not activated for your workspace or are not included in + the response. parameters: - name: limit in: query - required: true + required: false schema: type: integer format: int32 minimum: 1 + maximum: 100 + default: 10 example: 10 description: | Limit the number of events returned. @@ -177,24 +227,22 @@ paths: schema: type: string description: > - Use `pagination_key` to get the next page of results. + Use `pagination_key` to get the next page of results. - When more results are available (e.g., you requested up to 200 - results for your search using `limit`, but there are more than 200 - events total matching your request), the `paginationKey` top-level - attribute is added to the response. The key corresponds to the - `timestamp` of the last returned event. In the following request, - use that value in the `pagination_key` parameter to get the next - page of results: + When more results are available (e.g., you requested up to 100 + results for your query using `limit`, but there are more than 100 + events total matching your request), the `pagination_key` field is + added to the response. The key corresponds to the `timestamp` of the + last returned event. In the following request, use that value in the + `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET - api-base-url/events/search?limit=200` + api-base-url/events?limit=100` - 2. Use `response.paginationKey` to get the next page of results: - `GET - api-base-url/events/search?limit=200&pagination_key=1740815825085` + 2. Use `response.pagination_key` to get the next page of results: + `GET api-base-url/events?limit=100&pagination_key=1740815825085` - name: visitor_id in: query schema: @@ -202,7 +250,7 @@ paths: description: > Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) - issued by Fingerprint Pro. + issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. - name: bot @@ -215,39 +263,60 @@ paths: - bad - none description: > - Filter events by the Bot Detection result, specifically: + Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. - > Note: When using this parameter, only events with the - `products.botd.data.bot.result` property set to a valid value are - returned. Events without a `products.botd` Smart Signal result are - left out of the response. + > Note: When using this parameter, only events with the `botd.bot` + property set to a valid value are returned. Events without a `botd` + Smart Signal result are left out of the response. - 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) + Filter events by IP address or IP range (if CIDR notation is used). + If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is + assumed. + + Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 + - name: asn + in: query + schema: + type: string + description: > + Filter events by the ASN associated with the event's IP address. - All ip_address filters must use CIDR notation, for example, - 10.0.0.0/24, 192.168.0.1/32 + This corresponds to the `ip_info.(v4|v6).asn` property in the + response. - name: linked_id in: query schema: type: string description: > - Filter events by your custom identifier. + Filter events by your custom identifier. You can use [linked - IDs](https://dev.fingerprint.com/reference/get-function#linkedid) to + 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 + 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: url + in: query + schema: + type: string + description: | + Filter events by the URL (`url` property) associated with the event. + - name: origin + in: query + schema: + type: string + description: > + Filter events by the origin field of the event. Origin could be the + website domain or mobile app bundle ID (eg: com.foo.bar) - name: start in: query schema: @@ -276,7 +345,7 @@ paths: type: boolean description: > Filter events previously tagged as suspicious via the [Update - API](https://dev.fingerprint.com/reference/updateevent). + API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events @@ -286,143 +355,135 @@ paths: schema: type: boolean description: > - Filter events by VPN Detection result. + Filter events by VPN Detection result. - > Note: When using this parameter, only events with the - `products.vpn.data.result` property set to `true` or `false` are - returned. Events without a `products.vpn` Smart Signal result are - left out of the response. + > Note: When using this parameter, only events with the `vpn` + property set to `true` or `false` are returned. Events without a + `vpn` Smart Signal result are left out of the response. - name: virtual_machine in: query schema: type: boolean description: > - Filter events by Virtual Machine Detection result. + Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the - `products.virtualMachine.data.result` property set to `true` or - `false` are returned. Events without a `products.virtualMachine` - Smart Signal result are left out of the response. + `virtual_machine` property set to `true` or `false` are returned. + Events without a `virtual_machine` Smart Signal result are left out + of the response. - name: tampering in: query schema: type: boolean description: > - Filter events by Tampering Detection result. + Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the - `products.tampering.data.result` property set to `true` or `false` - are returned. Events without a `products.tampering` Smart Signal - result are left out of the response. + `tampering.result` property set to `true` or `false` are returned. + Events without a `tampering` Smart Signal result are left out of the + response. - name: anti_detect_browser in: query schema: type: boolean description: > - Filter events by Anti-detect Browser Detection result. + Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the - `products.tampering.data.antiDetectBrowser` property set to `true` - or `false` are returned. Events without a `products.tampering` Smart - Signal result are left out of the response. + `tampering.anti_detect_browser` property set to `true` or `false` + are returned. Events without a `tampering` Smart Signal result are + left out of the response. - name: incognito in: query schema: type: boolean description: > - Filter events by Browser Incognito Detection result. + Filter events by Browser Incognito Detection result. - > Note: When using this parameter, only events with the - `products.incognito.data.result` property set to `true` or `false` - are returned. Events without a `products.incognito` Smart Signal - result are left out of the response. + > Note: When using this parameter, only events with the `incognito` + property set to `true` or `false` are returned. Events without an + `incognito` Smart Signal result are left out of the response. - name: privacy_settings in: query schema: type: boolean description: > - Filter events by Privacy Settings Detection result. + Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the - `products.privacySettings.data.result` property set to `true` or - `false` are returned. Events without a `products.privacySettings` - Smart Signal result are left out of the response. + `privacy_settings` property set to `true` or `false` are returned. + Events without a `privacy_settings` Smart Signal result are left out + of the response. - name: jailbroken in: query schema: type: boolean description: > - Filter events by Jailbroken Device Detection result. + Filter events by Jailbroken Device Detection result. - > Note: When using this parameter, only events with the - `products.jailbroken.data.result` property set to `true` or `false` - are returned. Events without a `products.jailbroken` Smart Signal - result are left out of the response. + > Note: When using this parameter, only events with the `jailbroken` + property set to `true` or `false` are returned. Events without a + `jailbroken` Smart Signal result are left out of the response. - name: frida in: query schema: type: boolean description: > - Filter events by Frida Detection result. + Filter events by Frida Detection result. - > Note: When using this parameter, only events with the - `products.frida.data.result` property set to `true` or `false` are - returned. Events without a `products.frida` Smart Signal result are - left out of the response. + > Note: When using this parameter, only events with the `frida` + property set to `true` or `false` are returned. Events without a + `frida` Smart Signal result are left out of the response. - name: factory_reset in: query schema: type: boolean description: > - Filter events by Factory Reset Detection result. + Filter events by Factory Reset Detection result. - > Note: When using this parameter, only events with the - `products.factoryReset.data.result` property set to `true` or - `false` are returned. Events without a `products.factoryReset` Smart - Signal result are left out of the response. + > Note: When using this parameter, only events with a + `factory_reset` time. Events without a `factory_reset` Smart Signal + result are left out of the response. - name: cloned_app in: query schema: type: boolean description: > - Filter events by Cloned App Detection result. + Filter events by Cloned App Detection result. - > Note: When using this parameter, only events with the - `products.clonedApp.data.result` property set to `true` or `false` - are returned. Events without a `products.clonedApp` Smart Signal - result are left out of the response. + > Note: When using this parameter, only events with the `cloned_app` + property set to `true` or `false` are returned. Events without a + `cloned_app` Smart Signal result are left out of the response. - name: emulator in: query schema: type: boolean description: > - Filter events by Android Emulator Detection result. + Filter events by Android Emulator Detection result. - > Note: When using this parameter, only events with the - `products.emulator.data.result` property set to `true` or `false` - are returned. Events without a `products.emulator` Smart Signal - result are left out of the response. + > Note: When using this parameter, only events with the `emulator` + property set to `true` or `false` are returned. Events without an + `emulator` Smart Signal result are left out of the response. - name: root_apps in: query schema: type: boolean description: > - Filter events by Rooted Device Detection result. + Filter events by Rooted Device Detection result. - > Note: When using this parameter, only events with the - `products.rootApps.data.result` property set to `true` or `false` - are returned. Events without a `products.rootApps` Smart Signal - result are left out of the response. + > Note: When using this parameter, only events with the `root_apps` + property set to `true` or `false` are returned. Events without a + `root_apps` Smart Signal result are left out of the response. - name: vpn_confidence in: query schema: type: string enum: - - high + - high, - medium - low description: > - Filter events by VPN Detection result confidence level. + Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. @@ -431,9 +492,8 @@ paths: `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the - `products.vpn.data.confidence` property set to a valid value are - returned. Events without a `products.vpn` Smart Signal result are - left out of the response. + `vpn.confidence` property set to a valid value are returned. Events + without a `vpn` Smart Signal result are left out of the response. - name: min_suspect_score in: query schema: @@ -444,33 +504,9 @@ paths: threshold. > Note: When using this parameter, only events where the - `products.suspectScore.data.result` property set to a value - exceeding your threshold are returned. Events without a - `products.suspectScore` Smart Signal result are left out of the - response. - - name: ip_blocklist - in: query - schema: - type: boolean - description: > - Filter events by IP Blocklist Detection result. - - > Note: When using this parameter, only events with the - `products.ipBlocklist.data.result` property set to `true` or `false` - are returned. Events without a `products.ipBlocklist` Smart Signal - result are left out of the response. - - name: datacenter - in: query - schema: - type: boolean - description: > - Filter events by Datacenter Detection result. - - > Note: When using this parameter, only events with the - `products.ipInfo.data.v4.datacenter.result` or - `products.ipInfo.data.v6.datacenter.result` property set to `true` - or `false` are returned. Events without a `products.ipInfo` Smart - Signal result are left out of the response. + `suspect_score` property set to a value exceeding your threshold are + returned. Events without a `suspect_score` Smart Signal result are + left out of the response. - name: developer_tools in: query schema: @@ -479,9 +515,9 @@ paths: Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the - `products.developerTools.data.result` property set to `true` or - `false` are returned. Events without a `products.developerTools` - Smart Signal result are left out of the response. + `developer_tools` property set to `true` or `false` are returned. + Events without a `developer_tools` Smart Signal result are left out + of the response. - name: location_spoofing in: query schema: @@ -490,9 +526,9 @@ paths: Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the - `products.locationSpoofing.data.result` property set to `true` or - `false` are returned. Events without a `products.locationSpoofing` - Smart Signal result are left out of the response. + `location_spoofing` property set to `true` or `false` are returned. + Events without a `location_spoofing` Smart Signal result are left + out of the response. - name: mitm_attack in: query schema: @@ -501,9 +537,9 @@ paths: Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the - `products.mitmAttack.data.result` property set to `true` or `false` - are returned. Events without a `products.mitmAttack` Smart Signal - result are left out of the response. + `mitm_attack` property set to `true` or `false` are returned. Events + without a `mitm_attack` Smart Signal result are left out of the + response. - name: proxy in: query schema: @@ -511,17 +547,16 @@ paths: description: > Filter events by Proxy detection result. - > Note: When using this parameter, only events with the - `products.proxy.data.result` property set to `true` or `false` are - returned. Events without a `products.proxy` Smart Signal result are - left out of the response. + > Note: When using this parameter, only events with the `proxy` + property set to `true` or `false` are returned. Events without a + `proxy` Smart Signal result are left out of the response. - name: sdk_version in: query schema: type: string description: > Filter events by a specific SDK version associated with the - identification event. Example: `3.11.14` + identification event (`sdk.version` property). Example: `3.11.14` - name: sdk_platform in: query schema: @@ -532,24 +567,24 @@ paths: - ios description: > Filter events by the SDK Platform associated with the identification - event. + event (`sdk.platform` property) . - `js` - JavaScript agent (Web). + `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. - name: environment in: query - description: | - Filter for events by providing one or more environment IDs. + description: > + Filter for events by providing one or more environment IDs + (`environment_id` property). required: false schema: type: array items: type: string style: form - explode: true - name: proximity_id in: query schema: @@ -558,38 +593,26 @@ paths: Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the - `products.proximity.id` property matching the provided ID are - returned. Events without a `products.proximity` result are left out - of the response. - - name: proximity_precision_radius + `proximity.id` property matching the provided ID are returned. + Events without a `proximity` result are left out of the response. + - name: total_hits in: query schema: type: integer - format: int32 - enum: - - 10 - - 25 - - 65 - - 175 - - 450 - - 1200 - - 3300 - - 8500 - - 22500 + format: int64 + minimum: 1 + maximum: 1000 description: > - Filter events by Proximity Radius. - - > Note: When using this parameter, only events with the - `products.proximity.precisionRadius` property set to a valid value - are returned. Events without a `products.proximity` result are left - out of the response. + When set, the response will include a `total_hits` property with a + count of total query matches across all pages, up to the specified + limit. responses: '200': description: Events matching the filter(s). content: application/json: schema: - $ref: '#/components/schemas/SearchEventsResponse' + $ref: '#/components/schemas/EventSearch' '400': description: >- Bad request. One or more supplied search parameters are invalid, or @@ -604,162 +627,13 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - /visitors/{visitor_id}: - get: - tags: - - Fingerprint - operationId: getVisits - summary: Get visits by visitor ID - description: > - Get a history of visits (identification events) for a specific - `visitorId`. Use the `visitorId` as a URL path parameter. - - Only information from the _Identification_ product is returned. - - - #### Headers - - - * `Retry-After` — Present in case of `429 Too many requests`. Indicates - how long you should wait before making a follow-up request. The value is - non-negative decimal integer indicating the seconds to delay after the - response is received. - x-flatten-optional-params: true - parameters: - - name: visitor_id - in: path - required: true - schema: - type: string - description: >- - Unique [visitor - identifier](https://dev.fingerprint.com/reference/get-function#visitorid) - issued by Fingerprint Pro. - - name: request_id - in: query - schema: - type: string - description: > - Filter visits by `requestId`. - - - Every identification request has a unique identifier associated with - it called `requestId`. This identifier is returned to the client in - the identification - [result](https://dev.fingerprint.com/reference/get-function#requestid). - When you filter visits by `requestId`, only one visit will be - returned. - x-go-skip-pointer: true - - name: linked_id - in: query - schema: - type: string - description: > - Filter visits by your custom identifier. - - - You can use - [`linkedId`](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. - x-go-skip-pointer: true - - name: limit - in: query - schema: - type: integer - format: int32 - minimum: 0 - description: > - Limit scanned results. - - - For performance reasons, the API first scans some number of events - before filtering them. Use `limit` to specify how many events are - scanned before they are filtered by `requestId` or `linkedId`. - Results are always returned sorted by the timestamp (most recent - first). - - By default, the most recent 100 visits are scanned, the maximum is - 500. - x-go-skip-pointer: true - - name: paginationKey - in: query - schema: - type: string - description: > - Use `paginationKey` to get the next page of results. - - - When more results are available (e.g., you requested 200 results - using `limit` parameter, but a total of 600 results are available), - the `paginationKey` top-level attribute is added to the response. - The key corresponds to the `requestId` of the last returned event. - In the following request, use that value in the `paginationKey` - parameter to get the next page of results: - - - 1. First request, returning most recent 200 events: `GET - api-base-url/visitors/:visitorId?limit=200` - - 2. Use `response.paginationKey` to get the next page of results: - `GET - api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` - - - Pagination happens during scanning and before filtering, so you can - get less visits than the `limit` you specified with more available - on the next page. When there are no more results available for - scanning, the `paginationKey` attribute is not returned. - x-go-skip-pointer: true - - name: before - in: query - deprecated: true - schema: - type: integer - format: int64 - minimum: 0 - description: > - ⚠️ Deprecated pagination method, please use `paginationKey` instead. - Timestamp (in milliseconds since epoch) used to paginate results. - x-go-skip-pointer: true - responses: - '200': - description: OK. - content: - application/json: - schema: - $ref: '#/components/schemas/VisitorsGetResponse' - '400': - description: >- - Bad request. The visitor ID or query parameters are missing or in - the wrong format. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPlainResponse' - '403': - description: Forbidden. Access to this API is denied. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPlainResponse' - '429': - description: Too Many Requests. The request is throttled. - headers: - Retry-After: - description: >- - Indicates how many seconds you should wait before attempting the - next request. - schema: - type: integer - format: int32 - minimum: 0 + '500': + description: Workspace error. content: application/json: schema: - $ref: '#/components/schemas/ErrorPlainResponse' + $ref: '#/components/schemas/ErrorResponse' + /visitors/{visitor_id}: delete: tags: - Fingerprint @@ -769,6 +643,7 @@ paths: Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. + ### Which data is deleted? - Browser (or device) properties @@ -806,16 +681,11 @@ paths: - If the same browser (or device) requests to identify, it will receive a different visitor ID. - - If you request [`/events` - API](https://dev.fingerprint.com/reference/getevent) with a `request_id` + - If you request [`/v4/events` + API](https://dev.fingerprint.com/reference/getevent) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. - - If you request [`/visitors` - API](https://dev.fingerprint.com/reference/getvisits) for the deleted - visitor ID, the response will include identification requests that were - made outside of those 10 days. - ### Interested? @@ -862,243 +732,106 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - /related-visitors: - get: - tags: - - Fingerprint - operationId: getRelatedVisitors - summary: Get Related Visitors +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: string + description: >- + Add your Secret API Key to the Authorization header using the standard + Bearer format: `Authorization: Bearer ` + schemas: + EventId: + type: string description: > - Related visitors API lets you link web visits and in-app browser visits - that originated from the same mobile device. - - It searches the past 6 months of identification events to find the - visitor IDs that belong to the same mobile device as the given visitor - ID. - - - ⚠️ Please note that this API is not enabled by default and is billable - separately. ⚠️ - - - If you would like to use Related visitors API, please contact our - [support team](https://fingerprint.com/support). - - To learn more, see [Related visitors API - reference](https://dev.fingerprint.com/reference/related-visitors-api). - parameters: - - name: visitor_id - in: query - required: true - schema: + Unique identifier of the user's request. The first portion of the + event_id is a unix epoch milliseconds timestamp For example: + `1758130560902.8tRtrH` + Timestamp: + description: Timestamp of the event with millisecond precision in Unix time. + type: integer + format: int64 + LinkedId: + type: string + description: A customer-provided id that was sent with the request. + EnvironmentId: + type: string + description: | + Environment Id of the event. For example: `ae_47abaca3db2c7c43` + Suspect: + type: boolean + description: >- + Field is `true` if you have previously set the `suspect` flag for this + event using the [Server API Update event + endpoint](https://dev.fingerprint.com/reference/updateevent). + Integration: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the specific integration, e.g. "fingerprint-pro-react". + version: + type: string + description: The version of the specific integration, e.g. "3.11.10". + subintegration: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the specific subintegration, e.g. "preact". + version: + type: string + description: The version of the specific subintegration, e.g. "10.21.0". + SDK: + type: object + description: Contains information about the SDK used to perform the request. + additionalProperties: false + required: + - platform + - version + properties: + platform: + type: string + enum: + - js + - android + - ios + - unknown + description: Platform of the SDK used for the identification request. + version: + type: string + description: > + Version string of the SDK used for the identification request. For + example: `"3.12.1"` + integrations: + type: array + items: + $ref: '#/components/schemas/Integration' + Replayed: + type: boolean + description: > + `true` if we determined that this payload was replayed, `false` + otherwise. + TriggeredBy: + type: array + description: The rule(s) associated with triggering the webhook via rule engine. + items: + type: object + additionalProperties: false + required: + - id + - name + - description + properties: + id: + type: string + name: + type: string + description: type: string - description: >- - The [visitor - ID](https://dev.fingerprint.com/reference/get-function#visitorid) - for which you want to find the other visitor IDs that originated - from the same mobile device. - responses: - '200': - description: OK. - content: - application/json: - schema: - $ref: '#/components/schemas/RelatedVisitorsResponse' - '400': - description: >- - Bad request. The visitor ID parameter is missing or in the wrong - format. - 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' - '404': - description: >- - Not found. The visitor ID cannot be found in this application's - data. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '429': - description: Too Many Requests. The request is throttled. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /webhook: - trace: - summary: Dummy path to describe webhook format. - tags: - - Fingerprint - description: >- - Fake path to describe webhook format. More information about webhooks - can be found in the - [documentation](https://dev.fingerprint.com/docs/webhooks) - x-flatten-optional-params: true - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Webhook' - responses: - default: - description: Dummy for the schema - callbacks: - webhook: - webhook: - post: - summary: Webhook example - description: >- - You can use HTTP basic authentication and set up credentials in - your [Fingerprint - account](https://dashboard.fingerprint.com/login) - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Webhook' - responses: - default: - description: The server doesn't validate the answer. -components: - securitySchemes: - ApiKeyHeader: - type: apiKey - in: header - name: Auth-API-Key - ApiKeyQuery: - type: apiKey - in: query - name: api_key - schemas: - BrowserDetails: - type: object - additionalProperties: false - required: - - browserName - - browserFullVersion - - browserMajorVersion - - os - - osVersion - - device - - userAgent - properties: - browserName: - type: string - browserMajorVersion: - type: string - browserFullVersion: - type: string - os: - type: string - osVersion: - type: string - device: - type: string - userAgent: - type: string - GeolocationCity: - type: object - additionalProperties: false - required: - - name - properties: - name: - type: string - GeolocationCountry: - type: object - additionalProperties: false - required: - - code - - name - properties: - code: - type: string - minLength: 2 - maxLength: 2 - name: - type: string - GeolocationContinent: - type: object - additionalProperties: false - required: - - code - - name - properties: - code: - type: string - minLength: 2 - maxLength: 2 - name: - type: string - GeolocationSubdivision: - type: object - additionalProperties: false - required: - - isoCode - - name - properties: - isoCode: - type: string - name: - type: string - GeolocationSubdivisions: - type: array - items: - $ref: '#/components/schemas/GeolocationSubdivision' - DeprecatedGeolocation: - deprecated: true - type: object - description: >- - This field is **deprecated** and will not return a result for - **applications created after January 23rd, 2024**. Please use the [IP - Geolocation Smart - signal](https://dev.fingerprint.com/docs/smart-signals-overview#ip-geolocation) - for geolocation information. - additionalProperties: false - properties: - accuracyRadius: - type: integer - minimum: 0 - description: >- - The IP address is likely to be within this radius (in km) of the - specified location. - latitude: - type: number - format: double - minimum: -90 - maximum: 90 - longitude: - type: number - format: double - minimum: -180 - maximum: 180 - postalCode: - type: string - timezone: - type: string - format: timezone - city: - $ref: '#/components/schemas/GeolocationCity' - country: - $ref: '#/components/schemas/GeolocationCountry' - continent: - $ref: '#/components/schemas/GeolocationContinent' - subdivisions: - $ref: '#/components/schemas/GeolocationSubdivisions' - Tag: - type: object - description: >- - A customer-provided value or an object that was sent with identification - request. - additionalProperties: true IdentificationConfidence: type: object additionalProperties: false @@ -1113,1076 +846,143 @@ components: description: >- The confidence score is a floating-point number between 0 and 1 that represents the probability of accurate identification. - revision: + version: type: string description: >- - The revision name of the method used to calculate the Confidence + The version name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method. comment: type: string - IdentificationSeenAt: - type: object - additionalProperties: false - required: - - global - - subscription - properties: - global: - type: string - nullable: true - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05.999Z07:00 - subscription: - type: string - nullable: true - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05.999Z07:00 - RawDeviceAttributeError: - type: object - additionalProperties: false - properties: - name: - type: string - message: - type: string - RawDeviceAttribute: - type: object - additionalProperties: false - properties: - value: - title: value - error: - $ref: '#/components/schemas/RawDeviceAttributeError' - RawDeviceAttributes: - type: object - description: > - It includes 35+ raw browser identification attributes to provide - Fingerprint users with even more information than our standard visitor - ID provides. This enables Fingerprint users to not have to run our - open-source product in conjunction with Fingerprint Pro Plus and - Enterprise to get those additional attributes. - - Warning: The raw signals data can change at any moment as we improve the - product. We cannot guarantee the internal shape of raw device attributes - to be stable, so typical semantic versioning rules do not apply here. - Use this data with caution without assuming a specific structure beyond - the generic type provided here. - additionalProperties: - $ref: '#/components/schemas/RawDeviceAttribute' - SDK: - type: object - description: Contains information about the SDK used to perform the request. - additionalProperties: false - required: - - platform - - version - properties: - platform: - type: string - description: Platform of the SDK. - version: - type: string - description: SDK version string. Identification: type: object additionalProperties: false required: - - visitorId - - requestId - - browserDetails - - incognito - - ip - - timestamp - - time - - url - - tag - - visitorFound - - firstSeenAt - - lastSeenAt - - replayed + - visitor_id + - visitor_found properties: - visitorId: + visitor_id: type: string description: >- String of 20 characters that uniquely identifies the visitor's browser or mobile device. - requestId: - type: string - description: Unique identifier of the user's request. - browserDetails: - $ref: '#/components/schemas/BrowserDetails' - incognito: - description: Flag if user used incognito session. - type: boolean - ip: - type: string - description: IP address of the requesting browser or bot. - ipLocation: - $ref: '#/components/schemas/DeprecatedGeolocation' - linkedId: - type: string - description: A customer-provided id that was sent with the request. - suspect: - description: >- - Field is `true` if you have previously set the `suspect` flag for - this event using the [Server API Update event - endpoint](https://dev.fingerprint.com/reference/updateevent). - type: boolean - timestamp: - description: Timestamp of the event with millisecond precision in Unix time. - type: integer - format: int64 - time: - type: string - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05Z07:00 - description: >- - Time expressed according to ISO 8601 in UTC format, when the request - from the JS agent was made. We recommend to treat requests that are - older than 2 minutes as malicious. Otherwise, request replay attacks - are possible. - url: - type: string - description: Page URL from which the request was sent. - tag: - $ref: '#/components/schemas/Tag' confidence: $ref: '#/components/schemas/IdentificationConfidence' - visitorFound: + visitor_found: type: boolean description: Attribute represents if a visitor had been identified before. - firstSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - lastSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - components: - $ref: '#/components/schemas/RawDeviceAttributes' - replayed: - type: boolean + first_seen_at: + type: integer + format: int64 description: > - `true` if we determined that this payload was replayed, `false` - otherwise. - sdk: - $ref: '#/components/schemas/SDK' - environmentId: - type: string - description: Environment ID associated with the event - ErrorCode: - type: string - enum: - - RequestCannotBeParsed - - TokenRequired - - TokenNotFound - - SubscriptionNotActive - - WrongRegion - - FeatureNotEnabled - - RequestNotFound - - VisitorNotFound - - TooManyRequests - - 429 Too Many Requests - - StateNotReady - - Failed - description: | - Error code: - * `RequestCannotBeParsed` - the query parameters or JSON payload contains some errors - that prevented us from parsing it (wrong type/surpassed limits). - * `TokenRequired` - `Auth-API-Key` header is missing or empty. - * `TokenNotFound` - no Fingerprint application found for specified secret key. - * `SubscriptionNotActive` - Fingerprint application is not active. - * `WrongRegion` - server and application region differ. - * `FeatureNotEnabled` - this feature (for example, Delete API) is not enabled for your application. - * `RequestNotFound` - the specified request ID was not found. It never existed, expired, or it has been deleted. - * `VisitorNotFound` - The specified visitor ID was not found. It never existed or it may have already been deleted. - * `TooManyRequests` - the limit on secret API key requests per second has been exceeded. - * `429 Too Many Requests` - the limit on secret API key requests per second has been exceeded. - * `StateNotReady` - The event specified with request id is - not ready for updates yet. Try again. - This error happens in rare cases when update API is called immediately - after receiving the request id on the client. In case you need to send - information right away, we recommend using the JS agent API instead. - * `Failed` - internal server error. - Error: - type: object - additionalProperties: false - required: - - code - - message - properties: - code: - $ref: '#/components/schemas/ErrorCode' - message: - type: string - ProductIdentification: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Identification' - error: - $ref: '#/components/schemas/Error' - BotdBotResult: - type: string - enum: - - notDetected - - good - - bad - description: | - Bot detection result: - * `notDetected` - the visitor is not a bot - * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on - * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on - BotdBot: - type: object - description: Stores bot detection result - additionalProperties: false - required: - - result - properties: - result: - $ref: '#/components/schemas/BotdBotResult' - type: - type: string - Botd: + Unix epoch time milliseconds timestamp indicating the time at which + this visitor ID was first seen. example: `1758069706642` - + Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 + last_seen_at: + type: integer + format: int64 + description: > + Unix epoch time milliseconds timestamp indicating the time at which + this visitor ID was last seen. example: `1758069706642` - + Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 + SupplementaryIDHighRecall: type: object - description: Contains all the information from Bot Detection product additionalProperties: false + description: >- + A supplementary browser identifier that prioritizes coverage over + precision. The High Recall ID algorithm matches more generously, i.e., + this identifier will remain the same even when there are subtle + differences between two requests. This algorithm does not create as many + new visitor IDs as the standard algorithms do, but there could be an + increase in false-positive identification. required: - - bot - - url - - ip - - time - - userAgent - - requestId + - visitor_id + - visitor_found properties: - bot: - $ref: '#/components/schemas/BotdBot' - meta: - $ref: '#/components/schemas/Tag' - linkedId: - type: string - description: A customer-provided id that was sent with the request. - url: + visitor_id: type: string - description: Page URL from which the request was sent. - ip: - type: string - description: IP address of the requesting browser or bot. - time: - type: string - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05.999Z07:00 description: >- - Time in UTC when the request from the JS agent was made. We - recommend to treat requests that are older than 2 minutes as - malicious. Otherwise, request replay attacks are possible. - userAgent: - type: string - requestId: - type: string - description: Unique identifier of the user's request. - ProductBotd: + String of 20 characters that uniquely identifies the visitor's + browser or mobile device. + visitor_found: + type: boolean + description: Attribute represents if a visitor had been identified before. + confidence: + $ref: '#/components/schemas/IdentificationConfidence' + first_seen_at: + type: integer + format: int64 + description: > + Unix epoch time milliseconds timestamp indicating the time at which + this ID was first seen. example: `1758069706642` - Corresponding to + Wed Sep 17 2025 00:41:46 GMT+0000 + last_seen_at: + type: integer + format: int64 + description: > + Unix epoch time milliseconds timestamp indicating the time at which + this ID was last seen. example: `1758069706642` - Corresponding to + Wed Sep 17 2025 00:41:46 GMT+0000 + Tags: type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Botd' - error: - $ref: '#/components/schemas/Error' - RootApps: + description: >- + A customer-provided value or an object that was sent with the + identification request or updated later. + additionalProperties: true + Url: + type: string + description: > + Page URL from which the request was sent. For example + `https://example.com/` + BundleId: + type: string + description: > + Bundle Id of the iOS application integrated with the Fingerprint SDK for + the event. For example: `com.foo.app` + PackageName: + type: string + description: > + Package name of the Android application integrated with the Fingerprint + SDK for the event. For example: `com.foo.app` + IpAddress: + type: string + description: IP address of the requesting browser or bot. + UserAgent: + type: string + description: > + User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; + Win64; x64) ....` + ClientReferrer: + type: string + description: > + Client Referrer field corresponds to the `document.referrer` field + gathered during an identification request. The value is an empty string + if the user navigated to the page directly (not through a link, but, for + example, by using a bookmark) For example: + `https://example.com/blog/my-article` + BrowserDetails: type: object additionalProperties: false required: - - result - properties: - result: - type: boolean - description: > - Android specific root management apps detection. There are 2 - values: - * `true` - Root Management Apps detected (e.g. Magisk). - * `false` - No Root Management Apps detected or the client isn't Android. - ProductRootApps: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/RootApps' - error: - $ref: '#/components/schemas/Error' - Emulator: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: | - 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. - ProductEmulator: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Emulator' - error: - $ref: '#/components/schemas/Error' - Geolocation: - type: object - additionalProperties: false - properties: - accuracyRadius: - type: integer - minimum: 0 - description: >- - The IP address is likely to be within this radius (in km) of the - specified location. - latitude: - type: number - format: double - minimum: -90 - maximum: 90 - longitude: - type: number - format: double - minimum: -180 - maximum: 180 - postalCode: - type: string - timezone: - type: string - format: timezone - city: - $ref: '#/components/schemas/GeolocationCity' - country: - $ref: '#/components/schemas/GeolocationCountry' - continent: - $ref: '#/components/schemas/GeolocationContinent' - subdivisions: - $ref: '#/components/schemas/GeolocationSubdivisions' - IPInfoASN: - type: object - additionalProperties: false - required: - - asn - - name - - network - properties: - asn: - type: string - name: - type: string - network: - type: string - IPInfoDataCenter: - type: object - additionalProperties: false - required: - - result - - name - properties: - result: - type: boolean - name: - type: string - IPInfoV4: - type: object - additionalProperties: false - required: - - address - - geolocation - properties: - address: - type: string - format: ipv4 - geolocation: - $ref: '#/components/schemas/Geolocation' - asn: - $ref: '#/components/schemas/IPInfoASN' - datacenter: - $ref: '#/components/schemas/IPInfoDataCenter' - IPInfoV6: - type: object - additionalProperties: false - required: - - address - - geolocation - properties: - address: - type: string - format: ipv6 - geolocation: - $ref: '#/components/schemas/Geolocation' - asn: - $ref: '#/components/schemas/IPInfoASN' - datacenter: - $ref: '#/components/schemas/IPInfoDataCenter' - IPInfo: - type: object - description: >- - Details about the request IP address. Has separate fields for v4 and v6 - IP address versions. - additionalProperties: false - properties: - v4: - $ref: '#/components/schemas/IPInfoV4' - v6: - $ref: '#/components/schemas/IPInfoV6' - ProductIPInfo: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/IPInfo' - error: - $ref: '#/components/schemas/Error' - IPBlocklistDetails: - type: object - additionalProperties: false - required: - - emailSpam - - attackSource - properties: - emailSpam: - type: boolean - description: IP address was part of a known email spam attack (SMTP). - attackSource: - type: boolean - description: IP address was part of a known network attack (SSH/HTTPS). - IPBlocklist: - type: object - additionalProperties: false - required: - - result - - details - properties: - result: - type: boolean - description: > - `true` if request IP address is part of any database that we use to - search for known malicious actors, `false` otherwise. - details: - $ref: '#/components/schemas/IPBlocklistDetails' - ProductIPBlocklist: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/IPBlocklist' - error: - $ref: '#/components/schemas/Error' - Tor: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if the request IP address is a known tor exit node, `false` - otherwise. - ProductTor: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Tor' - error: - $ref: '#/components/schemas/Error' - VPNConfidence: - type: string - enum: - - low - - medium - - high - description: >- - A confidence rating for the VPN detection result — "low", "medium", or - "high". Depends on the combination of results returned from all VPN - detection methods. - VPNMethods: - type: object - additionalProperties: false - required: - - timezoneMismatch - - publicVPN - - auxiliaryMobile - - osMismatch - - relay - properties: - timezoneMismatch: - type: boolean - description: >- - The browser timezone doesn't match the timezone inferred from the - request IP address. - publicVPN: - type: boolean - description: >- - Request IP address is owned and used by a public VPN service - provider. - auxiliaryMobile: - type: boolean - description: >- - This method applies to mobile devices only. Indicates the result of - additional methods used to detect a VPN in mobile devices. - osMismatch: - type: boolean - description: >- - The browser runs on a different operating system than the operating - system inferred from the request network signature. - relay: - type: boolean - description: > - Request IP address belongs to a relay service provider, indicating - the use of relay services like [Apple Private - relay](https://support.apple.com/en-us/102602) or [Cloudflare - Warp](https://developers.cloudflare.com/warp-client/). - - - * Like VPNs, relay services anonymize the visitor's true IP address. - - * Unlike traditional VPNs, relay services don't let visitors spoof - their location by choosing an exit node in a different country. - - - This field allows you to differentiate VPN users and relay service - users in your fraud prevention logic. - VPN: - type: object - additionalProperties: false - required: - - result - - confidence - - originTimezone - - originCountry - - methods - properties: - result: - type: boolean - description: >- - VPN or other anonymizing service has been used when sending the - request. - confidence: - $ref: '#/components/schemas/VPNConfidence' - originTimezone: - type: string - description: Local timezone which is used in timezoneMismatch method. - originCountry: - type: string - description: >- - Country of the request (only for Android SDK version >= 2.4.0, ISO - 3166 format or unknown). - methods: - $ref: '#/components/schemas/VPNMethods' - ProductVPN: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/VPN' - error: - $ref: '#/components/schemas/Error' - ProxyConfidence: - type: string - enum: - - low - - medium - - high - description: | - Confidence level of the proxy detection. - If a proxy is not detected, confidence is "high". - If it's detected, can be "low", "medium", or "high". - ProxyDetails: - type: object - nullable: true - additionalProperties: false - description: Proxy detection details (present if proxy is detected) - required: - - proxyType - properties: - proxyType: - type: string - enum: - - residential - - data_center - description: > - Residential proxies use real user IP addresses to appear as - legitimate traffic, - - while data center proxies are public proxies hosted in data centers - lastSeenAt: - type: string - format: date-time - x-ogen-time-format: 2006-01-02T15:00:00.000Z - description: | - ISO 8601 formatted timestamp in UTC with hourly resolution - of when this IP was last seen as a proxy when available. - Proxy: - type: object - additionalProperties: false - required: - - result - - confidence - properties: - result: - type: boolean - description: > - IP address was used by a public proxy provider or belonged to a - known recent residential proxy - confidence: - $ref: '#/components/schemas/ProxyConfidence' - details: - $ref: '#/components/schemas/ProxyDetails' - ProductProxy: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Proxy' - error: - $ref: '#/components/schemas/Error' - Incognito: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if we detected incognito mode used in the browser, `false` - otherwise. - ProductIncognito: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Incognito' - error: - $ref: '#/components/schemas/Error' - Tampering: - type: object - additionalProperties: false - required: - - result - - anomalyScore - - antiDetectBrowser - properties: - result: - type: boolean - description: > - Indicates if an identification request from a browser or an Android - SDK has been tampered with. Not supported in the iOS SDK, is always - `false` for iOS requests. - * `true` - If the request meets either of the following conditions: - * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). - * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). - * `false` - If the request is considered genuine or was generated by the iOS SDK. - anomalyScore: - type: number - format: double - minimum: 0 - maximum: 1 - description: > - A score that indicates the extent of anomalous data in the request. - This field applies to requests originating from **both** browsers - and Android SDKs. - * Values above `0.5` indicate that the request has been tampered with. - * Values below `0.5` indicate that the request is genuine. - antiDetectBrowser: - type: boolean - description: > - Anti-detect browsers try to evade identification by masking or - manipulating their fingerprint to imitate legitimate browser - configurations. This field does not apply to requests originating - from mobile SDKs. - * `true` - The browser resembles a known anti-detect browser, for example, Incognition. - * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. - ProductTampering: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Tampering' - error: - $ref: '#/components/schemas/Error' - ClonedApp: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: | - 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. - ProductClonedApp: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/ClonedApp' - error: - $ref: '#/components/schemas/Error' - FactoryReset: - type: object - additionalProperties: false - required: - - time - - timestamp - properties: - time: - type: string - format: date-time - description: > - Indicates the time (in UTC) of the most recent factory reset that - happened on the **mobile device**. - - When a factory reset cannot be detected on the mobile device or when - the request is initiated from a browser, this field will correspond - to the *epoch* time (i.e 1 Jan 1970 UTC). - - See [Factory Reset - Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) - to learn more about this Smart Signal. - timestamp: - type: integer - format: int64 - description: > - This field is just another representation of the value in the `time` - field. - - The time of the most recent factory reset that happened on the - **mobile device** is expressed as Unix epoch time. - ProductFactoryReset: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/FactoryReset' - error: - $ref: '#/components/schemas/Error' - Jailbroken: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: | - iOS specific jailbreak detection. There are 2 values: - * `true` - Jailbreak detected. - * `false` - No signs of jailbreak or the client is not iOS. - ProductJailbroken: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Jailbroken' - error: - $ref: '#/components/schemas/Error' - Frida: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - [Frida](https://frida.re/docs/) detection for Android and iOS - devices. There are 2 values: - * `true` - Frida detected - * `false` - No signs of Frida or the client is not a mobile device. - ProductFrida: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Frida' - error: - $ref: '#/components/schemas/Error' - PrivacySettings: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if the request is from a privacy aware browser (e.g. Tor) or - from a browser in which fingerprinting is blocked. Otherwise - `false`. - ProductPrivacySettings: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/PrivacySettings' - error: - $ref: '#/components/schemas/Error' - VirtualMachine: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if the request came from a browser running inside a virtual - machine (e.g. VMWare), `false` otherwise. - ProductVirtualMachine: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/VirtualMachine' - error: - $ref: '#/components/schemas/Error' - ProductRawDeviceAttributes: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/RawDeviceAttributes' - error: - $ref: '#/components/schemas/Error' - HighActivity: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: Flag indicating if the request came from a high-activity visitor. - dailyRequests: - type: integer - format: int64 - minimum: 1 - description: Number of requests from the same visitor in the previous day. - ProductHighActivity: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/HighActivity' - error: - $ref: '#/components/schemas/Error' - LocationSpoofing: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: >- - Flag indicating whether the request came from a mobile device with - location spoofing enabled. - ProductLocationSpoofing: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/LocationSpoofing' - error: - $ref: '#/components/schemas/Error' - SuspectScore: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: integer - description: > - Suspect Score is an easy way to integrate Smart Signals into your - fraud protection work flow. It is a weighted representation of all - Smart Signals present in the payload that helps identify suspicious - activity. The value range is [0; S] where S is sum of all Smart - Signals weights. See more details here: - https://dev.fingerprint.com/docs/suspect-score - ProductSuspectScore: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/SuspectScore' - error: - $ref: '#/components/schemas/Error' - RemoteControl: - type: object - deprecated: true - description: | - This signal is deprecated. - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if the request came from a machine being remotely controlled - (e.g. TeamViewer), `false` otherwise. - ProductRemoteControl: - type: object - deprecated: true - description: | - This product is deprecated. - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/RemoteControl' - error: - $ref: '#/components/schemas/Error' - VelocityIntervals: - type: object - description: > - Is absent if the velocity data could not be generated for the visitor - ID. - additionalProperties: false - required: - - 5m - - 1h - properties: - 5m: - type: integer - 1h: - type: integer - 24h: - type: integer - description: > - The `24h` interval of `distinctIp`, `distinctLinkedId`, - `distinctCountry`, `distinctIpByLinkedId` and - `distinctVisitorIdByLinkedId` will be omitted if the number of - `events`` for the visitor ID in the last 24 hours - (`events.intervals.['24h']`) is higher than 20.000. - VelocityData: - type: object - additionalProperties: false - properties: - intervals: - $ref: '#/components/schemas/VelocityIntervals' - Velocity: - type: object - description: > - Sums key data points for a specific `visitorId`, `ipAddress` and - `linkedId` at three distinct time - - intervals: 5 minutes, 1 hour, and 24 hours as follows: - - - - Number of distinct IP addresses associated to the visitor ID. - - - Number of distinct linked IDs associated with the visitor ID. - - - Number of distinct countries associated with the visitor ID. - - - Number of identification events associated with the visitor ID. - - - Number of identification events associated with the detected IP - address. - - - Number of distinct IP addresses associated with the provided linked - ID. - - - Number of distinct visitor IDs associated with the provided linked ID. - - - The `24h` interval of `distinctIp`, `distinctLinkedId`, - `distinctCountry`, - - `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be - omitted - - if the number of `events` for the visitor ID in the last 24 - - hours (`events.intervals.['24h']`) is higher than 20.000. - additionalProperties: false - required: - - distinctIp - - distinctLinkedId - - distinctCountry - - events - - ipEvents - - distinctIpByLinkedId - - distinctVisitorIdByLinkedId - properties: - distinctIp: - $ref: '#/components/schemas/VelocityData' - distinctLinkedId: - $ref: '#/components/schemas/VelocityData' - distinctCountry: - $ref: '#/components/schemas/VelocityData' - events: - $ref: '#/components/schemas/VelocityData' - ipEvents: - $ref: '#/components/schemas/VelocityData' - distinctIpByLinkedId: - $ref: '#/components/schemas/VelocityData' - distinctVisitorIdByLinkedId: - $ref: '#/components/schemas/VelocityData' - ProductVelocity: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Velocity' - error: - $ref: '#/components/schemas/Error' - DeveloperTools: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - `true` if the browser is Chrome with DevTools open or Firefox with - Developer Tools open, `false` otherwise. - ProductDeveloperTools: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/DeveloperTools' - error: - $ref: '#/components/schemas/Error' - MitMAttack: - type: object - additionalProperties: false - required: - - result - properties: - result: - type: boolean - description: > - * `true` - When requests made from your users' mobile devices to - Fingerprint servers have been intercepted and potentially modified. - - * `false` - Otherwise or when the request originated from a browser. - - See [MitM Attack - Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) - to learn more about this Smart Signal. - ProductMitMAttack: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/MitMAttack' - error: - $ref: '#/components/schemas/Error' + - browser_name + - browser_full_version + - browser_major_version + - os + - os_version + - device + properties: + browser_name: + type: string + browser_major_version: + type: string + browser_full_version: + type: string + os: + type: string + os_version: + type: string + device: + type: string Proximity: type: object description: > @@ -2191,14 +991,14 @@ components: additionalProperties: false required: - id - - precisionRadius + - precision_radius - confidence properties: id: type: string description: | A stable privacy-preserving identifier for a given proximity zone. - precisionRadius: + precision_radius: type: integer format: int32 enum: @@ -2223,268 +1023,175 @@ components: true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. - ProductProximity: - type: object - additionalProperties: false - properties: - data: - $ref: '#/components/schemas/Proximity' - error: - $ref: '#/components/schemas/Error' - Products: - type: object - description: >- - Contains all information about the request identified by `requestId`, - depending on the pricing plan (Pro, Pro Plus, Enterprise) - additionalProperties: false - properties: - identification: - $ref: '#/components/schemas/ProductIdentification' - botd: - $ref: '#/components/schemas/ProductBotd' - rootApps: - $ref: '#/components/schemas/ProductRootApps' - emulator: - $ref: '#/components/schemas/ProductEmulator' - ipInfo: - $ref: '#/components/schemas/ProductIPInfo' - ipBlocklist: - $ref: '#/components/schemas/ProductIPBlocklist' - tor: - $ref: '#/components/schemas/ProductTor' - vpn: - $ref: '#/components/schemas/ProductVPN' - proxy: - $ref: '#/components/schemas/ProductProxy' - incognito: - $ref: '#/components/schemas/ProductIncognito' - tampering: - $ref: '#/components/schemas/ProductTampering' - clonedApp: - $ref: '#/components/schemas/ProductClonedApp' - factoryReset: - $ref: '#/components/schemas/ProductFactoryReset' - jailbroken: - $ref: '#/components/schemas/ProductJailbroken' - frida: - $ref: '#/components/schemas/ProductFrida' - privacySettings: - $ref: '#/components/schemas/ProductPrivacySettings' - virtualMachine: - $ref: '#/components/schemas/ProductVirtualMachine' - rawDeviceAttributes: - $ref: '#/components/schemas/ProductRawDeviceAttributes' - highActivity: - $ref: '#/components/schemas/ProductHighActivity' - locationSpoofing: - $ref: '#/components/schemas/ProductLocationSpoofing' - suspectScore: - $ref: '#/components/schemas/ProductSuspectScore' - remoteControl: - $ref: '#/components/schemas/ProductRemoteControl' - velocity: - $ref: '#/components/schemas/ProductVelocity' - developerTools: - $ref: '#/components/schemas/ProductDeveloperTools' - mitmAttack: - $ref: '#/components/schemas/ProductMitMAttack' - proximity: - $ref: '#/components/schemas/ProductProximity' - EventsGetResponse: - type: object - description: >- - Contains results from all activated products - Fingerprint Pro, Bot - Detection, and others. - additionalProperties: false - required: - - products - properties: - products: - $ref: '#/components/schemas/Products' - ErrorResponse: + BotResult: + type: string + enum: + - not_detected + - good + - bad + description: | + Bot detection result: + * `not_detected` - the visitor is not a bot + * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on + * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on + BotType: + type: string + description: | + Additional classification of the bot type if detected. + ClonedApp: + type: boolean + description: > + 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. + DeveloperTools: + type: boolean + description: > + `true` if the browser is Chrome with DevTools open or Firefox with + Developer Tools open, `false` otherwise. + Emulator: + type: boolean + description: > + 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. + FactoryReset: + type: integer + format: int64 + description: > + The time of the most recent factory reset that happened on the **mobile + device** is expressed as Unix epoch time. When a factory reset cannot be + detected on the mobile device or when the request is initiated from a + browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 + UTC) as a value of 0. See [Factory Reset + Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) + to learn more about this Smart Signal. + Frida: + type: boolean + description: > + [Frida](https://frida.re/docs/) detection for Android and iOS devices. + There are 2 values: + + * `true` - Frida detected + + * `false` - No signs of Frida or the client is not a mobile device. + IPBlockList: type: object additionalProperties: false - required: - - error - properties: - error: - $ref: '#/components/schemas/Error' - EventsUpdateRequest: - type: object properties: - linkedId: - type: string - description: LinkedID value to assign to the existing event - tag: - $ref: '#/components/schemas/Tag' - suspect: + email_spam: type: boolean - description: Suspect flag indicating observed suspicious or fraudulent event - x-go-force-pointer: true - SearchEventsResponse: + description: IP address was part of a known email spam attack (SMTP). + attack_source: + type: boolean + description: IP address was part of a known network attack (SSH/HTTPS). + tor_node: + type: boolean + description: IP address was part of known TOR network activity. + Geolocation: type: object - description: >- - Contains a list of all identification events matching the specified - search criteria. additionalProperties: false properties: - events: + accuracy_radius: + type: integer + minimum: 0 + description: >- + The IP address is likely to be within this radius (in km) of the + specified location. + latitude: + type: number + format: double + minimum: -90 + maximum: 90 + longitude: + type: number + format: double + minimum: -180 + maximum: 180 + postal_code: + type: string + timezone: + type: string + format: timezone + city_name: + type: string + country_code: + type: string + minLength: 2 + maxLength: 2 + country_name: + type: string + continent_code: + type: string + minLength: 2 + maxLength: 2 + continent_name: + type: string + subdivisions: type: array items: type: object - description: Device intelligence results for the identification event. + additionalProperties: false required: - - products + - iso_code + - name properties: - products: - $ref: '#/components/schemas/Products' - paginationKey: - type: string - description: >- - Use this value in the `pagination_key` parameter to request the next - page of search results. - Visit: + iso_code: + type: string + name: + type: string + IPInfoV4: type: object additionalProperties: false required: - - requestId - - browserDetails - - incognito - - ip - - timestamp - - time - - url - - tag - - visitorFound - - firstSeenAt - - lastSeenAt + - address properties: - requestId: + address: type: string - description: Unique identifier of the user's request. - browserDetails: - $ref: '#/components/schemas/BrowserDetails' - incognito: - type: boolean - description: Flag if user used incognito session. - ip: + format: ipv4 + geolocation: + $ref: '#/components/schemas/Geolocation' + asn: type: string - description: IP address of the requesting browser or bot. - ipLocation: - $ref: '#/components/schemas/DeprecatedGeolocation' - linkedId: + asn_name: type: string - description: A customer-provided id that was sent with the request. - timestamp: - type: integer - format: int64 - description: Timestamp of the event with millisecond precision in Unix time. - time: + asn_network: type: string - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05Z07:00 - description: >- - Time expressed according to ISO 8601 in UTC format, when the request - from the client agent was made. We recommend to treat requests that - are older than 2 minutes as malicious. Otherwise, request replay - attacks are possible. - url: + asn_type: type: string - description: Page URL from which the request was sent. - tag: - $ref: '#/components/schemas/Tag' - confidence: - $ref: '#/components/schemas/IdentificationConfidence' - visitorFound: + datacenter_result: type: boolean - description: Attribute represents if a visitor had been identified before. - firstSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - lastSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - components: - $ref: '#/components/schemas/RawDeviceAttributes' - VisitorsGetResponse: + datacenter_name: + type: string + IPInfoV6: type: object - description: >- - Pagination-related fields `lastTimestamp` and `paginationKey` are - included if you use a pagination parameter like `limit` or `before` and - there is more data available on the next page. additionalProperties: false required: - - visitorId - - visits + - address properties: - visitorId: + address: type: string - visits: - type: array - items: - $ref: '#/components/schemas/Visit' - lastTimestamp: - deprecated: true - type: integer - format: int64 - description: > - ⚠️ Deprecated paging attribute, please use `paginationKey` instead. - Timestamp of the last visit in the current page of results. - paginationKey: + format: ipv6 + geolocation: + $ref: '#/components/schemas/Geolocation' + asn: type: string - description: >- - Request ID of the last visit in the current page of results. Use - this value in the following request as the `paginationKey` parameter - to get the next page of results. - ErrorPlainResponse: - type: object - additionalProperties: false - required: - - error - properties: - error: + asn_name: type: string - RelatedVisitor: - type: object - additionalProperties: false - required: - - visitorId - properties: - visitorId: + asn_network: type: string - description: >- - Visitor ID of a browser that originates from the same mobile device - as the input visitor ID. - RelatedVisitorsResponse: - type: object - additionalProperties: false - required: - - relatedVisitors - properties: - relatedVisitors: - type: array - items: - $ref: '#/components/schemas/RelatedVisitor' - WebhookRootApps: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - Android specific root management apps detection. There are 2 - values: - * `true` - Root Management Apps detected (e.g. Magisk). - * `false` - No Root Management Apps detected or the client isn't Android. - WebhookEmulator: - type: object - additionalProperties: false - properties: - result: + asn_type: + type: string + datacenter_result: type: boolean - description: | - 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. - WebhookIPInfo: + datacenter_name: + type: string + IPInfo: type: object description: >- Details about the request IP address. Has separate fields for v4 and v6 @@ -2495,500 +1202,684 @@ components: $ref: '#/components/schemas/IPInfoV4' v6: $ref: '#/components/schemas/IPInfoV6' - WebhookIPBlocklist: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - `true` if request IP address is part of any database that we use to - search for known malicious actors, `false` otherwise. - details: - $ref: '#/components/schemas/IPBlocklistDetails' - WebhookTor: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - `true` if the request IP address is a known tor exit node, `false` - otherwise. - WebhookVPN: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: >- - VPN or other anonymizing service has been used when sending the - request. - confidence: - $ref: '#/components/schemas/VPNConfidence' - originTimezone: - type: string - description: Local timezone which is used in timezoneMismatch method. - originCountry: - type: string - description: >- - Country of the request (only for Android SDK version >= 2.4.0, ISO - 3166 format or unknown). - methods: - $ref: '#/components/schemas/VPNMethods' - WebhookProxy: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - IP address was used by a public proxy provider or belonged to a - known recent residential proxy - confidence: - $ref: '#/components/schemas/ProxyConfidence' - details: - $ref: '#/components/schemas/ProxyDetails' - WebhookTampering: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - Indicates if an identification request from a browser or an Android - SDK has been tampered with. Not supported in the iOS SDK, is always - `false` for iOS requests. - * `true` - If the request meets either of the following conditions: - * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). - * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). - * `false` - If the request is considered genuine or was generated by the iOS SDK. - anomalyScore: - type: number - format: double - minimum: 0 - maximum: 1 - description: > - A score that indicates the extent of anomalous data in the request. - This field applies to requests originating from **both** browsers - and Android SDKs. - * Values above `0.5` indicate that the request has been tampered with. - * Values below `0.5` indicate that the request is genuine. - antiDetectBrowser: - type: boolean - description: > - Anti-detect browsers try to evade identification by masking or - manipulating their fingerprint to imitate legitimate browser - configurations. This field does not apply to requests originating - from mobile SDKs. - * `true` - The browser resembles a known anti-detect browser, for example, Incognition. - * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. - WebhookClonedApp: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: | - 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. - WebhookFactoryReset: + Proxy: + type: boolean + description: > + IP address was used by a public proxy provider or belonged to a known + recent residential proxy + ProxyConfidence: + type: string + enum: + - low + - medium + - high + description: > + Confidence level of the proxy detection. If a proxy is not detected, + confidence is "high". If it's detected, can be "low", "medium", or + "high". + ProxyDetails: type: object additionalProperties: false + description: Proxy detection details (present if `proxy` is `true`) + required: + - proxy_type properties: - time: + proxy_type: type: string - format: date-time + enum: + - residential + - data_center description: > - Indicates the time (in UTC) of the most recent factory reset that - happened on the **mobile device**. - - When a factory reset cannot be detected on the mobile device or when - the request is initiated from a browser, this field will correspond - to the *epoch* time (i.e 1 Jan 1970 UTC). + Residential proxies use real user IP addresses to appear as + legitimate traffic, - See [Factory Reset - Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) - to learn more about this Smart Signal. - timestamp: + while data center proxies are public proxies hosted in data centers + last_seen_at: type: integer format: int64 description: > - This field is just another representation of the value in the `time` - field. + Unix millisecond timestamp with hourly resolution of when this IP + was last seen as a proxy + Incognito: + type: boolean + description: > + `true` if we detected incognito mode used in the browser, `false` + otherwise. + Jailbroken: + type: boolean + description: | + iOS specific jailbreak detection. There are 2 values: + * `true` - Jailbreak detected. + * `false` - No signs of jailbreak or the client is not iOS. + LocationSpoofing: + type: boolean + description: >- + Flag indicating whether the request came from a mobile device with + location spoofing enabled. + MitMAttack: + type: boolean + description: > + * `true` - When requests made from your users' mobile devices to + Fingerprint servers have been intercepted and potentially modified. + + * `false` - Otherwise or when the request originated from a browser. + + See [MitM Attack + Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) + to learn more about this Smart Signal. + PrivacySettings: + type: boolean + description: > + `true` if the request is from a privacy aware browser (e.g. Tor) or from + a browser in which fingerprinting is blocked. Otherwise `false`. + RootApps: + type: boolean + description: > + Android specific root management apps detection. There are 2 values: + + * `true` - Root Management Apps detected (e.g. Magisk). - The time of the most recent factory reset that happened on the - **mobile device** is expressed as Unix epoch time. - WebhookJailbroken: + * `false` - No Root Management Apps detected or the client isn't + Android. + SuspectScore: + type: integer + description: > + Suspect Score is an easy way to integrate Smart Signals into your fraud + protection work flow. It is a weighted representation of all Smart + Signals present in the payload that helps identify suspicious activity. + The value range is [0; S] where S is sum of all Smart Signals weights. + See more details here: https://dev.fingerprint.com/docs/suspect-score + Tampering: + type: boolean + description: > + Flag indicating browser tampering was detected. This happens when + either: + * There are inconsistencies in the browser configuration that cross internal tampering thresholds (see `tampering_details.anomaly_score`). + * The browser signature resembles an "anti-detect" browser specifically designed to evade fingerprinting (see `tampering_details.anti_detect_browser`). + TamperingDetails: type: object additionalProperties: false properties: - result: - type: boolean + anomaly_score: + type: number + format: double + minimum: 0 + maximum: 1 + x-platforms: + - android + - ios + - browser description: | - iOS specific jailbreak detection. There are 2 values: - * `true` - Jailbreak detected. - * `false` - No signs of jailbreak or the client is not iOS. - WebhookFrida: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - [Frida](https://frida.re/docs/) detection for Android and iOS - devices. There are 2 values: - * `true` - Frida detected - * `false` - No signs of Frida or the client is not a mobile device. - WebhookPrivacySettings: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: > - `true` if the request is from a privacy aware browser (e.g. Tor) or - from a browser in which fingerprinting is blocked. Otherwise - `false`. - WebhookVirtualMachine: - type: object - additionalProperties: false - properties: - result: + Confidence score (`0.0 - 1.0`) for tampering detection: + * Values above `0.5` indicate tampering. + * Values below `0.5` indicate genuine browsers. + anti_detect_browser: type: boolean + x-platforms: + - browser description: > - `true` if the request came from a browser running inside a virtual - machine (e.g. VMWare), `false` otherwise. - WebhookRawDeviceAttributes: + True if the identified browser resembles an "anti-detect" browser, + such as Incognition, which attempts to evade identification by + manipulating its fingerprint. + VelocityData: type: object description: > - It includes 35+ raw browser identification attributes to provide - Fingerprint users with even more information than our standard visitor - ID provides. This enables Fingerprint users to not have to run our - open-source product in conjunction with Fingerprint Pro Plus and - Enterprise to get those additional attributes. - - Warning: The raw signals data can change at any moment as we improve the - product. We cannot guarantee the internal shape of raw device attributes - to be stable, so typical semantic versioning rules do not apply here. - Use this data with caution without assuming a specific structure beyond - the generic type provided here. - additionalProperties: - $ref: '#/components/schemas/RawDeviceAttribute' - WebhookHighActivity: - type: object + Is absent if the velocity data could not be generated for the visitor + Id. additionalProperties: false required: - - result + - 5_minutes + - 1_hour properties: - result: - type: boolean - description: Flag indicating if the request came from a high-activity visitor. - dailyRequests: + 5_minutes: type: integer - format: int64 - minimum: 1 - description: Number of requests from the same visitor in the previous day. - WebhookLocationSpoofing: - type: object - additionalProperties: false - properties: - result: - type: boolean - description: >- - Flag indicating whether the request came from a mobile device with - location spoofing enabled. - WebhookSuspectScore: - type: object - additionalProperties: false - properties: - result: + description: > + Count for the last 5 minutes of velocity data, from the time of the + event. + 1_hour: type: integer description: > - Suspect Score is an easy way to integrate Smart Signals into your - fraud protection work flow. It is a weighted representation of all - Smart Signals present in the payload that helps identify suspicious - activity. The value range is [0; S] where S is sum of all Smart - Signals weights. See more details here: - https://dev.fingerprint.com/docs/suspect-score - WebhookRemoteControl: - type: object - deprecated: true - description: | - This signal is deprecated. - additionalProperties: false - properties: - result: - type: boolean + Count for the last 1 hour of velocity data, from the time of the + event. + 24_hours: + type: integer description: > - `true` if the request came from a machine being remotely controlled - (e.g. TeamViewer), `false` otherwise. - WebhookVelocity: + The `24_hours` interval of `distinct_ip`, `distinct_linked_id`, + `distinct_country`, `distinct_ip_by_linked_id` and + `distinct_visitor_id_by_linked_id` will be omitted if the number of + `events` for the visitor Id in the last 24 hours + (`events.['24_hours']`) is higher than 20.000. + Velocity: type: object description: > - Sums key data points for a specific `visitorId`, `ipAddress` and - `linkedId` at three distinct time + Sums key data points for a specific `visitor_id`, `ip_address` and + `linked_id` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - - Number of distinct IP addresses associated to the visitor ID. + - Number of distinct IP addresses associated to the visitor Id. - - Number of distinct linked IDs associated with the visitor ID. + - Number of distinct linked Ids associated with the visitor Id. - - Number of distinct countries associated with the visitor ID. + - Number of distinct countries associated with the visitor Id. - - Number of identification events associated with the visitor ID. + - Number of identification events associated with the visitor Id. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked - ID. + Id. + + - Number of distinct visitor Ids associated with the provided linked Id. + + + The `24h` interval of `distinct_ip`, `distinct_linked_id`, + `distinct_country`, - - Number of distinct visitor IDs associated with the provided linked ID. + `distinct_ip_by_linked_id` and `distinct_visitor_id_by_linked_id` will + be omitted + if the number of `events` for the visitor Id in the last 24 - The `24h` interval of `distinctIp`, `distinctLinkedId`, - `distinctCountry`, + hours (`events.['24h']`) is higher than 20.000. - `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be - omitted - if the number of `events` for the visitor ID in the last 24 + All will not necessarily be returned in a response, some may be omitted + if the - hours (`events.intervals.['24h']`) is higher than 20.000. + associated event does not have the required data, such as a linked_id. additionalProperties: false properties: - distinctIp: + distinct_ip: $ref: '#/components/schemas/VelocityData' - distinctLinkedId: + distinct_linked_id: $ref: '#/components/schemas/VelocityData' - distinctCountry: + distinct_country: $ref: '#/components/schemas/VelocityData' events: $ref: '#/components/schemas/VelocityData' - ipEvents: + ip_events: $ref: '#/components/schemas/VelocityData' - distinctIpByLinkedId: + distinct_ip_by_linked_id: $ref: '#/components/schemas/VelocityData' - distinctVisitorIdByLinkedId: + distinct_visitor_id_by_linked_id: $ref: '#/components/schemas/VelocityData' - WebhookDeveloperTools: + VirtualMachine: + type: boolean + description: > + `true` if the request came from a browser running inside a virtual + machine (e.g. VMWare), `false` otherwise. + Vpn: + type: boolean + description: | + VPN or other anonymizing service has been used when sending the request. + VpnConfidence: + type: string + enum: + - low + - medium + - high + description: >- + A confidence rating for the VPN detection result — "low", "medium", or + "high". Depends on the combination of results returned from all VPN + detection methods. + VpnOriginTimezone: + type: string + description: | + Local timezone which is used in timezone_mismatch method. + VpnOriginCountry: + type: string + description: > + Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 + format or unknown). + VpnMethods: type: object additionalProperties: false properties: - result: + timezone_mismatch: + type: boolean + x-platforms: + - android + - ios + - browser + description: >- + The browser timezone doesn't match the timezone inferred from the + request IP address. + public_vpn: type: boolean + x-platforms: + - android + - ios + - browser + description: >- + Request IP address is owned and used by a public VPN service + provider. + auxiliary_mobile: + type: boolean + x-platforms: + - android + - ios + - browser + description: >- + This method applies to mobile devices only. Indicates the result of + additional methods used to detect a VPN in mobile devices. + os_mismatch: + type: boolean + x-platforms: + - browser + description: >- + The browser runs on a different operating system than the operating + system inferred from the request network signature. + relay: + type: boolean + x-platforms: + - android + - ios + - browser description: > - `true` if the browser is Chrome with DevTools open or Firefox with - Developer Tools open, `false` otherwise. - WebhookMitMAttack: + Request IP address belongs to a relay service provider, indicating + the use of relay services like [Apple Private + relay](https://support.apple.com/en-us/102602) or [Cloudflare + Warp](https://developers.cloudflare.com/warp-client/). + + + * Like VPNs, relay services anonymize the visitor's true IP address. + + * Unlike traditional VPNs, relay services don't let visitors spoof + their location by choosing an exit node in a different country. + + + This field allows you to differentiate VPN users and relay service + users in your fraud prevention logic. + HighActivity: + type: boolean + description: Flag indicating if the request came from a high-activity visitor. + Event: type: object + description: >- + Contains results from Fingerprint Identification and all active Smart + Signals. additionalProperties: false + required: + - event_id + - timestamp properties: - result: - type: boolean - description: > - * `true` - When requests made from your users' mobile devices to - Fingerprint servers have been intercepted and potentially modified. + event_id: + $ref: '#/components/schemas/EventId' + x-platforms: + - android + - ios + - browser + timestamp: + $ref: '#/components/schemas/Timestamp' + x-platforms: + - android + - ios + - browser + linked_id: + $ref: '#/components/schemas/LinkedId' + x-platforms: + - android + - ios + - browser + environment_id: + $ref: '#/components/schemas/EnvironmentId' + x-platforms: + - android + - ios + - browser + suspect: + $ref: '#/components/schemas/Suspect' + x-platforms: + - android + - ios + - browser + sdk: + $ref: '#/components/schemas/SDK' + x-platforms: + - android + - ios + - browser + replayed: + $ref: '#/components/schemas/Replayed' + x-platforms: + - android + - ios + - browser + identification: + $ref: '#/components/schemas/Identification' + x-platforms: + - android + - ios + - browser + supplementary_id_high_recall: + $ref: '#/components/schemas/SupplementaryIDHighRecall' + x-platforms: + - android + - ios + - browser + tags: + $ref: '#/components/schemas/Tags' + x-platforms: + - android + - ios + - browser + url: + $ref: '#/components/schemas/Url' + x-platforms: + - browser + bundle_id: + $ref: '#/components/schemas/BundleId' + x-platforms: + - ios + package_name: + $ref: '#/components/schemas/PackageName' + x-platforms: + - android + ip_address: + $ref: '#/components/schemas/IpAddress' + x-platforms: + - android + - ios + - browser + user_agent: + $ref: '#/components/schemas/UserAgent' + x-platforms: + - android + - ios + - browser + client_referrer: + $ref: '#/components/schemas/ClientReferrer' + x-platforms: + - browser + browser_details: + $ref: '#/components/schemas/BrowserDetails' + x-platforms: + - browser + proximity: + $ref: '#/components/schemas/Proximity' + x-platforms: + - android + - ios + bot: + $ref: '#/components/schemas/BotResult' + x-platforms: + - browser + bot_type: + $ref: '#/components/schemas/BotType' + x-platforms: + - browser + cloned_app: + $ref: '#/components/schemas/ClonedApp' + x-platforms: + - android + developer_tools: + $ref: '#/components/schemas/DeveloperTools' + x-platforms: + - browser + emulator: + $ref: '#/components/schemas/Emulator' + x-platforms: + - android + factory_reset_timestamp: + $ref: '#/components/schemas/FactoryReset' + x-platforms: + - android + - ios + frida: + $ref: '#/components/schemas/Frida' + x-platforms: + - android + - ios + ip_blocklist: + $ref: '#/components/schemas/IPBlockList' + x-platforms: + - android + - ios + - browser + ip_info: + $ref: '#/components/schemas/IPInfo' + x-platforms: + - android + - ios + - browser + proxy: + $ref: '#/components/schemas/Proxy' + x-platforms: + - android + - ios + - browser + proxy_confidence: + $ref: '#/components/schemas/ProxyConfidence' + x-platforms: + - android + - ios + - browser + proxy_details: + $ref: '#/components/schemas/ProxyDetails' + x-platforms: + - android + - ios + - browser + incognito: + $ref: '#/components/schemas/Incognito' + x-platforms: + - browser + jailbroken: + $ref: '#/components/schemas/Jailbroken' + x-platforms: + - ios + location_spoofing: + $ref: '#/components/schemas/LocationSpoofing' + x-platforms: + - android + - ios + mitm_attack: + $ref: '#/components/schemas/MitMAttack' + x-platforms: + - android + - ios + privacy_settings: + $ref: '#/components/schemas/PrivacySettings' + x-platforms: + - browser + root_apps: + $ref: '#/components/schemas/RootApps' + x-platforms: + - android + suspect_score: + $ref: '#/components/schemas/SuspectScore' + x-platforms: + - android + - ios + - browser + tampering: + $ref: '#/components/schemas/Tampering' + x-platforms: + - android + - ios + - browser + tampering_details: + $ref: '#/components/schemas/TamperingDetails' + x-platforms: + - android + - ios + - browser + velocity: + $ref: '#/components/schemas/Velocity' + x-platforms: + - android + - ios + - browser + virtual_machine: + $ref: '#/components/schemas/VirtualMachine' + x-platforms: + - browser + vpn: + $ref: '#/components/schemas/Vpn' + x-platforms: + - android + - ios + - browser + vpn_confidence: + $ref: '#/components/schemas/VpnConfidence' + x-platforms: + - android + - ios + - browser + vpn_origin_timezone: + $ref: '#/components/schemas/VpnOriginTimezone' + x-platforms: + - android + - ios + - browser + vpn_origin_country: + $ref: '#/components/schemas/VpnOriginCountry' + x-platforms: + - android + - ios + vpn_methods: + $ref: '#/components/schemas/VpnMethods' + x-platforms: + - android + - ios + - browser + high_activity_device: + $ref: '#/components/schemas/HighActivity' + x-platforms: + - android + - ios + - browser + ErrorCode: + type: string + enum: + - request_cannot_be_parsed + - secret_api_key_required + - secret_api_key_not_found + - public_api_key_required + - public_api_key_not_found + - subscription_not_active + - wrong_region + - feature_not_enabled + - request_not_found + - visitor_not_found + - too_many_requests + - state_not_ready + - failed + - event_not_found + - missing_module + - payload_too_large + - service_unavailable + description: > + Error code: + + * `request_cannot_be_parsed` - The query parameters or JSON payload + contains some errors + that prevented us from parsing it (wrong type/surpassed limits). + * `secret_api_key_required` - secret API key in header is missing or + empty. + + * `secret_api_key_not_found` - No Fingerprint workspace found for + specified secret API key. + + * `public_api_key_required` - public API key in header is missing or + empty. - * `false` - Otherwise or when the request originated from a browser. + * `public_api_key_not_found` - No Fingerprint workspace found for + specified public API key. - See [MitM Attack - Detection](https://dev.fingerprint.com/docs/smart-signals-overview#mitm-attack-detection) - to learn more about this Smart Signal. - SupplementaryID: + * `subscription_not_active` - Fingerprint workspace is not active. + + * `wrong_region` - Server and workspace region differ. + + * `feature_not_enabled` - This feature (for example, Delete API) is not + enabled for your workspace. + + * `request_not_found` - The specified event ID was not found. It never + existed, expired, or it has been deleted. + + * `visitor_not_found` - The specified visitor ID was not found. It never + existed or it may have already been deleted. + + * `too_many_requests` - The limit on secret API key requests per second + has been exceeded. + + * `state_not_ready` - The event specified with event ID is + not ready for updates yet. Try again. + This error happens in rare cases when update API is called immediately + after receiving the event ID on the client. In case you need to send + information right away, we recommend using the JS agent API instead. + * `failed` - Internal server error. + + * `event_not_found` - The specified event ID was not found. It never + existed, expired, or it has been deleted. + + * `missing_module` - The request is invalid because it is missing a + required module. + + * `payload_too_large` - The request payload is too large and cannot be + processed. + + * `service_unavailable` - The service was unable to process the request. + Error: type: object additionalProperties: false + required: + - code + - message properties: - visitorId: + code: + $ref: '#/components/schemas/ErrorCode' + message: type: string - description: >- - String of 20 characters that uniquely identifies the visitor's - browser or mobile device. - visitorFound: - type: boolean - description: Attribute represents if a visitor had been identified before. - confidence: - $ref: '#/components/schemas/IdentificationConfidence' - firstSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - lastSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - WebhookSupplementaryIDs: + ErrorResponse: type: object - description: Other identities that have been established for a given Visitor. + additionalProperties: false required: - - standard - - highRecall + - error properties: - standard: - $ref: '#/components/schemas/SupplementaryID' - highRecall: - $ref: '#/components/schemas/SupplementaryID' - WebhookProximity: + error: + $ref: '#/components/schemas/Error' + EventUpdate: type: object - description: > - Proximity ID represents a fixed geographical zone in a discrete global - grid within which the device is observed. - additionalProperties: false - required: - - id - - precisionRadius - - confidence properties: - id: + linked_id: type: string - description: | - A stable privacy-preserving identifier for a given proximity zone. - precisionRadius: - type: integer - format: int32 - enum: - - 10 - - 25 - - 65 - - 175 - - 450 - - 1200 - - 3300 - - 8500 - - 22500 - description: | - The radius of the proximity zone’s precision level, in meters. - confidence: - type: number - format: float - minimum: 0 - maximum: 1 - description: > - A value between `0` and `1` representing the likelihood that the - true device location lies within the mapped proximity zone. - * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. - * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. - Webhook: + description: Linked Id value to assign to the existing event + tags: + type: object + description: >- + A customer-provided value or an object that was sent with the + identification request or updated later. + additionalProperties: true + suspect: + type: boolean + description: Suspect flag indicating observed suspicious or fraudulent event + x-go-force-pointer: true + EventSearch: type: object + description: >- + Contains a list of all identification events matching the specified + search criteria. + additionalProperties: false required: - - requestId - - url - - ip - - time - - timestamp - - sdk + - events properties: - requestId: - type: string - description: Unique identifier of the user's request. - url: - type: string - description: Page URL from which the request was sent. - ip: - type: string - description: IP address of the requesting browser or bot. - environmentId: - type: string - description: Environment ID of the event. - tag: - $ref: '#/components/schemas/Tag' - time: + events: + type: array + items: + $ref: '#/components/schemas/Event' + pagination_key: type: string - format: date-time - x-ogen-time-format: 2006-01-02T15:04:05.999Z07:00 description: >- - Time expressed according to ISO 8601 in UTC format, when the request - from the JS agent was made. We recommend to treat requests that are - older than 2 minutes as malicious. Otherwise, request replay attacks - are possible. - timestamp: + Use this value in the `pagination_key` parameter to request the next + page of search results. + total_hits: type: integer format: int64 - description: Timestamp of the event with millisecond precision in Unix time. - ipLocation: - $ref: '#/components/schemas/DeprecatedGeolocation' - linkedId: - type: string - description: A customer-provided id that was sent with the request. - visitorId: - type: string description: >- - String of 20 characters that uniquely identifies the visitor's - browser or mobile device. - visitorFound: - type: boolean - description: Attribute represents if a visitor had been identified before. - confidence: - $ref: '#/components/schemas/IdentificationConfidence' - firstSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - lastSeenAt: - $ref: '#/components/schemas/IdentificationSeenAt' - browserDetails: - $ref: '#/components/schemas/BrowserDetails' - incognito: - type: boolean - description: Flag if user used incognito session. - clientReferrer: - type: string - components: - $ref: '#/components/schemas/RawDeviceAttributes' - bot: - $ref: '#/components/schemas/BotdBot' - userAgent: - type: string - rootApps: - $ref: '#/components/schemas/WebhookRootApps' - emulator: - $ref: '#/components/schemas/WebhookEmulator' - ipInfo: - $ref: '#/components/schemas/WebhookIPInfo' - ipBlocklist: - $ref: '#/components/schemas/WebhookIPBlocklist' - tor: - $ref: '#/components/schemas/WebhookTor' - vpn: - $ref: '#/components/schemas/WebhookVPN' - proxy: - $ref: '#/components/schemas/WebhookProxy' - tampering: - $ref: '#/components/schemas/WebhookTampering' - clonedApp: - $ref: '#/components/schemas/WebhookClonedApp' - factoryReset: - $ref: '#/components/schemas/WebhookFactoryReset' - jailbroken: - $ref: '#/components/schemas/WebhookJailbroken' - frida: - $ref: '#/components/schemas/WebhookFrida' - privacySettings: - $ref: '#/components/schemas/WebhookPrivacySettings' - virtualMachine: - $ref: '#/components/schemas/WebhookVirtualMachine' - rawDeviceAttributes: - $ref: '#/components/schemas/WebhookRawDeviceAttributes' - highActivity: - $ref: '#/components/schemas/WebhookHighActivity' - locationSpoofing: - $ref: '#/components/schemas/WebhookLocationSpoofing' - suspectScore: - $ref: '#/components/schemas/WebhookSuspectScore' - remoteControl: - $ref: '#/components/schemas/WebhookRemoteControl' - velocity: - $ref: '#/components/schemas/WebhookVelocity' - developerTools: - $ref: '#/components/schemas/WebhookDeveloperTools' - mitmAttack: - $ref: '#/components/schemas/WebhookMitMAttack' - replayed: - type: boolean - description: > - `true` if we determined that this payload was replayed, `false` - otherwise. - sdk: - $ref: '#/components/schemas/SDK' - supplementaryIds: - $ref: '#/components/schemas/WebhookSupplementaryIDs' - proximity: - $ref: '#/components/schemas/WebhookProximity' + This value represents the total number of events matching the search + query, up to the limit provided in the `total_hits` query parameter. + Only present if the `total_hits` query parameter was provided. diff --git a/scripts/sync.sh b/scripts/sync.sh index f43376c5..66af1f37 100755 --- a/scripts/sync.sh +++ b/scripts/sync.sh @@ -1,29 +1,18 @@ #!/bin/bash -curl -o ./res/fingerprint-server-api.yaml https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemas/fingerprint-server-api-compact.yaml +curl -o ./res/fingerprint-server-api.yaml https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemas/fingerprint-server-api-v4.yaml examplesList=( - 'get_event_200.json' - 'get_event_200_all_errors.json' - 'get_event_200_botd_failed_error.json' - 'get_event_200_botd_too_many_requests_error.json' - 'get_event_200_extra_fields.json' - 'get_event_200_identification_failed_error.json' - 'get_event_200_identification_too_many_requests_error.json' - 'get_event_200_identification_too_many_requests_error_all_fields.json' - 'get_event_403_error.json' - 'get_event_404_error.json' - 'get_visits_200_limit_1.json' - 'get_visits_200_limit_500.json' - 'get_visits_403_error.json' - 'get_visits_429_too_many_requests_error.json' - 'update_event_400_error.json' - 'update_event_403_error.json' - 'update_event_404_error.json' - 'update_event_409_error.json' - 'update_event_multiple_fields_request.json' - 'update_event_one_field_request.json' - 'webhook.json' + 'webhook/webhook_event.json' + 'events/get_event_200.json' + 'events/search/get_event_search_200.json' + 'errors/404_event_not_found.json' + 'errors/404_visitor_not_found.json' + 'errors/403_feature_not_enabled.json' + 'errors/400_visitor_id_invalid.json' + 'errors/429_too_many_requests.json' + 'errors/400_request_body_invalid.json' + 'errors/409_state_not_ready.json' ) for example in ${examplesList[*]}; do diff --git a/sdk/sdk.gradle.kts b/sdk/sdk.gradle.kts index d2f07a47..5a8b9609 100644 --- a/sdk/sdk.gradle.kts +++ b/sdk/sdk.gradle.kts @@ -87,50 +87,35 @@ tasks.register("removeClasses") { } } +tasks.register("copyOpenApiGeneratorIgnore") { + from("$rootDir/.openapi-generator-ignore") + into(layout.buildDirectory.dir("generated")) +} + tasks.register("copyDocs") { from(layout.buildDirectory.dir("generated/docs")) into("$rootDir/docs") + dependsOn(tasks.openApiGenerate) } tasks.register("copyClasses") { from(layout.buildDirectory.dir("generated/src/main/java")) into("src/main/java") + dependsOn(tasks.openApiGenerate) } tasks.register("copyReadme") { from(file(layout.buildDirectory.file("generated/README.md"))) into(file("$rootDir/")) + dependsOn("copyDocs") } -tasks.register("removeWrongDocumentationLinks") { - doLast { - fileTree("$rootDir/docs").files - .filter { it.isFile } - .forEach { - val content = it.readText() - .replace("[**OffsetDateTime**](OffsetDateTime.md)", "**OffsetDateTime**") - .replace("[**URI**](URI.md)", "**URI**") - it.writeText(content) - } - } -} - -tasks.named("copyDocs") { - dependsOn(tasks.openApiGenerate) - dependsOn("removeDocs") -} -tasks.named("copyClasses") { - dependsOn(tasks.openApiGenerate) - dependsOn("removeClasses") -} - -tasks.named("removeWrongDocumentationLinks") { - dependsOn("copyDocs") - finalizedBy("copyReadme") +tasks.openApiGenerate { + dependsOn("removeDocs", "removeClasses", "copyOpenApiGeneratorIgnore") } tasks.named("build") { - finalizedBy("removeWrongDocumentationLinks") + finalizedBy("copyReadme") } tasks.compileJava { diff --git a/sdk/src/main/java/com/fingerprint/Sealed.java b/sdk/src/main/java/com/fingerprint/Sealed.java index f0c0ea38..c0135d21 100644 --- a/sdk/src/main/java/com/fingerprint/Sealed.java +++ b/sdk/src/main/java/com/fingerprint/Sealed.java @@ -1,7 +1,7 @@ package com.fingerprint; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fingerprint.model.EventsGetResponse; +import com.fingerprint.model.Event; import com.fingerprint.sdk.JSON; import javax.crypto.Cipher; @@ -121,14 +121,14 @@ public static byte[] unseal(byte[] sealed, DecryptionKey[] keys) throws IllegalA * @throws UnsealAggregateException if the sealed data cannot be decrypted with any of the keys. The exception contains the list of exceptions thrown by each key. * @throws IOException if the sealed data un-compression fails */ - public static EventsGetResponse unsealEventResponse(byte[] sealed, DecryptionKey[] keys) throws IllegalArgumentException, UnsealAggregateException, IOException { + public static Event unsealEventResponse(byte[] sealed, DecryptionKey[] keys) throws IllegalArgumentException, UnsealAggregateException, IOException { byte[] unsealed = unseal(sealed, keys); ObjectMapper mapper = JSON.getDefault().getMapper(); - EventsGetResponse value = mapper.readValue(unsealed, EventsGetResponse.class); + Event value = mapper.readValue(unsealed, Event.class); - if (value.getProducts() == null) { + if (value.getTimestamp() == null) { // TODO decide how to check throw new InvalidSealedDataException(); } diff --git a/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java index 94fac060..d9bd992b 100644 --- a/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/api/FingerprintApi.java @@ -9,22 +9,17 @@ import jakarta.ws.rs.core.GenericType; -import com.fingerprint.model.ErrorPlainResponse; import com.fingerprint.model.ErrorResponse; -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; +import com.fingerprint.model.Event; +import com.fingerprint.model.EventSearch; +import com.fingerprint.model.EventUpdate; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class FingerprintApi { +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0")public class FingerprintApi { public static final String INTEGRATION_INFO = "fingerprint-pro-server-java-sdk/7.10.0"; private ApiClient apiClient; @@ -64,7 +59,7 @@ public void setApiClient(ApiClient apiClient) { /** * Delete data by visitor ID - * Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://dev.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://dev.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/events` API](https://dev.fingerprint.com/reference/getevent) with a `request_id` that was made outside of the 10 days, you will still receive a valid response. - If you request [`/visitors` API](https://dev.fingerprint.com/reference/getvisits) for the deleted visitor ID, the response will include identification requests that were made outside of those 10 days. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. + * Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://dev.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://dev.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/v4/events` API](https://dev.fingerprint.com/reference/getevent) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. * @param visitorId The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) you want to delete. (required) * @throws ApiException if fails to make API call * @http.response.details @@ -83,7 +78,7 @@ public void deleteVisitorData(String visitorId) throws ApiException { /** * Delete data by visitor ID - * Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://dev.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://dev.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/events` API](https://dev.fingerprint.com/reference/getevent) with a `request_id` that was made outside of the 10 days, you will still receive a valid response. - If you request [`/visitors` API](https://dev.fingerprint.com/reference/getvisits) for the deleted visitor ID, the response will include identification requests that were made outside of those 10 days. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. + * Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://dev.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://dev.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/v4/events` API](https://dev.fingerprint.com/reference/getevent) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. * @param visitorId The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) you want to delete. (required) * @return ApiResponse * @throws ApiException if fails to make API call @@ -117,69 +112,61 @@ public ApiResponse deleteVisitorDataWithHttpInfo(String visitorId) throws localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); - - - - - 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" }; + final String localVarAccept = apiClient.selectHeaderAccept("application/json"); + final String localVarContentType = apiClient.selectHeaderContentType(); + String[] localVarAuthNames = new String[] { "bearerAuth" }; return apiClient.invokeAPI("FingerprintApi.deleteVisitorData", localVarPath, "DELETE", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null, false); } /** - * Get event by request ID - * Get a detailed analysis of an individual identification event, including Smart Signals. Please note that the response includes mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. It is highly recommended that you **ignore** the mobile signals for such requests. Use `requestId` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `requestId`. - * @param requestId The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request. (required) - * @return EventsGetResponse + * Get an event by event ID + * Get a detailed analysis of an individual identification event, including Smart Signals. Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. + * @param eventId The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request (`requestId` can be used in its place). (required) + * @return Event * @throws ApiException if fails to make API call * @http.response.details + - + +
Status Code Description Response Headers
200 OK. -
400 Bad request. The event Id provided is not valid. -
403 Forbidden. Access to this API is denied. -
404 Not found. The request ID cannot be found in this application's data. -
404 Not found. The event Id cannot be found in this workspace's data. -
500 Workspace error. -
*/ - public EventsGetResponse getEvent(String requestId) throws ApiException { - return getEventWithHttpInfo(requestId).getData(); + public Event getEvent(String eventId) throws ApiException { + return getEventWithHttpInfo(eventId).getData(); } /** - * Get event by request ID - * Get a detailed analysis of an individual identification event, including Smart Signals. Please note that the response includes mobile signals (e.g. `rootApps`) even if the request originated from a non-mobile platform. It is highly recommended that you **ignore** the mobile signals for such requests. Use `requestId` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `requestId`. - * @param requestId The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request. (required) - * @return ApiResponse + * Get an event by event ID + * Get a detailed analysis of an individual identification event, including Smart Signals. Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. + * @param eventId The unique [identifier](https://dev.fingerprint.com/reference/get-function#requestid) of each identification request (`requestId` can be used in its place). (required) + * @return ApiResponse * @throws ApiException if fails to make API call * @http.response.details + - + +
Status Code Description Response Headers
200 OK. -
400 Bad request. The event Id provided is not valid. -
403 Forbidden. Access to this API is denied. -
404 Not found. The request ID cannot be found in this application's data. -
404 Not found. The event Id cannot be found in this workspace's data. -
500 Workspace error. -
*/ - public ApiResponse getEventWithHttpInfo(String requestId) throws ApiException { + public ApiResponse getEventWithHttpInfo(String eventId) throws ApiException { Object localVarPostBody = null; - // verify the required parameter 'requestId' is set - if (requestId == null) { - throw new ApiException(400, "Missing the required parameter 'requestId' when calling getEvent"); + // verify the required parameter 'eventId' is set + if (eventId == null) { + throw new ApiException(400, "Missing the required parameter 'eventId' when calling getEvent"); } // create path and map variables - String localVarPath = "/events/{request_id}" - .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString())); + String localVarPath = "/events/{event_id}" + .replaceAll("\\{" + "event_id" + "\\}", apiClient.escapeString(eventId.toString())); // query params List localVarQueryParams = new ArrayList(); @@ -189,204 +176,26 @@ public ApiResponse getEventWithHttpInfo(String requestId) thr localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); + final String localVarAccept = apiClient.selectHeaderAccept("application/json"); + final String localVarContentType = apiClient.selectHeaderContentType(); + String[] localVarAuthNames = new String[] { "bearerAuth" }; - - - - 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() {}; + GenericType localVarReturnType = new GenericType() {}; return apiClient.invokeAPI("FingerprintApi.getEvent", localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType, false); } - /** - * Get Related Visitors - * Related visitors API lets you link web visits and in-app browser visits that originated from the same mobile device. It searches the past 6 months of identification events to find the visitor IDs that belong to the same mobile device as the given visitor ID. ⚠️ Please note that this API is not enabled by default and is billable separately. ⚠️ If you would like to use Related visitors API, please contact our [support team](https://fingerprint.com/support). To learn more, see [Related visitors API reference](https://dev.fingerprint.com/reference/related-visitors-api). - * @param visitorId The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) for which you want to find the other visitor IDs that originated from the same mobile device. (required) - * @return RelatedVisitorsResponse - * @throws ApiException if fails to make API call - * @http.response.details - - - - - - - -
Status Code Description Response Headers
200 OK. -
400 Bad request. The visitor ID parameter is missing or in the wrong format. -
403 Forbidden. Access to this API is denied. -
404 Not found. The visitor ID cannot be found in this application's data. -
429 Too Many Requests. The request is throttled. -
- */ - public RelatedVisitorsResponse getRelatedVisitors(String visitorId) throws ApiException { - return getRelatedVisitorsWithHttpInfo(visitorId).getData(); - } - - /** - * Get Related Visitors - * Related visitors API lets you link web visits and in-app browser visits that originated from the same mobile device. It searches the past 6 months of identification events to find the visitor IDs that belong to the same mobile device as the given visitor ID. ⚠️ Please note that this API is not enabled by default and is billable separately. ⚠️ If you would like to use Related visitors API, please contact our [support team](https://fingerprint.com/support). To learn more, see [Related visitors API reference](https://dev.fingerprint.com/reference/related-visitors-api). - * @param visitorId The [visitor ID](https://dev.fingerprint.com/reference/get-function#visitorid) for which you want to find the other visitor IDs that originated from the same mobile device. (required) - * @return ApiResponse - * @throws ApiException if fails to make API call - * @http.response.details - - - - - - - -
Status Code Description Response Headers
200 OK. -
400 Bad request. The visitor ID parameter is missing or in the wrong format. -
403 Forbidden. Access to this API is denied. -
404 Not found. The visitor ID cannot be found in this application's data. -
429 Too Many Requests. The request is throttled. -
- */ - public ApiResponse getRelatedVisitorsWithHttpInfo(String visitorId) throws ApiException { - Object localVarPostBody = null; - - // verify the required parameter 'visitorId' is set - if (visitorId == null) { - throw new ApiException(400, "Missing the required parameter 'visitorId' when calling getRelatedVisitors"); - } - - // create path and map variables - String localVarPath = "/related-visitors"; - - // 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("", "visitor_id", visitorId)); - - - - - 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.getRelatedVisitors", localVarPath, "GET", localVarQueryParams, localVarPostBody, - localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, - localVarAuthNames, localVarReturnType, false); - } - /** - * Get visits by visitor ID - * Get a history of visits (identification events) for a specific `visitorId`. Use the `visitorId` as a URL path parameter. Only information from the _Identification_ product is returned. #### Headers * `Retry-After` — Present in case of `429 Too many requests`. Indicates how long you should wait before making a follow-up request. The value is non-negative decimal integer indicating the seconds to delay after the response is received. - * @param visitorId Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. (required) - * @param requestId Filter visits by `requestId`. Every identification request has a unique identifier associated with it called `requestId`. This identifier is returned to the client in the identification [result](https://dev.fingerprint.com/reference/get-function#requestid). When you filter visits by `requestId`, only one visit will be returned. (optional) - * @param linkedId Filter visits by your custom identifier. You can use [`linkedId`](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 limit Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. (optional) - * @param paginationKey Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. (optional) - * @param before ⚠️ Deprecated pagination method, please use `paginationKey` instead. Timestamp (in milliseconds since epoch) used to paginate results. (optional) - * @return VisitorsGetResponse - * @throws ApiException if fails to make API call - * @http.response.details - - - - - - -
Status Code Description Response Headers
200 OK. -
400 Bad request. The visitor ID or query parameters are missing or in the wrong format. -
403 Forbidden. Access to this API is denied. -
429 Too Many Requests. The request is throttled. * Retry-After - Indicates how many seconds you should wait before attempting the next request.
- */ - public VisitorsGetResponse getVisits(String visitorId, String requestId, String linkedId, Integer limit, String paginationKey, Long before) throws ApiException { - return getVisitsWithHttpInfo(visitorId, requestId, linkedId, limit, paginationKey, before).getData(); - } - - /** - * Get visits by visitor ID - * Get a history of visits (identification events) for a specific `visitorId`. Use the `visitorId` as a URL path parameter. Only information from the _Identification_ product is returned. #### Headers * `Retry-After` — Present in case of `429 Too many requests`. Indicates how long you should wait before making a follow-up request. The value is non-negative decimal integer indicating the seconds to delay after the response is received. - * @param visitorId Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. (required) - * @param requestId Filter visits by `requestId`. Every identification request has a unique identifier associated with it called `requestId`. This identifier is returned to the client in the identification [result](https://dev.fingerprint.com/reference/get-function#requestid). When you filter visits by `requestId`, only one visit will be returned. (optional) - * @param linkedId Filter visits by your custom identifier. You can use [`linkedId`](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 limit Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. (optional) - * @param paginationKey Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. (optional) - * @param before ⚠️ Deprecated pagination method, please use `paginationKey` instead. Timestamp (in milliseconds since epoch) used to paginate results. (optional) - * @return ApiResponse - * @throws ApiException if fails to make API call - * @http.response.details - - - - - - -
Status Code Description Response Headers
200 OK. -
400 Bad request. The visitor ID or query parameters are missing or in the wrong format. -
403 Forbidden. Access to this API is denied. -
429 Too Many Requests. The request is throttled. * Retry-After - Indicates how many seconds you should wait before attempting the next request.
- */ - public ApiResponse getVisitsWithHttpInfo(String visitorId, String requestId, String linkedId, Integer limit, String paginationKey, Long before) throws ApiException { - Object localVarPostBody = null; - - // verify the required parameter 'visitorId' is set - if (visitorId == null) { - throw new ApiException(400, "Missing the required parameter 'visitorId' when calling getVisits"); - } - - // create path and map variables - String localVarPath = "/visitors/{visitor_id}" - .replaceAll("\\{" + "visitor_id" + "\\}", apiClient.escapeString(visitorId.toString())); - - // 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("", "request_id", requestId)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "linked_id", linkedId)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "paginationKey", paginationKey)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "before", before)); - - - - - 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.getVisits", localVarPath, "GET", localVarQueryParams, localVarPostBody, - localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, - localVarAuthNames, localVarReturnType, false); - } public static class SearchEventsOptionalParams { - + private Integer limit; private String paginationKey; private String visitorId; private String bot; private String ipAddress; + private String asn; private String linkedId; + private String url; + private String origin; private Long start; private Long end; private Boolean reverse; @@ -405,8 +214,6 @@ public static class SearchEventsOptionalParams { private Boolean rootApps; private String vpnConfidence; private Float minSuspectScore; - private Boolean ipBlocklist; - private Boolean datacenter; private Boolean developerTools; private Boolean locationSpoofing; private Boolean mitmAttack; @@ -415,17 +222,32 @@ public static class SearchEventsOptionalParams { private String sdkPlatform; private List environment; private String proximityId; - private Integer proximityPrecisionRadius; + private Long totalHits; + + /** + * getter for limit - Limit the number of events returned. + */ + public Integer getLimit() { + return limit; + } /** - * getter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 200 results for your search using `limit`, but there are more than 200 events total matching your request), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events/search?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/events/search?limit=200&pagination_key=1740815825085` + * setter for limit - Limit the number of events returned. + */ + public SearchEventsOptionalParams setLimit(Integer limit) { + this.limit = limit; + return this; + } + + /** + * getter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` */ public String getPaginationKey() { return paginationKey; } /** - * setter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 200 results for your search using `limit`, but there are more than 200 events total matching your request), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events/search?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/events/search?limit=200&pagination_key=1740815825085` + * setter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The key corresponds to the `timestamp` of the last returned event. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` */ public SearchEventsOptionalParams setPaginationKey(String paginationKey) { this.paginationKey = paginationKey; @@ -433,14 +255,14 @@ public SearchEventsOptionalParams setPaginationKey(String paginationKey) { } /** - * getter for visitorId - Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. + * getter for visitorId - Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. */ public String getVisitorId() { return visitorId; } /** - * setter for visitorId - Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Pro. Filter for events matching this `visitor_id`. + * setter for visitorId - Unique [visitor identifier](https://dev.fingerprint.com/reference/get-function#visitorid) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. */ public SearchEventsOptionalParams setVisitorId(String visitorId) { this.visitorId = visitorId; @@ -448,14 +270,14 @@ public SearchEventsOptionalParams setVisitorId(String visitorId) { } /** - * getter for bot - Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `products.botd.data.bot.result` property set to a valid value are returned. Events without a `products.botd` Smart Signal result are left out of the response. + * getter for bot - Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `botd.bot` property set to a valid value are returned. Events without a `botd` Smart Signal result are left out of the response. */ public String getBot() { return bot; } /** - * setter for bot - Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `products.botd.data.bot.result` property set to a valid value are returned. Events without a `products.botd` Smart Signal result are left out of the response. + * setter for bot - Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `botd.bot` property set to a valid value are returned. Events without a `botd` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setBot(String bot) { this.bot = bot; @@ -463,14 +285,14 @@ public SearchEventsOptionalParams setBot(String bot) { } /** - * getter for 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 + * getter for ipAddress - Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 */ public String getIpAddress() { return ipAddress; } /** - * setter for 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 + * setter for ipAddress - Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 */ public SearchEventsOptionalParams setIpAddress(String ipAddress) { this.ipAddress = ipAddress; @@ -478,20 +300,65 @@ public SearchEventsOptionalParams setIpAddress(String ipAddress) { } /** - * getter for 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. + * getter for asn - + */ + public String getAsn() { + return asn; + } + + /** + * setter for asn - + */ + public SearchEventsOptionalParams setAsn(String asn) { + this.asn = asn; + return this; + } + + /** + * getter for 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. */ public String getLinkedId() { return linkedId; } /** - * setter for 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. + * setter for 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. */ public SearchEventsOptionalParams setLinkedId(String linkedId) { this.linkedId = linkedId; return this; } + /** + * getter for url - Filter events by the URL (`url` property) associated with the event. + */ + public String getUrl() { + return url; + } + + /** + * setter for url - Filter events by the URL (`url` property) associated with the event. + */ + public SearchEventsOptionalParams setUrl(String url) { + this.url = url; + return this; + } + + /** + * getter for origin - Filter events by the origin field of the event. Origin could be the website domain or mobile app bundle ID (eg: com.foo.bar) + */ + public String getOrigin() { + return origin; + } + + /** + * setter for origin - Filter events by the origin field of the event. Origin could be the website domain or mobile app bundle ID (eg: com.foo.bar) + */ + public SearchEventsOptionalParams setOrigin(String origin) { + this.origin = origin; + return this; + } + /** * getter for start - Filter events with a timestamp greater than the start time, in Unix time (milliseconds). */ @@ -538,14 +405,14 @@ public SearchEventsOptionalParams setReverse(Boolean reverse) { } /** - * getter for suspect - Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. + * getter for suspect - Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. */ public Boolean getSuspect() { return suspect; } /** - * setter for suspect - Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. + * setter for suspect - Filter events previously tagged as suspicious via the [Update API](https://dev.fingerprint.com/reference/updateevent). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. */ public SearchEventsOptionalParams setSuspect(Boolean suspect) { this.suspect = suspect; @@ -553,14 +420,14 @@ public SearchEventsOptionalParams setSuspect(Boolean suspect) { } /** - * getter for vpn - Filter events by VPN Detection result. > Note: When using this parameter, only events with the `products.vpn.data.result` property set to `true` or `false` are returned. Events without a `products.vpn` Smart Signal result are left out of the response. + * getter for vpn - Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. */ public Boolean getVpn() { return vpn; } /** - * setter for vpn - Filter events by VPN Detection result. > Note: When using this parameter, only events with the `products.vpn.data.result` property set to `true` or `false` are returned. Events without a `products.vpn` Smart Signal result are left out of the response. + * setter for vpn - Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setVpn(Boolean vpn) { this.vpn = vpn; @@ -568,14 +435,14 @@ public SearchEventsOptionalParams setVpn(Boolean vpn) { } /** - * getter for virtualMachine - Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `products.virtualMachine.data.result` property set to `true` or `false` are returned. Events without a `products.virtualMachine` Smart Signal result are left out of the response. + * getter for virtualMachine - Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. */ public Boolean getVirtualMachine() { return virtualMachine; } /** - * setter for virtualMachine - Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `products.virtualMachine.data.result` property set to `true` or `false` are returned. Events without a `products.virtualMachine` Smart Signal result are left out of the response. + * setter for virtualMachine - Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setVirtualMachine(Boolean virtualMachine) { this.virtualMachine = virtualMachine; @@ -583,14 +450,14 @@ public SearchEventsOptionalParams setVirtualMachine(Boolean virtualMachine) { } /** - * getter for tampering - Filter events by Tampering Detection result. > Note: When using this parameter, only events with the `products.tampering.data.result` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. + * getter for tampering - Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. */ public Boolean getTampering() { return tampering; } /** - * setter for tampering - Filter events by Tampering Detection result. > Note: When using this parameter, only events with the `products.tampering.data.result` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. + * setter for tampering - Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setTampering(Boolean tampering) { this.tampering = tampering; @@ -598,14 +465,14 @@ public SearchEventsOptionalParams setTampering(Boolean tampering) { } /** - * getter for antiDetectBrowser - Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `products.tampering.data.antiDetectBrowser` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. + * getter for antiDetectBrowser - Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. */ public Boolean getAntiDetectBrowser() { return antiDetectBrowser; } /** - * setter for antiDetectBrowser - Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `products.tampering.data.antiDetectBrowser` property set to `true` or `false` are returned. Events without a `products.tampering` Smart Signal result are left out of the response. + * setter for antiDetectBrowser - Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setAntiDetectBrowser(Boolean antiDetectBrowser) { this.antiDetectBrowser = antiDetectBrowser; @@ -613,14 +480,14 @@ public SearchEventsOptionalParams setAntiDetectBrowser(Boolean antiDetectBrowser } /** - * getter for incognito - Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `products.incognito.data.result` property set to `true` or `false` are returned. Events without a `products.incognito` Smart Signal result are left out of the response. + * getter for incognito - Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. */ public Boolean getIncognito() { return incognito; } /** - * setter for incognito - Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `products.incognito.data.result` property set to `true` or `false` are returned. Events without a `products.incognito` Smart Signal result are left out of the response. + * setter for incognito - Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setIncognito(Boolean incognito) { this.incognito = incognito; @@ -628,14 +495,14 @@ public SearchEventsOptionalParams setIncognito(Boolean incognito) { } /** - * getter for privacySettings - Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `products.privacySettings.data.result` property set to `true` or `false` are returned. Events without a `products.privacySettings` Smart Signal result are left out of the response. + * getter for privacySettings - Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. */ public Boolean getPrivacySettings() { return privacySettings; } /** - * setter for privacySettings - Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `products.privacySettings.data.result` property set to `true` or `false` are returned. Events without a `products.privacySettings` Smart Signal result are left out of the response. + * setter for privacySettings - Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setPrivacySettings(Boolean privacySettings) { this.privacySettings = privacySettings; @@ -643,14 +510,14 @@ public SearchEventsOptionalParams setPrivacySettings(Boolean privacySettings) { } /** - * getter for jailbroken - Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `products.jailbroken.data.result` property set to `true` or `false` are returned. Events without a `products.jailbroken` Smart Signal result are left out of the response. + * getter for jailbroken - Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. */ public Boolean getJailbroken() { return jailbroken; } /** - * setter for jailbroken - Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `products.jailbroken.data.result` property set to `true` or `false` are returned. Events without a `products.jailbroken` Smart Signal result are left out of the response. + * setter for jailbroken - Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setJailbroken(Boolean jailbroken) { this.jailbroken = jailbroken; @@ -658,14 +525,14 @@ public SearchEventsOptionalParams setJailbroken(Boolean jailbroken) { } /** - * getter for frida - Filter events by Frida Detection result. > Note: When using this parameter, only events with the `products.frida.data.result` property set to `true` or `false` are returned. Events without a `products.frida` Smart Signal result are left out of the response. + * getter for frida - Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. */ public Boolean getFrida() { return frida; } /** - * setter for frida - Filter events by Frida Detection result. > Note: When using this parameter, only events with the `products.frida.data.result` property set to `true` or `false` are returned. Events without a `products.frida` Smart Signal result are left out of the response. + * setter for frida - Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setFrida(Boolean frida) { this.frida = frida; @@ -673,14 +540,14 @@ public SearchEventsOptionalParams setFrida(Boolean frida) { } /** - * getter for factoryReset - Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with the `products.factoryReset.data.result` property set to `true` or `false` are returned. Events without a `products.factoryReset` Smart Signal result are left out of the response. + * getter for factoryReset - Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. */ public Boolean getFactoryReset() { return factoryReset; } /** - * setter for factoryReset - Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with the `products.factoryReset.data.result` property set to `true` or `false` are returned. Events without a `products.factoryReset` Smart Signal result are left out of the response. + * setter for factoryReset - Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setFactoryReset(Boolean factoryReset) { this.factoryReset = factoryReset; @@ -688,14 +555,14 @@ public SearchEventsOptionalParams setFactoryReset(Boolean factoryReset) { } /** - * getter for clonedApp - Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `products.clonedApp.data.result` property set to `true` or `false` are returned. Events without a `products.clonedApp` Smart Signal result are left out of the response. + * getter for clonedApp - Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. */ public Boolean getClonedApp() { return clonedApp; } /** - * setter for clonedApp - Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `products.clonedApp.data.result` property set to `true` or `false` are returned. Events without a `products.clonedApp` Smart Signal result are left out of the response. + * setter for clonedApp - Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setClonedApp(Boolean clonedApp) { this.clonedApp = clonedApp; @@ -703,14 +570,14 @@ public SearchEventsOptionalParams setClonedApp(Boolean clonedApp) { } /** - * getter for emulator - Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `products.emulator.data.result` property set to `true` or `false` are returned. Events without a `products.emulator` Smart Signal result are left out of the response. + * getter for emulator - Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. */ public Boolean getEmulator() { return emulator; } /** - * setter for emulator - Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `products.emulator.data.result` property set to `true` or `false` are returned. Events without a `products.emulator` Smart Signal result are left out of the response. + * setter for emulator - Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setEmulator(Boolean emulator) { this.emulator = emulator; @@ -718,14 +585,14 @@ public SearchEventsOptionalParams setEmulator(Boolean emulator) { } /** - * getter for rootApps - Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `products.rootApps.data.result` property set to `true` or `false` are returned. Events without a `products.rootApps` Smart Signal result are left out of the response. + * getter for rootApps - Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. */ public Boolean getRootApps() { return rootApps; } /** - * setter for rootApps - Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `products.rootApps.data.result` property set to `true` or `false` are returned. Events without a `products.rootApps` Smart Signal result are left out of the response. + * setter for rootApps - Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setRootApps(Boolean rootApps) { this.rootApps = rootApps; @@ -733,14 +600,14 @@ public SearchEventsOptionalParams setRootApps(Boolean rootApps) { } /** - * getter for vpnConfidence - Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `products.vpn.data.confidence` property set to a valid value are returned. Events without a `products.vpn` Smart Signal result are left out of the response. + * getter for vpnConfidence - Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. */ public String getVpnConfidence() { return vpnConfidence; } /** - * setter for vpnConfidence - Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `products.vpn.data.confidence` property set to a valid value are returned. Events without a `products.vpn` Smart Signal result are left out of the response. + * setter for vpnConfidence - Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setVpnConfidence(String vpnConfidence) { this.vpnConfidence = vpnConfidence; @@ -748,14 +615,14 @@ public SearchEventsOptionalParams setVpnConfidence(String vpnConfidence) { } /** - * getter for minSuspectScore - Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `products.suspectScore.data.result` property set to a value exceeding your threshold are returned. Events without a `products.suspectScore` Smart Signal result are left out of the response. + * getter for minSuspectScore - Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. */ public Float getMinSuspectScore() { return minSuspectScore; } /** - * setter for minSuspectScore - Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `products.suspectScore.data.result` property set to a value exceeding your threshold are returned. Events without a `products.suspectScore` Smart Signal result are left out of the response. + * setter for minSuspectScore - Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setMinSuspectScore(Float minSuspectScore) { this.minSuspectScore = minSuspectScore; @@ -763,44 +630,14 @@ public SearchEventsOptionalParams setMinSuspectScore(Float minSuspectScore) { } /** - * getter for ipBlocklist - Filter events by IP Blocklist Detection result. > Note: When using this parameter, only events with the `products.ipBlocklist.data.result` property set to `true` or `false` are returned. Events without a `products.ipBlocklist` Smart Signal result are left out of the response. - */ - public Boolean getIpBlocklist() { - return ipBlocklist; - } - - /** - * setter for ipBlocklist - Filter events by IP Blocklist Detection result. > Note: When using this parameter, only events with the `products.ipBlocklist.data.result` property set to `true` or `false` are returned. Events without a `products.ipBlocklist` Smart Signal result are left out of the response. - */ - public SearchEventsOptionalParams setIpBlocklist(Boolean ipBlocklist) { - this.ipBlocklist = ipBlocklist; - return this; - } - - /** - * getter for datacenter - Filter events by Datacenter Detection result. > Note: When using this parameter, only events with the `products.ipInfo.data.v4.datacenter.result` or `products.ipInfo.data.v6.datacenter.result` property set to `true` or `false` are returned. Events without a `products.ipInfo` Smart Signal result are left out of the response. - */ - public Boolean getDatacenter() { - return datacenter; - } - - /** - * setter for datacenter - Filter events by Datacenter Detection result. > Note: When using this parameter, only events with the `products.ipInfo.data.v4.datacenter.result` or `products.ipInfo.data.v6.datacenter.result` property set to `true` or `false` are returned. Events without a `products.ipInfo` Smart Signal result are left out of the response. - */ - public SearchEventsOptionalParams setDatacenter(Boolean datacenter) { - this.datacenter = datacenter; - return this; - } - - /** - * getter for developerTools - Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `products.developerTools.data.result` property set to `true` or `false` are returned. Events without a `products.developerTools` Smart Signal result are left out of the response. + * getter for developerTools - Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. */ public Boolean getDeveloperTools() { return developerTools; } /** - * setter for developerTools - Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `products.developerTools.data.result` property set to `true` or `false` are returned. Events without a `products.developerTools` Smart Signal result are left out of the response. + * setter for developerTools - Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setDeveloperTools(Boolean developerTools) { this.developerTools = developerTools; @@ -808,14 +645,14 @@ public SearchEventsOptionalParams setDeveloperTools(Boolean developerTools) { } /** - * getter for locationSpoofing - Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `products.locationSpoofing.data.result` property set to `true` or `false` are returned. Events without a `products.locationSpoofing` Smart Signal result are left out of the response. + * getter for locationSpoofing - Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. */ public Boolean getLocationSpoofing() { return locationSpoofing; } /** - * setter for locationSpoofing - Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `products.locationSpoofing.data.result` property set to `true` or `false` are returned. Events without a `products.locationSpoofing` Smart Signal result are left out of the response. + * setter for locationSpoofing - Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setLocationSpoofing(Boolean locationSpoofing) { this.locationSpoofing = locationSpoofing; @@ -823,14 +660,14 @@ public SearchEventsOptionalParams setLocationSpoofing(Boolean locationSpoofing) } /** - * getter for mitmAttack - Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `products.mitmAttack.data.result` property set to `true` or `false` are returned. Events without a `products.mitmAttack` Smart Signal result are left out of the response. + * getter for mitmAttack - Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. */ public Boolean getMitmAttack() { return mitmAttack; } /** - * setter for mitmAttack - Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `products.mitmAttack.data.result` property set to `true` or `false` are returned. Events without a `products.mitmAttack` Smart Signal result are left out of the response. + * setter for mitmAttack - Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setMitmAttack(Boolean mitmAttack) { this.mitmAttack = mitmAttack; @@ -838,14 +675,14 @@ public SearchEventsOptionalParams setMitmAttack(Boolean mitmAttack) { } /** - * getter for proxy - Filter events by Proxy detection result. > Note: When using this parameter, only events with the `products.proxy.data.result` property set to `true` or `false` are returned. Events without a `products.proxy` Smart Signal result are left out of the response. + * getter for proxy - Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. */ public Boolean getProxy() { return proxy; } /** - * setter for proxy - Filter events by Proxy detection result. > Note: When using this parameter, only events with the `products.proxy.data.result` property set to `true` or `false` are returned. Events without a `products.proxy` Smart Signal result are left out of the response. + * setter for proxy - Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. */ public SearchEventsOptionalParams setProxy(Boolean proxy) { this.proxy = proxy; @@ -853,14 +690,14 @@ public SearchEventsOptionalParams setProxy(Boolean proxy) { } /** - * getter for sdkVersion - Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` + * getter for sdkVersion - Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` */ public String getSdkVersion() { return sdkVersion; } /** - * setter for sdkVersion - Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` + * setter for sdkVersion - Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` */ public SearchEventsOptionalParams setSdkVersion(String sdkVersion) { this.sdkVersion = sdkVersion; @@ -868,14 +705,14 @@ public SearchEventsOptionalParams setSdkVersion(String sdkVersion) { } /** - * getter for sdkPlatform - Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. + * getter for sdkPlatform - Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. */ public String getSdkPlatform() { return sdkPlatform; } /** - * setter for sdkPlatform - Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. + * setter for sdkPlatform - Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. */ public SearchEventsOptionalParams setSdkPlatform(String sdkPlatform) { this.sdkPlatform = sdkPlatform; @@ -883,14 +720,14 @@ public SearchEventsOptionalParams setSdkPlatform(String sdkPlatform) { } /** - * getter for environment - Filter for events by providing one or more environment IDs. + * getter for environment - Filter for events by providing one or more environment IDs (`environment_id` property). */ public List getEnvironment() { return environment; } /** - * setter for environment - Filter for events by providing one or more environment IDs. + * setter for environment - Filter for events by providing one or more environment IDs (`environment_id` property). */ public SearchEventsOptionalParams setEnvironment(List environment) { this.environment = environment; @@ -898,14 +735,14 @@ public SearchEventsOptionalParams setEnvironment(List environment) { } /** - * getter for proximityId - Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `products.proximity.id` property matching the provided ID are returned. Events without a `products.proximity` result are left out of the response. + * getter for proximityId - Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. */ public String getProximityId() { return proximityId; } /** - * setter for proximityId - Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `products.proximity.id` property matching the provided ID are returned. Events without a `products.proximity` result are left out of the response. + * setter for proximityId - Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. */ public SearchEventsOptionalParams setProximityId(String proximityId) { this.proximityId = proximityId; @@ -913,27 +750,26 @@ public SearchEventsOptionalParams setProximityId(String proximityId) { } /** - * getter for proximityPrecisionRadius - Filter events by Proximity Radius. > Note: When using this parameter, only events with the `products.proximity.precisionRadius` property set to a valid value are returned. Events without a `products.proximity` result are left out of the response. + * getter for totalHits - When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. */ - public Integer getProximityPrecisionRadius() { - return proximityPrecisionRadius; + public Long getTotalHits() { + return totalHits; } /** - * setter for proximityPrecisionRadius - Filter events by Proximity Radius. > Note: When using this parameter, only events with the `products.proximity.precisionRadius` property set to a valid value are returned. Events without a `products.proximity` result are left out of the response. + * setter for totalHits - When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. */ - public SearchEventsOptionalParams setProximityPrecisionRadius(Integer proximityPrecisionRadius) { - this.proximityPrecisionRadius = proximityPrecisionRadius; + public SearchEventsOptionalParams setTotalHits(Long totalHits) { + this.totalHits = totalHits; return this; } } /** - * 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) + * Search events + * ## Search The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: - Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. - Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. - Excluding all bot traffic from the query (`good` and `bad` bots) If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. ### Filtering events with the `suspect` flag The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. ### Environment scoping If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. Smart Signals not activated for your workspace or are not included in the response. * @param searchEventsOptionalParams Object containing optional parameters for API method. (optional) - * @return SearchEventsResponse + * @return EventSearch * @throws ApiException if fails to make API call * @http.response.details @@ -941,18 +777,18 @@ public SearchEventsOptionalParams setProximityPrecisionRadius(Integer proximityP +
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. -
500 Workspace error. -
*/ - public SearchEventsResponse searchEvents(Integer limit, SearchEventsOptionalParams searchEventsOptionalParams) throws ApiException { - return searchEventsWithHttpInfo(limit, searchEventsOptionalParams).getData(); + public EventSearch searchEvents(SearchEventsOptionalParams searchEventsOptionalParams) throws ApiException { + return searchEventsWithHttpInfo(searchEventsOptionalParams).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) + * Search events + * ## Search The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: - Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. - Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. - Excluding all bot traffic from the query (`good` and `bad` bots) If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. ### Filtering events with the `suspect` flag The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. ### Environment scoping If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. Smart Signals not activated for your workspace or are not included in the response. * @param searchEventsOptionalParams Object containing optional parameters for API method. (optional) - * @return ApiResponse + * @return ApiResponse * @throws ApiException if fails to make API call * @http.response.details @@ -960,18 +796,14 @@ public SearchEventsResponse searchEvents(Integer limit, SearchEventsOptionalPara +
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. -
500 Workspace error. -
*/ - public ApiResponse searchEventsWithHttpInfo(Integer limit, SearchEventsOptionalParams searchEventsOptionalParams) throws ApiException { + public ApiResponse searchEventsWithHttpInfo(SearchEventsOptionalParams searchEventsOptionalParams) 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"; + String localVarPath = "/events"; // query params List localVarQueryParams = new ArrayList(); @@ -980,14 +812,16 @@ public ApiResponse searchEventsWithHttpInfo(Integer limit, Map localVarFormParams = new HashMap(); localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); - - localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); if (searchEventsOptionalParams != null) { + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", searchEventsOptionalParams.getLimit())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "pagination_key", searchEventsOptionalParams.getPaginationKey())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "visitor_id", searchEventsOptionalParams.getVisitorId())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "bot", searchEventsOptionalParams.getBot())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "ip_address", searchEventsOptionalParams.getIpAddress())); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "asn", searchEventsOptionalParams.getAsn())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "linked_id", searchEventsOptionalParams.getLinkedId())); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "url", searchEventsOptionalParams.getUrl())); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "origin", searchEventsOptionalParams.getOrigin())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "start", searchEventsOptionalParams.getStart())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "end", searchEventsOptionalParams.getEnd())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "reverse", searchEventsOptionalParams.getReverse())); @@ -1006,8 +840,6 @@ public ApiResponse searchEventsWithHttpInfo(Integer limit, localVarQueryParams.addAll(apiClient.parameterToPairs("", "root_apps", searchEventsOptionalParams.getRootApps())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "vpn_confidence", searchEventsOptionalParams.getVpnConfidence())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "min_suspect_score", searchEventsOptionalParams.getMinSuspectScore())); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "ip_blocklist", searchEventsOptionalParams.getIpBlocklist())); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "datacenter", searchEventsOptionalParams.getDatacenter())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "developer_tools", searchEventsOptionalParams.getDeveloperTools())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "location_spoofing", searchEventsOptionalParams.getLocationSpoofing())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "mitm_attack", searchEventsOptionalParams.getMitmAttack())); @@ -1016,35 +848,24 @@ public ApiResponse searchEventsWithHttpInfo(Integer limit, localVarQueryParams.addAll(apiClient.parameterToPairs("", "sdk_platform", searchEventsOptionalParams.getSdkPlatform())); localVarQueryParams.addAll(apiClient.parameterToPairs("multi", "environment", searchEventsOptionalParams.getEnvironment())); localVarQueryParams.addAll(apiClient.parameterToPairs("", "proximity_id", searchEventsOptionalParams.getProximityId())); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "proximity_precision_radius", searchEventsOptionalParams.getProximityPrecisionRadius())); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "total_hits", searchEventsOptionalParams.getTotalHits())); } - - - - 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" }; + final String localVarAccept = apiClient.selectHeaderAccept("application/json"); + final String localVarContentType = apiClient.selectHeaderContentType(); + String[] localVarAuthNames = new String[] { "bearerAuth" }; - GenericType localVarReturnType = new GenericType() {}; + 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. - * @param requestId The unique event [identifier](https://dev.fingerprint.com/reference/get-function#requestid). (required) - * @param eventsUpdateRequest (required) + * 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. + * @param eventId The unique event [identifier](https://dev.fingerprint.com/reference/get-function#event_id). (required) + * @param eventUpdate (required) * @throws ApiException if fails to make API call * @http.response.details @@ -1052,19 +873,19 @@ public ApiResponse searchEventsWithHttpInfo(Integer limit, - +
200 OK. -
400 Bad request. The request payload is not valid. -
403 Forbidden. Access to this API is denied. -
404 Not found. The request ID cannot be found in this application's data. -
404 Not found. The event Id cannot be found in this workspace's data. -
409 Conflict. The event is not mutable yet. -
*/ - public void updateEvent(String requestId, EventsUpdateRequest eventsUpdateRequest) throws ApiException { - updateEventWithHttpInfo(requestId, eventsUpdateRequest); + public void updateEvent(String eventId, EventUpdate eventUpdate) throws ApiException { + updateEventWithHttpInfo(eventId, eventUpdate); } /** - * 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. - * @param requestId The unique event [identifier](https://dev.fingerprint.com/reference/get-function#requestid). (required) - * @param eventsUpdateRequest (required) + * 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. + * @param eventId The unique event [identifier](https://dev.fingerprint.com/reference/get-function#event_id). (required) + * @param eventUpdate (required) * @return ApiResponse * @throws ApiException if fails to make API call * @http.response.details @@ -1073,26 +894,26 @@ public void updateEvent(String requestId, EventsUpdateRequest eventsUpdateReques 200 OK. - 400 Bad request. The request payload is not valid. - 403 Forbidden. Access to this API is denied. - - 404 Not found. The request ID cannot be found in this application's data. - + 404 Not found. The event Id cannot be found in this workspace's data. - 409 Conflict. The event is not mutable yet. - */ - public ApiResponse updateEventWithHttpInfo(String requestId, EventsUpdateRequest eventsUpdateRequest) throws ApiException { - Object localVarPostBody = eventsUpdateRequest; + public ApiResponse updateEventWithHttpInfo(String eventId, EventUpdate eventUpdate) throws ApiException { + Object localVarPostBody = eventUpdate; - // verify the required parameter 'requestId' is set - if (requestId == null) { - throw new ApiException(400, "Missing the required parameter 'requestId' when calling updateEvent"); + // verify the required parameter 'eventId' is set + if (eventId == null) { + throw new ApiException(400, "Missing the required parameter 'eventId' when calling updateEvent"); } - // verify the required parameter 'eventsUpdateRequest' is set - if (eventsUpdateRequest == null) { - throw new ApiException(400, "Missing the required parameter 'eventsUpdateRequest' when calling updateEvent"); + // verify the required parameter 'eventUpdate' is set + if (eventUpdate == null) { + throw new ApiException(400, "Missing the required parameter 'eventUpdate' when calling updateEvent"); } // create path and map variables - String localVarPath = "/events/{request_id}" - .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString())); + String localVarPath = "/events/{event_id}" + .replaceAll("\\{" + "event_id" + "\\}", apiClient.escapeString(eventId.toString())); // query params List localVarQueryParams = new ArrayList(); @@ -1102,84 +923,11 @@ public ApiResponse updateEventWithHttpInfo(String requestId, EventsUpdateR localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); + final String localVarAccept = apiClient.selectHeaderAccept("application/json"); + final String localVarContentType = apiClient.selectHeaderContentType("application/json"); + String[] localVarAuthNames = new String[] { "bearerAuth" }; - - - - final String[] localVarAccepts = { - "application/json" - }; - final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); - - final String[] localVarContentTypes = { - "application/json" - }; - final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); - - String[] localVarAuthNames = new String[] { "ApiKeyHeader", "ApiKeyQuery" }; - - return apiClient.invokeAPI("FingerprintApi.updateEvent", localVarPath, "PUT", localVarQueryParams, localVarPostBody, - localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, - localVarAuthNames, null, false); - } - /** - * Dummy path to describe webhook format. - * Fake path to describe webhook format. More information about webhooks can be found in the [documentation](https://dev.fingerprint.com/docs/webhooks) - * @param webhook (optional) - * @throws ApiException if fails to make API call - * @http.response.details - - - -
Status Code Description Response Headers
0 Dummy for the schema -
- */ - public void webhookTrace(Webhook webhook) throws ApiException { - webhookTraceWithHttpInfo(webhook); - } - - /** - * Dummy path to describe webhook format. - * Fake path to describe webhook format. More information about webhooks can be found in the [documentation](https://dev.fingerprint.com/docs/webhooks) - * @param webhook (optional) - * @return ApiResponse - * @throws ApiException if fails to make API call - * @http.response.details - - - -
Status Code Description Response Headers
0 Dummy for the schema -
- */ - public ApiResponse webhookTraceWithHttpInfo(Webhook webhook) throws ApiException { - Object localVarPostBody = webhook; - - // create path and map variables - String localVarPath = "/webhook"; - - // 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)); - - - - - - final String[] localVarAccepts = { - - }; - final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); - - final String[] localVarContentTypes = { - "application/json" - }; - final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); - - String[] localVarAuthNames = new String[] { "ApiKeyHeader", "ApiKeyQuery" }; - - return apiClient.invokeAPI("FingerprintApi.webhookTrace", localVarPath, "TRACE", localVarQueryParams, localVarPostBody, + return apiClient.invokeAPI("FingerprintApi.updateEvent", localVarPath, "PATCH", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null, false); } diff --git a/sdk/src/main/java/com/fingerprint/model/AbstractOpenApiSchema.java b/sdk/src/main/java/com/fingerprint/model/AbstractOpenApiSchema.java deleted file mode 100644 index 405e42f5..00000000 --- a/sdk/src/main/java/com/fingerprint/model/AbstractOpenApiSchema.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. - * - * The version of the OpenAPI document: 3 - * Contact: support@fingerprint.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package com.fingerprint.model; - -import com.fingerprint.sdk.ApiException; -import java.util.Objects; -import java.lang.reflect.Type; -import java.util.Map; -import jakarta.ws.rs.core.GenericType; - -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * Abstract class for oneOf,anyOf schemas defined in OpenAPI spec - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public abstract class AbstractOpenApiSchema { - - // store the actual instance of the schema/object - private Object instance; - - // is nullable - private Boolean isNullable; - - // schema type (e.g. oneOf, anyOf) - private final String schemaType; - - public AbstractOpenApiSchema(String schemaType, Boolean isNullable) { - this.schemaType = schemaType; - this.isNullable = isNullable; - } - - /** - * Get the list of oneOf/anyOf composed schemas allowed to be stored in this object - * - * @return an instance of the actual schema/object - */ - public abstract Map> getSchemas(); - - /** - * Get the actual instance - * - * @return an instance of the actual schema/object - */ - @JsonValue - public Object getActualInstance() {return instance;} - - /** - * Set the actual instance - * - * @param instance the actual instance of the schema/object - */ - public void setActualInstance(Object instance) {this.instance = instance;} - - /** - * Get the instant recursively when the schemas defined in oneOf/anyof happen to be oneOf/anyOf schema as well - * - * @return an instance of the actual schema/object - */ - public Object getActualInstanceRecursively() { - return getActualInstanceRecursively(this); - } - - private Object getActualInstanceRecursively(AbstractOpenApiSchema object) { - if (object.getActualInstance() == null) { - return null; - } else if (object.getActualInstance() instanceof AbstractOpenApiSchema) { - return getActualInstanceRecursively((AbstractOpenApiSchema)object.getActualInstance()); - } else { - return object.getActualInstance(); - } - } - - /** - * Get the schema type (e.g. anyOf, oneOf) - * - * @return the schema type - */ - public String getSchemaType() { - return schemaType; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ").append(getClass()).append(" {\n"); - sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); - sb.append(" isNullable: ").append(toIndentedString(isNullable)).append("\n"); - sb.append(" schemaType: ").append(toIndentedString(schemaType)).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 "); - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AbstractOpenApiSchema a = (AbstractOpenApiSchema) o; - return Objects.equals(this.instance, a.instance) && - Objects.equals(this.isNullable, a.isNullable) && - Objects.equals(this.schemaType, a.schemaType); - } - - @Override - public int hashCode() { - return Objects.hash(instance, isNullable, schemaType); - } - - /** - * Is nullable - * - * @return true if it's nullable - */ - public Boolean isNullable() { - if (Boolean.TRUE.equals(isNullable)) { - return Boolean.TRUE; - } else { - return Boolean.FALSE; - } - } - - - -} diff --git a/sdk/src/main/java/com/fingerprint/model/BotResult.java b/sdk/src/main/java/com/fingerprint/model/BotResult.java new file mode 100644 index 00000000..9957e734 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/BotResult.java @@ -0,0 +1,65 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Locale; + +/** + * Bot detection result: * `not_detected` - the visitor is not a bot * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on + */ +public enum BotResult { + + NOT_DETECTED("not_detected"), + + GOOD("good"), + + BAD("bad"); + + private String value; + + BotResult(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static BotResult fromValue(String value) { + for (BotResult b : BotResult.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } +} + diff --git a/sdk/src/main/java/com/fingerprint/model/Botd.java b/sdk/src/main/java/com/fingerprint/model/Botd.java deleted file mode 100644 index 849961da..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Botd.java +++ /dev/null @@ -1,333 +0,0 @@ -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.BotdBot; -import java.time.OffsetDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Contains all the information from Bot Detection product - */ - -@Schema(description = "Contains all the information from Bot Detection product") -@JsonPropertyOrder({ - Botd.JSON_PROPERTY_BOT, - Botd.JSON_PROPERTY_META, - Botd.JSON_PROPERTY_LINKED_ID, - Botd.JSON_PROPERTY_URL, - Botd.JSON_PROPERTY_IP, - Botd.JSON_PROPERTY_TIME, - Botd.JSON_PROPERTY_USER_AGENT, - Botd.JSON_PROPERTY_REQUEST_ID -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Botd { - public static final String JSON_PROPERTY_BOT = "bot"; - private BotdBot bot; - - public static final String JSON_PROPERTY_META = "meta"; - private Map meta = null; - - public static final String JSON_PROPERTY_LINKED_ID = "linkedId"; - private String linkedId; - - public static final String JSON_PROPERTY_URL = "url"; - private String url; - - public static final String JSON_PROPERTY_IP = "ip"; - private String ip; - - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_USER_AGENT = "userAgent"; - private String userAgent; - - public static final String JSON_PROPERTY_REQUEST_ID = "requestId"; - private String requestId; - - public Botd() { - } - - public Botd bot(BotdBot bot) { - this.bot = bot; - return this; - } - - /** - * Get bot - * @return bot - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BOT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public BotdBot getBot() { - return bot; - } - - - @JsonProperty(JSON_PROPERTY_BOT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBot(BotdBot bot) { - this.bot = bot; - } - - - public Botd meta(Map meta) { - this.meta = meta; - return this; - } - - public Botd putmetaItem(String key, Object metaItem) { - if (this.meta == null) { - this.meta = new HashMap<>(); - } - this.meta.put(key, metaItem); - return this; - } - - /** - * A customer-provided value or an object that was sent with identification request. - * @return meta - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided value or an object that was sent with identification request.") - @JsonProperty(JSON_PROPERTY_META) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - - public Map getMeta() { - return meta; - } - - - @JsonProperty(JSON_PROPERTY_META) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - public void setMeta(Map meta) { - this.meta = meta; - } - - - public Botd linkedId(String linkedId) { - this.linkedId = linkedId; - return this; - } - - /** - * A customer-provided id that was sent with the request. - * @return linkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided id that was sent with the request.") - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getLinkedId() { - return linkedId; - } - - - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLinkedId(String linkedId) { - this.linkedId = linkedId; - } - - - public Botd url(String url) { - this.url = url; - return this; - } - - /** - * Page URL from which the request was sent. - * @return url - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Page URL from which the request was sent.") - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUrl() { - return url; - } - - - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUrl(String url) { - this.url = url; - } - - - public Botd ip(String ip) { - this.ip = ip; - return this; - } - - /** - * IP address of the requesting browser or bot. - * @return ip - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address of the requesting browser or bot.") - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getIp() { - return ip; - } - - - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIp(String ip) { - this.ip = ip; - } - - - public Botd time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. - * @return time - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible.") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public Botd userAgent(String userAgent) { - this.userAgent = userAgent; - return this; - } - - /** - * Get userAgent - * @return userAgent - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUserAgent() { - return userAgent; - } - - - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUserAgent(String userAgent) { - this.userAgent = userAgent; - } - - - public Botd requestId(String requestId) { - this.requestId = requestId; - return this; - } - - /** - * Unique identifier of the user's request. - * @return requestId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Unique identifier of the user's request.") - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getRequestId() { - return requestId; - } - - - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - - /** - * Return true if this Botd object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Botd botd = (Botd) o; - return Objects.equals(this.bot, botd.bot) && - Objects.equals(this.meta, botd.meta) && - Objects.equals(this.linkedId, botd.linkedId) && - Objects.equals(this.url, botd.url) && - Objects.equals(this.ip, botd.ip) && - Objects.equals(this.time, botd.time) && - Objects.equals(this.userAgent, botd.userAgent) && - Objects.equals(this.requestId, botd.requestId); - } - - @Override - public int hashCode() { - return Objects.hash(bot, meta, linkedId, url, ip, time, userAgent, requestId); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Botd {\n"); - sb.append(" bot: ").append(toIndentedString(bot)).append("\n"); - sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); - sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append(" ip: ").append(toIndentedString(ip)).append("\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); - sb.append(" requestId: ").append(toIndentedString(requestId)).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/BotdBot.java b/sdk/src/main/java/com/fingerprint/model/BotdBot.java deleted file mode 100644 index 6d1999ad..00000000 --- a/sdk/src/main/java/com/fingerprint/model/BotdBot.java +++ /dev/null @@ -1,130 +0,0 @@ -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.BotdBotResult; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Stores bot detection result - */ - -@Schema(description = "Stores bot detection result") -@JsonPropertyOrder({ - BotdBot.JSON_PROPERTY_RESULT, - BotdBot.JSON_PROPERTY_TYPE -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class BotdBot { - public static final String JSON_PROPERTY_RESULT = "result"; - private BotdBotResult result; - - public static final String JSON_PROPERTY_TYPE = "type"; - private String type; - - public BotdBot() { - } - - public BotdBot result(BotdBotResult result) { - this.result = result; - return this; - } - - /** - * Get result - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public BotdBotResult getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(BotdBotResult result) { - this.result = result; - } - - - public BotdBot type(String type) { - this.type = type; - return this; - } - - /** - * Get type - * @return type - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getType() { - return type; - } - - - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setType(String type) { - this.type = type; - } - - - /** - * Return true if this BotdBot object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - BotdBot botdBot = (BotdBot) o; - return Objects.equals(this.result, botdBot.result) && - Objects.equals(this.type, botdBot.type); - } - - @Override - public int hashCode() { - return Objects.hash(result, type); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class BotdBot {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" type: ").append(toIndentedString(type)).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/BotdBotResult.java b/sdk/src/main/java/com/fingerprint/model/BotdBotResult.java deleted file mode 100644 index 6ed3ff0c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/BotdBotResult.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.fingerprint.model; - -import java.util.Objects; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * Bot detection result: * `notDetected` - the visitor is not a bot * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on - */ -public enum BotdBotResult { - - NOT_DETECTED("notDetected"), - - GOOD("good"), - - BAD("bad"); - - private String value; - - BotdBotResult(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static BotdBotResult fromValue(String value) { - for (BotdBotResult b : BotdBotResult.values()) { - if (b.value.equals(value)) { - return b; - } - } - return null; - } -} - diff --git a/sdk/src/main/java/com/fingerprint/model/BrowserDetails.java b/sdk/src/main/java/com/fingerprint/model/BrowserDetails.java index 172cf681..dcd183ad 100644 --- a/sdk/src/main/java/com/fingerprint/model/BrowserDetails.java +++ b/sdk/src/main/java/com/fingerprint/model/BrowserDetails.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -9,60 +25,59 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * BrowserDetails */ - - @JsonPropertyOrder({ BrowserDetails.JSON_PROPERTY_BROWSER_NAME, BrowserDetails.JSON_PROPERTY_BROWSER_MAJOR_VERSION, BrowserDetails.JSON_PROPERTY_BROWSER_FULL_VERSION, BrowserDetails.JSON_PROPERTY_OS, BrowserDetails.JSON_PROPERTY_OS_VERSION, - BrowserDetails.JSON_PROPERTY_DEVICE, - BrowserDetails.JSON_PROPERTY_USER_AGENT + BrowserDetails.JSON_PROPERTY_DEVICE }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class BrowserDetails { - public static final String JSON_PROPERTY_BROWSER_NAME = "browserName"; + public static final String JSON_PROPERTY_BROWSER_NAME = "browser_name"; + @jakarta.annotation.Nonnull private String browserName; - public static final String JSON_PROPERTY_BROWSER_MAJOR_VERSION = "browserMajorVersion"; + public static final String JSON_PROPERTY_BROWSER_MAJOR_VERSION = "browser_major_version"; + @jakarta.annotation.Nonnull private String browserMajorVersion; - public static final String JSON_PROPERTY_BROWSER_FULL_VERSION = "browserFullVersion"; + public static final String JSON_PROPERTY_BROWSER_FULL_VERSION = "browser_full_version"; + @jakarta.annotation.Nonnull private String browserFullVersion; public static final String JSON_PROPERTY_OS = "os"; + @jakarta.annotation.Nonnull private String os; - public static final String JSON_PROPERTY_OS_VERSION = "osVersion"; + public static final String JSON_PROPERTY_OS_VERSION = "os_version"; + @jakarta.annotation.Nonnull private String osVersion; public static final String JSON_PROPERTY_DEVICE = "device"; + @jakarta.annotation.Nonnull private String device; - public static final String JSON_PROPERTY_USER_AGENT = "userAgent"; - private String userAgent; - - public BrowserDetails() { + public BrowserDetails() { } - public BrowserDetails browserName(String browserName) { + public BrowserDetails browserName(@jakarta.annotation.Nonnull String browserName) { this.browserName = browserName; return this; } - /** + /** * Get browserName * @return browserName - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_NAME) + @JsonProperty(value = JSON_PROPERTY_BROWSER_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getBrowserName() { @@ -70,25 +85,24 @@ public String getBrowserName() { } - @JsonProperty(JSON_PROPERTY_BROWSER_NAME) + @JsonProperty(value = JSON_PROPERTY_BROWSER_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBrowserName(String browserName) { + public void setBrowserName(@jakarta.annotation.Nonnull String browserName) { this.browserName = browserName; } - public BrowserDetails browserMajorVersion(String browserMajorVersion) { + public BrowserDetails browserMajorVersion(@jakarta.annotation.Nonnull String browserMajorVersion) { this.browserMajorVersion = browserMajorVersion; return this; } - /** + /** * Get browserMajorVersion * @return browserMajorVersion - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_MAJOR_VERSION) + @JsonProperty(value = JSON_PROPERTY_BROWSER_MAJOR_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getBrowserMajorVersion() { @@ -96,25 +110,24 @@ public String getBrowserMajorVersion() { } - @JsonProperty(JSON_PROPERTY_BROWSER_MAJOR_VERSION) + @JsonProperty(value = JSON_PROPERTY_BROWSER_MAJOR_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBrowserMajorVersion(String browserMajorVersion) { + public void setBrowserMajorVersion(@jakarta.annotation.Nonnull String browserMajorVersion) { this.browserMajorVersion = browserMajorVersion; } - public BrowserDetails browserFullVersion(String browserFullVersion) { + public BrowserDetails browserFullVersion(@jakarta.annotation.Nonnull String browserFullVersion) { this.browserFullVersion = browserFullVersion; return this; } - /** + /** * Get browserFullVersion * @return browserFullVersion - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_FULL_VERSION) + @JsonProperty(value = JSON_PROPERTY_BROWSER_FULL_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getBrowserFullVersion() { @@ -122,25 +135,24 @@ public String getBrowserFullVersion() { } - @JsonProperty(JSON_PROPERTY_BROWSER_FULL_VERSION) + @JsonProperty(value = JSON_PROPERTY_BROWSER_FULL_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBrowserFullVersion(String browserFullVersion) { + public void setBrowserFullVersion(@jakarta.annotation.Nonnull String browserFullVersion) { this.browserFullVersion = browserFullVersion; } - public BrowserDetails os(String os) { + public BrowserDetails os(@jakarta.annotation.Nonnull String os) { this.os = os; return this; } - /** + /** * Get os * @return os - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_OS) + @JsonProperty(value = JSON_PROPERTY_OS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getOs() { @@ -148,25 +160,24 @@ public String getOs() { } - @JsonProperty(JSON_PROPERTY_OS) + @JsonProperty(value = JSON_PROPERTY_OS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setOs(String os) { + public void setOs(@jakarta.annotation.Nonnull String os) { this.os = os; } - public BrowserDetails osVersion(String osVersion) { + public BrowserDetails osVersion(@jakarta.annotation.Nonnull String osVersion) { this.osVersion = osVersion; return this; } - /** + /** * Get osVersion * @return osVersion - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_OS_VERSION) + @JsonProperty(value = JSON_PROPERTY_OS_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getOsVersion() { @@ -174,25 +185,24 @@ public String getOsVersion() { } - @JsonProperty(JSON_PROPERTY_OS_VERSION) + @JsonProperty(value = JSON_PROPERTY_OS_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setOsVersion(String osVersion) { + public void setOsVersion(@jakarta.annotation.Nonnull String osVersion) { this.osVersion = osVersion; } - public BrowserDetails device(String device) { + public BrowserDetails device(@jakarta.annotation.Nonnull String device) { this.device = device; return this; } - /** + /** * Get device * @return device - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DEVICE) + @JsonProperty(value = JSON_PROPERTY_DEVICE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getDevice() { @@ -200,39 +210,13 @@ public String getDevice() { } - @JsonProperty(JSON_PROPERTY_DEVICE) + @JsonProperty(value = JSON_PROPERTY_DEVICE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDevice(String device) { + public void setDevice(@jakarta.annotation.Nonnull String device) { this.device = device; } - public BrowserDetails userAgent(String userAgent) { - this.userAgent = userAgent; - return this; - } - - /** - * Get userAgent - * @return userAgent - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUserAgent() { - return userAgent; - } - - - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUserAgent(String userAgent) { - this.userAgent = userAgent; - } - - /** * Return true if this BrowserDetails object is equal to o. */ @@ -250,13 +234,12 @@ public boolean equals(Object o) { Objects.equals(this.browserFullVersion, browserDetails.browserFullVersion) && Objects.equals(this.os, browserDetails.os) && Objects.equals(this.osVersion, browserDetails.osVersion) && - Objects.equals(this.device, browserDetails.device) && - Objects.equals(this.userAgent, browserDetails.userAgent); + Objects.equals(this.device, browserDetails.device); } @Override public int hashCode() { - return Objects.hash(browserName, browserMajorVersion, browserFullVersion, os, osVersion, device, userAgent); + return Objects.hash(browserName, browserMajorVersion, browserFullVersion, os, osVersion, device); } @Override @@ -269,7 +252,6 @@ public String toString() { sb.append(" os: ").append(toIndentedString(os)).append("\n"); sb.append(" osVersion: ").append(toIndentedString(osVersion)).append("\n"); sb.append(" device: ").append(toIndentedString(device)).append("\n"); - sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/ClonedApp.java b/sdk/src/main/java/com/fingerprint/model/ClonedApp.java deleted file mode 100644 index c4b31ac4..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ClonedApp.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ClonedApp - */ - - -@JsonPropertyOrder({ - ClonedApp.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ClonedApp { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public ClonedApp() { - } - - public ClonedApp result(Boolean result) { - this.result = result; - return this; - } - - /** - * 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. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "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. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this ClonedApp object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ClonedApp clonedApp = (ClonedApp) o; - return Objects.equals(this.result, clonedApp.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ClonedApp {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/DeprecatedGeolocation.java b/sdk/src/main/java/com/fingerprint/model/DeprecatedGeolocation.java deleted file mode 100644 index 9d5f59b3..00000000 --- a/sdk/src/main/java/com/fingerprint/model/DeprecatedGeolocation.java +++ /dev/null @@ -1,373 +0,0 @@ -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.GeolocationCity; -import com.fingerprint.model.GeolocationContinent; -import com.fingerprint.model.GeolocationCountry; -import com.fingerprint.model.GeolocationSubdivision; -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; - -/** - * This field is **deprecated** and will not return a result for **applications created after January 23rd, 2024**. Please use the [IP Geolocation Smart signal](https://dev.fingerprint.com/docs/smart-signals-overview#ip-geolocation) for geolocation information. - * @deprecated - */ -@Deprecated -@Schema(description = "This field is **deprecated** and will not return a result for **applications created after January 23rd, 2024**. Please use the [IP Geolocation Smart signal](https://dev.fingerprint.com/docs/smart-signals-overview#ip-geolocation) for geolocation information.") -@JsonPropertyOrder({ - DeprecatedGeolocation.JSON_PROPERTY_ACCURACY_RADIUS, - DeprecatedGeolocation.JSON_PROPERTY_LATITUDE, - DeprecatedGeolocation.JSON_PROPERTY_LONGITUDE, - DeprecatedGeolocation.JSON_PROPERTY_POSTAL_CODE, - DeprecatedGeolocation.JSON_PROPERTY_TIMEZONE, - DeprecatedGeolocation.JSON_PROPERTY_CITY, - DeprecatedGeolocation.JSON_PROPERTY_COUNTRY, - DeprecatedGeolocation.JSON_PROPERTY_CONTINENT, - DeprecatedGeolocation.JSON_PROPERTY_SUBDIVISIONS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class DeprecatedGeolocation { - public static final String JSON_PROPERTY_ACCURACY_RADIUS = "accuracyRadius"; - private Integer accuracyRadius; - - public static final String JSON_PROPERTY_LATITUDE = "latitude"; - private Double latitude; - - public static final String JSON_PROPERTY_LONGITUDE = "longitude"; - private Double longitude; - - public static final String JSON_PROPERTY_POSTAL_CODE = "postalCode"; - private String postalCode; - - public static final String JSON_PROPERTY_TIMEZONE = "timezone"; - private String timezone; - - public static final String JSON_PROPERTY_CITY = "city"; - private GeolocationCity city; - - public static final String JSON_PROPERTY_COUNTRY = "country"; - private GeolocationCountry country; - - public static final String JSON_PROPERTY_CONTINENT = "continent"; - private GeolocationContinent continent; - - public static final String JSON_PROPERTY_SUBDIVISIONS = "subdivisions"; - private List subdivisions = null; - - public DeprecatedGeolocation() { - } - - public DeprecatedGeolocation accuracyRadius(Integer accuracyRadius) { - this.accuracyRadius = accuracyRadius; - return this; - } - - /** - * The IP address is likely to be within this radius (in km) of the specified location. - * minimum: 0 - * @return accuracyRadius - **/ - @jakarta.annotation.Nullable - @Schema(description = "The IP address is likely to be within this radius (in km) of the specified location.") - @JsonProperty(JSON_PROPERTY_ACCURACY_RADIUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getAccuracyRadius() { - return accuracyRadius; - } - - - @JsonProperty(JSON_PROPERTY_ACCURACY_RADIUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAccuracyRadius(Integer accuracyRadius) { - this.accuracyRadius = accuracyRadius; - } - - - public DeprecatedGeolocation latitude(Double latitude) { - this.latitude = latitude; - return this; - } - - /** - * Get latitude - * minimum: -90 - * maximum: 90 - * @return latitude - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LATITUDE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Double getLatitude() { - return latitude; - } - - - @JsonProperty(JSON_PROPERTY_LATITUDE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLatitude(Double latitude) { - this.latitude = latitude; - } - - - public DeprecatedGeolocation longitude(Double longitude) { - this.longitude = longitude; - return this; - } - - /** - * Get longitude - * minimum: -180 - * maximum: 180 - * @return longitude - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LONGITUDE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Double getLongitude() { - return longitude; - } - - - @JsonProperty(JSON_PROPERTY_LONGITUDE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLongitude(Double longitude) { - this.longitude = longitude; - } - - - public DeprecatedGeolocation postalCode(String postalCode) { - this.postalCode = postalCode; - return this; - } - - /** - * Get postalCode - * @return postalCode - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_POSTAL_CODE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getPostalCode() { - return postalCode; - } - - - @JsonProperty(JSON_PROPERTY_POSTAL_CODE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPostalCode(String postalCode) { - this.postalCode = postalCode; - } - - - public DeprecatedGeolocation timezone(String timezone) { - this.timezone = timezone; - return this; - } - - /** - * Get timezone - * @return timezone - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getTimezone() { - return timezone; - } - - - @JsonProperty(JSON_PROPERTY_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTimezone(String timezone) { - this.timezone = timezone; - } - - - public DeprecatedGeolocation city(GeolocationCity city) { - this.city = city; - return this; - } - - /** - * Get city - * @return city - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public GeolocationCity getCity() { - return city; - } - - - @JsonProperty(JSON_PROPERTY_CITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCity(GeolocationCity city) { - this.city = city; - } - - - public DeprecatedGeolocation country(GeolocationCountry country) { - this.country = country; - return this; - } - - /** - * Get country - * @return country - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public GeolocationCountry getCountry() { - return country; - } - - - @JsonProperty(JSON_PROPERTY_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCountry(GeolocationCountry country) { - this.country = country; - } - - - public DeprecatedGeolocation continent(GeolocationContinent continent) { - this.continent = continent; - return this; - } - - /** - * Get continent - * @return continent - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONTINENT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public GeolocationContinent getContinent() { - return continent; - } - - - @JsonProperty(JSON_PROPERTY_CONTINENT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setContinent(GeolocationContinent continent) { - this.continent = continent; - } - - - public DeprecatedGeolocation subdivisions(List subdivisions) { - this.subdivisions = subdivisions; - return this; - } - - public DeprecatedGeolocation addGeolocationSubdivisionItem(GeolocationSubdivision subdivisionsItem) { - if (this.subdivisions == null) { - this.subdivisions = new ArrayList<>(); - } - this.subdivisions.add(subdivisionsItem); - return this; - } - - /** - * Get subdivisions - * @return subdivisions - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SUBDIVISIONS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public List getSubdivisions() { - return subdivisions; - } - - - @JsonProperty(JSON_PROPERTY_SUBDIVISIONS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSubdivisions(List subdivisions) { - this.subdivisions = subdivisions; - } - - - /** - * Return true if this DeprecatedGeolocation object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DeprecatedGeolocation deprecatedGeolocation = (DeprecatedGeolocation) o; - return Objects.equals(this.accuracyRadius, deprecatedGeolocation.accuracyRadius) && - Objects.equals(this.latitude, deprecatedGeolocation.latitude) && - Objects.equals(this.longitude, deprecatedGeolocation.longitude) && - Objects.equals(this.postalCode, deprecatedGeolocation.postalCode) && - Objects.equals(this.timezone, deprecatedGeolocation.timezone) && - Objects.equals(this.city, deprecatedGeolocation.city) && - Objects.equals(this.country, deprecatedGeolocation.country) && - Objects.equals(this.continent, deprecatedGeolocation.continent) && - Objects.equals(this.subdivisions, deprecatedGeolocation.subdivisions); - } - - @Override - public int hashCode() { - return Objects.hash(accuracyRadius, latitude, longitude, postalCode, timezone, city, country, continent, subdivisions); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DeprecatedGeolocation {\n"); - sb.append(" accuracyRadius: ").append(toIndentedString(accuracyRadius)).append("\n"); - sb.append(" latitude: ").append(toIndentedString(latitude)).append("\n"); - sb.append(" longitude: ").append(toIndentedString(longitude)).append("\n"); - sb.append(" postalCode: ").append(toIndentedString(postalCode)).append("\n"); - sb.append(" timezone: ").append(toIndentedString(timezone)).append("\n"); - sb.append(" city: ").append(toIndentedString(city)).append("\n"); - sb.append(" country: ").append(toIndentedString(country)).append("\n"); - sb.append(" continent: ").append(toIndentedString(continent)).append("\n"); - sb.append(" subdivisions: ").append(toIndentedString(subdivisions)).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/DeveloperTools.java b/sdk/src/main/java/com/fingerprint/model/DeveloperTools.java deleted file mode 100644 index 925222bc..00000000 --- a/sdk/src/main/java/com/fingerprint/model/DeveloperTools.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * DeveloperTools - */ - - -@JsonPropertyOrder({ - DeveloperTools.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class DeveloperTools { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public DeveloperTools() { - } - - public DeveloperTools result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this DeveloperTools object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DeveloperTools developerTools = (DeveloperTools) o; - return Objects.equals(this.result, developerTools.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DeveloperTools {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Emulator.java b/sdk/src/main/java/com/fingerprint/model/Emulator.java deleted file mode 100644 index 6c338c86..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Emulator.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Emulator - */ - - -@JsonPropertyOrder({ - Emulator.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Emulator { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public Emulator() { - } - - public Emulator result(Boolean result) { - this.result = result; - return this; - } - - /** - * 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. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "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. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this Emulator object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Emulator emulator = (Emulator) o; - return Objects.equals(this.result, emulator.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Emulator {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Error.java b/sdk/src/main/java/com/fingerprint/model/Error.java index 2974cb79..bda7e281 100644 --- a/sdk/src/main/java/com/fingerprint/model/Error.java +++ b/sdk/src/main/java/com/fingerprint/model/Error.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -10,40 +26,39 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * Error */ - - @JsonPropertyOrder({ Error.JSON_PROPERTY_CODE, Error.JSON_PROPERTY_MESSAGE }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Error { public static final String JSON_PROPERTY_CODE = "code"; + @jakarta.annotation.Nonnull private ErrorCode code; public static final String JSON_PROPERTY_MESSAGE = "message"; + @jakarta.annotation.Nonnull private String message; - public Error() { + public Error() { } - public Error code(ErrorCode code) { + public Error code(@jakarta.annotation.Nonnull ErrorCode code) { this.code = code; return this; } - /** + /** * Get code * @return code - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_CODE) + @JsonProperty(value = JSON_PROPERTY_CODE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public ErrorCode getCode() { @@ -51,25 +66,24 @@ public ErrorCode getCode() { } - @JsonProperty(JSON_PROPERTY_CODE) + @JsonProperty(value = JSON_PROPERTY_CODE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCode(ErrorCode code) { + public void setCode(@jakarta.annotation.Nonnull ErrorCode code) { this.code = code; } - public Error message(String message) { + public Error message(@jakarta.annotation.Nonnull String message) { this.message = message; return this; } - /** + /** * Get message * @return message - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getMessage() { @@ -77,9 +91,9 @@ public String getMessage() { } - @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setMessage(String message) { + public void setMessage(@jakarta.annotation.Nonnull String message) { this.message = message; } diff --git a/sdk/src/main/java/com/fingerprint/model/ErrorCode.java b/sdk/src/main/java/com/fingerprint/model/ErrorCode.java index fe8f5f99..de7cdf33 100644 --- a/sdk/src/main/java/com/fingerprint/model/ErrorCode.java +++ b/sdk/src/main/java/com/fingerprint/model/ErrorCode.java @@ -1,41 +1,68 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Locale; /** - * Error code: * `RequestCannotBeParsed` - the query parameters or JSON payload contains some errors that prevented us from parsing it (wrong type/surpassed limits). * `TokenRequired` - `Auth-API-Key` header is missing or empty. * `TokenNotFound` - no Fingerprint application found for specified secret key. * `SubscriptionNotActive` - Fingerprint application is not active. * `WrongRegion` - server and application region differ. * `FeatureNotEnabled` - this feature (for example, Delete API) is not enabled for your application. * `RequestNotFound` - the specified request ID was not found. It never existed, expired, or it has been deleted. * `VisitorNotFound` - The specified visitor ID was not found. It never existed or it may have already been deleted. * `TooManyRequests` - the limit on secret API key requests per second has been exceeded. * `429 Too Many Requests` - the limit on secret API key requests per second has been exceeded. * `StateNotReady` - The event specified with request id is not ready for updates yet. Try again. This error happens in rare cases when update API is called immediately after receiving the request id on the client. In case you need to send information right away, we recommend using the JS agent API instead. * `Failed` - internal server error. + * Error code: * `request_cannot_be_parsed` - The query parameters or JSON payload contains some errors that prevented us from parsing it (wrong type/surpassed limits). * `secret_api_key_required` - secret API key in header is missing or empty. * `secret_api_key_not_found` - No Fingerprint workspace found for specified secret API key. * `public_api_key_required` - public API key in header is missing or empty. * `public_api_key_not_found` - No Fingerprint workspace found for specified public API key. * `subscription_not_active` - Fingerprint workspace is not active. * `wrong_region` - Server and workspace region differ. * `feature_not_enabled` - This feature (for example, Delete API) is not enabled for your workspace. * `request_not_found` - The specified event ID was not found. It never existed, expired, or it has been deleted. * `visitor_not_found` - The specified visitor ID was not found. It never existed or it may have already been deleted. * `too_many_requests` - The limit on secret API key requests per second has been exceeded. * `state_not_ready` - The event specified with event ID is not ready for updates yet. Try again. This error happens in rare cases when update API is called immediately after receiving the event ID on the client. In case you need to send information right away, we recommend using the JS agent API instead. * `failed` - Internal server error. * `event_not_found` - The specified event ID was not found. It never existed, expired, or it has been deleted. * `missing_module` - The request is invalid because it is missing a required module. * `payload_too_large` - The request payload is too large and cannot be processed. * `service_unavailable` - The service was unable to process the request. */ public enum ErrorCode { - REQUEST_CANNOT_BE_PARSED("RequestCannotBeParsed"), + REQUEST_CANNOT_BE_PARSED("request_cannot_be_parsed"), + + SECRET_API_KEY_REQUIRED("secret_api_key_required"), + + SECRET_API_KEY_NOT_FOUND("secret_api_key_not_found"), + + PUBLIC_API_KEY_REQUIRED("public_api_key_required"), + + PUBLIC_API_KEY_NOT_FOUND("public_api_key_not_found"), + + SUBSCRIPTION_NOT_ACTIVE("subscription_not_active"), - TOKEN_REQUIRED("TokenRequired"), + WRONG_REGION("wrong_region"), - TOKEN_NOT_FOUND("TokenNotFound"), + FEATURE_NOT_ENABLED("feature_not_enabled"), - SUBSCRIPTION_NOT_ACTIVE("SubscriptionNotActive"), + REQUEST_NOT_FOUND("request_not_found"), - WRONG_REGION("WrongRegion"), + VISITOR_NOT_FOUND("visitor_not_found"), - FEATURE_NOT_ENABLED("FeatureNotEnabled"), + TOO_MANY_REQUESTS("too_many_requests"), - REQUEST_NOT_FOUND("RequestNotFound"), + STATE_NOT_READY("state_not_ready"), - VISITOR_NOT_FOUND("VisitorNotFound"), + FAILED("failed"), - TOO_MANY_REQUESTS("TooManyRequests"), + EVENT_NOT_FOUND("event_not_found"), - _429_TOO_MANY_REQUESTS("429 Too Many Requests"), + MISSING_MODULE("missing_module"), - STATE_NOT_READY("StateNotReady"), + PAYLOAD_TOO_LARGE("payload_too_large"), - FAILED("Failed"); + SERVICE_UNAVAILABLE("service_unavailable"); private String value; @@ -60,7 +87,7 @@ public static ErrorCode fromValue(String value) { return b; } } - return null; + throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } diff --git a/sdk/src/main/java/com/fingerprint/model/ErrorPlainResponse.java b/sdk/src/main/java/com/fingerprint/model/ErrorPlainResponse.java deleted file mode 100644 index b5baf68e..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ErrorPlainResponse.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ErrorPlainResponse - */ - - -@JsonPropertyOrder({ - ErrorPlainResponse.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ErrorPlainResponse { - public static final String JSON_PROPERTY_ERROR = "error"; - private String error; - - public ErrorPlainResponse() { - } - - public ErrorPlainResponse error(String error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setError(String error) { - this.error = error; - } - - - /** - * Return true if this ErrorPlainResponse object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ErrorPlainResponse errorPlainResponse = (ErrorPlainResponse) o; - return Objects.equals(this.error, errorPlainResponse.error); - } - - @Override - public int hashCode() { - return Objects.hash(error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ErrorPlainResponse {\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ErrorResponse.java b/sdk/src/main/java/com/fingerprint/model/ErrorResponse.java index 26b64b61..43634d5b 100644 --- a/sdk/src/main/java/com/fingerprint/model/ErrorResponse.java +++ b/sdk/src/main/java/com/fingerprint/model/ErrorResponse.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -10,36 +26,34 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * ErrorResponse */ - - @JsonPropertyOrder({ ErrorResponse.JSON_PROPERTY_ERROR }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ErrorResponse { public static final String JSON_PROPERTY_ERROR = "error"; + @jakarta.annotation.Nonnull private Error error; - public ErrorResponse() { + public ErrorResponse() { } - public ErrorResponse error(Error error) { + public ErrorResponse error(@jakarta.annotation.Nonnull Error error) { this.error = error; return this; } - /** + /** * Get error * @return error - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ERROR) + @JsonProperty(value = JSON_PROPERTY_ERROR, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Error getError() { @@ -47,9 +61,9 @@ public Error getError() { } - @JsonProperty(JSON_PROPERTY_ERROR) + @JsonProperty(value = JSON_PROPERTY_ERROR, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setError(Error error) { + public void setError(@jakarta.annotation.Nonnull Error error) { this.error = error; } diff --git a/sdk/src/main/java/com/fingerprint/model/Event.java b/sdk/src/main/java/com/fingerprint/model/Event.java new file mode 100644 index 00000000..86cc4890 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/Event.java @@ -0,0 +1,1597 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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.BotResult; +import com.fingerprint.model.BrowserDetails; +import com.fingerprint.model.IPBlockList; +import com.fingerprint.model.IPInfo; +import com.fingerprint.model.Identification; +import com.fingerprint.model.Proximity; +import com.fingerprint.model.ProxyConfidence; +import com.fingerprint.model.ProxyDetails; +import com.fingerprint.model.SDK; +import com.fingerprint.model.SupplementaryIDHighRecall; +import com.fingerprint.model.TamperingDetails; +import com.fingerprint.model.Velocity; +import com.fingerprint.model.VpnConfidence; +import com.fingerprint.model.VpnMethods; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * Contains results from Fingerprint Identification and all active Smart Signals. + */ +@JsonPropertyOrder({ + Event.JSON_PROPERTY_EVENT_ID, + Event.JSON_PROPERTY_TIMESTAMP, + Event.JSON_PROPERTY_LINKED_ID, + Event.JSON_PROPERTY_ENVIRONMENT_ID, + Event.JSON_PROPERTY_SUSPECT, + Event.JSON_PROPERTY_SDK, + Event.JSON_PROPERTY_REPLAYED, + Event.JSON_PROPERTY_IDENTIFICATION, + Event.JSON_PROPERTY_SUPPLEMENTARY_ID_HIGH_RECALL, + Event.JSON_PROPERTY_TAGS, + Event.JSON_PROPERTY_URL, + Event.JSON_PROPERTY_BUNDLE_ID, + Event.JSON_PROPERTY_PACKAGE_NAME, + Event.JSON_PROPERTY_IP_ADDRESS, + Event.JSON_PROPERTY_USER_AGENT, + Event.JSON_PROPERTY_CLIENT_REFERRER, + Event.JSON_PROPERTY_BROWSER_DETAILS, + Event.JSON_PROPERTY_PROXIMITY, + Event.JSON_PROPERTY_BOT, + Event.JSON_PROPERTY_BOT_TYPE, + Event.JSON_PROPERTY_CLONED_APP, + Event.JSON_PROPERTY_DEVELOPER_TOOLS, + Event.JSON_PROPERTY_EMULATOR, + Event.JSON_PROPERTY_FACTORY_RESET_TIMESTAMP, + Event.JSON_PROPERTY_FRIDA, + Event.JSON_PROPERTY_IP_BLOCKLIST, + Event.JSON_PROPERTY_IP_INFO, + Event.JSON_PROPERTY_PROXY, + Event.JSON_PROPERTY_PROXY_CONFIDENCE, + Event.JSON_PROPERTY_PROXY_DETAILS, + Event.JSON_PROPERTY_INCOGNITO, + Event.JSON_PROPERTY_JAILBROKEN, + Event.JSON_PROPERTY_LOCATION_SPOOFING, + Event.JSON_PROPERTY_MITM_ATTACK, + Event.JSON_PROPERTY_PRIVACY_SETTINGS, + Event.JSON_PROPERTY_ROOT_APPS, + Event.JSON_PROPERTY_SUSPECT_SCORE, + Event.JSON_PROPERTY_TAMPERING, + Event.JSON_PROPERTY_TAMPERING_DETAILS, + Event.JSON_PROPERTY_VELOCITY, + Event.JSON_PROPERTY_VIRTUAL_MACHINE, + Event.JSON_PROPERTY_VPN, + Event.JSON_PROPERTY_VPN_CONFIDENCE, + Event.JSON_PROPERTY_VPN_ORIGIN_TIMEZONE, + Event.JSON_PROPERTY_VPN_ORIGIN_COUNTRY, + Event.JSON_PROPERTY_VPN_METHODS, + Event.JSON_PROPERTY_HIGH_ACTIVITY_DEVICE +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class Event { + public static final String JSON_PROPERTY_EVENT_ID = "event_id"; + @jakarta.annotation.Nonnull + private String eventId; + + public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; + @jakarta.annotation.Nonnull + private Long timestamp; + + public static final String JSON_PROPERTY_LINKED_ID = "linked_id"; + @jakarta.annotation.Nullable + private String linkedId; + + public static final String JSON_PROPERTY_ENVIRONMENT_ID = "environment_id"; + @jakarta.annotation.Nullable + private String environmentId; + + public static final String JSON_PROPERTY_SUSPECT = "suspect"; + @jakarta.annotation.Nullable + private Boolean suspect; + + public static final String JSON_PROPERTY_SDK = "sdk"; + @jakarta.annotation.Nullable + private SDK sdk; + + public static final String JSON_PROPERTY_REPLAYED = "replayed"; + @jakarta.annotation.Nullable + private Boolean replayed; + + public static final String JSON_PROPERTY_IDENTIFICATION = "identification"; + @jakarta.annotation.Nullable + private Identification identification; + + public static final String JSON_PROPERTY_SUPPLEMENTARY_ID_HIGH_RECALL = "supplementary_id_high_recall"; + @jakarta.annotation.Nullable + private SupplementaryIDHighRecall supplementaryIdHighRecall; + + public static final String JSON_PROPERTY_TAGS = "tags"; + @jakarta.annotation.Nullable + private Object tags; + + public static final String JSON_PROPERTY_URL = "url"; + @jakarta.annotation.Nullable + private String url; + + public static final String JSON_PROPERTY_BUNDLE_ID = "bundle_id"; + @jakarta.annotation.Nullable + private String bundleId; + + public static final String JSON_PROPERTY_PACKAGE_NAME = "package_name"; + @jakarta.annotation.Nullable + private String packageName; + + public static final String JSON_PROPERTY_IP_ADDRESS = "ip_address"; + @jakarta.annotation.Nullable + private String ipAddress; + + public static final String JSON_PROPERTY_USER_AGENT = "user_agent"; + @jakarta.annotation.Nullable + private String userAgent; + + public static final String JSON_PROPERTY_CLIENT_REFERRER = "client_referrer"; + @jakarta.annotation.Nullable + private String clientReferrer; + + public static final String JSON_PROPERTY_BROWSER_DETAILS = "browser_details"; + @jakarta.annotation.Nullable + private BrowserDetails browserDetails; + + public static final String JSON_PROPERTY_PROXIMITY = "proximity"; + @jakarta.annotation.Nullable + private Proximity proximity; + + public static final String JSON_PROPERTY_BOT = "bot"; + @jakarta.annotation.Nullable + private BotResult bot; + + public static final String JSON_PROPERTY_BOT_TYPE = "bot_type"; + @jakarta.annotation.Nullable + private String botType; + + public static final String JSON_PROPERTY_CLONED_APP = "cloned_app"; + @jakarta.annotation.Nullable + private Boolean clonedApp; + + public static final String JSON_PROPERTY_DEVELOPER_TOOLS = "developer_tools"; + @jakarta.annotation.Nullable + private Boolean developerTools; + + public static final String JSON_PROPERTY_EMULATOR = "emulator"; + @jakarta.annotation.Nullable + private Boolean emulator; + + public static final String JSON_PROPERTY_FACTORY_RESET_TIMESTAMP = "factory_reset_timestamp"; + @jakarta.annotation.Nullable + private Long factoryResetTimestamp; + + public static final String JSON_PROPERTY_FRIDA = "frida"; + @jakarta.annotation.Nullable + private Boolean frida; + + public static final String JSON_PROPERTY_IP_BLOCKLIST = "ip_blocklist"; + @jakarta.annotation.Nullable + private IPBlockList ipBlocklist; + + public static final String JSON_PROPERTY_IP_INFO = "ip_info"; + @jakarta.annotation.Nullable + private IPInfo ipInfo; + + public static final String JSON_PROPERTY_PROXY = "proxy"; + @jakarta.annotation.Nullable + private Boolean proxy; + + public static final String JSON_PROPERTY_PROXY_CONFIDENCE = "proxy_confidence"; + @jakarta.annotation.Nullable + private ProxyConfidence proxyConfidence; + + public static final String JSON_PROPERTY_PROXY_DETAILS = "proxy_details"; + @jakarta.annotation.Nullable + private ProxyDetails proxyDetails; + + public static final String JSON_PROPERTY_INCOGNITO = "incognito"; + @jakarta.annotation.Nullable + private Boolean incognito; + + public static final String JSON_PROPERTY_JAILBROKEN = "jailbroken"; + @jakarta.annotation.Nullable + private Boolean jailbroken; + + public static final String JSON_PROPERTY_LOCATION_SPOOFING = "location_spoofing"; + @jakarta.annotation.Nullable + private Boolean locationSpoofing; + + public static final String JSON_PROPERTY_MITM_ATTACK = "mitm_attack"; + @jakarta.annotation.Nullable + private Boolean mitmAttack; + + public static final String JSON_PROPERTY_PRIVACY_SETTINGS = "privacy_settings"; + @jakarta.annotation.Nullable + private Boolean privacySettings; + + public static final String JSON_PROPERTY_ROOT_APPS = "root_apps"; + @jakarta.annotation.Nullable + private Boolean rootApps; + + public static final String JSON_PROPERTY_SUSPECT_SCORE = "suspect_score"; + @jakarta.annotation.Nullable + private Integer suspectScore; + + public static final String JSON_PROPERTY_TAMPERING = "tampering"; + @jakarta.annotation.Nullable + private Boolean tampering; + + public static final String JSON_PROPERTY_TAMPERING_DETAILS = "tampering_details"; + @jakarta.annotation.Nullable + private TamperingDetails tamperingDetails; + + public static final String JSON_PROPERTY_VELOCITY = "velocity"; + @jakarta.annotation.Nullable + private Velocity velocity; + + public static final String JSON_PROPERTY_VIRTUAL_MACHINE = "virtual_machine"; + @jakarta.annotation.Nullable + private Boolean virtualMachine; + + public static final String JSON_PROPERTY_VPN = "vpn"; + @jakarta.annotation.Nullable + private Boolean vpn; + + public static final String JSON_PROPERTY_VPN_CONFIDENCE = "vpn_confidence"; + @jakarta.annotation.Nullable + private VpnConfidence vpnConfidence; + + public static final String JSON_PROPERTY_VPN_ORIGIN_TIMEZONE = "vpn_origin_timezone"; + @jakarta.annotation.Nullable + private String vpnOriginTimezone; + + public static final String JSON_PROPERTY_VPN_ORIGIN_COUNTRY = "vpn_origin_country"; + @jakarta.annotation.Nullable + private String vpnOriginCountry; + + public static final String JSON_PROPERTY_VPN_METHODS = "vpn_methods"; + @jakarta.annotation.Nullable + private VpnMethods vpnMethods; + + public static final String JSON_PROPERTY_HIGH_ACTIVITY_DEVICE = "high_activity_device"; + @jakarta.annotation.Nullable + private Boolean highActivityDevice; + + public Event() { + } + + public Event eventId(@jakarta.annotation.Nonnull String eventId) { + this.eventId = eventId; + return this; + } + + /** + * Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp For example: `1758130560902.8tRtrH` + * @return eventId + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_EVENT_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getEventId() { + return eventId; + } + + + @JsonProperty(value = JSON_PROPERTY_EVENT_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setEventId(@jakarta.annotation.Nonnull String eventId) { + this.eventId = eventId; + } + + + public Event timestamp(@jakarta.annotation.Nonnull Long timestamp) { + this.timestamp = timestamp; + return this; + } + + /** + * Timestamp of the event with millisecond precision in Unix time. + * @return timestamp + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_TIMESTAMP, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public Long getTimestamp() { + return timestamp; + } + + + @JsonProperty(value = JSON_PROPERTY_TIMESTAMP, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTimestamp(@jakarta.annotation.Nonnull Long timestamp) { + this.timestamp = timestamp; + } + + + public Event linkedId(@jakarta.annotation.Nullable String linkedId) { + this.linkedId = linkedId; + return this; + } + + /** + * A customer-provided id that was sent with the request. + * @return linkedId + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getLinkedId() { + return linkedId; + } + + + @JsonProperty(value = JSON_PROPERTY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLinkedId(@jakarta.annotation.Nullable String linkedId) { + this.linkedId = linkedId; + } + + + public Event environmentId(@jakarta.annotation.Nullable String environmentId) { + this.environmentId = environmentId; + return this; + } + + /** + * Environment Id of the event. For example: `ae_47abaca3db2c7c43` + * @return environmentId + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ENVIRONMENT_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getEnvironmentId() { + return environmentId; + } + + + @JsonProperty(value = JSON_PROPERTY_ENVIRONMENT_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEnvironmentId(@jakarta.annotation.Nullable String environmentId) { + this.environmentId = environmentId; + } + + + public Event suspect(@jakarta.annotation.Nullable Boolean suspect) { + this.suspect = suspect; + return this; + } + + /** + * Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent). + * @return suspect + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SUSPECT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getSuspect() { + return suspect; + } + + + @JsonProperty(value = JSON_PROPERTY_SUSPECT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSuspect(@jakarta.annotation.Nullable Boolean suspect) { + this.suspect = suspect; + } + + + public Event sdk(@jakarta.annotation.Nullable SDK sdk) { + this.sdk = sdk; + return this; + } + + /** + * Get sdk + * @return sdk + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SDK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public SDK getSdk() { + return sdk; + } + + + @JsonProperty(value = JSON_PROPERTY_SDK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSdk(@jakarta.annotation.Nullable SDK sdk) { + this.sdk = sdk; + } + + + public Event replayed(@jakarta.annotation.Nullable Boolean replayed) { + this.replayed = replayed; + return this; + } + + /** + * `true` if we determined that this payload was replayed, `false` otherwise. + * @return replayed + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_REPLAYED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getReplayed() { + return replayed; + } + + + @JsonProperty(value = JSON_PROPERTY_REPLAYED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setReplayed(@jakarta.annotation.Nullable Boolean replayed) { + this.replayed = replayed; + } + + + public Event identification(@jakarta.annotation.Nullable Identification identification) { + this.identification = identification; + return this; + } + + /** + * Get identification + * @return identification + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_IDENTIFICATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Identification getIdentification() { + return identification; + } + + + @JsonProperty(value = JSON_PROPERTY_IDENTIFICATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIdentification(@jakarta.annotation.Nullable Identification identification) { + this.identification = identification; + } + + + public Event supplementaryIdHighRecall(@jakarta.annotation.Nullable SupplementaryIDHighRecall supplementaryIdHighRecall) { + this.supplementaryIdHighRecall = supplementaryIdHighRecall; + return this; + } + + /** + * Get supplementaryIdHighRecall + * @return supplementaryIdHighRecall + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SUPPLEMENTARY_ID_HIGH_RECALL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public SupplementaryIDHighRecall getSupplementaryIdHighRecall() { + return supplementaryIdHighRecall; + } + + + @JsonProperty(value = JSON_PROPERTY_SUPPLEMENTARY_ID_HIGH_RECALL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSupplementaryIdHighRecall(@jakarta.annotation.Nullable SupplementaryIDHighRecall supplementaryIdHighRecall) { + this.supplementaryIdHighRecall = supplementaryIdHighRecall; + } + + + public Event tags(@jakarta.annotation.Nullable Object tags) { + this.tags = tags; + return this; + } + + /** + * A customer-provided value or an object that was sent with the identification request or updated later. + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TAGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Object getTags() { + return tags; + } + + + @JsonProperty(value = JSON_PROPERTY_TAGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTags(@jakarta.annotation.Nullable Object tags) { + this.tags = tags; + } + + + public Event url(@jakarta.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Page URL from which the request was sent. For example `https://example.com/` + * @return url + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_URL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getUrl() { + return url; + } + + + @JsonProperty(value = JSON_PROPERTY_URL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUrl(@jakarta.annotation.Nullable String url) { + this.url = url; + } + + + public Event bundleId(@jakarta.annotation.Nullable String bundleId) { + this.bundleId = bundleId; + return this; + } + + /** + * Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` + * @return bundleId + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BUNDLE_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getBundleId() { + return bundleId; + } + + + @JsonProperty(value = JSON_PROPERTY_BUNDLE_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBundleId(@jakarta.annotation.Nullable String bundleId) { + this.bundleId = bundleId; + } + + + public Event packageName(@jakarta.annotation.Nullable String packageName) { + this.packageName = packageName; + return this; + } + + /** + * Package name of the Android application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` + * @return packageName + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PACKAGE_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getPackageName() { + return packageName; + } + + + @JsonProperty(value = JSON_PROPERTY_PACKAGE_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPackageName(@jakarta.annotation.Nullable String packageName) { + this.packageName = packageName; + } + + + public Event ipAddress(@jakarta.annotation.Nullable String ipAddress) { + this.ipAddress = ipAddress; + return this; + } + + /** + * IP address of the requesting browser or bot. + * @return ipAddress + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_IP_ADDRESS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getIpAddress() { + return ipAddress; + } + + + @JsonProperty(value = JSON_PROPERTY_IP_ADDRESS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIpAddress(@jakarta.annotation.Nullable String ipAddress) { + this.ipAddress = ipAddress; + } + + + public Event userAgent(@jakarta.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....` + * @return userAgent + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_USER_AGENT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getUserAgent() { + return userAgent; + } + + + @JsonProperty(value = JSON_PROPERTY_USER_AGENT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUserAgent(@jakarta.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + public Event clientReferrer(@jakarta.annotation.Nullable String clientReferrer) { + this.clientReferrer = clientReferrer; + return this; + } + + /** + * Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark) For example: `https://example.com/blog/my-article` + * @return clientReferrer + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_CLIENT_REFERRER, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getClientReferrer() { + return clientReferrer; + } + + + @JsonProperty(value = JSON_PROPERTY_CLIENT_REFERRER, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setClientReferrer(@jakarta.annotation.Nullable String clientReferrer) { + this.clientReferrer = clientReferrer; + } + + + public Event browserDetails(@jakarta.annotation.Nullable BrowserDetails browserDetails) { + this.browserDetails = browserDetails; + return this; + } + + /** + * Get browserDetails + * @return browserDetails + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BROWSER_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public BrowserDetails getBrowserDetails() { + return browserDetails; + } + + + @JsonProperty(value = JSON_PROPERTY_BROWSER_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBrowserDetails(@jakarta.annotation.Nullable BrowserDetails browserDetails) { + this.browserDetails = browserDetails; + } + + + public Event proximity(@jakarta.annotation.Nullable Proximity proximity) { + this.proximity = proximity; + return this; + } + + /** + * Get proximity + * @return proximity + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PROXIMITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Proximity getProximity() { + return proximity; + } + + + @JsonProperty(value = JSON_PROPERTY_PROXIMITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProximity(@jakarta.annotation.Nullable Proximity proximity) { + this.proximity = proximity; + } + + + public Event bot(@jakarta.annotation.Nullable BotResult bot) { + this.bot = bot; + return this; + } + + /** + * Get bot + * @return bot + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BOT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public BotResult getBot() { + return bot; + } + + + @JsonProperty(value = JSON_PROPERTY_BOT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBot(@jakarta.annotation.Nullable BotResult bot) { + this.bot = bot; + } + + + public Event botType(@jakarta.annotation.Nullable String botType) { + this.botType = botType; + return this; + } + + /** + * Additional classification of the bot type if detected. + * @return botType + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BOT_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getBotType() { + return botType; + } + + + @JsonProperty(value = JSON_PROPERTY_BOT_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBotType(@jakarta.annotation.Nullable String botType) { + this.botType = botType; + } + + + public Event clonedApp(@jakarta.annotation.Nullable Boolean clonedApp) { + this.clonedApp = clonedApp; + return this; + } + + /** + * 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. + * @return clonedApp + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_CLONED_APP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getClonedApp() { + return clonedApp; + } + + + @JsonProperty(value = JSON_PROPERTY_CLONED_APP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setClonedApp(@jakarta.annotation.Nullable Boolean clonedApp) { + this.clonedApp = clonedApp; + } + + + public Event developerTools(@jakarta.annotation.Nullable Boolean developerTools) { + this.developerTools = developerTools; + return this; + } + + /** + * `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. + * @return developerTools + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DEVELOPER_TOOLS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getDeveloperTools() { + return developerTools; + } + + + @JsonProperty(value = JSON_PROPERTY_DEVELOPER_TOOLS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDeveloperTools(@jakarta.annotation.Nullable Boolean developerTools) { + this.developerTools = developerTools; + } + + + public Event emulator(@jakarta.annotation.Nullable Boolean emulator) { + this.emulator = emulator; + return this; + } + + /** + * 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. + * @return emulator + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_EMULATOR, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getEmulator() { + return emulator; + } + + + @JsonProperty(value = JSON_PROPERTY_EMULATOR, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEmulator(@jakarta.annotation.Nullable Boolean emulator) { + this.emulator = emulator; + } + + + public Event factoryResetTimestamp(@jakarta.annotation.Nullable Long factoryResetTimestamp) { + this.factoryResetTimestamp = factoryResetTimestamp; + return this; + } + + /** + * The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC) as a value of 0. See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. + * @return factoryResetTimestamp + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_FACTORY_RESET_TIMESTAMP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Long getFactoryResetTimestamp() { + return factoryResetTimestamp; + } + + + @JsonProperty(value = JSON_PROPERTY_FACTORY_RESET_TIMESTAMP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFactoryResetTimestamp(@jakarta.annotation.Nullable Long factoryResetTimestamp) { + this.factoryResetTimestamp = factoryResetTimestamp; + } + + + public Event frida(@jakarta.annotation.Nullable Boolean frida) { + this.frida = frida; + return this; + } + + /** + * [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. + * @return frida + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_FRIDA, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getFrida() { + return frida; + } + + + @JsonProperty(value = JSON_PROPERTY_FRIDA, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFrida(@jakarta.annotation.Nullable Boolean frida) { + this.frida = frida; + } + + + public Event ipBlocklist(@jakarta.annotation.Nullable IPBlockList ipBlocklist) { + this.ipBlocklist = ipBlocklist; + return this; + } + + /** + * Get ipBlocklist + * @return ipBlocklist + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_IP_BLOCKLIST, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public IPBlockList getIpBlocklist() { + return ipBlocklist; + } + + + @JsonProperty(value = JSON_PROPERTY_IP_BLOCKLIST, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIpBlocklist(@jakarta.annotation.Nullable IPBlockList ipBlocklist) { + this.ipBlocklist = ipBlocklist; + } + + + public Event ipInfo(@jakarta.annotation.Nullable IPInfo ipInfo) { + this.ipInfo = ipInfo; + return this; + } + + /** + * Get ipInfo + * @return ipInfo + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_IP_INFO, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public IPInfo getIpInfo() { + return ipInfo; + } + + + @JsonProperty(value = JSON_PROPERTY_IP_INFO, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIpInfo(@jakarta.annotation.Nullable IPInfo ipInfo) { + this.ipInfo = ipInfo; + } + + + public Event proxy(@jakarta.annotation.Nullable Boolean proxy) { + this.proxy = proxy; + return this; + } + + /** + * IP address was used by a public proxy provider or belonged to a known recent residential proxy + * @return proxy + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PROXY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getProxy() { + return proxy; + } + + + @JsonProperty(value = JSON_PROPERTY_PROXY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProxy(@jakarta.annotation.Nullable Boolean proxy) { + this.proxy = proxy; + } + + + public Event proxyConfidence(@jakarta.annotation.Nullable ProxyConfidence proxyConfidence) { + this.proxyConfidence = proxyConfidence; + return this; + } + + /** + * Get proxyConfidence + * @return proxyConfidence + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PROXY_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public ProxyConfidence getProxyConfidence() { + return proxyConfidence; + } + + + @JsonProperty(value = JSON_PROPERTY_PROXY_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProxyConfidence(@jakarta.annotation.Nullable ProxyConfidence proxyConfidence) { + this.proxyConfidence = proxyConfidence; + } + + + public Event proxyDetails(@jakarta.annotation.Nullable ProxyDetails proxyDetails) { + this.proxyDetails = proxyDetails; + return this; + } + + /** + * Get proxyDetails + * @return proxyDetails + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PROXY_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public ProxyDetails getProxyDetails() { + return proxyDetails; + } + + + @JsonProperty(value = JSON_PROPERTY_PROXY_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProxyDetails(@jakarta.annotation.Nullable ProxyDetails proxyDetails) { + this.proxyDetails = proxyDetails; + } + + + public Event incognito(@jakarta.annotation.Nullable Boolean incognito) { + this.incognito = incognito; + return this; + } + + /** + * `true` if we detected incognito mode used in the browser, `false` otherwise. + * @return incognito + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_INCOGNITO, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getIncognito() { + return incognito; + } + + + @JsonProperty(value = JSON_PROPERTY_INCOGNITO, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIncognito(@jakarta.annotation.Nullable Boolean incognito) { + this.incognito = incognito; + } + + + public Event jailbroken(@jakarta.annotation.Nullable Boolean jailbroken) { + this.jailbroken = jailbroken; + return this; + } + + /** + * iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. + * @return jailbroken + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_JAILBROKEN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getJailbroken() { + return jailbroken; + } + + + @JsonProperty(value = JSON_PROPERTY_JAILBROKEN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setJailbroken(@jakarta.annotation.Nullable Boolean jailbroken) { + this.jailbroken = jailbroken; + } + + + public Event locationSpoofing(@jakarta.annotation.Nullable Boolean locationSpoofing) { + this.locationSpoofing = locationSpoofing; + return this; + } + + /** + * Flag indicating whether the request came from a mobile device with location spoofing enabled. + * @return locationSpoofing + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_LOCATION_SPOOFING, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getLocationSpoofing() { + return locationSpoofing; + } + + + @JsonProperty(value = JSON_PROPERTY_LOCATION_SPOOFING, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLocationSpoofing(@jakarta.annotation.Nullable Boolean locationSpoofing) { + this.locationSpoofing = locationSpoofing; + } + + + public Event mitmAttack(@jakarta.annotation.Nullable Boolean mitmAttack) { + this.mitmAttack = mitmAttack; + return this; + } + + /** + * * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) to learn more about this Smart Signal. + * @return mitmAttack + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_MITM_ATTACK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getMitmAttack() { + return mitmAttack; + } + + + @JsonProperty(value = JSON_PROPERTY_MITM_ATTACK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMitmAttack(@jakarta.annotation.Nullable Boolean mitmAttack) { + this.mitmAttack = mitmAttack; + } + + + public Event privacySettings(@jakarta.annotation.Nullable Boolean privacySettings) { + this.privacySettings = privacySettings; + return this; + } + + /** + * `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. + * @return privacySettings + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PRIVACY_SETTINGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getPrivacySettings() { + return privacySettings; + } + + + @JsonProperty(value = JSON_PROPERTY_PRIVACY_SETTINGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrivacySettings(@jakarta.annotation.Nullable Boolean privacySettings) { + this.privacySettings = privacySettings; + } + + + public Event rootApps(@jakarta.annotation.Nullable Boolean rootApps) { + this.rootApps = rootApps; + return this; + } + + /** + * Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. + * @return rootApps + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ROOT_APPS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getRootApps() { + return rootApps; + } + + + @JsonProperty(value = JSON_PROPERTY_ROOT_APPS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRootApps(@jakarta.annotation.Nullable Boolean rootApps) { + this.rootApps = rootApps; + } + + + public Event suspectScore(@jakarta.annotation.Nullable Integer suspectScore) { + this.suspectScore = suspectScore; + return this; + } + + /** + * Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score + * @return suspectScore + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SUSPECT_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Integer getSuspectScore() { + return suspectScore; + } + + + @JsonProperty(value = JSON_PROPERTY_SUSPECT_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSuspectScore(@jakarta.annotation.Nullable Integer suspectScore) { + this.suspectScore = suspectScore; + } + + + public Event tampering(@jakarta.annotation.Nullable Boolean tampering) { + this.tampering = tampering; + return this; + } + + /** + * Flag indicating browser tampering was detected. This happens when either: * There are inconsistencies in the browser configuration that cross internal tampering thresholds (see `tampering_details.anomaly_score`). * The browser signature resembles an \"anti-detect\" browser specifically designed to evade fingerprinting (see `tampering_details.anti_detect_browser`). + * @return tampering + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TAMPERING, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getTampering() { + return tampering; + } + + + @JsonProperty(value = JSON_PROPERTY_TAMPERING, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTampering(@jakarta.annotation.Nullable Boolean tampering) { + this.tampering = tampering; + } + + + public Event tamperingDetails(@jakarta.annotation.Nullable TamperingDetails tamperingDetails) { + this.tamperingDetails = tamperingDetails; + return this; + } + + /** + * Get tamperingDetails + * @return tamperingDetails + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TAMPERING_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public TamperingDetails getTamperingDetails() { + return tamperingDetails; + } + + + @JsonProperty(value = JSON_PROPERTY_TAMPERING_DETAILS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTamperingDetails(@jakarta.annotation.Nullable TamperingDetails tamperingDetails) { + this.tamperingDetails = tamperingDetails; + } + + + public Event velocity(@jakarta.annotation.Nullable Velocity velocity) { + this.velocity = velocity; + return this; + } + + /** + * Get velocity + * @return velocity + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VELOCITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Velocity getVelocity() { + return velocity; + } + + + @JsonProperty(value = JSON_PROPERTY_VELOCITY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVelocity(@jakarta.annotation.Nullable Velocity velocity) { + this.velocity = velocity; + } + + + public Event virtualMachine(@jakarta.annotation.Nullable Boolean virtualMachine) { + this.virtualMachine = virtualMachine; + return this; + } + + /** + * `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. + * @return virtualMachine + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VIRTUAL_MACHINE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getVirtualMachine() { + return virtualMachine; + } + + + @JsonProperty(value = JSON_PROPERTY_VIRTUAL_MACHINE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVirtualMachine(@jakarta.annotation.Nullable Boolean virtualMachine) { + this.virtualMachine = virtualMachine; + } + + + public Event vpn(@jakarta.annotation.Nullable Boolean vpn) { + this.vpn = vpn; + return this; + } + + /** + * VPN or other anonymizing service has been used when sending the request. + * @return vpn + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getVpn() { + return vpn; + } + + + @JsonProperty(value = JSON_PROPERTY_VPN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpn(@jakarta.annotation.Nullable Boolean vpn) { + this.vpn = vpn; + } + + + public Event vpnConfidence(@jakarta.annotation.Nullable VpnConfidence vpnConfidence) { + this.vpnConfidence = vpnConfidence; + return this; + } + + /** + * Get vpnConfidence + * @return vpnConfidence + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public VpnConfidence getVpnConfidence() { + return vpnConfidence; + } + + + @JsonProperty(value = JSON_PROPERTY_VPN_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpnConfidence(@jakarta.annotation.Nullable VpnConfidence vpnConfidence) { + this.vpnConfidence = vpnConfidence; + } + + + public Event vpnOriginTimezone(@jakarta.annotation.Nullable String vpnOriginTimezone) { + this.vpnOriginTimezone = vpnOriginTimezone; + return this; + } + + /** + * Local timezone which is used in timezone_mismatch method. + * @return vpnOriginTimezone + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN_ORIGIN_TIMEZONE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getVpnOriginTimezone() { + return vpnOriginTimezone; + } + + + @JsonProperty(value = JSON_PROPERTY_VPN_ORIGIN_TIMEZONE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpnOriginTimezone(@jakarta.annotation.Nullable String vpnOriginTimezone) { + this.vpnOriginTimezone = vpnOriginTimezone; + } + + + public Event vpnOriginCountry(@jakarta.annotation.Nullable String vpnOriginCountry) { + this.vpnOriginCountry = vpnOriginCountry; + return this; + } + + /** + * Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). + * @return vpnOriginCountry + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN_ORIGIN_COUNTRY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getVpnOriginCountry() { + return vpnOriginCountry; + } + + + @JsonProperty(value = JSON_PROPERTY_VPN_ORIGIN_COUNTRY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpnOriginCountry(@jakarta.annotation.Nullable String vpnOriginCountry) { + this.vpnOriginCountry = vpnOriginCountry; + } + + + public Event vpnMethods(@jakarta.annotation.Nullable VpnMethods vpnMethods) { + this.vpnMethods = vpnMethods; + return this; + } + + /** + * Get vpnMethods + * @return vpnMethods + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN_METHODS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public VpnMethods getVpnMethods() { + return vpnMethods; + } + + + @JsonProperty(value = JSON_PROPERTY_VPN_METHODS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpnMethods(@jakarta.annotation.Nullable VpnMethods vpnMethods) { + this.vpnMethods = vpnMethods; + } + + + public Event highActivityDevice(@jakarta.annotation.Nullable Boolean highActivityDevice) { + this.highActivityDevice = highActivityDevice; + return this; + } + + /** + * Flag indicating if the request came from a high-activity visitor. + * @return highActivityDevice + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_HIGH_ACTIVITY_DEVICE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getHighActivityDevice() { + return highActivityDevice; + } + + + @JsonProperty(value = JSON_PROPERTY_HIGH_ACTIVITY_DEVICE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setHighActivityDevice(@jakarta.annotation.Nullable Boolean highActivityDevice) { + this.highActivityDevice = highActivityDevice; + } + + + /** + * Return true if this Event object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Event event = (Event) o; + return Objects.equals(this.eventId, event.eventId) && + Objects.equals(this.timestamp, event.timestamp) && + Objects.equals(this.linkedId, event.linkedId) && + Objects.equals(this.environmentId, event.environmentId) && + Objects.equals(this.suspect, event.suspect) && + Objects.equals(this.sdk, event.sdk) && + Objects.equals(this.replayed, event.replayed) && + Objects.equals(this.identification, event.identification) && + Objects.equals(this.supplementaryIdHighRecall, event.supplementaryIdHighRecall) && + Objects.equals(this.tags, event.tags) && + Objects.equals(this.url, event.url) && + Objects.equals(this.bundleId, event.bundleId) && + Objects.equals(this.packageName, event.packageName) && + Objects.equals(this.ipAddress, event.ipAddress) && + Objects.equals(this.userAgent, event.userAgent) && + Objects.equals(this.clientReferrer, event.clientReferrer) && + Objects.equals(this.browserDetails, event.browserDetails) && + Objects.equals(this.proximity, event.proximity) && + Objects.equals(this.bot, event.bot) && + Objects.equals(this.botType, event.botType) && + Objects.equals(this.clonedApp, event.clonedApp) && + Objects.equals(this.developerTools, event.developerTools) && + Objects.equals(this.emulator, event.emulator) && + Objects.equals(this.factoryResetTimestamp, event.factoryResetTimestamp) && + Objects.equals(this.frida, event.frida) && + Objects.equals(this.ipBlocklist, event.ipBlocklist) && + Objects.equals(this.ipInfo, event.ipInfo) && + Objects.equals(this.proxy, event.proxy) && + Objects.equals(this.proxyConfidence, event.proxyConfidence) && + Objects.equals(this.proxyDetails, event.proxyDetails) && + Objects.equals(this.incognito, event.incognito) && + Objects.equals(this.jailbroken, event.jailbroken) && + Objects.equals(this.locationSpoofing, event.locationSpoofing) && + Objects.equals(this.mitmAttack, event.mitmAttack) && + Objects.equals(this.privacySettings, event.privacySettings) && + Objects.equals(this.rootApps, event.rootApps) && + Objects.equals(this.suspectScore, event.suspectScore) && + Objects.equals(this.tampering, event.tampering) && + Objects.equals(this.tamperingDetails, event.tamperingDetails) && + Objects.equals(this.velocity, event.velocity) && + Objects.equals(this.virtualMachine, event.virtualMachine) && + Objects.equals(this.vpn, event.vpn) && + Objects.equals(this.vpnConfidence, event.vpnConfidence) && + Objects.equals(this.vpnOriginTimezone, event.vpnOriginTimezone) && + Objects.equals(this.vpnOriginCountry, event.vpnOriginCountry) && + Objects.equals(this.vpnMethods, event.vpnMethods) && + Objects.equals(this.highActivityDevice, event.highActivityDevice); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, timestamp, linkedId, environmentId, suspect, sdk, replayed, identification, supplementaryIdHighRecall, tags, url, bundleId, packageName, ipAddress, userAgent, clientReferrer, browserDetails, proximity, bot, botType, clonedApp, developerTools, emulator, factoryResetTimestamp, frida, ipBlocklist, ipInfo, proxy, proxyConfidence, proxyDetails, incognito, jailbroken, locationSpoofing, mitmAttack, privacySettings, rootApps, suspectScore, tampering, tamperingDetails, velocity, virtualMachine, vpn, vpnConfidence, vpnOriginTimezone, vpnOriginCountry, vpnMethods, highActivityDevice); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Event {\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); + sb.append(" environmentId: ").append(toIndentedString(environmentId)).append("\n"); + sb.append(" suspect: ").append(toIndentedString(suspect)).append("\n"); + sb.append(" sdk: ").append(toIndentedString(sdk)).append("\n"); + sb.append(" replayed: ").append(toIndentedString(replayed)).append("\n"); + sb.append(" identification: ").append(toIndentedString(identification)).append("\n"); + sb.append(" supplementaryIdHighRecall: ").append(toIndentedString(supplementaryIdHighRecall)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" bundleId: ").append(toIndentedString(bundleId)).append("\n"); + sb.append(" packageName: ").append(toIndentedString(packageName)).append("\n"); + sb.append(" ipAddress: ").append(toIndentedString(ipAddress)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append(" clientReferrer: ").append(toIndentedString(clientReferrer)).append("\n"); + sb.append(" browserDetails: ").append(toIndentedString(browserDetails)).append("\n"); + sb.append(" proximity: ").append(toIndentedString(proximity)).append("\n"); + sb.append(" bot: ").append(toIndentedString(bot)).append("\n"); + sb.append(" botType: ").append(toIndentedString(botType)).append("\n"); + sb.append(" clonedApp: ").append(toIndentedString(clonedApp)).append("\n"); + sb.append(" developerTools: ").append(toIndentedString(developerTools)).append("\n"); + sb.append(" emulator: ").append(toIndentedString(emulator)).append("\n"); + sb.append(" factoryResetTimestamp: ").append(toIndentedString(factoryResetTimestamp)).append("\n"); + sb.append(" frida: ").append(toIndentedString(frida)).append("\n"); + sb.append(" ipBlocklist: ").append(toIndentedString(ipBlocklist)).append("\n"); + sb.append(" ipInfo: ").append(toIndentedString(ipInfo)).append("\n"); + sb.append(" proxy: ").append(toIndentedString(proxy)).append("\n"); + sb.append(" proxyConfidence: ").append(toIndentedString(proxyConfidence)).append("\n"); + sb.append(" proxyDetails: ").append(toIndentedString(proxyDetails)).append("\n"); + sb.append(" incognito: ").append(toIndentedString(incognito)).append("\n"); + sb.append(" jailbroken: ").append(toIndentedString(jailbroken)).append("\n"); + sb.append(" locationSpoofing: ").append(toIndentedString(locationSpoofing)).append("\n"); + sb.append(" mitmAttack: ").append(toIndentedString(mitmAttack)).append("\n"); + sb.append(" privacySettings: ").append(toIndentedString(privacySettings)).append("\n"); + sb.append(" rootApps: ").append(toIndentedString(rootApps)).append("\n"); + sb.append(" suspectScore: ").append(toIndentedString(suspectScore)).append("\n"); + sb.append(" tampering: ").append(toIndentedString(tampering)).append("\n"); + sb.append(" tamperingDetails: ").append(toIndentedString(tamperingDetails)).append("\n"); + sb.append(" velocity: ").append(toIndentedString(velocity)).append("\n"); + sb.append(" virtualMachine: ").append(toIndentedString(virtualMachine)).append("\n"); + sb.append(" vpn: ").append(toIndentedString(vpn)).append("\n"); + sb.append(" vpnConfidence: ").append(toIndentedString(vpnConfidence)).append("\n"); + sb.append(" vpnOriginTimezone: ").append(toIndentedString(vpnOriginTimezone)).append("\n"); + sb.append(" vpnOriginCountry: ").append(toIndentedString(vpnOriginCountry)).append("\n"); + sb.append(" vpnMethods: ").append(toIndentedString(vpnMethods)).append("\n"); + sb.append(" highActivityDevice: ").append(toIndentedString(highActivityDevice)).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/EventSearch.java b/sdk/src/main/java/com/fingerprint/model/EventSearch.java new file mode 100644 index 00000000..464db30f --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/EventSearch.java @@ -0,0 +1,186 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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.Event; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * Contains a list of all identification events matching the specified search criteria. + */ +@JsonPropertyOrder({ + EventSearch.JSON_PROPERTY_EVENTS, + EventSearch.JSON_PROPERTY_PAGINATION_KEY, + EventSearch.JSON_PROPERTY_TOTAL_HITS +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class EventSearch { + public static final String JSON_PROPERTY_EVENTS = "events"; + @jakarta.annotation.Nonnull + private List events = new ArrayList<>(); + + public static final String JSON_PROPERTY_PAGINATION_KEY = "pagination_key"; + @jakarta.annotation.Nullable + private String paginationKey; + + public static final String JSON_PROPERTY_TOTAL_HITS = "total_hits"; + @jakarta.annotation.Nullable + private Long totalHits; + + public EventSearch() { + } + + public EventSearch events(@jakarta.annotation.Nonnull List events) { + this.events = events; + return this; + } + + public EventSearch addEventsItem(Event eventsItem) { + if (this.events == null) { + this.events = new ArrayList<>(); + } + this.events.add(eventsItem); + return this; + } + + /** + * Get events + * @return events + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_EVENTS, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getEvents() { + return events; + } + + + @JsonProperty(value = JSON_PROPERTY_EVENTS, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setEvents(@jakarta.annotation.Nonnull List events) { + this.events = events; + } + + + public EventSearch paginationKey(@jakarta.annotation.Nullable String paginationKey) { + this.paginationKey = paginationKey; + return this; + } + + /** + * Use this value in the `pagination_key` parameter to request the next page of search results. + * @return paginationKey + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PAGINATION_KEY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getPaginationKey() { + return paginationKey; + } + + + @JsonProperty(value = JSON_PROPERTY_PAGINATION_KEY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPaginationKey(@jakarta.annotation.Nullable String paginationKey) { + this.paginationKey = paginationKey; + } + + + public EventSearch totalHits(@jakarta.annotation.Nullable Long totalHits) { + this.totalHits = totalHits; + return this; + } + + /** + * This value represents the total number of events matching the search query, up to the limit provided in the `total_hits` query parameter. Only present if the `total_hits` query parameter was provided. + * @return totalHits + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TOTAL_HITS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Long getTotalHits() { + return totalHits; + } + + + @JsonProperty(value = JSON_PROPERTY_TOTAL_HITS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTotalHits(@jakarta.annotation.Nullable Long totalHits) { + this.totalHits = totalHits; + } + + + /** + * Return true if this EventSearch object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSearch eventSearch = (EventSearch) o; + return Objects.equals(this.events, eventSearch.events) && + Objects.equals(this.paginationKey, eventSearch.paginationKey) && + Objects.equals(this.totalHits, eventSearch.totalHits); + } + + @Override + public int hashCode() { + return Objects.hash(events, paginationKey, totalHits); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSearch {\n"); + sb.append(" events: ").append(toIndentedString(events)).append("\n"); + sb.append(" paginationKey: ").append(toIndentedString(paginationKey)).append("\n"); + sb.append(" totalHits: ").append(toIndentedString(totalHits)).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/EventUpdate.java b/sdk/src/main/java/com/fingerprint/model/EventUpdate.java new file mode 100644 index 00000000..e71f38ad --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/EventUpdate.java @@ -0,0 +1,175 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * EventUpdate + */ +@JsonPropertyOrder({ + EventUpdate.JSON_PROPERTY_LINKED_ID, + EventUpdate.JSON_PROPERTY_TAGS, + EventUpdate.JSON_PROPERTY_SUSPECT +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class EventUpdate { + public static final String JSON_PROPERTY_LINKED_ID = "linked_id"; + @jakarta.annotation.Nullable + private String linkedId; + + public static final String JSON_PROPERTY_TAGS = "tags"; + @jakarta.annotation.Nullable + private Object tags; + + public static final String JSON_PROPERTY_SUSPECT = "suspect"; + @jakarta.annotation.Nullable + private Boolean suspect; + + public EventUpdate() { + } + + public EventUpdate linkedId(@jakarta.annotation.Nullable String linkedId) { + this.linkedId = linkedId; + return this; + } + + /** + * Linked Id value to assign to the existing event + * @return linkedId + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getLinkedId() { + return linkedId; + } + + + @JsonProperty(value = JSON_PROPERTY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLinkedId(@jakarta.annotation.Nullable String linkedId) { + this.linkedId = linkedId; + } + + + public EventUpdate tags(@jakarta.annotation.Nullable Object tags) { + this.tags = tags; + return this; + } + + /** + * A customer-provided value or an object that was sent with the identification request or updated later. + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TAGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Object getTags() { + return tags; + } + + + @JsonProperty(value = JSON_PROPERTY_TAGS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTags(@jakarta.annotation.Nullable Object tags) { + this.tags = tags; + } + + + public EventUpdate suspect(@jakarta.annotation.Nullable Boolean suspect) { + this.suspect = suspect; + return this; + } + + /** + * Suspect flag indicating observed suspicious or fraudulent event + * @return suspect + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SUSPECT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getSuspect() { + return suspect; + } + + + @JsonProperty(value = JSON_PROPERTY_SUSPECT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSuspect(@jakarta.annotation.Nullable Boolean suspect) { + this.suspect = suspect; + } + + + /** + * Return true if this EventUpdate object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventUpdate eventUpdate = (EventUpdate) o; + return Objects.equals(this.linkedId, eventUpdate.linkedId) && + Objects.equals(this.tags, eventUpdate.tags) && + Objects.equals(this.suspect, eventUpdate.suspect); + } + + @Override + public int hashCode() { + return Objects.hash(linkedId, tags, suspect); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventUpdate {\n"); + sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" suspect: ").append(toIndentedString(suspect)).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/EventsGetResponse.java b/sdk/src/main/java/com/fingerprint/model/EventsGetResponse.java deleted file mode 100644 index 92f3e8fb..00000000 --- a/sdk/src/main/java/com/fingerprint/model/EventsGetResponse.java +++ /dev/null @@ -1,98 +0,0 @@ -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; - -/** - * Contains results from all activated products - Fingerprint Pro, Bot Detection, and others. - */ - -@Schema(description = "Contains results from all activated products - Fingerprint Pro, Bot Detection, and others.") -@JsonPropertyOrder({ - EventsGetResponse.JSON_PROPERTY_PRODUCTS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class EventsGetResponse { - public static final String JSON_PROPERTY_PRODUCTS = "products"; - private Products products; - - public EventsGetResponse() { - } - - public EventsGetResponse 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 EventsGetResponse object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - EventsGetResponse eventsGetResponse = (EventsGetResponse) o; - return Objects.equals(this.products, eventsGetResponse.products); - } - - @Override - public int hashCode() { - return Objects.hash(products); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class EventsGetResponse {\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 "); - } - -} - diff --git a/sdk/src/main/java/com/fingerprint/model/EventsUpdateRequest.java b/sdk/src/main/java/com/fingerprint/model/EventsUpdateRequest.java deleted file mode 100644 index 90293e82..00000000 --- a/sdk/src/main/java/com/fingerprint/model/EventsUpdateRequest.java +++ /dev/null @@ -1,171 +0,0 @@ -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 java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * EventsUpdateRequest - */ - - -@JsonPropertyOrder({ - EventsUpdateRequest.JSON_PROPERTY_LINKED_ID, - EventsUpdateRequest.JSON_PROPERTY_TAG, - EventsUpdateRequest.JSON_PROPERTY_SUSPECT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class EventsUpdateRequest { - public static final String JSON_PROPERTY_LINKED_ID = "linkedId"; - private String linkedId; - - public static final String JSON_PROPERTY_TAG = "tag"; - private Map tag = null; - - public static final String JSON_PROPERTY_SUSPECT = "suspect"; - private Boolean suspect; - - public EventsUpdateRequest() { - } - - public EventsUpdateRequest linkedId(String linkedId) { - this.linkedId = linkedId; - return this; - } - - /** - * LinkedID value to assign to the existing event - * @return linkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "LinkedID value to assign to the existing event") - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getLinkedId() { - return linkedId; - } - - - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLinkedId(String linkedId) { - this.linkedId = linkedId; - } - - - public EventsUpdateRequest tag(Map tag) { - this.tag = tag; - return this; - } - - public EventsUpdateRequest puttagItem(String key, Object tagItem) { - if (this.tag == null) { - this.tag = new HashMap<>(); - } - this.tag.put(key, tagItem); - return this; - } - - /** - * A customer-provided value or an object that was sent with identification request. - * @return tag - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided value or an object that was sent with identification request.") - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - - public Map getTag() { - return tag; - } - - - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - public void setTag(Map tag) { - this.tag = tag; - } - - - public EventsUpdateRequest suspect(Boolean suspect) { - this.suspect = suspect; - return this; - } - - /** - * Suspect flag indicating observed suspicious or fraudulent event - * @return suspect - **/ - @jakarta.annotation.Nullable - @Schema(description = "Suspect flag indicating observed suspicious or fraudulent event") - @JsonProperty(JSON_PROPERTY_SUSPECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getSuspect() { - return suspect; - } - - - @JsonProperty(JSON_PROPERTY_SUSPECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSuspect(Boolean suspect) { - this.suspect = suspect; - } - - - /** - * Return true if this EventsUpdateRequest object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - EventsUpdateRequest eventsUpdateRequest = (EventsUpdateRequest) o; - return Objects.equals(this.linkedId, eventsUpdateRequest.linkedId) && - Objects.equals(this.tag, eventsUpdateRequest.tag) && - Objects.equals(this.suspect, eventsUpdateRequest.suspect); - } - - @Override - public int hashCode() { - return Objects.hash(linkedId, tag, suspect); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class EventsUpdateRequest {\n"); - sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); - sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); - sb.append(" suspect: ").append(toIndentedString(suspect)).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/FactoryReset.java b/sdk/src/main/java/com/fingerprint/model/FactoryReset.java deleted file mode 100644 index 221bbc35..00000000 --- a/sdk/src/main/java/com/fingerprint/model/FactoryReset.java +++ /dev/null @@ -1,130 +0,0 @@ -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 java.time.OffsetDateTime; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * FactoryReset - */ - - -@JsonPropertyOrder({ - FactoryReset.JSON_PROPERTY_TIME, - FactoryReset.JSON_PROPERTY_TIMESTAMP -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class FactoryReset { - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; - private Long timestamp; - - public FactoryReset() { - } - - public FactoryReset time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. - * @return time - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. ") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public FactoryReset timestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - /** - * This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. - * @return timestamp - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. ") - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Long getTimestamp() { - return timestamp; - } - - - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - - /** - * Return true if this FactoryReset object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - FactoryReset factoryReset = (FactoryReset) o; - return Objects.equals(this.time, factoryReset.time) && - Objects.equals(this.timestamp, factoryReset.timestamp); - } - - @Override - public int hashCode() { - return Objects.hash(time, timestamp); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class FactoryReset {\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" timestamp: ").append(toIndentedString(timestamp)).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/Frida.java b/sdk/src/main/java/com/fingerprint/model/Frida.java deleted file mode 100644 index 8046dcd9..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Frida.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Frida - */ - - -@JsonPropertyOrder({ - Frida.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Frida { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public Frida() { - } - - public Frida result(Boolean result) { - this.result = result; - return this; - } - - /** - * [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "[Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this Frida object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Frida frida = (Frida) o; - return Objects.equals(this.result, frida.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Frida {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Geolocation.java b/sdk/src/main/java/com/fingerprint/model/Geolocation.java index 99f6cd36..be64ef2b 100644 --- a/sdk/src/main/java/com/fingerprint/model/Geolocation.java +++ b/sdk/src/main/java/com/fingerprint/model/Geolocation.java @@ -1,83 +1,112 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.GeolocationCity; -import com.fingerprint.model.GeolocationContinent; -import com.fingerprint.model.GeolocationCountry; -import com.fingerprint.model.GeolocationSubdivision; +import com.fingerprint.model.GeolocationSubdivisionsInner; 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; + /** * Geolocation */ - - @JsonPropertyOrder({ Geolocation.JSON_PROPERTY_ACCURACY_RADIUS, Geolocation.JSON_PROPERTY_LATITUDE, Geolocation.JSON_PROPERTY_LONGITUDE, Geolocation.JSON_PROPERTY_POSTAL_CODE, Geolocation.JSON_PROPERTY_TIMEZONE, - Geolocation.JSON_PROPERTY_CITY, - Geolocation.JSON_PROPERTY_COUNTRY, - Geolocation.JSON_PROPERTY_CONTINENT, + Geolocation.JSON_PROPERTY_CITY_NAME, + Geolocation.JSON_PROPERTY_COUNTRY_CODE, + Geolocation.JSON_PROPERTY_COUNTRY_NAME, + Geolocation.JSON_PROPERTY_CONTINENT_CODE, + Geolocation.JSON_PROPERTY_CONTINENT_NAME, Geolocation.JSON_PROPERTY_SUBDIVISIONS }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Geolocation { - public static final String JSON_PROPERTY_ACCURACY_RADIUS = "accuracyRadius"; + public static final String JSON_PROPERTY_ACCURACY_RADIUS = "accuracy_radius"; + @jakarta.annotation.Nullable private Integer accuracyRadius; public static final String JSON_PROPERTY_LATITUDE = "latitude"; + @jakarta.annotation.Nullable private Double latitude; public static final String JSON_PROPERTY_LONGITUDE = "longitude"; + @jakarta.annotation.Nullable private Double longitude; - public static final String JSON_PROPERTY_POSTAL_CODE = "postalCode"; + public static final String JSON_PROPERTY_POSTAL_CODE = "postal_code"; + @jakarta.annotation.Nullable private String postalCode; public static final String JSON_PROPERTY_TIMEZONE = "timezone"; + @jakarta.annotation.Nullable private String timezone; - public static final String JSON_PROPERTY_CITY = "city"; - private GeolocationCity city; + public static final String JSON_PROPERTY_CITY_NAME = "city_name"; + @jakarta.annotation.Nullable + private String cityName; + + public static final String JSON_PROPERTY_COUNTRY_CODE = "country_code"; + @jakarta.annotation.Nullable + private String countryCode; + + public static final String JSON_PROPERTY_COUNTRY_NAME = "country_name"; + @jakarta.annotation.Nullable + private String countryName; - public static final String JSON_PROPERTY_COUNTRY = "country"; - private GeolocationCountry country; + public static final String JSON_PROPERTY_CONTINENT_CODE = "continent_code"; + @jakarta.annotation.Nullable + private String continentCode; - public static final String JSON_PROPERTY_CONTINENT = "continent"; - private GeolocationContinent continent; + public static final String JSON_PROPERTY_CONTINENT_NAME = "continent_name"; + @jakarta.annotation.Nullable + private String continentName; public static final String JSON_PROPERTY_SUBDIVISIONS = "subdivisions"; - private List subdivisions = null; + @jakarta.annotation.Nullable + private List subdivisions = new ArrayList<>(); - public Geolocation() { + public Geolocation() { } - public Geolocation accuracyRadius(Integer accuracyRadius) { + public Geolocation accuracyRadius(@jakarta.annotation.Nullable Integer accuracyRadius) { this.accuracyRadius = accuracyRadius; return this; } - /** + /** * The IP address is likely to be within this radius (in km) of the specified location. * minimum: 0 * @return accuracyRadius - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "The IP address is likely to be within this radius (in km) of the specified location.") - @JsonProperty(JSON_PROPERTY_ACCURACY_RADIUS) + @JsonProperty(value = JSON_PROPERTY_ACCURACY_RADIUS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Integer getAccuracyRadius() { @@ -85,27 +114,26 @@ public Integer getAccuracyRadius() { } - @JsonProperty(JSON_PROPERTY_ACCURACY_RADIUS) + @JsonProperty(value = JSON_PROPERTY_ACCURACY_RADIUS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAccuracyRadius(Integer accuracyRadius) { + public void setAccuracyRadius(@jakarta.annotation.Nullable Integer accuracyRadius) { this.accuracyRadius = accuracyRadius; } - public Geolocation latitude(Double latitude) { + public Geolocation latitude(@jakarta.annotation.Nullable Double latitude) { this.latitude = latitude; return this; } - /** + /** * Get latitude * minimum: -90 * maximum: 90 * @return latitude - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LATITUDE) + @JsonProperty(value = JSON_PROPERTY_LATITUDE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Double getLatitude() { @@ -113,27 +141,26 @@ public Double getLatitude() { } - @JsonProperty(JSON_PROPERTY_LATITUDE) + @JsonProperty(value = JSON_PROPERTY_LATITUDE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLatitude(Double latitude) { + public void setLatitude(@jakarta.annotation.Nullable Double latitude) { this.latitude = latitude; } - public Geolocation longitude(Double longitude) { + public Geolocation longitude(@jakarta.annotation.Nullable Double longitude) { this.longitude = longitude; return this; } - /** + /** * Get longitude * minimum: -180 * maximum: 180 * @return longitude - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LONGITUDE) + @JsonProperty(value = JSON_PROPERTY_LONGITUDE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Double getLongitude() { @@ -141,25 +168,24 @@ public Double getLongitude() { } - @JsonProperty(JSON_PROPERTY_LONGITUDE) + @JsonProperty(value = JSON_PROPERTY_LONGITUDE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLongitude(Double longitude) { + public void setLongitude(@jakarta.annotation.Nullable Double longitude) { this.longitude = longitude; } - public Geolocation postalCode(String postalCode) { + public Geolocation postalCode(@jakarta.annotation.Nullable String postalCode) { this.postalCode = postalCode; return this; } - /** + /** * Get postalCode * @return postalCode - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_POSTAL_CODE) + @JsonProperty(value = JSON_PROPERTY_POSTAL_CODE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getPostalCode() { @@ -167,25 +193,24 @@ public String getPostalCode() { } - @JsonProperty(JSON_PROPERTY_POSTAL_CODE) + @JsonProperty(value = JSON_PROPERTY_POSTAL_CODE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPostalCode(String postalCode) { + public void setPostalCode(@jakarta.annotation.Nullable String postalCode) { this.postalCode = postalCode; } - public Geolocation timezone(String timezone) { + public Geolocation timezone(@jakarta.annotation.Nullable String timezone) { this.timezone = timezone; return this; } - /** + /** * Get timezone * @return timezone - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TIMEZONE) + @JsonProperty(value = JSON_PROPERTY_TIMEZONE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getTimezone() { @@ -193,97 +218,144 @@ public String getTimezone() { } - @JsonProperty(JSON_PROPERTY_TIMEZONE) + @JsonProperty(value = JSON_PROPERTY_TIMEZONE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTimezone(String timezone) { + public void setTimezone(@jakarta.annotation.Nullable String timezone) { this.timezone = timezone; } - public Geolocation city(GeolocationCity city) { - this.city = city; + public Geolocation cityName(@jakarta.annotation.Nullable String cityName) { + this.cityName = cityName; return this; } - /** - * Get city - * @return city - **/ + /** + * Get cityName + * @return cityName + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CITY) + @JsonProperty(value = JSON_PROPERTY_CITY_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public GeolocationCity getCity() { - return city; + public String getCityName() { + return cityName; } - @JsonProperty(JSON_PROPERTY_CITY) + @JsonProperty(value = JSON_PROPERTY_CITY_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCity(GeolocationCity city) { - this.city = city; + public void setCityName(@jakarta.annotation.Nullable String cityName) { + this.cityName = cityName; } - public Geolocation country(GeolocationCountry country) { - this.country = country; + public Geolocation countryCode(@jakarta.annotation.Nullable String countryCode) { + this.countryCode = countryCode; return this; } - /** - * Get country - * @return country - **/ + /** + * Get countryCode + * @return countryCode + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_COUNTRY) + @JsonProperty(value = JSON_PROPERTY_COUNTRY_CODE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public GeolocationCountry getCountry() { - return country; + public String getCountryCode() { + return countryCode; } - @JsonProperty(JSON_PROPERTY_COUNTRY) + @JsonProperty(value = JSON_PROPERTY_COUNTRY_CODE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCountry(GeolocationCountry country) { - this.country = country; + public void setCountryCode(@jakarta.annotation.Nullable String countryCode) { + this.countryCode = countryCode; } - public Geolocation continent(GeolocationContinent continent) { - this.continent = continent; + public Geolocation countryName(@jakarta.annotation.Nullable String countryName) { + this.countryName = countryName; return this; } - /** - * Get continent - * @return continent - **/ + /** + * Get countryName + * @return countryName + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONTINENT) + @JsonProperty(value = JSON_PROPERTY_COUNTRY_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public GeolocationContinent getContinent() { - return continent; + public String getCountryName() { + return countryName; } - @JsonProperty(JSON_PROPERTY_CONTINENT) + @JsonProperty(value = JSON_PROPERTY_COUNTRY_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setContinent(GeolocationContinent continent) { - this.continent = continent; + public void setCountryName(@jakarta.annotation.Nullable String countryName) { + this.countryName = countryName; + } + + + public Geolocation continentCode(@jakarta.annotation.Nullable String continentCode) { + this.continentCode = continentCode; + return this; } + /** + * Get continentCode + * @return continentCode + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_CONTINENT_CODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public Geolocation subdivisions(List subdivisions) { + public String getContinentCode() { + return continentCode; + } + + + @JsonProperty(value = JSON_PROPERTY_CONTINENT_CODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setContinentCode(@jakarta.annotation.Nullable String continentCode) { + this.continentCode = continentCode; + } + + + public Geolocation continentName(@jakarta.annotation.Nullable String continentName) { + this.continentName = continentName; + return this; + } + + /** + * Get continentName + * @return continentName + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_CONTINENT_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getContinentName() { + return continentName; + } + + + @JsonProperty(value = JSON_PROPERTY_CONTINENT_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setContinentName(@jakarta.annotation.Nullable String continentName) { + this.continentName = continentName; + } + + + public Geolocation subdivisions(@jakarta.annotation.Nullable List subdivisions) { this.subdivisions = subdivisions; return this; } - public Geolocation addGeolocationSubdivisionItem(GeolocationSubdivision subdivisionsItem) { + public Geolocation addSubdivisionsItem(GeolocationSubdivisionsInner subdivisionsItem) { if (this.subdivisions == null) { this.subdivisions = new ArrayList<>(); } @@ -291,23 +363,22 @@ public Geolocation addGeolocationSubdivisionItem(GeolocationSubdivision subdivis return this; } - /** + /** * Get subdivisions * @return subdivisions - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SUBDIVISIONS) + @JsonProperty(value = JSON_PROPERTY_SUBDIVISIONS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public List getSubdivisions() { + public List getSubdivisions() { return subdivisions; } - @JsonProperty(JSON_PROPERTY_SUBDIVISIONS) + @JsonProperty(value = JSON_PROPERTY_SUBDIVISIONS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSubdivisions(List subdivisions) { + public void setSubdivisions(@jakarta.annotation.Nullable List subdivisions) { this.subdivisions = subdivisions; } @@ -329,15 +400,17 @@ public boolean equals(Object o) { Objects.equals(this.longitude, geolocation.longitude) && Objects.equals(this.postalCode, geolocation.postalCode) && Objects.equals(this.timezone, geolocation.timezone) && - Objects.equals(this.city, geolocation.city) && - Objects.equals(this.country, geolocation.country) && - Objects.equals(this.continent, geolocation.continent) && + Objects.equals(this.cityName, geolocation.cityName) && + Objects.equals(this.countryCode, geolocation.countryCode) && + Objects.equals(this.countryName, geolocation.countryName) && + Objects.equals(this.continentCode, geolocation.continentCode) && + Objects.equals(this.continentName, geolocation.continentName) && Objects.equals(this.subdivisions, geolocation.subdivisions); } @Override public int hashCode() { - return Objects.hash(accuracyRadius, latitude, longitude, postalCode, timezone, city, country, continent, subdivisions); + return Objects.hash(accuracyRadius, latitude, longitude, postalCode, timezone, cityName, countryCode, countryName, continentCode, continentName, subdivisions); } @Override @@ -349,9 +422,11 @@ public String toString() { sb.append(" longitude: ").append(toIndentedString(longitude)).append("\n"); sb.append(" postalCode: ").append(toIndentedString(postalCode)).append("\n"); sb.append(" timezone: ").append(toIndentedString(timezone)).append("\n"); - sb.append(" city: ").append(toIndentedString(city)).append("\n"); - sb.append(" country: ").append(toIndentedString(country)).append("\n"); - sb.append(" continent: ").append(toIndentedString(continent)).append("\n"); + sb.append(" cityName: ").append(toIndentedString(cityName)).append("\n"); + sb.append(" countryCode: ").append(toIndentedString(countryCode)).append("\n"); + sb.append(" countryName: ").append(toIndentedString(countryName)).append("\n"); + sb.append(" continentCode: ").append(toIndentedString(continentCode)).append("\n"); + sb.append(" continentName: ").append(toIndentedString(continentName)).append("\n"); sb.append(" subdivisions: ").append(toIndentedString(subdivisions)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/sdk/src/main/java/com/fingerprint/model/GeolocationCity.java b/sdk/src/main/java/com/fingerprint/model/GeolocationCity.java deleted file mode 100644 index df4f5821..00000000 --- a/sdk/src/main/java/com/fingerprint/model/GeolocationCity.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * GeolocationCity - */ - - -@JsonPropertyOrder({ - GeolocationCity.JSON_PROPERTY_NAME -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class GeolocationCity { - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public GeolocationCity() { - } - - public GeolocationCity name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - /** - * Return true if this GeolocationCity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GeolocationCity geolocationCity = (GeolocationCity) o; - return Objects.equals(this.name, geolocationCity.name); - } - - @Override - public int hashCode() { - return Objects.hash(name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GeolocationCity {\n"); - sb.append(" name: ").append(toIndentedString(name)).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/GeolocationContinent.java b/sdk/src/main/java/com/fingerprint/model/GeolocationContinent.java deleted file mode 100644 index 9db8a455..00000000 --- a/sdk/src/main/java/com/fingerprint/model/GeolocationContinent.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * GeolocationContinent - */ - - -@JsonPropertyOrder({ - GeolocationContinent.JSON_PROPERTY_CODE, - GeolocationContinent.JSON_PROPERTY_NAME -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class GeolocationContinent { - public static final String JSON_PROPERTY_CODE = "code"; - private String code; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public GeolocationContinent() { - } - - public GeolocationContinent code(String code) { - this.code = code; - return this; - } - - /** - * Get code - * @return code - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getCode() { - return code; - } - - - @JsonProperty(JSON_PROPERTY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCode(String code) { - this.code = code; - } - - - public GeolocationContinent name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - /** - * Return true if this GeolocationContinent object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GeolocationContinent geolocationContinent = (GeolocationContinent) o; - return Objects.equals(this.code, geolocationContinent.code) && - Objects.equals(this.name, geolocationContinent.name); - } - - @Override - public int hashCode() { - return Objects.hash(code, name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GeolocationContinent {\n"); - sb.append(" code: ").append(toIndentedString(code)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).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/GeolocationCountry.java b/sdk/src/main/java/com/fingerprint/model/GeolocationCountry.java deleted file mode 100644 index 336c31f7..00000000 --- a/sdk/src/main/java/com/fingerprint/model/GeolocationCountry.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * GeolocationCountry - */ - - -@JsonPropertyOrder({ - GeolocationCountry.JSON_PROPERTY_CODE, - GeolocationCountry.JSON_PROPERTY_NAME -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class GeolocationCountry { - public static final String JSON_PROPERTY_CODE = "code"; - private String code; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public GeolocationCountry() { - } - - public GeolocationCountry code(String code) { - this.code = code; - return this; - } - - /** - * Get code - * @return code - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getCode() { - return code; - } - - - @JsonProperty(JSON_PROPERTY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCode(String code) { - this.code = code; - } - - - public GeolocationCountry name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - /** - * Return true if this GeolocationCountry object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GeolocationCountry geolocationCountry = (GeolocationCountry) o; - return Objects.equals(this.code, geolocationCountry.code) && - Objects.equals(this.name, geolocationCountry.name); - } - - @Override - public int hashCode() { - return Objects.hash(code, name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GeolocationCountry {\n"); - sb.append(" code: ").append(toIndentedString(code)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).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/GeolocationSubdivision.java b/sdk/src/main/java/com/fingerprint/model/GeolocationSubdivision.java deleted file mode 100644 index 1080ab11..00000000 --- a/sdk/src/main/java/com/fingerprint/model/GeolocationSubdivision.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * GeolocationSubdivision - */ - - -@JsonPropertyOrder({ - GeolocationSubdivision.JSON_PROPERTY_ISO_CODE, - GeolocationSubdivision.JSON_PROPERTY_NAME -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class GeolocationSubdivision { - public static final String JSON_PROPERTY_ISO_CODE = "isoCode"; - private String isoCode; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public GeolocationSubdivision() { - } - - public GeolocationSubdivision isoCode(String isoCode) { - this.isoCode = isoCode; - return this; - } - - /** - * Get isoCode - * @return isoCode - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ISO_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getIsoCode() { - return isoCode; - } - - - @JsonProperty(JSON_PROPERTY_ISO_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIsoCode(String isoCode) { - this.isoCode = isoCode; - } - - - public GeolocationSubdivision name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - /** - * Return true if this GeolocationSubdivision object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GeolocationSubdivision geolocationSubdivision = (GeolocationSubdivision) o; - return Objects.equals(this.isoCode, geolocationSubdivision.isoCode) && - Objects.equals(this.name, geolocationSubdivision.name); - } - - @Override - public int hashCode() { - return Objects.hash(isoCode, name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GeolocationSubdivision {\n"); - sb.append(" isoCode: ").append(toIndentedString(isoCode)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).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/GeolocationSubdivisionsInner.java b/sdk/src/main/java/com/fingerprint/model/GeolocationSubdivisionsInner.java new file mode 100644 index 00000000..8e0138b9 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/GeolocationSubdivisionsInner.java @@ -0,0 +1,144 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * GeolocationSubdivisionsInner + */ +@JsonPropertyOrder({ + GeolocationSubdivisionsInner.JSON_PROPERTY_ISO_CODE, + GeolocationSubdivisionsInner.JSON_PROPERTY_NAME +}) +@JsonTypeName("Geolocation_subdivisions_inner") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class GeolocationSubdivisionsInner { + public static final String JSON_PROPERTY_ISO_CODE = "iso_code"; + @jakarta.annotation.Nonnull + private String isoCode; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nonnull + private String name; + + public GeolocationSubdivisionsInner() { + } + + public GeolocationSubdivisionsInner isoCode(@jakarta.annotation.Nonnull String isoCode) { + this.isoCode = isoCode; + return this; + } + + /** + * Get isoCode + * @return isoCode + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_ISO_CODE, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getIsoCode() { + return isoCode; + } + + + @JsonProperty(value = JSON_PROPERTY_ISO_CODE, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setIsoCode(@jakarta.annotation.Nonnull String isoCode) { + this.isoCode = isoCode; + } + + + public GeolocationSubdivisionsInner name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getName() { + return name; + } + + + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + /** + * Return true if this Geolocation_subdivisions_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; + } + GeolocationSubdivisionsInner geolocationSubdivisionsInner = (GeolocationSubdivisionsInner) o; + return Objects.equals(this.isoCode, geolocationSubdivisionsInner.isoCode) && + Objects.equals(this.name, geolocationSubdivisionsInner.name); + } + + @Override + public int hashCode() { + return Objects.hash(isoCode, name); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeolocationSubdivisionsInner {\n"); + sb.append(" isoCode: ").append(toIndentedString(isoCode)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).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/HighActivity.java b/sdk/src/main/java/com/fingerprint/model/HighActivity.java deleted file mode 100644 index d612b02d..00000000 --- a/sdk/src/main/java/com/fingerprint/model/HighActivity.java +++ /dev/null @@ -1,130 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * HighActivity - */ - - -@JsonPropertyOrder({ - HighActivity.JSON_PROPERTY_RESULT, - HighActivity.JSON_PROPERTY_DAILY_REQUESTS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class HighActivity { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_DAILY_REQUESTS = "dailyRequests"; - private Long dailyRequests; - - public HighActivity() { - } - - public HighActivity result(Boolean result) { - this.result = result; - return this; - } - - /** - * Flag indicating if the request came from a high-activity visitor. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Flag indicating if the request came from a high-activity visitor.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public HighActivity dailyRequests(Long dailyRequests) { - this.dailyRequests = dailyRequests; - return this; - } - - /** - * Number of requests from the same visitor in the previous day. - * minimum: 1 - * @return dailyRequests - **/ - @jakarta.annotation.Nullable - @Schema(description = "Number of requests from the same visitor in the previous day.") - @JsonProperty(JSON_PROPERTY_DAILY_REQUESTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getDailyRequests() { - return dailyRequests; - } - - - @JsonProperty(JSON_PROPERTY_DAILY_REQUESTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDailyRequests(Long dailyRequests) { - this.dailyRequests = dailyRequests; - } - - - /** - * Return true if this HighActivity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - HighActivity highActivity = (HighActivity) o; - return Objects.equals(this.result, highActivity.result) && - Objects.equals(this.dailyRequests, highActivity.dailyRequests); - } - - @Override - public int hashCode() { - return Objects.hash(result, dailyRequests); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class HighActivity {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" dailyRequests: ").append(toIndentedString(dailyRequests)).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/IPBlockList.java b/sdk/src/main/java/com/fingerprint/model/IPBlockList.java new file mode 100644 index 00000000..5e1ecb90 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/IPBlockList.java @@ -0,0 +1,175 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * IPBlockList + */ +@JsonPropertyOrder({ + IPBlockList.JSON_PROPERTY_EMAIL_SPAM, + IPBlockList.JSON_PROPERTY_ATTACK_SOURCE, + IPBlockList.JSON_PROPERTY_TOR_NODE +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class IPBlockList { + public static final String JSON_PROPERTY_EMAIL_SPAM = "email_spam"; + @jakarta.annotation.Nullable + private Boolean emailSpam; + + public static final String JSON_PROPERTY_ATTACK_SOURCE = "attack_source"; + @jakarta.annotation.Nullable + private Boolean attackSource; + + public static final String JSON_PROPERTY_TOR_NODE = "tor_node"; + @jakarta.annotation.Nullable + private Boolean torNode; + + public IPBlockList() { + } + + public IPBlockList emailSpam(@jakarta.annotation.Nullable Boolean emailSpam) { + this.emailSpam = emailSpam; + return this; + } + + /** + * IP address was part of a known email spam attack (SMTP). + * @return emailSpam + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_EMAIL_SPAM, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getEmailSpam() { + return emailSpam; + } + + + @JsonProperty(value = JSON_PROPERTY_EMAIL_SPAM, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEmailSpam(@jakarta.annotation.Nullable Boolean emailSpam) { + this.emailSpam = emailSpam; + } + + + public IPBlockList attackSource(@jakarta.annotation.Nullable Boolean attackSource) { + this.attackSource = attackSource; + return this; + } + + /** + * IP address was part of a known network attack (SSH/HTTPS). + * @return attackSource + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ATTACK_SOURCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getAttackSource() { + return attackSource; + } + + + @JsonProperty(value = JSON_PROPERTY_ATTACK_SOURCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAttackSource(@jakarta.annotation.Nullable Boolean attackSource) { + this.attackSource = attackSource; + } + + + public IPBlockList torNode(@jakarta.annotation.Nullable Boolean torNode) { + this.torNode = torNode; + return this; + } + + /** + * IP address was part of known TOR network activity. + * @return torNode + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TOR_NODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getTorNode() { + return torNode; + } + + + @JsonProperty(value = JSON_PROPERTY_TOR_NODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTorNode(@jakarta.annotation.Nullable Boolean torNode) { + this.torNode = torNode; + } + + + /** + * Return true if this IPBlockList object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IPBlockList ipBlockList = (IPBlockList) o; + return Objects.equals(this.emailSpam, ipBlockList.emailSpam) && + Objects.equals(this.attackSource, ipBlockList.attackSource) && + Objects.equals(this.torNode, ipBlockList.torNode); + } + + @Override + public int hashCode() { + return Objects.hash(emailSpam, attackSource, torNode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IPBlockList {\n"); + sb.append(" emailSpam: ").append(toIndentedString(emailSpam)).append("\n"); + sb.append(" attackSource: ").append(toIndentedString(attackSource)).append("\n"); + sb.append(" torNode: ").append(toIndentedString(torNode)).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/IPBlocklist.java b/sdk/src/main/java/com/fingerprint/model/IPBlocklist.java deleted file mode 100644 index 6876d3b5..00000000 --- a/sdk/src/main/java/com/fingerprint/model/IPBlocklist.java +++ /dev/null @@ -1,130 +0,0 @@ -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.IPBlocklistDetails; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * IPBlocklist - */ - - -@JsonPropertyOrder({ - IPBlocklist.JSON_PROPERTY_RESULT, - IPBlocklist.JSON_PROPERTY_DETAILS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class IPBlocklist { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_DETAILS = "details"; - private IPBlocklistDetails details; - - public IPBlocklist() { - } - - public IPBlocklist result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public IPBlocklist details(IPBlocklistDetails details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public IPBlocklistDetails getDetails() { - return details; - } - - - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDetails(IPBlocklistDetails details) { - this.details = details; - } - - - /** - * Return true if this IPBlocklist object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IPBlocklist ipBlocklist = (IPBlocklist) o; - return Objects.equals(this.result, ipBlocklist.result) && - Objects.equals(this.details, ipBlocklist.details); - } - - @Override - public int hashCode() { - return Objects.hash(result, details); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IPBlocklist {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).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/IPBlocklistDetails.java b/sdk/src/main/java/com/fingerprint/model/IPBlocklistDetails.java deleted file mode 100644 index c250dd43..00000000 --- a/sdk/src/main/java/com/fingerprint/model/IPBlocklistDetails.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * IPBlocklistDetails - */ - - -@JsonPropertyOrder({ - IPBlocklistDetails.JSON_PROPERTY_EMAIL_SPAM, - IPBlocklistDetails.JSON_PROPERTY_ATTACK_SOURCE -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class IPBlocklistDetails { - public static final String JSON_PROPERTY_EMAIL_SPAM = "emailSpam"; - private Boolean emailSpam; - - public static final String JSON_PROPERTY_ATTACK_SOURCE = "attackSource"; - private Boolean attackSource; - - public IPBlocklistDetails() { - } - - public IPBlocklistDetails emailSpam(Boolean emailSpam) { - this.emailSpam = emailSpam; - return this; - } - - /** - * IP address was part of a known email spam attack (SMTP). - * @return emailSpam - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address was part of a known email spam attack (SMTP).") - @JsonProperty(JSON_PROPERTY_EMAIL_SPAM) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getEmailSpam() { - return emailSpam; - } - - - @JsonProperty(JSON_PROPERTY_EMAIL_SPAM) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setEmailSpam(Boolean emailSpam) { - this.emailSpam = emailSpam; - } - - - public IPBlocklistDetails attackSource(Boolean attackSource) { - this.attackSource = attackSource; - return this; - } - - /** - * IP address was part of a known network attack (SSH/HTTPS). - * @return attackSource - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address was part of a known network attack (SSH/HTTPS).") - @JsonProperty(JSON_PROPERTY_ATTACK_SOURCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getAttackSource() { - return attackSource; - } - - - @JsonProperty(JSON_PROPERTY_ATTACK_SOURCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAttackSource(Boolean attackSource) { - this.attackSource = attackSource; - } - - - /** - * Return true if this IPBlocklistDetails object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IPBlocklistDetails ipBlocklistDetails = (IPBlocklistDetails) o; - return Objects.equals(this.emailSpam, ipBlocklistDetails.emailSpam) && - Objects.equals(this.attackSource, ipBlocklistDetails.attackSource); - } - - @Override - public int hashCode() { - return Objects.hash(emailSpam, attackSource); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IPBlocklistDetails {\n"); - sb.append(" emailSpam: ").append(toIndentedString(emailSpam)).append("\n"); - sb.append(" attackSource: ").append(toIndentedString(attackSource)).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/IPInfo.java b/sdk/src/main/java/com/fingerprint/model/IPInfo.java index 87186ad3..2982ec42 100644 --- a/sdk/src/main/java/com/fingerprint/model/IPInfo.java +++ b/sdk/src/main/java/com/fingerprint/model/IPInfo.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -11,40 +27,39 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * Details about the request IP address. Has separate fields for v4 and v6 IP address versions. */ - -@Schema(description = "Details about the request IP address. Has separate fields for v4 and v6 IP address versions.") @JsonPropertyOrder({ IPInfo.JSON_PROPERTY_V4, IPInfo.JSON_PROPERTY_V6 }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class IPInfo { public static final String JSON_PROPERTY_V4 = "v4"; + @jakarta.annotation.Nullable private IPInfoV4 v4; public static final String JSON_PROPERTY_V6 = "v6"; + @jakarta.annotation.Nullable private IPInfoV6 v6; - public IPInfo() { + public IPInfo() { } - public IPInfo v4(IPInfoV4 v4) { + public IPInfo v4(@jakarta.annotation.Nullable IPInfoV4 v4) { this.v4 = v4; return this; } - /** + /** * Get v4 * @return v4 - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_V4) + @JsonProperty(value = JSON_PROPERTY_V4, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public IPInfoV4 getV4() { @@ -52,25 +67,24 @@ public IPInfoV4 getV4() { } - @JsonProperty(JSON_PROPERTY_V4) + @JsonProperty(value = JSON_PROPERTY_V4, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setV4(IPInfoV4 v4) { + public void setV4(@jakarta.annotation.Nullable IPInfoV4 v4) { this.v4 = v4; } - public IPInfo v6(IPInfoV6 v6) { + public IPInfo v6(@jakarta.annotation.Nullable IPInfoV6 v6) { this.v6 = v6; return this; } - /** + /** * Get v6 * @return v6 - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_V6) + @JsonProperty(value = JSON_PROPERTY_V6, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public IPInfoV6 getV6() { @@ -78,9 +92,9 @@ public IPInfoV6 getV6() { } - @JsonProperty(JSON_PROPERTY_V6) + @JsonProperty(value = JSON_PROPERTY_V6, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setV6(IPInfoV6 v6) { + public void setV6(@jakarta.annotation.Nullable IPInfoV6 v6) { this.v6 = v6; } diff --git a/sdk/src/main/java/com/fingerprint/model/IPInfoASN.java b/sdk/src/main/java/com/fingerprint/model/IPInfoASN.java deleted file mode 100644 index a58d3d40..00000000 --- a/sdk/src/main/java/com/fingerprint/model/IPInfoASN.java +++ /dev/null @@ -1,161 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * IPInfoASN - */ - - -@JsonPropertyOrder({ - IPInfoASN.JSON_PROPERTY_ASN, - IPInfoASN.JSON_PROPERTY_NAME, - IPInfoASN.JSON_PROPERTY_NETWORK -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class IPInfoASN { - public static final String JSON_PROPERTY_ASN = "asn"; - private String asn; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public static final String JSON_PROPERTY_NETWORK = "network"; - private String network; - - public IPInfoASN() { - } - - public IPInfoASN asn(String asn) { - this.asn = asn; - return this; - } - - /** - * Get asn - * @return asn - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ASN) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getAsn() { - return asn; - } - - - @JsonProperty(JSON_PROPERTY_ASN) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAsn(String asn) { - this.asn = asn; - } - - - public IPInfoASN name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - public IPInfoASN network(String network) { - this.network = network; - return this; - } - - /** - * Get network - * @return network - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NETWORK) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getNetwork() { - return network; - } - - - @JsonProperty(JSON_PROPERTY_NETWORK) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setNetwork(String network) { - this.network = network; - } - - - /** - * Return true if this IPInfoASN object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IPInfoASN ipInfoASN = (IPInfoASN) o; - return Objects.equals(this.asn, ipInfoASN.asn) && - Objects.equals(this.name, ipInfoASN.name) && - Objects.equals(this.network, ipInfoASN.network); - } - - @Override - public int hashCode() { - return Objects.hash(asn, name, network); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IPInfoASN {\n"); - sb.append(" asn: ").append(toIndentedString(asn)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" network: ").append(toIndentedString(network)).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/IPInfoDataCenter.java b/sdk/src/main/java/com/fingerprint/model/IPInfoDataCenter.java deleted file mode 100644 index bb0f3f00..00000000 --- a/sdk/src/main/java/com/fingerprint/model/IPInfoDataCenter.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * IPInfoDataCenter - */ - - -@JsonPropertyOrder({ - IPInfoDataCenter.JSON_PROPERTY_RESULT, - IPInfoDataCenter.JSON_PROPERTY_NAME -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class IPInfoDataCenter { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public IPInfoDataCenter() { - } - - public IPInfoDataCenter result(Boolean result) { - this.result = result; - return this; - } - - /** - * Get result - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public IPInfoDataCenter name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setName(String name) { - this.name = name; - } - - - /** - * Return true if this IPInfoDataCenter object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IPInfoDataCenter ipInfoDataCenter = (IPInfoDataCenter) o; - return Objects.equals(this.result, ipInfoDataCenter.result) && - Objects.equals(this.name, ipInfoDataCenter.name); - } - - @Override - public int hashCode() { - return Objects.hash(result, name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IPInfoDataCenter {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).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/IPInfoV4.java b/sdk/src/main/java/com/fingerprint/model/IPInfoV4.java index 73f37fa0..8a031320 100644 --- a/sdk/src/main/java/com/fingerprint/model/IPInfoV4.java +++ b/sdk/src/main/java/com/fingerprint/model/IPInfoV4.java @@ -1,59 +1,94 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.Geolocation; -import com.fingerprint.model.IPInfoASN; -import com.fingerprint.model.IPInfoDataCenter; import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * IPInfoV4 */ - - @JsonPropertyOrder({ IPInfoV4.JSON_PROPERTY_ADDRESS, IPInfoV4.JSON_PROPERTY_GEOLOCATION, IPInfoV4.JSON_PROPERTY_ASN, - IPInfoV4.JSON_PROPERTY_DATACENTER + IPInfoV4.JSON_PROPERTY_ASN_NAME, + IPInfoV4.JSON_PROPERTY_ASN_NETWORK, + IPInfoV4.JSON_PROPERTY_ASN_TYPE, + IPInfoV4.JSON_PROPERTY_DATACENTER_RESULT, + IPInfoV4.JSON_PROPERTY_DATACENTER_NAME }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class IPInfoV4 { public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nonnull private String address; public static final String JSON_PROPERTY_GEOLOCATION = "geolocation"; + @jakarta.annotation.Nullable private Geolocation geolocation; public static final String JSON_PROPERTY_ASN = "asn"; - private IPInfoASN asn; + @jakarta.annotation.Nullable + private String asn; - public static final String JSON_PROPERTY_DATACENTER = "datacenter"; - private IPInfoDataCenter datacenter; + public static final String JSON_PROPERTY_ASN_NAME = "asn_name"; + @jakarta.annotation.Nullable + private String asnName; + + public static final String JSON_PROPERTY_ASN_NETWORK = "asn_network"; + @jakarta.annotation.Nullable + private String asnNetwork; - public IPInfoV4() { + public static final String JSON_PROPERTY_ASN_TYPE = "asn_type"; + @jakarta.annotation.Nullable + private String asnType; + + public static final String JSON_PROPERTY_DATACENTER_RESULT = "datacenter_result"; + @jakarta.annotation.Nullable + private Boolean datacenterResult; + + public static final String JSON_PROPERTY_DATACENTER_NAME = "datacenter_name"; + @jakarta.annotation.Nullable + private String datacenterName; + + public IPInfoV4() { } - public IPInfoV4 address(String address) { + public IPInfoV4 address(@jakarta.annotation.Nonnull String address) { this.address = address; return this; } - /** + /** * Get address * @return address - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getAddress() { @@ -61,88 +96,185 @@ public String getAddress() { } - @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAddress(String address) { + public void setAddress(@jakarta.annotation.Nonnull String address) { this.address = address; } - public IPInfoV4 geolocation(Geolocation geolocation) { + public IPInfoV4 geolocation(@jakarta.annotation.Nullable Geolocation geolocation) { this.geolocation = geolocation; return this; } - /** + /** * Get geolocation * @return geolocation - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_GEOLOCATION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_GEOLOCATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Geolocation getGeolocation() { return geolocation; } - @JsonProperty(JSON_PROPERTY_GEOLOCATION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setGeolocation(Geolocation geolocation) { + @JsonProperty(value = JSON_PROPERTY_GEOLOCATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setGeolocation(@jakarta.annotation.Nullable Geolocation geolocation) { this.geolocation = geolocation; } - public IPInfoV4 asn(IPInfoASN asn) { + public IPInfoV4 asn(@jakarta.annotation.Nullable String asn) { this.asn = asn; return this; } - /** + /** * Get asn * @return asn - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ASN) + @JsonProperty(value = JSON_PROPERTY_ASN, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public IPInfoASN getAsn() { + public String getAsn() { return asn; } - @JsonProperty(JSON_PROPERTY_ASN) + @JsonProperty(value = JSON_PROPERTY_ASN, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAsn(IPInfoASN asn) { + public void setAsn(@jakarta.annotation.Nullable String asn) { this.asn = asn; } - public IPInfoV4 datacenter(IPInfoDataCenter datacenter) { - this.datacenter = datacenter; + public IPInfoV4 asnName(@jakarta.annotation.Nullable String asnName) { + this.asnName = asnName; + return this; + } + + /** + * Get asnName + * @return asnName + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnName() { + return asnName; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnName(@jakarta.annotation.Nullable String asnName) { + this.asnName = asnName; + } + + + public IPInfoV4 asnNetwork(@jakarta.annotation.Nullable String asnNetwork) { + this.asnNetwork = asnNetwork; + return this; + } + + /** + * Get asnNetwork + * @return asnNetwork + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_NETWORK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnNetwork() { + return asnNetwork; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_NETWORK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnNetwork(@jakarta.annotation.Nullable String asnNetwork) { + this.asnNetwork = asnNetwork; + } + + + public IPInfoV4 asnType(@jakarta.annotation.Nullable String asnType) { + this.asnType = asnType; + return this; + } + + /** + * Get asnType + * @return asnType + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnType() { + return asnType; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnType(@jakarta.annotation.Nullable String asnType) { + this.asnType = asnType; + } + + + public IPInfoV4 datacenterResult(@jakarta.annotation.Nullable Boolean datacenterResult) { + this.datacenterResult = datacenterResult; return this; } - /** - * Get datacenter - * @return datacenter - **/ + /** + * Get datacenterResult + * @return datacenterResult + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DATACENTER_RESULT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getDatacenterResult() { + return datacenterResult; + } + + + @JsonProperty(value = JSON_PROPERTY_DATACENTER_RESULT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDatacenterResult(@jakarta.annotation.Nullable Boolean datacenterResult) { + this.datacenterResult = datacenterResult; + } + + + public IPInfoV4 datacenterName(@jakarta.annotation.Nullable String datacenterName) { + this.datacenterName = datacenterName; + return this; + } + + /** + * Get datacenterName + * @return datacenterName + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATACENTER) + @JsonProperty(value = JSON_PROPERTY_DATACENTER_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public IPInfoDataCenter getDatacenter() { - return datacenter; + public String getDatacenterName() { + return datacenterName; } - @JsonProperty(JSON_PROPERTY_DATACENTER) + @JsonProperty(value = JSON_PROPERTY_DATACENTER_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDatacenter(IPInfoDataCenter datacenter) { - this.datacenter = datacenter; + public void setDatacenterName(@jakarta.annotation.Nullable String datacenterName) { + this.datacenterName = datacenterName; } @@ -161,12 +293,16 @@ public boolean equals(Object o) { return Objects.equals(this.address, ipInfoV4.address) && Objects.equals(this.geolocation, ipInfoV4.geolocation) && Objects.equals(this.asn, ipInfoV4.asn) && - Objects.equals(this.datacenter, ipInfoV4.datacenter); + Objects.equals(this.asnName, ipInfoV4.asnName) && + Objects.equals(this.asnNetwork, ipInfoV4.asnNetwork) && + Objects.equals(this.asnType, ipInfoV4.asnType) && + Objects.equals(this.datacenterResult, ipInfoV4.datacenterResult) && + Objects.equals(this.datacenterName, ipInfoV4.datacenterName); } @Override public int hashCode() { - return Objects.hash(address, geolocation, asn, datacenter); + return Objects.hash(address, geolocation, asn, asnName, asnNetwork, asnType, datacenterResult, datacenterName); } @Override @@ -176,7 +312,11 @@ public String toString() { sb.append(" address: ").append(toIndentedString(address)).append("\n"); sb.append(" geolocation: ").append(toIndentedString(geolocation)).append("\n"); sb.append(" asn: ").append(toIndentedString(asn)).append("\n"); - sb.append(" datacenter: ").append(toIndentedString(datacenter)).append("\n"); + sb.append(" asnName: ").append(toIndentedString(asnName)).append("\n"); + sb.append(" asnNetwork: ").append(toIndentedString(asnNetwork)).append("\n"); + sb.append(" asnType: ").append(toIndentedString(asnType)).append("\n"); + sb.append(" datacenterResult: ").append(toIndentedString(datacenterResult)).append("\n"); + sb.append(" datacenterName: ").append(toIndentedString(datacenterName)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/IPInfoV6.java b/sdk/src/main/java/com/fingerprint/model/IPInfoV6.java index ab1a878d..c9f9691b 100644 --- a/sdk/src/main/java/com/fingerprint/model/IPInfoV6.java +++ b/sdk/src/main/java/com/fingerprint/model/IPInfoV6.java @@ -1,59 +1,94 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.Geolocation; -import com.fingerprint.model.IPInfoASN; -import com.fingerprint.model.IPInfoDataCenter; import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * IPInfoV6 */ - - @JsonPropertyOrder({ IPInfoV6.JSON_PROPERTY_ADDRESS, IPInfoV6.JSON_PROPERTY_GEOLOCATION, IPInfoV6.JSON_PROPERTY_ASN, - IPInfoV6.JSON_PROPERTY_DATACENTER + IPInfoV6.JSON_PROPERTY_ASN_NAME, + IPInfoV6.JSON_PROPERTY_ASN_NETWORK, + IPInfoV6.JSON_PROPERTY_ASN_TYPE, + IPInfoV6.JSON_PROPERTY_DATACENTER_RESULT, + IPInfoV6.JSON_PROPERTY_DATACENTER_NAME }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class IPInfoV6 { public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nonnull private String address; public static final String JSON_PROPERTY_GEOLOCATION = "geolocation"; + @jakarta.annotation.Nullable private Geolocation geolocation; public static final String JSON_PROPERTY_ASN = "asn"; - private IPInfoASN asn; + @jakarta.annotation.Nullable + private String asn; - public static final String JSON_PROPERTY_DATACENTER = "datacenter"; - private IPInfoDataCenter datacenter; + public static final String JSON_PROPERTY_ASN_NAME = "asn_name"; + @jakarta.annotation.Nullable + private String asnName; + + public static final String JSON_PROPERTY_ASN_NETWORK = "asn_network"; + @jakarta.annotation.Nullable + private String asnNetwork; - public IPInfoV6() { + public static final String JSON_PROPERTY_ASN_TYPE = "asn_type"; + @jakarta.annotation.Nullable + private String asnType; + + public static final String JSON_PROPERTY_DATACENTER_RESULT = "datacenter_result"; + @jakarta.annotation.Nullable + private Boolean datacenterResult; + + public static final String JSON_PROPERTY_DATACENTER_NAME = "datacenter_name"; + @jakarta.annotation.Nullable + private String datacenterName; + + public IPInfoV6() { } - public IPInfoV6 address(String address) { + public IPInfoV6 address(@jakarta.annotation.Nonnull String address) { this.address = address; return this; } - /** + /** * Get address * @return address - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getAddress() { @@ -61,88 +96,185 @@ public String getAddress() { } - @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAddress(String address) { + public void setAddress(@jakarta.annotation.Nonnull String address) { this.address = address; } - public IPInfoV6 geolocation(Geolocation geolocation) { + public IPInfoV6 geolocation(@jakarta.annotation.Nullable Geolocation geolocation) { this.geolocation = geolocation; return this; } - /** + /** * Get geolocation * @return geolocation - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_GEOLOCATION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_GEOLOCATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Geolocation getGeolocation() { return geolocation; } - @JsonProperty(JSON_PROPERTY_GEOLOCATION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setGeolocation(Geolocation geolocation) { + @JsonProperty(value = JSON_PROPERTY_GEOLOCATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setGeolocation(@jakarta.annotation.Nullable Geolocation geolocation) { this.geolocation = geolocation; } - public IPInfoV6 asn(IPInfoASN asn) { + public IPInfoV6 asn(@jakarta.annotation.Nullable String asn) { this.asn = asn; return this; } - /** + /** * Get asn * @return asn - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ASN) + @JsonProperty(value = JSON_PROPERTY_ASN, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public IPInfoASN getAsn() { + public String getAsn() { return asn; } - @JsonProperty(JSON_PROPERTY_ASN) + @JsonProperty(value = JSON_PROPERTY_ASN, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAsn(IPInfoASN asn) { + public void setAsn(@jakarta.annotation.Nullable String asn) { this.asn = asn; } - public IPInfoV6 datacenter(IPInfoDataCenter datacenter) { - this.datacenter = datacenter; + public IPInfoV6 asnName(@jakarta.annotation.Nullable String asnName) { + this.asnName = asnName; + return this; + } + + /** + * Get asnName + * @return asnName + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnName() { + return asnName; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnName(@jakarta.annotation.Nullable String asnName) { + this.asnName = asnName; + } + + + public IPInfoV6 asnNetwork(@jakarta.annotation.Nullable String asnNetwork) { + this.asnNetwork = asnNetwork; + return this; + } + + /** + * Get asnNetwork + * @return asnNetwork + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_NETWORK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnNetwork() { + return asnNetwork; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_NETWORK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnNetwork(@jakarta.annotation.Nullable String asnNetwork) { + this.asnNetwork = asnNetwork; + } + + + public IPInfoV6 asnType(@jakarta.annotation.Nullable String asnType) { + this.asnType = asnType; + return this; + } + + /** + * Get asnType + * @return asnType + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ASN_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getAsnType() { + return asnType; + } + + + @JsonProperty(value = JSON_PROPERTY_ASN_TYPE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsnType(@jakarta.annotation.Nullable String asnType) { + this.asnType = asnType; + } + + + public IPInfoV6 datacenterResult(@jakarta.annotation.Nullable Boolean datacenterResult) { + this.datacenterResult = datacenterResult; return this; } - /** - * Get datacenter - * @return datacenter - **/ + /** + * Get datacenterResult + * @return datacenterResult + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DATACENTER_RESULT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getDatacenterResult() { + return datacenterResult; + } + + + @JsonProperty(value = JSON_PROPERTY_DATACENTER_RESULT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDatacenterResult(@jakarta.annotation.Nullable Boolean datacenterResult) { + this.datacenterResult = datacenterResult; + } + + + public IPInfoV6 datacenterName(@jakarta.annotation.Nullable String datacenterName) { + this.datacenterName = datacenterName; + return this; + } + + /** + * Get datacenterName + * @return datacenterName + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATACENTER) + @JsonProperty(value = JSON_PROPERTY_DATACENTER_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public IPInfoDataCenter getDatacenter() { - return datacenter; + public String getDatacenterName() { + return datacenterName; } - @JsonProperty(JSON_PROPERTY_DATACENTER) + @JsonProperty(value = JSON_PROPERTY_DATACENTER_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDatacenter(IPInfoDataCenter datacenter) { - this.datacenter = datacenter; + public void setDatacenterName(@jakarta.annotation.Nullable String datacenterName) { + this.datacenterName = datacenterName; } @@ -161,12 +293,16 @@ public boolean equals(Object o) { return Objects.equals(this.address, ipInfoV6.address) && Objects.equals(this.geolocation, ipInfoV6.geolocation) && Objects.equals(this.asn, ipInfoV6.asn) && - Objects.equals(this.datacenter, ipInfoV6.datacenter); + Objects.equals(this.asnName, ipInfoV6.asnName) && + Objects.equals(this.asnNetwork, ipInfoV6.asnNetwork) && + Objects.equals(this.asnType, ipInfoV6.asnType) && + Objects.equals(this.datacenterResult, ipInfoV6.datacenterResult) && + Objects.equals(this.datacenterName, ipInfoV6.datacenterName); } @Override public int hashCode() { - return Objects.hash(address, geolocation, asn, datacenter); + return Objects.hash(address, geolocation, asn, asnName, asnNetwork, asnType, datacenterResult, datacenterName); } @Override @@ -176,7 +312,11 @@ public String toString() { sb.append(" address: ").append(toIndentedString(address)).append("\n"); sb.append(" geolocation: ").append(toIndentedString(geolocation)).append("\n"); sb.append(" asn: ").append(toIndentedString(asn)).append("\n"); - sb.append(" datacenter: ").append(toIndentedString(datacenter)).append("\n"); + sb.append(" asnName: ").append(toIndentedString(asnName)).append("\n"); + sb.append(" asnNetwork: ").append(toIndentedString(asnNetwork)).append("\n"); + sb.append(" asnType: ").append(toIndentedString(asnType)).append("\n"); + sb.append(" datacenterResult: ").append(toIndentedString(datacenterResult)).append("\n"); + sb.append(" datacenterName: ").append(toIndentedString(datacenterName)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/Identification.java b/sdk/src/main/java/com/fingerprint/model/Identification.java index c2405873..d8281655 100644 --- a/sdk/src/main/java/com/fingerprint/model/Identification.java +++ b/sdk/src/main/java/com/fingerprint/model/Identification.java @@ -1,129 +1,79 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.BrowserDetails; -import com.fingerprint.model.DeprecatedGeolocation; import com.fingerprint.model.IdentificationConfidence; -import com.fingerprint.model.IdentificationSeenAt; -import com.fingerprint.model.RawDeviceAttribute; -import com.fingerprint.model.SDK; -import java.time.OffsetDateTime; import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * Identification */ - - @JsonPropertyOrder({ Identification.JSON_PROPERTY_VISITOR_ID, - Identification.JSON_PROPERTY_REQUEST_ID, - Identification.JSON_PROPERTY_BROWSER_DETAILS, - Identification.JSON_PROPERTY_INCOGNITO, - Identification.JSON_PROPERTY_IP, - Identification.JSON_PROPERTY_IP_LOCATION, - Identification.JSON_PROPERTY_LINKED_ID, - Identification.JSON_PROPERTY_SUSPECT, - Identification.JSON_PROPERTY_TIMESTAMP, - Identification.JSON_PROPERTY_TIME, - Identification.JSON_PROPERTY_URL, - Identification.JSON_PROPERTY_TAG, Identification.JSON_PROPERTY_CONFIDENCE, Identification.JSON_PROPERTY_VISITOR_FOUND, Identification.JSON_PROPERTY_FIRST_SEEN_AT, - Identification.JSON_PROPERTY_LAST_SEEN_AT, - Identification.JSON_PROPERTY_COMPONENTS, - Identification.JSON_PROPERTY_REPLAYED, - Identification.JSON_PROPERTY_SDK, - Identification.JSON_PROPERTY_ENVIRONMENT_ID + Identification.JSON_PROPERTY_LAST_SEEN_AT }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Identification { - public static final String JSON_PROPERTY_VISITOR_ID = "visitorId"; + public static final String JSON_PROPERTY_VISITOR_ID = "visitor_id"; + @jakarta.annotation.Nonnull private String visitorId; - public static final String JSON_PROPERTY_REQUEST_ID = "requestId"; - private String requestId; - - public static final String JSON_PROPERTY_BROWSER_DETAILS = "browserDetails"; - private BrowserDetails browserDetails; - - public static final String JSON_PROPERTY_INCOGNITO = "incognito"; - private Boolean incognito; - - public static final String JSON_PROPERTY_IP = "ip"; - private String ip; - - public static final String JSON_PROPERTY_IP_LOCATION = "ipLocation"; - private DeprecatedGeolocation ipLocation; - - public static final String JSON_PROPERTY_LINKED_ID = "linkedId"; - private String linkedId; - - public static final String JSON_PROPERTY_SUSPECT = "suspect"; - private Boolean suspect; - - public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; - private Long timestamp; - - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_URL = "url"; - private String url; - - public static final String JSON_PROPERTY_TAG = "tag"; - private Map tag = new HashMap<>(); - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; + @jakarta.annotation.Nullable private IdentificationConfidence confidence; - public static final String JSON_PROPERTY_VISITOR_FOUND = "visitorFound"; + public static final String JSON_PROPERTY_VISITOR_FOUND = "visitor_found"; + @jakarta.annotation.Nonnull private Boolean visitorFound; - public static final String JSON_PROPERTY_FIRST_SEEN_AT = "firstSeenAt"; - private IdentificationSeenAt firstSeenAt; - - public static final String JSON_PROPERTY_LAST_SEEN_AT = "lastSeenAt"; - private IdentificationSeenAt lastSeenAt; - - public static final String JSON_PROPERTY_COMPONENTS = "components"; - private Map components = null; - - public static final String JSON_PROPERTY_REPLAYED = "replayed"; - private Boolean replayed; - - public static final String JSON_PROPERTY_SDK = "sdk"; - private SDK sdk; + public static final String JSON_PROPERTY_FIRST_SEEN_AT = "first_seen_at"; + @jakarta.annotation.Nullable + private Long firstSeenAt; - public static final String JSON_PROPERTY_ENVIRONMENT_ID = "environmentId"; - private String environmentId; + public static final String JSON_PROPERTY_LAST_SEEN_AT = "last_seen_at"; + @jakarta.annotation.Nullable + private Long lastSeenAt; - public Identification() { + public Identification() { } - public Identification visitorId(String visitorId) { + public Identification visitorId(@jakarta.annotation.Nonnull String visitorId) { this.visitorId = visitorId; return this; } - /** - * String of 20 characters that uniquely identifies the visitor's browser or mobile device. + /** + * String of 20 characters that uniquely identifies the visitor's browser or mobile device. * @return visitorId - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "String of 20 characters that uniquely identifies the visitor's browser or mobile device.") - @JsonProperty(JSON_PROPERTY_VISITOR_ID) + @JsonProperty(value = JSON_PROPERTY_VISITOR_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getVisitorId() { @@ -131,318 +81,24 @@ public String getVisitorId() { } - @JsonProperty(JSON_PROPERTY_VISITOR_ID) + @JsonProperty(value = JSON_PROPERTY_VISITOR_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisitorId(String visitorId) { + public void setVisitorId(@jakarta.annotation.Nonnull String visitorId) { this.visitorId = visitorId; } - public Identification requestId(String requestId) { - this.requestId = requestId; - return this; - } - - /** - * Unique identifier of the user's request. - * @return requestId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Unique identifier of the user's request.") - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getRequestId() { - return requestId; - } - - - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - - public Identification browserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - return this; - } - - /** - * Get browserDetails - * @return browserDetails - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public BrowserDetails getBrowserDetails() { - return browserDetails; - } - - - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBrowserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - } - - - public Identification incognito(Boolean incognito) { - this.incognito = incognito; - return this; - } - - /** - * Flag if user used incognito session. - * @return incognito - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Flag if user used incognito session.") - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getIncognito() { - return incognito; - } - - - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIncognito(Boolean incognito) { - this.incognito = incognito; - } - - - public Identification ip(String ip) { - this.ip = ip; - return this; - } - - /** - * IP address of the requesting browser or bot. - * @return ip - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address of the requesting browser or bot.") - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getIp() { - return ip; - } - - - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIp(String ip) { - this.ip = ip; - } - - - public Identification ipLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - return this; - } - - /** - * Get ipLocation - * @return ipLocation - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public DeprecatedGeolocation getIpLocation() { - return ipLocation; - } - - - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - } - - - public Identification linkedId(String linkedId) { - this.linkedId = linkedId; - return this; - } - - /** - * A customer-provided id that was sent with the request. - * @return linkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided id that was sent with the request.") - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getLinkedId() { - return linkedId; - } - - - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLinkedId(String linkedId) { - this.linkedId = linkedId; - } - - - public Identification suspect(Boolean suspect) { - this.suspect = suspect; - return this; - } - - /** - * Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent). - * @return suspect - **/ - @jakarta.annotation.Nullable - @Schema(description = "Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent).") - @JsonProperty(JSON_PROPERTY_SUSPECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getSuspect() { - return suspect; - } - - - @JsonProperty(JSON_PROPERTY_SUSPECT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSuspect(Boolean suspect) { - this.suspect = suspect; - } - - - public Identification timestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - /** - * Timestamp of the event with millisecond precision in Unix time. - * @return timestamp - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Timestamp of the event with millisecond precision in Unix time.") - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Long getTimestamp() { - return timestamp; - } - - - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - - public Identification time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. - * @return time - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible.") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public Identification url(String url) { - this.url = url; - return this; - } - - /** - * Page URL from which the request was sent. - * @return url - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Page URL from which the request was sent.") - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUrl() { - return url; - } - - - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUrl(String url) { - this.url = url; - } - - - public Identification tag(Map tag) { - this.tag = tag; - return this; - } - - public Identification puttagItem(String key, Object tagItem) { - this.tag.put(key, tagItem); - return this; - } - - /** - * A customer-provided value or an object that was sent with identification request. - * @return tag - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "A customer-provided value or an object that was sent with identification request.") - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.ALWAYS) - - public Map getTag() { - return tag; - } - - - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.ALWAYS) - public void setTag(Map tag) { - this.tag = tag; - } - - - public Identification confidence(IdentificationConfidence confidence) { + public Identification confidence(@jakarta.annotation.Nullable IdentificationConfidence confidence) { this.confidence = confidence; return this; } - /** + /** * Get confidence * @return confidence - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public IdentificationConfidence getConfidence() { @@ -450,25 +106,24 @@ public IdentificationConfidence getConfidence() { } - @JsonProperty(JSON_PROPERTY_CONFIDENCE) + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(IdentificationConfidence confidence) { + public void setConfidence(@jakarta.annotation.Nullable IdentificationConfidence confidence) { this.confidence = confidence; } - public Identification visitorFound(Boolean visitorFound) { + public Identification visitorFound(@jakarta.annotation.Nonnull Boolean visitorFound) { this.visitorFound = visitorFound; return this; } - /** + /** * Attribute represents if a visitor had been identified before. * @return visitorFound - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "Attribute represents if a visitor had been identified before.") - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) + @JsonProperty(value = JSON_PROPERTY_VISITOR_FOUND, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getVisitorFound() { @@ -476,174 +131,60 @@ public Boolean getVisitorFound() { } - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) + @JsonProperty(value = JSON_PROPERTY_VISITOR_FOUND, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisitorFound(Boolean visitorFound) { + public void setVisitorFound(@jakarta.annotation.Nonnull Boolean visitorFound) { this.visitorFound = visitorFound; } - public Identification firstSeenAt(IdentificationSeenAt firstSeenAt) { + public Identification firstSeenAt(@jakarta.annotation.Nullable Long firstSeenAt) { this.firstSeenAt = firstSeenAt; return this; } - /** - * Get firstSeenAt + /** + * Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was first seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 * @return firstSeenAt - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_FIRST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public IdentificationSeenAt getFirstSeenAt() { + public Long getFirstSeenAt() { return firstSeenAt; } - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setFirstSeenAt(IdentificationSeenAt firstSeenAt) { + @JsonProperty(value = JSON_PROPERTY_FIRST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFirstSeenAt(@jakarta.annotation.Nullable Long firstSeenAt) { this.firstSeenAt = firstSeenAt; } - public Identification lastSeenAt(IdentificationSeenAt lastSeenAt) { + public Identification lastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { this.lastSeenAt = lastSeenAt; return this; } - /** - * Get lastSeenAt + /** + * Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was last seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 * @return lastSeenAt - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public IdentificationSeenAt getLastSeenAt() { - return lastSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setLastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - } - - - public Identification components(Map components) { - this.components = components; - return this; - } - - public Identification putcomponentsItem(String key, RawDeviceAttribute componentsItem) { - if (this.components == null) { - this.components = new HashMap<>(); - } - this.components.put(key, componentsItem); - return this; - } - - /** - * It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. - * @return components - **/ - @jakarta.annotation.Nullable - @Schema(description = "It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. ") - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Map getComponents() { - return components; - } - - - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComponents(Map components) { - this.components = components; - } - - - public Identification replayed(Boolean replayed) { - this.replayed = replayed; - return this; - } - - /** - * `true` if we determined that this payload was replayed, `false` otherwise. - * @return replayed - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if we determined that this payload was replayed, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_REPLAYED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getReplayed() { - return replayed; - } - - - @JsonProperty(JSON_PROPERTY_REPLAYED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setReplayed(Boolean replayed) { - this.replayed = replayed; - } - - - public Identification sdk(SDK sdk) { - this.sdk = sdk; - return this; - } - - /** - * Get sdk - * @return sdk - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SDK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SDK getSdk() { - return sdk; - } - - - @JsonProperty(JSON_PROPERTY_SDK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSdk(SDK sdk) { - this.sdk = sdk; - } - - - public Identification environmentId(String environmentId) { - this.environmentId = environmentId; - return this; - } - - /** - * Environment ID associated with the event - * @return environmentId - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "Environment ID associated with the event") - @JsonProperty(JSON_PROPERTY_ENVIRONMENT_ID) + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getEnvironmentId() { - return environmentId; + public Long getLastSeenAt() { + return lastSeenAt; } - @JsonProperty(JSON_PROPERTY_ENVIRONMENT_ID) + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEnvironmentId(String environmentId) { - this.environmentId = environmentId; + public void setLastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { + this.lastSeenAt = lastSeenAt; } @@ -660,30 +201,15 @@ public boolean equals(Object o) { } Identification identification = (Identification) o; return Objects.equals(this.visitorId, identification.visitorId) && - Objects.equals(this.requestId, identification.requestId) && - Objects.equals(this.browserDetails, identification.browserDetails) && - Objects.equals(this.incognito, identification.incognito) && - Objects.equals(this.ip, identification.ip) && - Objects.equals(this.ipLocation, identification.ipLocation) && - Objects.equals(this.linkedId, identification.linkedId) && - Objects.equals(this.suspect, identification.suspect) && - Objects.equals(this.timestamp, identification.timestamp) && - Objects.equals(this.time, identification.time) && - Objects.equals(this.url, identification.url) && - Objects.equals(this.tag, identification.tag) && Objects.equals(this.confidence, identification.confidence) && Objects.equals(this.visitorFound, identification.visitorFound) && Objects.equals(this.firstSeenAt, identification.firstSeenAt) && - Objects.equals(this.lastSeenAt, identification.lastSeenAt) && - Objects.equals(this.components, identification.components) && - Objects.equals(this.replayed, identification.replayed) && - Objects.equals(this.sdk, identification.sdk) && - Objects.equals(this.environmentId, identification.environmentId); + Objects.equals(this.lastSeenAt, identification.lastSeenAt); } @Override public int hashCode() { - return Objects.hash(visitorId, requestId, browserDetails, incognito, ip, ipLocation, linkedId, suspect, timestamp, time, url, tag, confidence, visitorFound, firstSeenAt, lastSeenAt, components, replayed, sdk, environmentId); + return Objects.hash(visitorId, confidence, visitorFound, firstSeenAt, lastSeenAt); } @Override @@ -691,25 +217,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Identification {\n"); sb.append(" visitorId: ").append(toIndentedString(visitorId)).append("\n"); - sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n"); - sb.append(" browserDetails: ").append(toIndentedString(browserDetails)).append("\n"); - sb.append(" incognito: ").append(toIndentedString(incognito)).append("\n"); - sb.append(" ip: ").append(toIndentedString(ip)).append("\n"); - sb.append(" ipLocation: ").append(toIndentedString(ipLocation)).append("\n"); - sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); - sb.append(" suspect: ").append(toIndentedString(suspect)).append("\n"); - sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); sb.append(" visitorFound: ").append(toIndentedString(visitorFound)).append("\n"); sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).append("\n"); - sb.append(" components: ").append(toIndentedString(components)).append("\n"); - sb.append(" replayed: ").append(toIndentedString(replayed)).append("\n"); - sb.append(" sdk: ").append(toIndentedString(sdk)).append("\n"); - sb.append(" environmentId: ").append(toIndentedString(environmentId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/IdentificationConfidence.java b/sdk/src/main/java/com/fingerprint/model/IdentificationConfidence.java index ccfce3a3..ac90d2f4 100644 --- a/sdk/src/main/java/com/fingerprint/model/IdentificationConfidence.java +++ b/sdk/src/main/java/com/fingerprint/model/IdentificationConfidence.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -9,46 +25,46 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * IdentificationConfidence */ - - @JsonPropertyOrder({ IdentificationConfidence.JSON_PROPERTY_SCORE, - IdentificationConfidence.JSON_PROPERTY_REVISION, + IdentificationConfidence.JSON_PROPERTY_VERSION, IdentificationConfidence.JSON_PROPERTY_COMMENT }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class IdentificationConfidence { public static final String JSON_PROPERTY_SCORE = "score"; + @jakarta.annotation.Nonnull private Double score; - public static final String JSON_PROPERTY_REVISION = "revision"; - private String revision; + public static final String JSON_PROPERTY_VERSION = "version"; + @jakarta.annotation.Nullable + private String version; public static final String JSON_PROPERTY_COMMENT = "comment"; + @jakarta.annotation.Nullable private String comment; - public IdentificationConfidence() { + public IdentificationConfidence() { } - public IdentificationConfidence score(Double score) { + public IdentificationConfidence score(@jakarta.annotation.Nonnull Double score) { this.score = score; return this; } - /** + /** * The confidence score is a floating-point number between 0 and 1 that represents the probability of accurate identification. * minimum: 0 * maximum: 1 * @return score - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "The confidence score is a floating-point number between 0 and 1 that represents the probability of accurate identification.") - @JsonProperty(JSON_PROPERTY_SCORE) + @JsonProperty(value = JSON_PROPERTY_SCORE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Double getScore() { @@ -56,51 +72,49 @@ public Double getScore() { } - @JsonProperty(JSON_PROPERTY_SCORE) + @JsonProperty(value = JSON_PROPERTY_SCORE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setScore(Double score) { + public void setScore(@jakarta.annotation.Nonnull Double score) { this.score = score; } - public IdentificationConfidence revision(String revision) { - this.revision = revision; + public IdentificationConfidence version(@jakarta.annotation.Nullable String version) { + this.version = version; return this; } - /** - * The revision name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method. - * @return revision - **/ + /** + * The version name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method. + * @return version + */ @jakarta.annotation.Nullable - @Schema(description = "The revision name of the method used to calculate the Confidence score. This field is only present for customers who opted in to an alternative calculation method.") - @JsonProperty(JSON_PROPERTY_REVISION) + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getRevision() { - return revision; + public String getVersion() { + return version; } - @JsonProperty(JSON_PROPERTY_REVISION) + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRevision(String revision) { - this.revision = revision; + public void setVersion(@jakarta.annotation.Nullable String version) { + this.version = version; } - public IdentificationConfidence comment(String comment) { + public IdentificationConfidence comment(@jakarta.annotation.Nullable String comment) { this.comment = comment; return this; } - /** + /** * Get comment * @return comment - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_COMMENT) + @JsonProperty(value = JSON_PROPERTY_COMMENT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getComment() { @@ -108,9 +122,9 @@ public String getComment() { } - @JsonProperty(JSON_PROPERTY_COMMENT) + @JsonProperty(value = JSON_PROPERTY_COMMENT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComment(String comment) { + public void setComment(@jakarta.annotation.Nullable String comment) { this.comment = comment; } @@ -128,13 +142,13 @@ public boolean equals(Object o) { } IdentificationConfidence identificationConfidence = (IdentificationConfidence) o; return Objects.equals(this.score, identificationConfidence.score) && - Objects.equals(this.revision, identificationConfidence.revision) && + Objects.equals(this.version, identificationConfidence.version) && Objects.equals(this.comment, identificationConfidence.comment); } @Override public int hashCode() { - return Objects.hash(score, revision, comment); + return Objects.hash(score, version, comment); } @Override @@ -142,7 +156,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IdentificationConfidence {\n"); sb.append(" score: ").append(toIndentedString(score)).append("\n"); - sb.append(" revision: ").append(toIndentedString(revision)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/sdk/src/main/java/com/fingerprint/model/IdentificationSeenAt.java b/sdk/src/main/java/com/fingerprint/model/IdentificationSeenAt.java deleted file mode 100644 index 615b9840..00000000 --- a/sdk/src/main/java/com/fingerprint/model/IdentificationSeenAt.java +++ /dev/null @@ -1,130 +0,0 @@ -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 java.time.OffsetDateTime; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * IdentificationSeenAt - */ - - -@JsonPropertyOrder({ - IdentificationSeenAt.JSON_PROPERTY_GLOBAL, - IdentificationSeenAt.JSON_PROPERTY_SUBSCRIPTION -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class IdentificationSeenAt { - public static final String JSON_PROPERTY_GLOBAL = "global"; - private OffsetDateTime global; - - public static final String JSON_PROPERTY_SUBSCRIPTION = "subscription"; - private OffsetDateTime subscription; - - public IdentificationSeenAt() { - } - - public IdentificationSeenAt global(OffsetDateTime global) { - this.global = global; - return this; - } - - /** - * Get global - * @return global - **/ - @jakarta.annotation.Nullable - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_GLOBAL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getGlobal() { - return global; - } - - - @JsonProperty(JSON_PROPERTY_GLOBAL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setGlobal(OffsetDateTime global) { - this.global = global; - } - - - public IdentificationSeenAt subscription(OffsetDateTime subscription) { - this.subscription = subscription; - return this; - } - - /** - * Get subscription - * @return subscription - **/ - @jakarta.annotation.Nullable - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_SUBSCRIPTION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getSubscription() { - return subscription; - } - - - @JsonProperty(JSON_PROPERTY_SUBSCRIPTION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setSubscription(OffsetDateTime subscription) { - this.subscription = subscription; - } - - - /** - * Return true if this IdentificationSeenAt object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IdentificationSeenAt identificationSeenAt = (IdentificationSeenAt) o; - return Objects.equals(this.global, identificationSeenAt.global) && - Objects.equals(this.subscription, identificationSeenAt.subscription); - } - - @Override - public int hashCode() { - return Objects.hash(global, subscription); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IdentificationSeenAt {\n"); - sb.append(" global: ").append(toIndentedString(global)).append("\n"); - sb.append(" subscription: ").append(toIndentedString(subscription)).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/Incognito.java b/sdk/src/main/java/com/fingerprint/model/Incognito.java deleted file mode 100644 index 27a62375..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Incognito.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Incognito - */ - - -@JsonPropertyOrder({ - Incognito.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Incognito { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public Incognito() { - } - - public Incognito result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if we detected incognito mode used in the browser, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if we detected incognito mode used in the browser, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this Incognito object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Incognito incognito = (Incognito) o; - return Objects.equals(this.result, incognito.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Incognito {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Integration.java b/sdk/src/main/java/com/fingerprint/model/Integration.java new file mode 100644 index 00000000..c71951b0 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/Integration.java @@ -0,0 +1,176 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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.IntegrationSubintegration; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * Integration + */ +@JsonPropertyOrder({ + Integration.JSON_PROPERTY_NAME, + Integration.JSON_PROPERTY_VERSION, + Integration.JSON_PROPERTY_SUBINTEGRATION +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class Integration { + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nullable + private String name; + + public static final String JSON_PROPERTY_VERSION = "version"; + @jakarta.annotation.Nullable + private String version; + + public static final String JSON_PROPERTY_SUBINTEGRATION = "subintegration"; + @jakarta.annotation.Nullable + private IntegrationSubintegration subintegration; + + public Integration() { + } + + public Integration name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * The name of the specific integration, e.g. \"fingerprint-pro-react\". + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(value = JSON_PROPERTY_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public Integration version(@jakarta.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * The version of the specific integration, e.g. \"3.11.10\". + * @return version + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getVersion() { + return version; + } + + + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVersion(@jakarta.annotation.Nullable String version) { + this.version = version; + } + + + public Integration subintegration(@jakarta.annotation.Nullable IntegrationSubintegration subintegration) { + this.subintegration = subintegration; + return this; + } + + /** + * Get subintegration + * @return subintegration + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_SUBINTEGRATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public IntegrationSubintegration getSubintegration() { + return subintegration; + } + + + @JsonProperty(value = JSON_PROPERTY_SUBINTEGRATION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSubintegration(@jakarta.annotation.Nullable IntegrationSubintegration subintegration) { + this.subintegration = subintegration; + } + + + /** + * Return true if this Integration object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Integration integration = (Integration) o; + return Objects.equals(this.name, integration.name) && + Objects.equals(this.version, integration.version) && + Objects.equals(this.subintegration, integration.subintegration); + } + + @Override + public int hashCode() { + return Objects.hash(name, version, subintegration); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Integration {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" subintegration: ").append(toIndentedString(subintegration)).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/IntegrationSubintegration.java b/sdk/src/main/java/com/fingerprint/model/IntegrationSubintegration.java new file mode 100644 index 00000000..0e31eeed --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/IntegrationSubintegration.java @@ -0,0 +1,144 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * IntegrationSubintegration + */ +@JsonPropertyOrder({ + IntegrationSubintegration.JSON_PROPERTY_NAME, + IntegrationSubintegration.JSON_PROPERTY_VERSION +}) +@JsonTypeName("Integration_subintegration") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class IntegrationSubintegration { + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nullable + private String name; + + public static final String JSON_PROPERTY_VERSION = "version"; + @jakarta.annotation.Nullable + private String version; + + public IntegrationSubintegration() { + } + + public IntegrationSubintegration name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * The name of the specific subintegration, e.g. \"preact\". + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getName() { + return name; + } + + + @JsonProperty(value = JSON_PROPERTY_NAME, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public IntegrationSubintegration version(@jakarta.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * The version of the specific subintegration, e.g. \"10.21.0\". + * @return version + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getVersion() { + return version; + } + + + @JsonProperty(value = JSON_PROPERTY_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVersion(@jakarta.annotation.Nullable String version) { + this.version = version; + } + + + /** + * Return true if this Integration_subintegration object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationSubintegration integrationSubintegration = (IntegrationSubintegration) o; + return Objects.equals(this.name, integrationSubintegration.name) && + Objects.equals(this.version, integrationSubintegration.version); + } + + @Override + public int hashCode() { + return Objects.hash(name, version); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationSubintegration {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).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/Jailbroken.java b/sdk/src/main/java/com/fingerprint/model/Jailbroken.java deleted file mode 100644 index bdd67af3..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Jailbroken.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Jailbroken - */ - - -@JsonPropertyOrder({ - Jailbroken.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Jailbroken { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public Jailbroken() { - } - - public Jailbroken result(Boolean result) { - this.result = result; - return this; - } - - /** - * iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this Jailbroken object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Jailbroken jailbroken = (Jailbroken) o; - return Objects.equals(this.result, jailbroken.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Jailbroken {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/LocationSpoofing.java b/sdk/src/main/java/com/fingerprint/model/LocationSpoofing.java deleted file mode 100644 index 9baaed06..00000000 --- a/sdk/src/main/java/com/fingerprint/model/LocationSpoofing.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * LocationSpoofing - */ - - -@JsonPropertyOrder({ - LocationSpoofing.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class LocationSpoofing { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public LocationSpoofing() { - } - - public LocationSpoofing result(Boolean result) { - this.result = result; - return this; - } - - /** - * Flag indicating whether the request came from a mobile device with location spoofing enabled. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Flag indicating whether the request came from a mobile device with location spoofing enabled.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this LocationSpoofing object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - LocationSpoofing locationSpoofing = (LocationSpoofing) o; - return Objects.equals(this.result, locationSpoofing.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class LocationSpoofing {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/MitMAttack.java b/sdk/src/main/java/com/fingerprint/model/MitMAttack.java deleted file mode 100644 index 951ecec1..00000000 --- a/sdk/src/main/java/com/fingerprint/model/MitMAttack.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * MitMAttack - */ - - -@JsonPropertyOrder({ - MitMAttack.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class MitMAttack { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public MitMAttack() { - } - - public MitMAttack result(Boolean result) { - this.result = result; - return this; - } - - /** - * * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) to learn more about this Smart Signal. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "* `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-reference#mitm-attack-detection) to learn more about this Smart Signal. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this MitMAttack object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - MitMAttack mitMAttack = (MitMAttack) o; - return Objects.equals(this.result, mitMAttack.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class MitMAttack {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/PrivacySettings.java b/sdk/src/main/java/com/fingerprint/model/PrivacySettings.java deleted file mode 100644 index 6e7a2f03..00000000 --- a/sdk/src/main/java/com/fingerprint/model/PrivacySettings.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * PrivacySettings - */ - - -@JsonPropertyOrder({ - PrivacySettings.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class PrivacySettings { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public PrivacySettings() { - } - - public PrivacySettings result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this PrivacySettings object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - PrivacySettings privacySettings = (PrivacySettings) o; - return Objects.equals(this.result, privacySettings.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class PrivacySettings {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/ProductBotd.java b/sdk/src/main/java/com/fingerprint/model/ProductBotd.java deleted file mode 100644 index 87ef8f82..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductBotd.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Botd; -import com.fingerprint.model.Error; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductBotd - */ - - -@JsonPropertyOrder({ - ProductBotd.JSON_PROPERTY_DATA, - ProductBotd.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductBotd { - public static final String JSON_PROPERTY_DATA = "data"; - private Botd data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductBotd() { - } - - public ProductBotd data(Botd data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Botd getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Botd data) { - this.data = data; - } - - - public ProductBotd error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductBotd object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductBotd productBotd = (ProductBotd) o; - return Objects.equals(this.data, productBotd.data) && - Objects.equals(this.error, productBotd.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductBotd {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductClonedApp.java b/sdk/src/main/java/com/fingerprint/model/ProductClonedApp.java deleted file mode 100644 index b427f15d..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductClonedApp.java +++ /dev/null @@ -1,131 +0,0 @@ -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.ClonedApp; -import com.fingerprint.model.Error; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductClonedApp - */ - - -@JsonPropertyOrder({ - ProductClonedApp.JSON_PROPERTY_DATA, - ProductClonedApp.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductClonedApp { - public static final String JSON_PROPERTY_DATA = "data"; - private ClonedApp data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductClonedApp() { - } - - public ProductClonedApp data(ClonedApp data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ClonedApp getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(ClonedApp data) { - this.data = data; - } - - - public ProductClonedApp error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductClonedApp object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductClonedApp productClonedApp = (ProductClonedApp) o; - return Objects.equals(this.data, productClonedApp.data) && - Objects.equals(this.error, productClonedApp.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductClonedApp {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductDeveloperTools.java b/sdk/src/main/java/com/fingerprint/model/ProductDeveloperTools.java deleted file mode 100644 index b476eb21..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductDeveloperTools.java +++ /dev/null @@ -1,131 +0,0 @@ -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.DeveloperTools; -import com.fingerprint.model.Error; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductDeveloperTools - */ - - -@JsonPropertyOrder({ - ProductDeveloperTools.JSON_PROPERTY_DATA, - ProductDeveloperTools.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductDeveloperTools { - public static final String JSON_PROPERTY_DATA = "data"; - private DeveloperTools data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductDeveloperTools() { - } - - public ProductDeveloperTools data(DeveloperTools data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public DeveloperTools getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(DeveloperTools data) { - this.data = data; - } - - - public ProductDeveloperTools error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductDeveloperTools object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductDeveloperTools productDeveloperTools = (ProductDeveloperTools) o; - return Objects.equals(this.data, productDeveloperTools.data) && - Objects.equals(this.error, productDeveloperTools.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductDeveloperTools {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductEmulator.java b/sdk/src/main/java/com/fingerprint/model/ProductEmulator.java deleted file mode 100644 index 18e34815..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductEmulator.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Emulator; -import com.fingerprint.model.Error; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductEmulator - */ - - -@JsonPropertyOrder({ - ProductEmulator.JSON_PROPERTY_DATA, - ProductEmulator.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductEmulator { - public static final String JSON_PROPERTY_DATA = "data"; - private Emulator data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductEmulator() { - } - - public ProductEmulator data(Emulator data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Emulator getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Emulator data) { - this.data = data; - } - - - public ProductEmulator error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductEmulator object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductEmulator productEmulator = (ProductEmulator) o; - return Objects.equals(this.data, productEmulator.data) && - Objects.equals(this.error, productEmulator.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductEmulator {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductFactoryReset.java b/sdk/src/main/java/com/fingerprint/model/ProductFactoryReset.java deleted file mode 100644 index 38418950..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductFactoryReset.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.FactoryReset; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductFactoryReset - */ - - -@JsonPropertyOrder({ - ProductFactoryReset.JSON_PROPERTY_DATA, - ProductFactoryReset.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductFactoryReset { - public static final String JSON_PROPERTY_DATA = "data"; - private FactoryReset data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductFactoryReset() { - } - - public ProductFactoryReset data(FactoryReset data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public FactoryReset getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(FactoryReset data) { - this.data = data; - } - - - public ProductFactoryReset error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductFactoryReset object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductFactoryReset productFactoryReset = (ProductFactoryReset) o; - return Objects.equals(this.data, productFactoryReset.data) && - Objects.equals(this.error, productFactoryReset.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductFactoryReset {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductFrida.java b/sdk/src/main/java/com/fingerprint/model/ProductFrida.java deleted file mode 100644 index 79a3ab47..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductFrida.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Frida; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductFrida - */ - - -@JsonPropertyOrder({ - ProductFrida.JSON_PROPERTY_DATA, - ProductFrida.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductFrida { - public static final String JSON_PROPERTY_DATA = "data"; - private Frida data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductFrida() { - } - - public ProductFrida data(Frida data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Frida getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Frida data) { - this.data = data; - } - - - public ProductFrida error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductFrida object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductFrida productFrida = (ProductFrida) o; - return Objects.equals(this.data, productFrida.data) && - Objects.equals(this.error, productFrida.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductFrida {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductHighActivity.java b/sdk/src/main/java/com/fingerprint/model/ProductHighActivity.java deleted file mode 100644 index f6518627..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductHighActivity.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.HighActivity; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductHighActivity - */ - - -@JsonPropertyOrder({ - ProductHighActivity.JSON_PROPERTY_DATA, - ProductHighActivity.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductHighActivity { - public static final String JSON_PROPERTY_DATA = "data"; - private HighActivity data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductHighActivity() { - } - - public ProductHighActivity data(HighActivity data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public HighActivity getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(HighActivity data) { - this.data = data; - } - - - public ProductHighActivity error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductHighActivity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductHighActivity productHighActivity = (ProductHighActivity) o; - return Objects.equals(this.data, productHighActivity.data) && - Objects.equals(this.error, productHighActivity.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductHighActivity {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductIPBlocklist.java b/sdk/src/main/java/com/fingerprint/model/ProductIPBlocklist.java deleted file mode 100644 index b2f4d73e..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductIPBlocklist.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.IPBlocklist; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductIPBlocklist - */ - - -@JsonPropertyOrder({ - ProductIPBlocklist.JSON_PROPERTY_DATA, - ProductIPBlocklist.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductIPBlocklist { - public static final String JSON_PROPERTY_DATA = "data"; - private IPBlocklist data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductIPBlocklist() { - } - - public ProductIPBlocklist data(IPBlocklist data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IPBlocklist getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(IPBlocklist data) { - this.data = data; - } - - - public ProductIPBlocklist error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductIPBlocklist object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductIPBlocklist productIPBlocklist = (ProductIPBlocklist) o; - return Objects.equals(this.data, productIPBlocklist.data) && - Objects.equals(this.error, productIPBlocklist.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductIPBlocklist {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductIPInfo.java b/sdk/src/main/java/com/fingerprint/model/ProductIPInfo.java deleted file mode 100644 index b5b4c7c8..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductIPInfo.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.IPInfo; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductIPInfo - */ - - -@JsonPropertyOrder({ - ProductIPInfo.JSON_PROPERTY_DATA, - ProductIPInfo.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductIPInfo { - public static final String JSON_PROPERTY_DATA = "data"; - private IPInfo data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductIPInfo() { - } - - public ProductIPInfo data(IPInfo data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IPInfo getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(IPInfo data) { - this.data = data; - } - - - public ProductIPInfo error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductIPInfo object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductIPInfo productIPInfo = (ProductIPInfo) o; - return Objects.equals(this.data, productIPInfo.data) && - Objects.equals(this.error, productIPInfo.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductIPInfo {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductIdentification.java b/sdk/src/main/java/com/fingerprint/model/ProductIdentification.java deleted file mode 100644 index 7d0c9c6c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductIdentification.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Identification; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductIdentification - */ - - -@JsonPropertyOrder({ - ProductIdentification.JSON_PROPERTY_DATA, - ProductIdentification.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductIdentification { - public static final String JSON_PROPERTY_DATA = "data"; - private Identification data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductIdentification() { - } - - public ProductIdentification data(Identification data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Identification getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Identification data) { - this.data = data; - } - - - public ProductIdentification error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductIdentification object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductIdentification productIdentification = (ProductIdentification) o; - return Objects.equals(this.data, productIdentification.data) && - Objects.equals(this.error, productIdentification.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductIdentification {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductIncognito.java b/sdk/src/main/java/com/fingerprint/model/ProductIncognito.java deleted file mode 100644 index eaf70193..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductIncognito.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Incognito; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductIncognito - */ - - -@JsonPropertyOrder({ - ProductIncognito.JSON_PROPERTY_DATA, - ProductIncognito.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductIncognito { - public static final String JSON_PROPERTY_DATA = "data"; - private Incognito data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductIncognito() { - } - - public ProductIncognito data(Incognito data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Incognito getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Incognito data) { - this.data = data; - } - - - public ProductIncognito error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductIncognito object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductIncognito productIncognito = (ProductIncognito) o; - return Objects.equals(this.data, productIncognito.data) && - Objects.equals(this.error, productIncognito.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductIncognito {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductJailbroken.java b/sdk/src/main/java/com/fingerprint/model/ProductJailbroken.java deleted file mode 100644 index 67541d70..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductJailbroken.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Jailbroken; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductJailbroken - */ - - -@JsonPropertyOrder({ - ProductJailbroken.JSON_PROPERTY_DATA, - ProductJailbroken.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductJailbroken { - public static final String JSON_PROPERTY_DATA = "data"; - private Jailbroken data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductJailbroken() { - } - - public ProductJailbroken data(Jailbroken data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Jailbroken getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Jailbroken data) { - this.data = data; - } - - - public ProductJailbroken error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductJailbroken object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductJailbroken productJailbroken = (ProductJailbroken) o; - return Objects.equals(this.data, productJailbroken.data) && - Objects.equals(this.error, productJailbroken.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductJailbroken {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductLocationSpoofing.java b/sdk/src/main/java/com/fingerprint/model/ProductLocationSpoofing.java deleted file mode 100644 index 376f201d..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductLocationSpoofing.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.LocationSpoofing; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductLocationSpoofing - */ - - -@JsonPropertyOrder({ - ProductLocationSpoofing.JSON_PROPERTY_DATA, - ProductLocationSpoofing.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductLocationSpoofing { - public static final String JSON_PROPERTY_DATA = "data"; - private LocationSpoofing data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductLocationSpoofing() { - } - - public ProductLocationSpoofing data(LocationSpoofing data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public LocationSpoofing getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(LocationSpoofing data) { - this.data = data; - } - - - public ProductLocationSpoofing error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductLocationSpoofing object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductLocationSpoofing productLocationSpoofing = (ProductLocationSpoofing) o; - return Objects.equals(this.data, productLocationSpoofing.data) && - Objects.equals(this.error, productLocationSpoofing.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductLocationSpoofing {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductMitMAttack.java b/sdk/src/main/java/com/fingerprint/model/ProductMitMAttack.java deleted file mode 100644 index 58eebd6f..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductMitMAttack.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.MitMAttack; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductMitMAttack - */ - - -@JsonPropertyOrder({ - ProductMitMAttack.JSON_PROPERTY_DATA, - ProductMitMAttack.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductMitMAttack { - public static final String JSON_PROPERTY_DATA = "data"; - private MitMAttack data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductMitMAttack() { - } - - public ProductMitMAttack data(MitMAttack data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public MitMAttack getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(MitMAttack data) { - this.data = data; - } - - - public ProductMitMAttack error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductMitMAttack object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductMitMAttack productMitMAttack = (ProductMitMAttack) o; - return Objects.equals(this.data, productMitMAttack.data) && - Objects.equals(this.error, productMitMAttack.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductMitMAttack {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductPrivacySettings.java b/sdk/src/main/java/com/fingerprint/model/ProductPrivacySettings.java deleted file mode 100644 index 22e21683..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductPrivacySettings.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.PrivacySettings; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductPrivacySettings - */ - - -@JsonPropertyOrder({ - ProductPrivacySettings.JSON_PROPERTY_DATA, - ProductPrivacySettings.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductPrivacySettings { - public static final String JSON_PROPERTY_DATA = "data"; - private PrivacySettings data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductPrivacySettings() { - } - - public ProductPrivacySettings data(PrivacySettings data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public PrivacySettings getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(PrivacySettings data) { - this.data = data; - } - - - public ProductPrivacySettings error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductPrivacySettings object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductPrivacySettings productPrivacySettings = (ProductPrivacySettings) o; - return Objects.equals(this.data, productPrivacySettings.data) && - Objects.equals(this.error, productPrivacySettings.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductPrivacySettings {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductProximity.java b/sdk/src/main/java/com/fingerprint/model/ProductProximity.java deleted file mode 100644 index 72f9f360..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductProximity.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Proximity; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductProximity - */ - - -@JsonPropertyOrder({ - ProductProximity.JSON_PROPERTY_DATA, - ProductProximity.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductProximity { - public static final String JSON_PROPERTY_DATA = "data"; - private Proximity data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductProximity() { - } - - public ProductProximity data(Proximity data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Proximity getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Proximity data) { - this.data = data; - } - - - public ProductProximity error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductProximity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductProximity productProximity = (ProductProximity) o; - return Objects.equals(this.data, productProximity.data) && - Objects.equals(this.error, productProximity.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductProximity {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductProxy.java b/sdk/src/main/java/com/fingerprint/model/ProductProxy.java deleted file mode 100644 index 85015d9f..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductProxy.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Proxy; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductProxy - */ - - -@JsonPropertyOrder({ - ProductProxy.JSON_PROPERTY_DATA, - ProductProxy.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductProxy { - public static final String JSON_PROPERTY_DATA = "data"; - private Proxy data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductProxy() { - } - - public ProductProxy data(Proxy data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Proxy getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Proxy data) { - this.data = data; - } - - - public ProductProxy error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductProxy object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductProxy productProxy = (ProductProxy) o; - return Objects.equals(this.data, productProxy.data) && - Objects.equals(this.error, productProxy.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductProxy {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductRawDeviceAttributes.java b/sdk/src/main/java/com/fingerprint/model/ProductRawDeviceAttributes.java deleted file mode 100644 index 33517c72..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductRawDeviceAttributes.java +++ /dev/null @@ -1,141 +0,0 @@ -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.Error; -import com.fingerprint.model.RawDeviceAttribute; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductRawDeviceAttributes - */ - - -@JsonPropertyOrder({ - ProductRawDeviceAttributes.JSON_PROPERTY_DATA, - ProductRawDeviceAttributes.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductRawDeviceAttributes { - public static final String JSON_PROPERTY_DATA = "data"; - private Map data = null; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductRawDeviceAttributes() { - } - - public ProductRawDeviceAttributes data(Map data) { - this.data = data; - return this; - } - - public ProductRawDeviceAttributes putdataItem(String key, RawDeviceAttribute dataItem) { - if (this.data == null) { - this.data = new HashMap<>(); - } - this.data.put(key, dataItem); - return this; - } - - /** - * It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. ") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Map getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Map data) { - this.data = data; - } - - - public ProductRawDeviceAttributes error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductRawDeviceAttributes object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductRawDeviceAttributes productRawDeviceAttributes = (ProductRawDeviceAttributes) o; - return Objects.equals(this.data, productRawDeviceAttributes.data) && - Objects.equals(this.error, productRawDeviceAttributes.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductRawDeviceAttributes {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductRemoteControl.java b/sdk/src/main/java/com/fingerprint/model/ProductRemoteControl.java deleted file mode 100644 index a0a6f3a3..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductRemoteControl.java +++ /dev/null @@ -1,134 +0,0 @@ -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.Error; -import com.fingerprint.model.RemoteControl; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * This product is deprecated. - * @deprecated - */ -@Deprecated -@Schema(description = "This product is deprecated. ") -@JsonPropertyOrder({ - ProductRemoteControl.JSON_PROPERTY_DATA, - ProductRemoteControl.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductRemoteControl { - public static final String JSON_PROPERTY_DATA = "data"; - private RemoteControl data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductRemoteControl() { - } - - public ProductRemoteControl data(RemoteControl data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public RemoteControl getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(RemoteControl data) { - this.data = data; - } - - - public ProductRemoteControl error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductRemoteControl object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductRemoteControl productRemoteControl = (ProductRemoteControl) o; - return Objects.equals(this.data, productRemoteControl.data) && - Objects.equals(this.error, productRemoteControl.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductRemoteControl {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductRootApps.java b/sdk/src/main/java/com/fingerprint/model/ProductRootApps.java deleted file mode 100644 index 988df9ec..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductRootApps.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.RootApps; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductRootApps - */ - - -@JsonPropertyOrder({ - ProductRootApps.JSON_PROPERTY_DATA, - ProductRootApps.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductRootApps { - public static final String JSON_PROPERTY_DATA = "data"; - private RootApps data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductRootApps() { - } - - public ProductRootApps data(RootApps data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public RootApps getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(RootApps data) { - this.data = data; - } - - - public ProductRootApps error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductRootApps object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductRootApps productRootApps = (ProductRootApps) o; - return Objects.equals(this.data, productRootApps.data) && - Objects.equals(this.error, productRootApps.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductRootApps {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductSuspectScore.java b/sdk/src/main/java/com/fingerprint/model/ProductSuspectScore.java deleted file mode 100644 index dbc2208e..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductSuspectScore.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.SuspectScore; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductSuspectScore - */ - - -@JsonPropertyOrder({ - ProductSuspectScore.JSON_PROPERTY_DATA, - ProductSuspectScore.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductSuspectScore { - public static final String JSON_PROPERTY_DATA = "data"; - private SuspectScore data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductSuspectScore() { - } - - public ProductSuspectScore data(SuspectScore data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public SuspectScore getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(SuspectScore data) { - this.data = data; - } - - - public ProductSuspectScore error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductSuspectScore object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductSuspectScore productSuspectScore = (ProductSuspectScore) o; - return Objects.equals(this.data, productSuspectScore.data) && - Objects.equals(this.error, productSuspectScore.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductSuspectScore {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductTampering.java b/sdk/src/main/java/com/fingerprint/model/ProductTampering.java deleted file mode 100644 index 499fac67..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductTampering.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Tampering; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductTampering - */ - - -@JsonPropertyOrder({ - ProductTampering.JSON_PROPERTY_DATA, - ProductTampering.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductTampering { - public static final String JSON_PROPERTY_DATA = "data"; - private Tampering data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductTampering() { - } - - public ProductTampering data(Tampering data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Tampering getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Tampering data) { - this.data = data; - } - - - public ProductTampering error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductTampering object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductTampering productTampering = (ProductTampering) o; - return Objects.equals(this.data, productTampering.data) && - Objects.equals(this.error, productTampering.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductTampering {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductTor.java b/sdk/src/main/java/com/fingerprint/model/ProductTor.java deleted file mode 100644 index d586ee52..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductTor.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Tor; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductTor - */ - - -@JsonPropertyOrder({ - ProductTor.JSON_PROPERTY_DATA, - ProductTor.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductTor { - public static final String JSON_PROPERTY_DATA = "data"; - private Tor data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductTor() { - } - - public ProductTor data(Tor data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Tor getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Tor data) { - this.data = data; - } - - - public ProductTor error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductTor object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductTor productTor = (ProductTor) o; - return Objects.equals(this.data, productTor.data) && - Objects.equals(this.error, productTor.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductTor {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductVPN.java b/sdk/src/main/java/com/fingerprint/model/ProductVPN.java deleted file mode 100644 index bc3a0005..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductVPN.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.VPN; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductVPN - */ - - -@JsonPropertyOrder({ - ProductVPN.JSON_PROPERTY_DATA, - ProductVPN.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductVPN { - public static final String JSON_PROPERTY_DATA = "data"; - private VPN data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductVPN() { - } - - public ProductVPN data(VPN data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VPN getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(VPN data) { - this.data = data; - } - - - public ProductVPN error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductVPN object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductVPN productVPN = (ProductVPN) o; - return Objects.equals(this.data, productVPN.data) && - Objects.equals(this.error, productVPN.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductVPN {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductVelocity.java b/sdk/src/main/java/com/fingerprint/model/ProductVelocity.java deleted file mode 100644 index 0e12a159..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductVelocity.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.Velocity; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductVelocity - */ - - -@JsonPropertyOrder({ - ProductVelocity.JSON_PROPERTY_DATA, - ProductVelocity.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductVelocity { - public static final String JSON_PROPERTY_DATA = "data"; - private Velocity data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductVelocity() { - } - - public ProductVelocity data(Velocity data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Velocity getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(Velocity data) { - this.data = data; - } - - - public ProductVelocity error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductVelocity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductVelocity productVelocity = (ProductVelocity) o; - return Objects.equals(this.data, productVelocity.data) && - Objects.equals(this.error, productVelocity.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductVelocity {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/ProductVirtualMachine.java b/sdk/src/main/java/com/fingerprint/model/ProductVirtualMachine.java deleted file mode 100644 index e86bf640..00000000 --- a/sdk/src/main/java/com/fingerprint/model/ProductVirtualMachine.java +++ /dev/null @@ -1,131 +0,0 @@ -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.Error; -import com.fingerprint.model.VirtualMachine; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * ProductVirtualMachine - */ - - -@JsonPropertyOrder({ - ProductVirtualMachine.JSON_PROPERTY_DATA, - ProductVirtualMachine.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class ProductVirtualMachine { - public static final String JSON_PROPERTY_DATA = "data"; - private VirtualMachine data; - - public static final String JSON_PROPERTY_ERROR = "error"; - private Error error; - - public ProductVirtualMachine() { - } - - public ProductVirtualMachine data(VirtualMachine data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VirtualMachine getData() { - return data; - } - - - @JsonProperty(JSON_PROPERTY_DATA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setData(VirtualMachine data) { - this.data = data; - } - - - public ProductVirtualMachine error(Error error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Error getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(Error error) { - this.error = error; - } - - - /** - * Return true if this ProductVirtualMachine object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ProductVirtualMachine productVirtualMachine = (ProductVirtualMachine) o; - return Objects.equals(this.data, productVirtualMachine.data) && - Objects.equals(this.error, productVirtualMachine.error); - } - - @Override - public int hashCode() { - return Objects.hash(data, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ProductVirtualMachine {\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/Products.java b/sdk/src/main/java/com/fingerprint/model/Products.java deleted file mode 100644 index 7d184c99..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Products.java +++ /dev/null @@ -1,925 +0,0 @@ -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.ProductBotd; -import com.fingerprint.model.ProductClonedApp; -import com.fingerprint.model.ProductDeveloperTools; -import com.fingerprint.model.ProductEmulator; -import com.fingerprint.model.ProductFactoryReset; -import com.fingerprint.model.ProductFrida; -import com.fingerprint.model.ProductHighActivity; -import com.fingerprint.model.ProductIPBlocklist; -import com.fingerprint.model.ProductIPInfo; -import com.fingerprint.model.ProductIdentification; -import com.fingerprint.model.ProductIncognito; -import com.fingerprint.model.ProductJailbroken; -import com.fingerprint.model.ProductLocationSpoofing; -import com.fingerprint.model.ProductMitMAttack; -import com.fingerprint.model.ProductPrivacySettings; -import com.fingerprint.model.ProductProximity; -import com.fingerprint.model.ProductProxy; -import com.fingerprint.model.ProductRawDeviceAttributes; -import com.fingerprint.model.ProductRemoteControl; -import com.fingerprint.model.ProductRootApps; -import com.fingerprint.model.ProductSuspectScore; -import com.fingerprint.model.ProductTampering; -import com.fingerprint.model.ProductTor; -import com.fingerprint.model.ProductVPN; -import com.fingerprint.model.ProductVelocity; -import com.fingerprint.model.ProductVirtualMachine; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Contains all information about the request identified by `requestId`, depending on the pricing plan (Pro, Pro Plus, Enterprise) - */ - -@Schema(description = "Contains all information about the request identified by `requestId`, depending on the pricing plan (Pro, Pro Plus, Enterprise)") -@JsonPropertyOrder({ - Products.JSON_PROPERTY_IDENTIFICATION, - Products.JSON_PROPERTY_BOTD, - Products.JSON_PROPERTY_ROOT_APPS, - Products.JSON_PROPERTY_EMULATOR, - Products.JSON_PROPERTY_IP_INFO, - Products.JSON_PROPERTY_IP_BLOCKLIST, - Products.JSON_PROPERTY_TOR, - Products.JSON_PROPERTY_VPN, - Products.JSON_PROPERTY_PROXY, - Products.JSON_PROPERTY_INCOGNITO, - Products.JSON_PROPERTY_TAMPERING, - Products.JSON_PROPERTY_CLONED_APP, - Products.JSON_PROPERTY_FACTORY_RESET, - Products.JSON_PROPERTY_JAILBROKEN, - Products.JSON_PROPERTY_FRIDA, - Products.JSON_PROPERTY_PRIVACY_SETTINGS, - Products.JSON_PROPERTY_VIRTUAL_MACHINE, - Products.JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES, - Products.JSON_PROPERTY_HIGH_ACTIVITY, - Products.JSON_PROPERTY_LOCATION_SPOOFING, - Products.JSON_PROPERTY_SUSPECT_SCORE, - Products.JSON_PROPERTY_REMOTE_CONTROL, - Products.JSON_PROPERTY_VELOCITY, - Products.JSON_PROPERTY_DEVELOPER_TOOLS, - Products.JSON_PROPERTY_MITM_ATTACK, - Products.JSON_PROPERTY_PROXIMITY -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Products { - public static final String JSON_PROPERTY_IDENTIFICATION = "identification"; - private ProductIdentification identification; - - public static final String JSON_PROPERTY_BOTD = "botd"; - private ProductBotd botd; - - public static final String JSON_PROPERTY_ROOT_APPS = "rootApps"; - private ProductRootApps rootApps; - - public static final String JSON_PROPERTY_EMULATOR = "emulator"; - private ProductEmulator emulator; - - public static final String JSON_PROPERTY_IP_INFO = "ipInfo"; - private ProductIPInfo ipInfo; - - public static final String JSON_PROPERTY_IP_BLOCKLIST = "ipBlocklist"; - private ProductIPBlocklist ipBlocklist; - - public static final String JSON_PROPERTY_TOR = "tor"; - private ProductTor tor; - - public static final String JSON_PROPERTY_VPN = "vpn"; - private ProductVPN vpn; - - public static final String JSON_PROPERTY_PROXY = "proxy"; - private ProductProxy proxy; - - public static final String JSON_PROPERTY_INCOGNITO = "incognito"; - private ProductIncognito incognito; - - public static final String JSON_PROPERTY_TAMPERING = "tampering"; - private ProductTampering tampering; - - public static final String JSON_PROPERTY_CLONED_APP = "clonedApp"; - private ProductClonedApp clonedApp; - - public static final String JSON_PROPERTY_FACTORY_RESET = "factoryReset"; - private ProductFactoryReset factoryReset; - - public static final String JSON_PROPERTY_JAILBROKEN = "jailbroken"; - private ProductJailbroken jailbroken; - - public static final String JSON_PROPERTY_FRIDA = "frida"; - private ProductFrida frida; - - public static final String JSON_PROPERTY_PRIVACY_SETTINGS = "privacySettings"; - private ProductPrivacySettings privacySettings; - - public static final String JSON_PROPERTY_VIRTUAL_MACHINE = "virtualMachine"; - private ProductVirtualMachine virtualMachine; - - public static final String JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES = "rawDeviceAttributes"; - private ProductRawDeviceAttributes rawDeviceAttributes; - - public static final String JSON_PROPERTY_HIGH_ACTIVITY = "highActivity"; - private ProductHighActivity highActivity; - - public static final String JSON_PROPERTY_LOCATION_SPOOFING = "locationSpoofing"; - private ProductLocationSpoofing locationSpoofing; - - public static final String JSON_PROPERTY_SUSPECT_SCORE = "suspectScore"; - private ProductSuspectScore suspectScore; - - public static final String JSON_PROPERTY_REMOTE_CONTROL = "remoteControl"; - private ProductRemoteControl remoteControl; - - public static final String JSON_PROPERTY_VELOCITY = "velocity"; - private ProductVelocity velocity; - - public static final String JSON_PROPERTY_DEVELOPER_TOOLS = "developerTools"; - private ProductDeveloperTools developerTools; - - public static final String JSON_PROPERTY_MITM_ATTACK = "mitmAttack"; - private ProductMitMAttack mitmAttack; - - public static final String JSON_PROPERTY_PROXIMITY = "proximity"; - private ProductProximity proximity; - - public Products() { - } - - public Products identification(ProductIdentification identification) { - this.identification = identification; - return this; - } - - /** - * Get identification - * @return identification - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IDENTIFICATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductIdentification getIdentification() { - return identification; - } - - - @JsonProperty(JSON_PROPERTY_IDENTIFICATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIdentification(ProductIdentification identification) { - this.identification = identification; - } - - - public Products botd(ProductBotd botd) { - this.botd = botd; - return this; - } - - /** - * Get botd - * @return botd - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_BOTD) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductBotd getBotd() { - return botd; - } - - - @JsonProperty(JSON_PROPERTY_BOTD) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setBotd(ProductBotd botd) { - this.botd = botd; - } - - - public Products rootApps(ProductRootApps rootApps) { - this.rootApps = rootApps; - return this; - } - - /** - * Get rootApps - * @return rootApps - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ROOT_APPS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductRootApps getRootApps() { - return rootApps; - } - - - @JsonProperty(JSON_PROPERTY_ROOT_APPS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRootApps(ProductRootApps rootApps) { - this.rootApps = rootApps; - } - - - public Products emulator(ProductEmulator emulator) { - this.emulator = emulator; - return this; - } - - /** - * Get emulator - * @return emulator - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_EMULATOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductEmulator getEmulator() { - return emulator; - } - - - @JsonProperty(JSON_PROPERTY_EMULATOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEmulator(ProductEmulator emulator) { - this.emulator = emulator; - } - - - public Products ipInfo(ProductIPInfo ipInfo) { - this.ipInfo = ipInfo; - return this; - } - - /** - * Get ipInfo - * @return ipInfo - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_INFO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductIPInfo getIpInfo() { - return ipInfo; - } - - - @JsonProperty(JSON_PROPERTY_IP_INFO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpInfo(ProductIPInfo ipInfo) { - this.ipInfo = ipInfo; - } - - - public Products ipBlocklist(ProductIPBlocklist ipBlocklist) { - this.ipBlocklist = ipBlocklist; - return this; - } - - /** - * Get ipBlocklist - * @return ipBlocklist - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_BLOCKLIST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductIPBlocklist getIpBlocklist() { - return ipBlocklist; - } - - - @JsonProperty(JSON_PROPERTY_IP_BLOCKLIST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpBlocklist(ProductIPBlocklist ipBlocklist) { - this.ipBlocklist = ipBlocklist; - } - - - public Products tor(ProductTor tor) { - this.tor = tor; - return this; - } - - /** - * Get tor - * @return tor - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductTor getTor() { - return tor; - } - - - @JsonProperty(JSON_PROPERTY_TOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTor(ProductTor tor) { - this.tor = tor; - } - - - public Products vpn(ProductVPN vpn) { - this.vpn = vpn; - return this; - } - - /** - * Get vpn - * @return vpn - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VPN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductVPN getVpn() { - return vpn; - } - - - @JsonProperty(JSON_PROPERTY_VPN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVpn(ProductVPN vpn) { - this.vpn = vpn; - } - - - public Products proxy(ProductProxy proxy) { - this.proxy = proxy; - return this; - } - - /** - * Get proxy - * @return proxy - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PROXY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductProxy getProxy() { - return proxy; - } - - - @JsonProperty(JSON_PROPERTY_PROXY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setProxy(ProductProxy proxy) { - this.proxy = proxy; - } - - - public Products incognito(ProductIncognito incognito) { - this.incognito = incognito; - return this; - } - - /** - * Get incognito - * @return incognito - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductIncognito getIncognito() { - return incognito; - } - - - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIncognito(ProductIncognito incognito) { - this.incognito = incognito; - } - - - public Products tampering(ProductTampering tampering) { - this.tampering = tampering; - return this; - } - - /** - * Get tampering - * @return tampering - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TAMPERING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductTampering getTampering() { - return tampering; - } - - - @JsonProperty(JSON_PROPERTY_TAMPERING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTampering(ProductTampering tampering) { - this.tampering = tampering; - } - - - public Products clonedApp(ProductClonedApp clonedApp) { - this.clonedApp = clonedApp; - return this; - } - - /** - * Get clonedApp - * @return clonedApp - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CLONED_APP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductClonedApp getClonedApp() { - return clonedApp; - } - - - @JsonProperty(JSON_PROPERTY_CLONED_APP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setClonedApp(ProductClonedApp clonedApp) { - this.clonedApp = clonedApp; - } - - - public Products factoryReset(ProductFactoryReset factoryReset) { - this.factoryReset = factoryReset; - return this; - } - - /** - * Get factoryReset - * @return factoryReset - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FACTORY_RESET) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductFactoryReset getFactoryReset() { - return factoryReset; - } - - - @JsonProperty(JSON_PROPERTY_FACTORY_RESET) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFactoryReset(ProductFactoryReset factoryReset) { - this.factoryReset = factoryReset; - } - - - public Products jailbroken(ProductJailbroken jailbroken) { - this.jailbroken = jailbroken; - return this; - } - - /** - * Get jailbroken - * @return jailbroken - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_JAILBROKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductJailbroken getJailbroken() { - return jailbroken; - } - - - @JsonProperty(JSON_PROPERTY_JAILBROKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setJailbroken(ProductJailbroken jailbroken) { - this.jailbroken = jailbroken; - } - - - public Products frida(ProductFrida frida) { - this.frida = frida; - return this; - } - - /** - * Get frida - * @return frida - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FRIDA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductFrida getFrida() { - return frida; - } - - - @JsonProperty(JSON_PROPERTY_FRIDA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFrida(ProductFrida frida) { - this.frida = frida; - } - - - public Products privacySettings(ProductPrivacySettings privacySettings) { - this.privacySettings = privacySettings; - return this; - } - - /** - * Get privacySettings - * @return privacySettings - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PRIVACY_SETTINGS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductPrivacySettings getPrivacySettings() { - return privacySettings; - } - - - @JsonProperty(JSON_PROPERTY_PRIVACY_SETTINGS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrivacySettings(ProductPrivacySettings privacySettings) { - this.privacySettings = privacySettings; - } - - - public Products virtualMachine(ProductVirtualMachine virtualMachine) { - this.virtualMachine = virtualMachine; - return this; - } - - /** - * Get virtualMachine - * @return virtualMachine - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VIRTUAL_MACHINE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductVirtualMachine getVirtualMachine() { - return virtualMachine; - } - - - @JsonProperty(JSON_PROPERTY_VIRTUAL_MACHINE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVirtualMachine(ProductVirtualMachine virtualMachine) { - this.virtualMachine = virtualMachine; - } - - - public Products rawDeviceAttributes(ProductRawDeviceAttributes rawDeviceAttributes) { - this.rawDeviceAttributes = rawDeviceAttributes; - return this; - } - - /** - * Get rawDeviceAttributes - * @return rawDeviceAttributes - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductRawDeviceAttributes getRawDeviceAttributes() { - return rawDeviceAttributes; - } - - - @JsonProperty(JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRawDeviceAttributes(ProductRawDeviceAttributes rawDeviceAttributes) { - this.rawDeviceAttributes = rawDeviceAttributes; - } - - - public Products highActivity(ProductHighActivity highActivity) { - this.highActivity = highActivity; - return this; - } - - /** - * Get highActivity - * @return highActivity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_HIGH_ACTIVITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductHighActivity getHighActivity() { - return highActivity; - } - - - @JsonProperty(JSON_PROPERTY_HIGH_ACTIVITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setHighActivity(ProductHighActivity highActivity) { - this.highActivity = highActivity; - } - - - public Products locationSpoofing(ProductLocationSpoofing locationSpoofing) { - this.locationSpoofing = locationSpoofing; - return this; - } - - /** - * Get locationSpoofing - * @return locationSpoofing - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LOCATION_SPOOFING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductLocationSpoofing getLocationSpoofing() { - return locationSpoofing; - } - - - @JsonProperty(JSON_PROPERTY_LOCATION_SPOOFING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLocationSpoofing(ProductLocationSpoofing locationSpoofing) { - this.locationSpoofing = locationSpoofing; - } - - - public Products suspectScore(ProductSuspectScore suspectScore) { - this.suspectScore = suspectScore; - return this; - } - - /** - * Get suspectScore - * @return suspectScore - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SUSPECT_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductSuspectScore getSuspectScore() { - return suspectScore; - } - - - @JsonProperty(JSON_PROPERTY_SUSPECT_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSuspectScore(ProductSuspectScore suspectScore) { - this.suspectScore = suspectScore; - } - - - public Products remoteControl(ProductRemoteControl remoteControl) { - this.remoteControl = remoteControl; - return this; - } - - /** - * Get remoteControl - * @return remoteControl - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_REMOTE_CONTROL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductRemoteControl getRemoteControl() { - return remoteControl; - } - - - @JsonProperty(JSON_PROPERTY_REMOTE_CONTROL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRemoteControl(ProductRemoteControl remoteControl) { - this.remoteControl = remoteControl; - } - - - public Products velocity(ProductVelocity velocity) { - this.velocity = velocity; - return this; - } - - /** - * Get velocity - * @return velocity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VELOCITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductVelocity getVelocity() { - return velocity; - } - - - @JsonProperty(JSON_PROPERTY_VELOCITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVelocity(ProductVelocity velocity) { - this.velocity = velocity; - } - - - public Products developerTools(ProductDeveloperTools developerTools) { - this.developerTools = developerTools; - return this; - } - - /** - * Get developerTools - * @return developerTools - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DEVELOPER_TOOLS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductDeveloperTools getDeveloperTools() { - return developerTools; - } - - - @JsonProperty(JSON_PROPERTY_DEVELOPER_TOOLS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDeveloperTools(ProductDeveloperTools developerTools) { - this.developerTools = developerTools; - } - - - public Products mitmAttack(ProductMitMAttack mitmAttack) { - this.mitmAttack = mitmAttack; - return this; - } - - /** - * Get mitmAttack - * @return mitmAttack - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_MITM_ATTACK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductMitMAttack getMitmAttack() { - return mitmAttack; - } - - - @JsonProperty(JSON_PROPERTY_MITM_ATTACK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setMitmAttack(ProductMitMAttack mitmAttack) { - this.mitmAttack = mitmAttack; - } - - - public Products proximity(ProductProximity proximity) { - this.proximity = proximity; - return this; - } - - /** - * Get proximity - * @return proximity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PROXIMITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProductProximity getProximity() { - return proximity; - } - - - @JsonProperty(JSON_PROPERTY_PROXIMITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setProximity(ProductProximity proximity) { - this.proximity = proximity; - } - - - /** - * Return true if this Products object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Products products = (Products) o; - return Objects.equals(this.identification, products.identification) && - Objects.equals(this.botd, products.botd) && - Objects.equals(this.rootApps, products.rootApps) && - Objects.equals(this.emulator, products.emulator) && - Objects.equals(this.ipInfo, products.ipInfo) && - Objects.equals(this.ipBlocklist, products.ipBlocklist) && - Objects.equals(this.tor, products.tor) && - Objects.equals(this.vpn, products.vpn) && - Objects.equals(this.proxy, products.proxy) && - Objects.equals(this.incognito, products.incognito) && - Objects.equals(this.tampering, products.tampering) && - Objects.equals(this.clonedApp, products.clonedApp) && - Objects.equals(this.factoryReset, products.factoryReset) && - Objects.equals(this.jailbroken, products.jailbroken) && - Objects.equals(this.frida, products.frida) && - Objects.equals(this.privacySettings, products.privacySettings) && - Objects.equals(this.virtualMachine, products.virtualMachine) && - Objects.equals(this.rawDeviceAttributes, products.rawDeviceAttributes) && - Objects.equals(this.highActivity, products.highActivity) && - Objects.equals(this.locationSpoofing, products.locationSpoofing) && - Objects.equals(this.suspectScore, products.suspectScore) && - Objects.equals(this.remoteControl, products.remoteControl) && - Objects.equals(this.velocity, products.velocity) && - Objects.equals(this.developerTools, products.developerTools) && - Objects.equals(this.mitmAttack, products.mitmAttack) && - Objects.equals(this.proximity, products.proximity); - } - - @Override - public int hashCode() { - return Objects.hash(identification, botd, rootApps, emulator, ipInfo, ipBlocklist, tor, vpn, proxy, incognito, tampering, clonedApp, factoryReset, jailbroken, frida, privacySettings, virtualMachine, rawDeviceAttributes, highActivity, locationSpoofing, suspectScore, remoteControl, velocity, developerTools, mitmAttack, proximity); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Products {\n"); - sb.append(" identification: ").append(toIndentedString(identification)).append("\n"); - sb.append(" botd: ").append(toIndentedString(botd)).append("\n"); - sb.append(" rootApps: ").append(toIndentedString(rootApps)).append("\n"); - sb.append(" emulator: ").append(toIndentedString(emulator)).append("\n"); - sb.append(" ipInfo: ").append(toIndentedString(ipInfo)).append("\n"); - sb.append(" ipBlocklist: ").append(toIndentedString(ipBlocklist)).append("\n"); - sb.append(" tor: ").append(toIndentedString(tor)).append("\n"); - sb.append(" vpn: ").append(toIndentedString(vpn)).append("\n"); - sb.append(" proxy: ").append(toIndentedString(proxy)).append("\n"); - sb.append(" incognito: ").append(toIndentedString(incognito)).append("\n"); - sb.append(" tampering: ").append(toIndentedString(tampering)).append("\n"); - sb.append(" clonedApp: ").append(toIndentedString(clonedApp)).append("\n"); - sb.append(" factoryReset: ").append(toIndentedString(factoryReset)).append("\n"); - sb.append(" jailbroken: ").append(toIndentedString(jailbroken)).append("\n"); - sb.append(" frida: ").append(toIndentedString(frida)).append("\n"); - sb.append(" privacySettings: ").append(toIndentedString(privacySettings)).append("\n"); - sb.append(" virtualMachine: ").append(toIndentedString(virtualMachine)).append("\n"); - sb.append(" rawDeviceAttributes: ").append(toIndentedString(rawDeviceAttributes)).append("\n"); - sb.append(" highActivity: ").append(toIndentedString(highActivity)).append("\n"); - sb.append(" locationSpoofing: ").append(toIndentedString(locationSpoofing)).append("\n"); - sb.append(" suspectScore: ").append(toIndentedString(suspectScore)).append("\n"); - sb.append(" remoteControl: ").append(toIndentedString(remoteControl)).append("\n"); - sb.append(" velocity: ").append(toIndentedString(velocity)).append("\n"); - sb.append(" developerTools: ").append(toIndentedString(developerTools)).append("\n"); - sb.append(" mitmAttack: ").append(toIndentedString(mitmAttack)).append("\n"); - sb.append(" proximity: ").append(toIndentedString(proximity)).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/Proximity.java b/sdk/src/main/java/com/fingerprint/model/Proximity.java index 57c4abbe..037d2b76 100644 --- a/sdk/src/main/java/com/fingerprint/model/Proximity.java +++ b/sdk/src/main/java/com/fingerprint/model/Proximity.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -9,44 +25,43 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** * Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. */ - -@Schema(description = "Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. ") @JsonPropertyOrder({ Proximity.JSON_PROPERTY_ID, Proximity.JSON_PROPERTY_PRECISION_RADIUS, Proximity.JSON_PROPERTY_CONFIDENCE }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Proximity { public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; /** * The radius of the proximity zone’s precision level, in meters. */ public enum PrecisionRadiusEnum { - NUMBER_10(10), + NUMBER_10(Integer.valueOf(10)), - NUMBER_25(25), + NUMBER_25(Integer.valueOf(25)), - NUMBER_65(65), + NUMBER_65(Integer.valueOf(65)), - NUMBER_175(175), + NUMBER_175(Integer.valueOf(175)), - NUMBER_450(450), + NUMBER_450(Integer.valueOf(450)), - NUMBER_1200(1200), + NUMBER_1200(Integer.valueOf(1200)), - NUMBER_3300(3300), + NUMBER_3300(Integer.valueOf(3300)), - NUMBER_8500(8500), + NUMBER_8500(Integer.valueOf(8500)), - NUMBER_22500(22500); + NUMBER_22500(Integer.valueOf(22500)); private Integer value; @@ -71,31 +86,32 @@ public static PrecisionRadiusEnum fromValue(Integer value) { return b; } } - return null; + throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } - public static final String JSON_PROPERTY_PRECISION_RADIUS = "precisionRadius"; + public static final String JSON_PROPERTY_PRECISION_RADIUS = "precision_radius"; + @jakarta.annotation.Nonnull private PrecisionRadiusEnum precisionRadius; public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; + @jakarta.annotation.Nonnull private Float confidence; - public Proximity() { + public Proximity() { } - public Proximity id(String id) { + public Proximity id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } - /** + /** * A stable privacy-preserving identifier for a given proximity zone. * @return id - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "A stable privacy-preserving identifier for a given proximity zone. ") - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getId() { @@ -103,25 +119,24 @@ public String getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setId(String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public Proximity precisionRadius(PrecisionRadiusEnum precisionRadius) { + public Proximity precisionRadius(@jakarta.annotation.Nonnull PrecisionRadiusEnum precisionRadius) { this.precisionRadius = precisionRadius; return this; } - /** + /** * The radius of the proximity zone’s precision level, in meters. * @return precisionRadius - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "The radius of the proximity zone’s precision level, in meters. ") - @JsonProperty(JSON_PROPERTY_PRECISION_RADIUS) + @JsonProperty(value = JSON_PROPERTY_PRECISION_RADIUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public PrecisionRadiusEnum getPrecisionRadius() { @@ -129,27 +144,26 @@ public PrecisionRadiusEnum getPrecisionRadius() { } - @JsonProperty(JSON_PROPERTY_PRECISION_RADIUS) + @JsonProperty(value = JSON_PROPERTY_PRECISION_RADIUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setPrecisionRadius(PrecisionRadiusEnum precisionRadius) { + public void setPrecisionRadius(@jakarta.annotation.Nonnull PrecisionRadiusEnum precisionRadius) { this.precisionRadius = precisionRadius; } - public Proximity confidence(Float confidence) { + public Proximity confidence(@jakarta.annotation.Nonnull Float confidence) { this.confidence = confidence; return this; } - /** - * A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. + /** + * A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. * minimum: 0 * maximum: 1 * @return confidence - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. ") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Float getConfidence() { @@ -157,9 +171,9 @@ public Float getConfidence() { } - @JsonProperty(JSON_PROPERTY_CONFIDENCE) + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setConfidence(Float confidence) { + public void setConfidence(@jakarta.annotation.Nonnull Float confidence) { this.confidence = confidence; } diff --git a/sdk/src/main/java/com/fingerprint/model/Proxy.java b/sdk/src/main/java/com/fingerprint/model/Proxy.java deleted file mode 100644 index 10330b51..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Proxy.java +++ /dev/null @@ -1,163 +0,0 @@ -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.ProxyConfidence; -import com.fingerprint.model.ProxyDetails; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Proxy - */ - - -@JsonPropertyOrder({ - Proxy.JSON_PROPERTY_RESULT, - Proxy.JSON_PROPERTY_CONFIDENCE, - Proxy.JSON_PROPERTY_DETAILS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Proxy { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private ProxyConfidence confidence; - - public static final String JSON_PROPERTY_DETAILS = "details"; - private ProxyDetails details; - - public Proxy() { - } - - public Proxy result(Boolean result) { - this.result = result; - return this; - } - - /** - * IP address was used by a public proxy provider or belonged to a known recent residential proxy - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address was used by a public proxy provider or belonged to a known recent residential proxy ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public Proxy confidence(ProxyConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public ProxyConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setConfidence(ProxyConfidence confidence) { - this.confidence = confidence; - } - - - public Proxy details(ProxyDetails details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProxyDetails getDetails() { - return details; - } - - - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDetails(ProxyDetails details) { - this.details = details; - } - - - /** - * Return true if this Proxy object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Proxy proxy = (Proxy) o; - return Objects.equals(this.result, proxy.result) && - Objects.equals(this.confidence, proxy.confidence) && - Objects.equals(this.details, proxy.details); - } - - @Override - public int hashCode() { - return Objects.hash(result, confidence, details); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Proxy {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).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/ProxyConfidence.java b/sdk/src/main/java/com/fingerprint/model/ProxyConfidence.java index 0dd1c6f9..78bfe063 100644 --- a/sdk/src/main/java/com/fingerprint/model/ProxyConfidence.java +++ b/sdk/src/main/java/com/fingerprint/model/ProxyConfidence.java @@ -1,12 +1,29 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Locale; /** * Confidence level of the proxy detection. If a proxy is not detected, confidence is \"high\". If it's detected, can be \"low\", \"medium\", or \"high\". @@ -42,7 +59,7 @@ public static ProxyConfidence fromValue(String value) { return b; } } - return null; + throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } diff --git a/sdk/src/main/java/com/fingerprint/model/ProxyDetails.java b/sdk/src/main/java/com/fingerprint/model/ProxyDetails.java index 129894fd..318d6e87 100644 --- a/sdk/src/main/java/com/fingerprint/model/ProxyDetails.java +++ b/sdk/src/main/java/com/fingerprint/model/ProxyDetails.java @@ -1,35 +1,48 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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 java.time.OffsetDateTime; import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** - * Proxy detection details (present if proxy is detected) + * Proxy detection details (present if `proxy` is `true`) */ - -@Schema(description = "Proxy detection details (present if proxy is detected)") @JsonPropertyOrder({ ProxyDetails.JSON_PROPERTY_PROXY_TYPE, ProxyDetails.JSON_PROPERTY_LAST_SEEN_AT }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ProxyDetails { /** * Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers */ public enum ProxyTypeEnum { - RESIDENTIAL("residential"), + RESIDENTIAL(String.valueOf("residential")), - DATA_CENTER("data_center"); + DATA_CENTER(String.valueOf("data_center")); private String value; @@ -54,31 +67,32 @@ public static ProxyTypeEnum fromValue(String value) { return b; } } - return null; + throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } - public static final String JSON_PROPERTY_PROXY_TYPE = "proxyType"; + public static final String JSON_PROPERTY_PROXY_TYPE = "proxy_type"; + @jakarta.annotation.Nonnull private ProxyTypeEnum proxyType; - public static final String JSON_PROPERTY_LAST_SEEN_AT = "lastSeenAt"; - private OffsetDateTime lastSeenAt; + public static final String JSON_PROPERTY_LAST_SEEN_AT = "last_seen_at"; + @jakarta.annotation.Nullable + private Long lastSeenAt; - public ProxyDetails() { + public ProxyDetails() { } - public ProxyDetails proxyType(ProxyTypeEnum proxyType) { + public ProxyDetails proxyType(@jakarta.annotation.Nonnull ProxyTypeEnum proxyType) { this.proxyType = proxyType; return this; } - /** + /** * Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers * @return proxyType - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers ") - @JsonProperty(JSON_PROPERTY_PROXY_TYPE) + @JsonProperty(value = JSON_PROPERTY_PROXY_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public ProxyTypeEnum getProxyType() { @@ -86,35 +100,34 @@ public ProxyTypeEnum getProxyType() { } - @JsonProperty(JSON_PROPERTY_PROXY_TYPE) + @JsonProperty(value = JSON_PROPERTY_PROXY_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setProxyType(ProxyTypeEnum proxyType) { + public void setProxyType(@jakarta.annotation.Nonnull ProxyTypeEnum proxyType) { this.proxyType = proxyType; } - public ProxyDetails lastSeenAt(OffsetDateTime lastSeenAt) { + public ProxyDetails lastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { this.lastSeenAt = lastSeenAt; return this; } - /** - * ISO 8601 formatted timestamp in UTC with hourly resolution of when this IP was last seen as a proxy when available. + /** + * Unix millisecond timestamp with hourly resolution of when this IP was last seen as a proxy * @return lastSeenAt - **/ + */ @jakarta.annotation.Nullable - @Schema(description = "ISO 8601 formatted timestamp in UTC with hourly resolution of when this IP was last seen as a proxy when available. ") - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public OffsetDateTime getLastSeenAt() { + public Long getLastSeenAt() { return lastSeenAt; } - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLastSeenAt(OffsetDateTime lastSeenAt) { + public void setLastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { this.lastSeenAt = lastSeenAt; } diff --git a/sdk/src/main/java/com/fingerprint/model/RawDeviceAttribute.java b/sdk/src/main/java/com/fingerprint/model/RawDeviceAttribute.java deleted file mode 100644 index 3f7a93ec..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RawDeviceAttribute.java +++ /dev/null @@ -1,130 +0,0 @@ -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.RawDeviceAttributeError; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * RawDeviceAttribute - */ - - -@JsonPropertyOrder({ - RawDeviceAttribute.JSON_PROPERTY_VALUE, - RawDeviceAttribute.JSON_PROPERTY_ERROR -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RawDeviceAttribute { - public static final String JSON_PROPERTY_VALUE = "value"; - private Object value = null; - - public static final String JSON_PROPERTY_ERROR = "error"; - private RawDeviceAttributeError error; - - public RawDeviceAttribute() { - } - - public RawDeviceAttribute value(Object value) { - this.value = value; - return this; - } - - /** - * Get value - * @return value - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VALUE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Object getValue() { - return value; - } - - - @JsonProperty(JSON_PROPERTY_VALUE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setValue(Object value) { - this.value = value; - } - - - public RawDeviceAttribute error(RawDeviceAttributeError error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public RawDeviceAttributeError getError() { - return error; - } - - - @JsonProperty(JSON_PROPERTY_ERROR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setError(RawDeviceAttributeError error) { - this.error = error; - } - - - /** - * Return true if this RawDeviceAttribute object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RawDeviceAttribute rawDeviceAttribute = (RawDeviceAttribute) o; - return Objects.equals(this.value, rawDeviceAttribute.value) && - Objects.equals(this.error, rawDeviceAttribute.error); - } - - @Override - public int hashCode() { - return Objects.hash(value, error); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawDeviceAttribute {\n"); - sb.append(" value: ").append(toIndentedString(value)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).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/RawDeviceAttributeError.java b/sdk/src/main/java/com/fingerprint/model/RawDeviceAttributeError.java deleted file mode 100644 index f9567b54..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RawDeviceAttributeError.java +++ /dev/null @@ -1,129 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * RawDeviceAttributeError - */ - - -@JsonPropertyOrder({ - RawDeviceAttributeError.JSON_PROPERTY_NAME, - RawDeviceAttributeError.JSON_PROPERTY_MESSAGE -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RawDeviceAttributeError { - public static final String JSON_PROPERTY_NAME = "name"; - private String name; - - public static final String JSON_PROPERTY_MESSAGE = "message"; - private String message; - - public RawDeviceAttributeError() { - } - - public RawDeviceAttributeError name(String name) { - this.name = name; - return this; - } - - /** - * Get name - * @return name - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getName() { - return name; - } - - - @JsonProperty(JSON_PROPERTY_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setName(String name) { - this.name = name; - } - - - public RawDeviceAttributeError message(String message) { - this.message = message; - return this; - } - - /** - * Get message - * @return message - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getMessage() { - return message; - } - - - @JsonProperty(JSON_PROPERTY_MESSAGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setMessage(String message) { - this.message = message; - } - - - /** - * Return true if this RawDeviceAttributeError object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RawDeviceAttributeError rawDeviceAttributeError = (RawDeviceAttributeError) o; - return Objects.equals(this.name, rawDeviceAttributeError.name) && - Objects.equals(this.message, rawDeviceAttributeError.message); - } - - @Override - public int hashCode() { - return Objects.hash(name, message); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawDeviceAttributeError {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" message: ").append(toIndentedString(message)).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/RelatedVisitor.java b/sdk/src/main/java/com/fingerprint/model/RelatedVisitor.java deleted file mode 100644 index c809e0a8..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RelatedVisitor.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * RelatedVisitor - */ - - -@JsonPropertyOrder({ - RelatedVisitor.JSON_PROPERTY_VISITOR_ID -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RelatedVisitor { - public static final String JSON_PROPERTY_VISITOR_ID = "visitorId"; - private String visitorId; - - public RelatedVisitor() { - } - - public RelatedVisitor visitorId(String visitorId) { - this.visitorId = visitorId; - return this; - } - - /** - * Visitor ID of a browser that originates from the same mobile device as the input visitor ID. - * @return visitorId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Visitor ID of a browser that originates from the same mobile device as the input visitor ID.") - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getVisitorId() { - return visitorId; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisitorId(String visitorId) { - this.visitorId = visitorId; - } - - - /** - * Return true if this RelatedVisitor object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RelatedVisitor relatedVisitor = (RelatedVisitor) o; - return Objects.equals(this.visitorId, relatedVisitor.visitorId); - } - - @Override - public int hashCode() { - return Objects.hash(visitorId); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RelatedVisitor {\n"); - sb.append(" visitorId: ").append(toIndentedString(visitorId)).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/RelatedVisitorsResponse.java b/sdk/src/main/java/com/fingerprint/model/RelatedVisitorsResponse.java deleted file mode 100644 index 0fe1e03b..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RelatedVisitorsResponse.java +++ /dev/null @@ -1,105 +0,0 @@ -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.RelatedVisitor; -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; - -/** - * RelatedVisitorsResponse - */ - - -@JsonPropertyOrder({ - RelatedVisitorsResponse.JSON_PROPERTY_RELATED_VISITORS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RelatedVisitorsResponse { - public static final String JSON_PROPERTY_RELATED_VISITORS = "relatedVisitors"; - private List relatedVisitors = new ArrayList<>(); - - public RelatedVisitorsResponse() { - } - - public RelatedVisitorsResponse relatedVisitors(List relatedVisitors) { - this.relatedVisitors = relatedVisitors; - return this; - } - - public RelatedVisitorsResponse addRelatedVisitorItem(RelatedVisitor relatedVisitorsItem) { - this.relatedVisitors.add(relatedVisitorsItem); - return this; - } - - /** - * Get relatedVisitors - * @return relatedVisitors - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_RELATED_VISITORS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public List getRelatedVisitors() { - return relatedVisitors; - } - - - @JsonProperty(JSON_PROPERTY_RELATED_VISITORS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRelatedVisitors(List relatedVisitors) { - this.relatedVisitors = relatedVisitors; - } - - - /** - * Return true if this RelatedVisitorsResponse object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RelatedVisitorsResponse relatedVisitorsResponse = (RelatedVisitorsResponse) o; - return Objects.equals(this.relatedVisitors, relatedVisitorsResponse.relatedVisitors); - } - - @Override - public int hashCode() { - return Objects.hash(relatedVisitors); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RelatedVisitorsResponse {\n"); - sb.append(" relatedVisitors: ").append(toIndentedString(relatedVisitors)).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/RemoteControl.java b/sdk/src/main/java/com/fingerprint/model/RemoteControl.java deleted file mode 100644 index 71d17c88..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RemoteControl.java +++ /dev/null @@ -1,98 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * This signal is deprecated. - * @deprecated - */ -@Deprecated -@Schema(description = "This signal is deprecated. ") -@JsonPropertyOrder({ - RemoteControl.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RemoteControl { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public RemoteControl() { - } - - public RemoteControl result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this RemoteControl object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RemoteControl remoteControl = (RemoteControl) o; - return Objects.equals(this.result, remoteControl.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RemoteControl {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/RootApps.java b/sdk/src/main/java/com/fingerprint/model/RootApps.java deleted file mode 100644 index c62a4816..00000000 --- a/sdk/src/main/java/com/fingerprint/model/RootApps.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * RootApps - */ - - -@JsonPropertyOrder({ - RootApps.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class RootApps { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public RootApps() { - } - - public RootApps result(Boolean result) { - this.result = result; - return this; - } - - /** - * Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this RootApps object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RootApps rootApps = (RootApps) o; - return Objects.equals(this.result, rootApps.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RootApps {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/SDK.java b/sdk/src/main/java/com/fingerprint/model/SDK.java index 624ee9d5..4cf5b7f3 100644 --- a/sdk/src/main/java/com/fingerprint/model/SDK.java +++ b/sdk/src/main/java/com/fingerprint/model/SDK.java @@ -1,74 +1,135 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.Integration; +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 information about the SDK used to perform the request. */ - -@Schema(description = "Contains information about the SDK used to perform the request.") @JsonPropertyOrder({ SDK.JSON_PROPERTY_PLATFORM, - SDK.JSON_PROPERTY_VERSION + SDK.JSON_PROPERTY_VERSION, + SDK.JSON_PROPERTY_INTEGRATIONS }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class SDK { + /** + * Platform of the SDK used for the identification request. + */ + public enum PlatformEnum { + JS(String.valueOf("js")), + + ANDROID(String.valueOf("android")), + + IOS(String.valueOf("ios")), + + UNKNOWN(String.valueOf("unknown")); + + private String value; + + PlatformEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static PlatformEnum fromValue(String value) { + for (PlatformEnum b : PlatformEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + public static final String JSON_PROPERTY_PLATFORM = "platform"; - private String platform; + @jakarta.annotation.Nonnull + private PlatformEnum platform; public static final String JSON_PROPERTY_VERSION = "version"; + @jakarta.annotation.Nonnull private String version; - public SDK() { + public static final String JSON_PROPERTY_INTEGRATIONS = "integrations"; + @jakarta.annotation.Nullable + private List integrations = new ArrayList<>(); + + public SDK() { } - public SDK platform(String platform) { + public SDK platform(@jakarta.annotation.Nonnull PlatformEnum platform) { this.platform = platform; return this; } - /** - * Platform of the SDK. + /** + * Platform of the SDK used for the identification request. * @return platform - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "Platform of the SDK.") - @JsonProperty(JSON_PROPERTY_PLATFORM) + @JsonProperty(value = JSON_PROPERTY_PLATFORM, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public String getPlatform() { + public PlatformEnum getPlatform() { return platform; } - @JsonProperty(JSON_PROPERTY_PLATFORM) + @JsonProperty(value = JSON_PROPERTY_PLATFORM, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setPlatform(String platform) { + public void setPlatform(@jakarta.annotation.Nonnull PlatformEnum platform) { this.platform = platform; } - public SDK version(String version) { + public SDK version(@jakarta.annotation.Nonnull String version) { this.version = version; return this; } - /** - * SDK version string. + /** + * Version string of the SDK used for the identification request. For example: `\"3.12.1\"` * @return version - **/ + */ @jakarta.annotation.Nonnull - @Schema(required = true, description = "SDK version string.") - @JsonProperty(JSON_PROPERTY_VERSION) + @JsonProperty(value = JSON_PROPERTY_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getVersion() { @@ -76,13 +137,46 @@ public String getVersion() { } - @JsonProperty(JSON_PROPERTY_VERSION) + @JsonProperty(value = JSON_PROPERTY_VERSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVersion(String version) { + public void setVersion(@jakarta.annotation.Nonnull String version) { this.version = version; } + public SDK integrations(@jakarta.annotation.Nullable List integrations) { + this.integrations = integrations; + return this; + } + + public SDK addIntegrationsItem(Integration integrationsItem) { + if (this.integrations == null) { + this.integrations = new ArrayList<>(); + } + this.integrations.add(integrationsItem); + return this; + } + + /** + * Get integrations + * @return integrations + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_INTEGRATIONS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public List getIntegrations() { + return integrations; + } + + + @JsonProperty(value = JSON_PROPERTY_INTEGRATIONS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIntegrations(@jakarta.annotation.Nullable List integrations) { + this.integrations = integrations; + } + + /** * Return true if this SDK object is equal to o. */ @@ -96,12 +190,13 @@ public boolean equals(Object o) { } SDK SDK = (SDK) o; return Objects.equals(this.platform, SDK.platform) && - Objects.equals(this.version, SDK.version); + Objects.equals(this.version, SDK.version) && + Objects.equals(this.integrations, SDK.integrations); } @Override public int hashCode() { - return Objects.hash(platform, version); + return Objects.hash(platform, version, integrations); } @Override @@ -110,6 +205,7 @@ public String toString() { sb.append("class SDK {\n"); sb.append(" platform: ").append(toIndentedString(platform)).append("\n"); sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" integrations: ").append(toIndentedString(integrations)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java b/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java deleted file mode 100644 index e1c13376..00000000 --- a/sdk/src/main/java/com/fingerprint/model/SearchEventsResponse.java +++ /dev/null @@ -1,140 +0,0 @@ -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; - } - - /** - * Use this value in the `pagination_key` parameter to request the next page of search results. - * @return paginationKey - **/ - @jakarta.annotation.Nullable - @Schema(description = "Use this value in the `pagination_key` parameter to request the next page of search results.") - @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 deleted file mode 100644 index 919fd7d8..00000000 --- a/sdk/src/main/java/com/fingerprint/model/SearchEventsResponseEventsInner.java +++ /dev/null @@ -1,99 +0,0 @@ -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 "); - } - -} - diff --git a/sdk/src/main/java/com/fingerprint/model/SupplementaryID.java b/sdk/src/main/java/com/fingerprint/model/SupplementaryID.java deleted file mode 100644 index c75fa63b..00000000 --- a/sdk/src/main/java/com/fingerprint/model/SupplementaryID.java +++ /dev/null @@ -1,227 +0,0 @@ -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.IdentificationConfidence; -import com.fingerprint.model.IdentificationSeenAt; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * SupplementaryID - */ - - -@JsonPropertyOrder({ - SupplementaryID.JSON_PROPERTY_VISITOR_ID, - SupplementaryID.JSON_PROPERTY_VISITOR_FOUND, - SupplementaryID.JSON_PROPERTY_CONFIDENCE, - SupplementaryID.JSON_PROPERTY_FIRST_SEEN_AT, - SupplementaryID.JSON_PROPERTY_LAST_SEEN_AT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class SupplementaryID { - public static final String JSON_PROPERTY_VISITOR_ID = "visitorId"; - private String visitorId; - - public static final String JSON_PROPERTY_VISITOR_FOUND = "visitorFound"; - private Boolean visitorFound; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private IdentificationConfidence confidence; - - public static final String JSON_PROPERTY_FIRST_SEEN_AT = "firstSeenAt"; - private IdentificationSeenAt firstSeenAt; - - public static final String JSON_PROPERTY_LAST_SEEN_AT = "lastSeenAt"; - private IdentificationSeenAt lastSeenAt; - - public SupplementaryID() { - } - - public SupplementaryID visitorId(String visitorId) { - this.visitorId = visitorId; - return this; - } - - /** - * String of 20 characters that uniquely identifies the visitor's browser or mobile device. - * @return visitorId - **/ - @jakarta.annotation.Nullable - @Schema(description = "String of 20 characters that uniquely identifies the visitor's browser or mobile device.") - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getVisitorId() { - return visitorId; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVisitorId(String visitorId) { - this.visitorId = visitorId; - } - - - public SupplementaryID visitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - return this; - } - - /** - * Attribute represents if a visitor had been identified before. - * @return visitorFound - **/ - @jakarta.annotation.Nullable - @Schema(description = "Attribute represents if a visitor had been identified before.") - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getVisitorFound() { - return visitorFound; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVisitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - } - - - public SupplementaryID confidence(IdentificationConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(IdentificationConfidence confidence) { - this.confidence = confidence; - } - - - public SupplementaryID firstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - return this; - } - - /** - * Get firstSeenAt - * @return firstSeenAt - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationSeenAt getFirstSeenAt() { - return firstSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFirstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - } - - - public SupplementaryID lastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - return this; - } - - /** - * Get lastSeenAt - * @return lastSeenAt - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationSeenAt getLastSeenAt() { - return lastSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - } - - - /** - * Return true if this SupplementaryID object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SupplementaryID supplementaryID = (SupplementaryID) o; - return Objects.equals(this.visitorId, supplementaryID.visitorId) && - Objects.equals(this.visitorFound, supplementaryID.visitorFound) && - Objects.equals(this.confidence, supplementaryID.confidence) && - Objects.equals(this.firstSeenAt, supplementaryID.firstSeenAt) && - Objects.equals(this.lastSeenAt, supplementaryID.lastSeenAt); - } - - @Override - public int hashCode() { - return Objects.hash(visitorId, visitorFound, confidence, firstSeenAt, lastSeenAt); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SupplementaryID {\n"); - sb.append(" visitorId: ").append(toIndentedString(visitorId)).append("\n"); - sb.append(" visitorFound: ").append(toIndentedString(visitorFound)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); - sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).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/SupplementaryIDHighRecall.java b/sdk/src/main/java/com/fingerprint/model/SupplementaryIDHighRecall.java new file mode 100644 index 00000000..43bfc354 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/SupplementaryIDHighRecall.java @@ -0,0 +1,240 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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.IdentificationConfidence; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * A supplementary browser identifier that prioritizes coverage over precision. The High Recall ID algorithm matches more generously, i.e., this identifier will remain the same even when there are subtle differences between two requests. This algorithm does not create as many new visitor IDs as the standard algorithms do, but there could be an increase in false-positive identification. + */ +@JsonPropertyOrder({ + SupplementaryIDHighRecall.JSON_PROPERTY_VISITOR_ID, + SupplementaryIDHighRecall.JSON_PROPERTY_VISITOR_FOUND, + SupplementaryIDHighRecall.JSON_PROPERTY_CONFIDENCE, + SupplementaryIDHighRecall.JSON_PROPERTY_FIRST_SEEN_AT, + SupplementaryIDHighRecall.JSON_PROPERTY_LAST_SEEN_AT +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class SupplementaryIDHighRecall { + public static final String JSON_PROPERTY_VISITOR_ID = "visitor_id"; + @jakarta.annotation.Nonnull + private String visitorId; + + public static final String JSON_PROPERTY_VISITOR_FOUND = "visitor_found"; + @jakarta.annotation.Nonnull + private Boolean visitorFound; + + public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; + @jakarta.annotation.Nullable + private IdentificationConfidence confidence; + + public static final String JSON_PROPERTY_FIRST_SEEN_AT = "first_seen_at"; + @jakarta.annotation.Nullable + private Long firstSeenAt; + + public static final String JSON_PROPERTY_LAST_SEEN_AT = "last_seen_at"; + @jakarta.annotation.Nullable + private Long lastSeenAt; + + public SupplementaryIDHighRecall() { + } + + public SupplementaryIDHighRecall visitorId(@jakarta.annotation.Nonnull String visitorId) { + this.visitorId = visitorId; + return this; + } + + /** + * String of 20 characters that uniquely identifies the visitor's browser or mobile device. + * @return visitorId + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_VISITOR_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getVisitorId() { + return visitorId; + } + + + @JsonProperty(value = JSON_PROPERTY_VISITOR_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVisitorId(@jakarta.annotation.Nonnull String visitorId) { + this.visitorId = visitorId; + } + + + public SupplementaryIDHighRecall visitorFound(@jakarta.annotation.Nonnull Boolean visitorFound) { + this.visitorFound = visitorFound; + return this; + } + + /** + * Attribute represents if a visitor had been identified before. + * @return visitorFound + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_VISITOR_FOUND, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public Boolean getVisitorFound() { + return visitorFound; + } + + + @JsonProperty(value = JSON_PROPERTY_VISITOR_FOUND, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVisitorFound(@jakarta.annotation.Nonnull Boolean visitorFound) { + this.visitorFound = visitorFound; + } + + + public SupplementaryIDHighRecall confidence(@jakarta.annotation.Nullable IdentificationConfidence confidence) { + this.confidence = confidence; + return this; + } + + /** + * Get confidence + * @return confidence + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public IdentificationConfidence getConfidence() { + return confidence; + } + + + @JsonProperty(value = JSON_PROPERTY_CONFIDENCE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setConfidence(@jakarta.annotation.Nullable IdentificationConfidence confidence) { + this.confidence = confidence; + } + + + public SupplementaryIDHighRecall firstSeenAt(@jakarta.annotation.Nullable Long firstSeenAt) { + this.firstSeenAt = firstSeenAt; + return this; + } + + /** + * Unix epoch time milliseconds timestamp indicating the time at which this ID was first seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 + * @return firstSeenAt + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_FIRST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Long getFirstSeenAt() { + return firstSeenAt; + } + + + @JsonProperty(value = JSON_PROPERTY_FIRST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFirstSeenAt(@jakarta.annotation.Nullable Long firstSeenAt) { + this.firstSeenAt = firstSeenAt; + } + + + public SupplementaryIDHighRecall lastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { + this.lastSeenAt = lastSeenAt; + return this; + } + + /** + * Unix epoch time milliseconds timestamp indicating the time at which this ID was last seen. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 + * @return lastSeenAt + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Long getLastSeenAt() { + return lastSeenAt; + } + + + @JsonProperty(value = JSON_PROPERTY_LAST_SEEN_AT, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLastSeenAt(@jakarta.annotation.Nullable Long lastSeenAt) { + this.lastSeenAt = lastSeenAt; + } + + + /** + * Return true if this SupplementaryIDHighRecall object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SupplementaryIDHighRecall supplementaryIDHighRecall = (SupplementaryIDHighRecall) o; + return Objects.equals(this.visitorId, supplementaryIDHighRecall.visitorId) && + Objects.equals(this.visitorFound, supplementaryIDHighRecall.visitorFound) && + Objects.equals(this.confidence, supplementaryIDHighRecall.confidence) && + Objects.equals(this.firstSeenAt, supplementaryIDHighRecall.firstSeenAt) && + Objects.equals(this.lastSeenAt, supplementaryIDHighRecall.lastSeenAt); + } + + @Override + public int hashCode() { + return Objects.hash(visitorId, visitorFound, confidence, firstSeenAt, lastSeenAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SupplementaryIDHighRecall {\n"); + sb.append(" visitorId: ").append(toIndentedString(visitorId)).append("\n"); + sb.append(" visitorFound: ").append(toIndentedString(visitorFound)).append("\n"); + sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); + sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); + sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).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/SuspectScore.java b/sdk/src/main/java/com/fingerprint/model/SuspectScore.java deleted file mode 100644 index faa1b490..00000000 --- a/sdk/src/main/java/com/fingerprint/model/SuspectScore.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * SuspectScore - */ - - -@JsonPropertyOrder({ - SuspectScore.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class SuspectScore { - public static final String JSON_PROPERTY_RESULT = "result"; - private Integer result; - - public SuspectScore() { - } - - public SuspectScore result(Integer result) { - this.result = result; - return this; - } - - /** - * Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Integer getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Integer result) { - this.result = result; - } - - - /** - * Return true if this SuspectScore object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SuspectScore suspectScore = (SuspectScore) o; - return Objects.equals(this.result, suspectScore.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SuspectScore {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Tampering.java b/sdk/src/main/java/com/fingerprint/model/Tampering.java deleted file mode 100644 index 27b8749e..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Tampering.java +++ /dev/null @@ -1,163 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Tampering - */ - - -@JsonPropertyOrder({ - Tampering.JSON_PROPERTY_RESULT, - Tampering.JSON_PROPERTY_ANOMALY_SCORE, - Tampering.JSON_PROPERTY_ANTI_DETECT_BROWSER -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Tampering { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_ANOMALY_SCORE = "anomalyScore"; - private Double anomalyScore; - - public static final String JSON_PROPERTY_ANTI_DETECT_BROWSER = "antiDetectBrowser"; - private Boolean antiDetectBrowser; - - public Tampering() { - } - - public Tampering result(Boolean result) { - this.result = result; - return this; - } - - /** - * Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public Tampering anomalyScore(Double anomalyScore) { - this.anomalyScore = anomalyScore; - return this; - } - - /** - * A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. - * minimum: 0 - * maximum: 1 - * @return anomalyScore - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. ") - @JsonProperty(JSON_PROPERTY_ANOMALY_SCORE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Double getAnomalyScore() { - return anomalyScore; - } - - - @JsonProperty(JSON_PROPERTY_ANOMALY_SCORE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAnomalyScore(Double anomalyScore) { - this.anomalyScore = anomalyScore; - } - - - public Tampering antiDetectBrowser(Boolean antiDetectBrowser) { - this.antiDetectBrowser = antiDetectBrowser; - return this; - } - - /** - * Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. - * @return antiDetectBrowser - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. ") - @JsonProperty(JSON_PROPERTY_ANTI_DETECT_BROWSER) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getAntiDetectBrowser() { - return antiDetectBrowser; - } - - - @JsonProperty(JSON_PROPERTY_ANTI_DETECT_BROWSER) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAntiDetectBrowser(Boolean antiDetectBrowser) { - this.antiDetectBrowser = antiDetectBrowser; - } - - - /** - * Return true if this Tampering object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Tampering tampering = (Tampering) o; - return Objects.equals(this.result, tampering.result) && - Objects.equals(this.anomalyScore, tampering.anomalyScore) && - Objects.equals(this.antiDetectBrowser, tampering.antiDetectBrowser); - } - - @Override - public int hashCode() { - return Objects.hash(result, anomalyScore, antiDetectBrowser); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Tampering {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" anomalyScore: ").append(toIndentedString(anomalyScore)).append("\n"); - sb.append(" antiDetectBrowser: ").append(toIndentedString(antiDetectBrowser)).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/TamperingDetails.java b/sdk/src/main/java/com/fingerprint/model/TamperingDetails.java new file mode 100644 index 00000000..03b23eec --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/TamperingDetails.java @@ -0,0 +1,145 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * TamperingDetails + */ +@JsonPropertyOrder({ + TamperingDetails.JSON_PROPERTY_ANOMALY_SCORE, + TamperingDetails.JSON_PROPERTY_ANTI_DETECT_BROWSER +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class TamperingDetails { + public static final String JSON_PROPERTY_ANOMALY_SCORE = "anomaly_score"; + @jakarta.annotation.Nullable + private Double anomalyScore; + + public static final String JSON_PROPERTY_ANTI_DETECT_BROWSER = "anti_detect_browser"; + @jakarta.annotation.Nullable + private Boolean antiDetectBrowser; + + public TamperingDetails() { + } + + public TamperingDetails anomalyScore(@jakarta.annotation.Nullable Double anomalyScore) { + this.anomalyScore = anomalyScore; + return this; + } + + /** + * Confidence score (`0.0 - 1.0`) for tampering detection: * Values above `0.5` indicate tampering. * Values below `0.5` indicate genuine browsers. + * minimum: 0 + * maximum: 1 + * @return anomalyScore + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ANOMALY_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Double getAnomalyScore() { + return anomalyScore; + } + + + @JsonProperty(value = JSON_PROPERTY_ANOMALY_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAnomalyScore(@jakarta.annotation.Nullable Double anomalyScore) { + this.anomalyScore = anomalyScore; + } + + + public TamperingDetails antiDetectBrowser(@jakarta.annotation.Nullable Boolean antiDetectBrowser) { + this.antiDetectBrowser = antiDetectBrowser; + return this; + } + + /** + * True if the identified browser resembles an \"anti-detect\" browser, such as Incognition, which attempts to evade identification by manipulating its fingerprint. + * @return antiDetectBrowser + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ANTI_DETECT_BROWSER, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getAntiDetectBrowser() { + return antiDetectBrowser; + } + + + @JsonProperty(value = JSON_PROPERTY_ANTI_DETECT_BROWSER, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAntiDetectBrowser(@jakarta.annotation.Nullable Boolean antiDetectBrowser) { + this.antiDetectBrowser = antiDetectBrowser; + } + + + /** + * Return true if this TamperingDetails object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TamperingDetails tamperingDetails = (TamperingDetails) o; + return Objects.equals(this.anomalyScore, tamperingDetails.anomalyScore) && + Objects.equals(this.antiDetectBrowser, tamperingDetails.antiDetectBrowser); + } + + @Override + public int hashCode() { + return Objects.hash(anomalyScore, antiDetectBrowser); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TamperingDetails {\n"); + sb.append(" anomalyScore: ").append(toIndentedString(anomalyScore)).append("\n"); + sb.append(" antiDetectBrowser: ").append(toIndentedString(antiDetectBrowser)).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/Tor.java b/sdk/src/main/java/com/fingerprint/model/Tor.java deleted file mode 100644 index 2ad88616..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Tor.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Tor - */ - - -@JsonPropertyOrder({ - Tor.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Tor { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public Tor() { - } - - public Tor result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request IP address is a known tor exit node, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if the request IP address is a known tor exit node, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this Tor object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Tor tor = (Tor) o; - return Objects.equals(this.result, tor.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Tor {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/TriggeredByInner.java b/sdk/src/main/java/com/fingerprint/model/TriggeredByInner.java new file mode 100644 index 00000000..4386f3ba --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/TriggeredByInner.java @@ -0,0 +1,176 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * TriggeredByInner + */ +@JsonPropertyOrder({ + TriggeredByInner.JSON_PROPERTY_ID, + TriggeredByInner.JSON_PROPERTY_NAME, + TriggeredByInner.JSON_PROPERTY_DESCRIPTION +}) +@JsonTypeName("TriggeredBy_inner") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class TriggeredByInner { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull + private String id; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nonnull + private String name; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + @jakarta.annotation.Nonnull + private String description; + + public TriggeredByInner() { + } + + public TriggeredByInner id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getId() { + return id; + } + + + @JsonProperty(value = JSON_PROPERTY_ID, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public TriggeredByInner name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getName() { + return name; + } + + + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public TriggeredByInner description(@jakarta.annotation.Nonnull String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getDescription() { + return description; + } + + + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDescription(@jakarta.annotation.Nonnull String description) { + this.description = description; + } + + + /** + * Return true if this TriggeredBy_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; + } + TriggeredByInner triggeredByInner = (TriggeredByInner) o; + return Objects.equals(this.id, triggeredByInner.id) && + Objects.equals(this.name, triggeredByInner.name) && + Objects.equals(this.description, triggeredByInner.description); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, description); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TriggeredByInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).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/VPN.java b/sdk/src/main/java/com/fingerprint/model/VPN.java deleted file mode 100644 index 4d863181..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VPN.java +++ /dev/null @@ -1,227 +0,0 @@ -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.VPNConfidence; -import com.fingerprint.model.VPNMethods; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * VPN - */ - - -@JsonPropertyOrder({ - VPN.JSON_PROPERTY_RESULT, - VPN.JSON_PROPERTY_CONFIDENCE, - VPN.JSON_PROPERTY_ORIGIN_TIMEZONE, - VPN.JSON_PROPERTY_ORIGIN_COUNTRY, - VPN.JSON_PROPERTY_METHODS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class VPN { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private VPNConfidence confidence; - - public static final String JSON_PROPERTY_ORIGIN_TIMEZONE = "originTimezone"; - private String originTimezone; - - public static final String JSON_PROPERTY_ORIGIN_COUNTRY = "originCountry"; - private String originCountry; - - public static final String JSON_PROPERTY_METHODS = "methods"; - private VPNMethods methods; - - public VPN() { - } - - public VPN result(Boolean result) { - this.result = result; - return this; - } - - /** - * VPN or other anonymizing service has been used when sending the request. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "VPN or other anonymizing service has been used when sending the request.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public VPN confidence(VPNConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public VPNConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setConfidence(VPNConfidence confidence) { - this.confidence = confidence; - } - - - public VPN originTimezone(String originTimezone) { - this.originTimezone = originTimezone; - return this; - } - - /** - * Local timezone which is used in timezoneMismatch method. - * @return originTimezone - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Local timezone which is used in timezoneMismatch method.") - @JsonProperty(JSON_PROPERTY_ORIGIN_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getOriginTimezone() { - return originTimezone; - } - - - @JsonProperty(JSON_PROPERTY_ORIGIN_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setOriginTimezone(String originTimezone) { - this.originTimezone = originTimezone; - } - - - public VPN originCountry(String originCountry) { - this.originCountry = originCountry; - return this; - } - - /** - * Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). - * @return originCountry - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown).") - @JsonProperty(JSON_PROPERTY_ORIGIN_COUNTRY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getOriginCountry() { - return originCountry; - } - - - @JsonProperty(JSON_PROPERTY_ORIGIN_COUNTRY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setOriginCountry(String originCountry) { - this.originCountry = originCountry; - } - - - public VPN methods(VPNMethods methods) { - this.methods = methods; - return this; - } - - /** - * Get methods - * @return methods - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_METHODS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public VPNMethods getMethods() { - return methods; - } - - - @JsonProperty(JSON_PROPERTY_METHODS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setMethods(VPNMethods methods) { - this.methods = methods; - } - - - /** - * Return true if this VPN object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VPN VPN = (VPN) o; - return Objects.equals(this.result, VPN.result) && - Objects.equals(this.confidence, VPN.confidence) && - Objects.equals(this.originTimezone, VPN.originTimezone) && - Objects.equals(this.originCountry, VPN.originCountry) && - Objects.equals(this.methods, VPN.methods); - } - - @Override - public int hashCode() { - return Objects.hash(result, confidence, originTimezone, originCountry, methods); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VPN {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" originTimezone: ").append(toIndentedString(originTimezone)).append("\n"); - sb.append(" originCountry: ").append(toIndentedString(originCountry)).append("\n"); - sb.append(" methods: ").append(toIndentedString(methods)).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/VPNConfidence.java b/sdk/src/main/java/com/fingerprint/model/VPNConfidence.java deleted file mode 100644 index d8f0f743..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VPNConfidence.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.fingerprint.model; - -import java.util.Objects; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * A confidence rating for the VPN detection result — \"low\", \"medium\", or \"high\". Depends on the combination of results returned from all VPN detection methods. - */ -public enum VPNConfidence { - - LOW("low"), - - MEDIUM("medium"), - - HIGH("high"); - - private String value; - - VPNConfidence(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static VPNConfidence fromValue(String value) { - for (VPNConfidence b : VPNConfidence.values()) { - if (b.value.equals(value)) { - return b; - } - } - return null; - } -} - diff --git a/sdk/src/main/java/com/fingerprint/model/VPNMethods.java b/sdk/src/main/java/com/fingerprint/model/VPNMethods.java deleted file mode 100644 index 99db490c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VPNMethods.java +++ /dev/null @@ -1,225 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * VPNMethods - */ - - -@JsonPropertyOrder({ - VPNMethods.JSON_PROPERTY_TIMEZONE_MISMATCH, - VPNMethods.JSON_PROPERTY_PUBLIC_V_P_N, - VPNMethods.JSON_PROPERTY_AUXILIARY_MOBILE, - VPNMethods.JSON_PROPERTY_OS_MISMATCH, - VPNMethods.JSON_PROPERTY_RELAY -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class VPNMethods { - public static final String JSON_PROPERTY_TIMEZONE_MISMATCH = "timezoneMismatch"; - private Boolean timezoneMismatch; - - public static final String JSON_PROPERTY_PUBLIC_V_P_N = "publicVPN"; - private Boolean publicVPN; - - public static final String JSON_PROPERTY_AUXILIARY_MOBILE = "auxiliaryMobile"; - private Boolean auxiliaryMobile; - - public static final String JSON_PROPERTY_OS_MISMATCH = "osMismatch"; - private Boolean osMismatch; - - public static final String JSON_PROPERTY_RELAY = "relay"; - private Boolean relay; - - public VPNMethods() { - } - - public VPNMethods timezoneMismatch(Boolean timezoneMismatch) { - this.timezoneMismatch = timezoneMismatch; - return this; - } - - /** - * The browser timezone doesn't match the timezone inferred from the request IP address. - * @return timezoneMismatch - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "The browser timezone doesn't match the timezone inferred from the request IP address.") - @JsonProperty(JSON_PROPERTY_TIMEZONE_MISMATCH) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getTimezoneMismatch() { - return timezoneMismatch; - } - - - @JsonProperty(JSON_PROPERTY_TIMEZONE_MISMATCH) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTimezoneMismatch(Boolean timezoneMismatch) { - this.timezoneMismatch = timezoneMismatch; - } - - - public VPNMethods publicVPN(Boolean publicVPN) { - this.publicVPN = publicVPN; - return this; - } - - /** - * Request IP address is owned and used by a public VPN service provider. - * @return publicVPN - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Request IP address is owned and used by a public VPN service provider.") - @JsonProperty(JSON_PROPERTY_PUBLIC_V_P_N) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getPublicVPN() { - return publicVPN; - } - - - @JsonProperty(JSON_PROPERTY_PUBLIC_V_P_N) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setPublicVPN(Boolean publicVPN) { - this.publicVPN = publicVPN; - } - - - public VPNMethods auxiliaryMobile(Boolean auxiliaryMobile) { - this.auxiliaryMobile = auxiliaryMobile; - return this; - } - - /** - * This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. - * @return auxiliaryMobile - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices.") - @JsonProperty(JSON_PROPERTY_AUXILIARY_MOBILE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getAuxiliaryMobile() { - return auxiliaryMobile; - } - - - @JsonProperty(JSON_PROPERTY_AUXILIARY_MOBILE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAuxiliaryMobile(Boolean auxiliaryMobile) { - this.auxiliaryMobile = auxiliaryMobile; - } - - - public VPNMethods osMismatch(Boolean osMismatch) { - this.osMismatch = osMismatch; - return this; - } - - /** - * The browser runs on a different operating system than the operating system inferred from the request network signature. - * @return osMismatch - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "The browser runs on a different operating system than the operating system inferred from the request network signature.") - @JsonProperty(JSON_PROPERTY_OS_MISMATCH) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getOsMismatch() { - return osMismatch; - } - - - @JsonProperty(JSON_PROPERTY_OS_MISMATCH) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setOsMismatch(Boolean osMismatch) { - this.osMismatch = osMismatch; - } - - - public VPNMethods relay(Boolean relay) { - this.relay = relay; - return this; - } - - /** - * Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. - * @return relay - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. ") - @JsonProperty(JSON_PROPERTY_RELAY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getRelay() { - return relay; - } - - - @JsonProperty(JSON_PROPERTY_RELAY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRelay(Boolean relay) { - this.relay = relay; - } - - - /** - * Return true if this VPNMethods object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VPNMethods vpNMethods = (VPNMethods) o; - return Objects.equals(this.timezoneMismatch, vpNMethods.timezoneMismatch) && - Objects.equals(this.publicVPN, vpNMethods.publicVPN) && - Objects.equals(this.auxiliaryMobile, vpNMethods.auxiliaryMobile) && - Objects.equals(this.osMismatch, vpNMethods.osMismatch) && - Objects.equals(this.relay, vpNMethods.relay); - } - - @Override - public int hashCode() { - return Objects.hash(timezoneMismatch, publicVPN, auxiliaryMobile, osMismatch, relay); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VPNMethods {\n"); - sb.append(" timezoneMismatch: ").append(toIndentedString(timezoneMismatch)).append("\n"); - sb.append(" publicVPN: ").append(toIndentedString(publicVPN)).append("\n"); - sb.append(" auxiliaryMobile: ").append(toIndentedString(auxiliaryMobile)).append("\n"); - sb.append(" osMismatch: ").append(toIndentedString(osMismatch)).append("\n"); - sb.append(" relay: ").append(toIndentedString(relay)).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/Velocity.java b/sdk/src/main/java/com/fingerprint/model/Velocity.java index 9bbdb7b8..ff1dd7a0 100644 --- a/sdk/src/main/java/com/fingerprint/model/Velocity.java +++ b/sdk/src/main/java/com/fingerprint/model/Velocity.java @@ -1,6 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; @@ -10,13 +26,11 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** - * Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor ID. - Number of distinct linked IDs associated with the visitor ID. - Number of distinct countries associated with the visitor ID. - Number of identification events associated with the visitor ID. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked ID. - Number of distinct visitor IDs associated with the provided linked ID. The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. + * Sums key data points for a specific `visitor_id`, `ip_address` and `linked_id` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor Id. - Number of distinct linked Ids associated with the visitor Id. - Number of distinct countries associated with the visitor Id. - Number of identification events associated with the visitor Id. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked Id. - Number of distinct visitor Ids associated with the provided linked Id. The `24h` interval of `distinct_ip`, `distinct_linked_id`, `distinct_country`, `distinct_ip_by_linked_id` and `distinct_visitor_id_by_linked_id` will be omitted if the number of `events` for the visitor Id in the last 24 hours (`events.['24h']`) is higher than 20.000. All will not necessarily be returned in a response, some may be omitted if the associated event does not have the required data, such as a linked_id. */ - -@Schema(description = "Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor ID. - Number of distinct linked IDs associated with the visitor ID. - Number of distinct countries associated with the visitor ID. - Number of identification events associated with the visitor ID. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked ID. - Number of distinct visitor IDs associated with the provided linked ID. The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. ") @JsonPropertyOrder({ Velocity.JSON_PROPERTY_DISTINCT_IP, Velocity.JSON_PROPERTY_DISTINCT_LINKED_ID, @@ -26,210 +40,210 @@ Velocity.JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID, Velocity.JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Velocity { - public static final String JSON_PROPERTY_DISTINCT_IP = "distinctIp"; + public static final String JSON_PROPERTY_DISTINCT_IP = "distinct_ip"; + @jakarta.annotation.Nullable private VelocityData distinctIp; - public static final String JSON_PROPERTY_DISTINCT_LINKED_ID = "distinctLinkedId"; + public static final String JSON_PROPERTY_DISTINCT_LINKED_ID = "distinct_linked_id"; + @jakarta.annotation.Nullable private VelocityData distinctLinkedId; - public static final String JSON_PROPERTY_DISTINCT_COUNTRY = "distinctCountry"; + public static final String JSON_PROPERTY_DISTINCT_COUNTRY = "distinct_country"; + @jakarta.annotation.Nullable private VelocityData distinctCountry; public static final String JSON_PROPERTY_EVENTS = "events"; + @jakarta.annotation.Nullable private VelocityData events; - public static final String JSON_PROPERTY_IP_EVENTS = "ipEvents"; + public static final String JSON_PROPERTY_IP_EVENTS = "ip_events"; + @jakarta.annotation.Nullable private VelocityData ipEvents; - public static final String JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID = "distinctIpByLinkedId"; + public static final String JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID = "distinct_ip_by_linked_id"; + @jakarta.annotation.Nullable private VelocityData distinctIpByLinkedId; - public static final String JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID = "distinctVisitorIdByLinkedId"; + public static final String JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID = "distinct_visitor_id_by_linked_id"; + @jakarta.annotation.Nullable private VelocityData distinctVisitorIdByLinkedId; - public Velocity() { + public Velocity() { } - public Velocity distinctIp(VelocityData distinctIp) { + public Velocity distinctIp(@jakarta.annotation.Nullable VelocityData distinctIp) { this.distinctIp = distinctIp; return this; } - /** + /** * Get distinctIp * @return distinctIp - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DISTINCT_IP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getDistinctIp() { return distinctIp; } - @JsonProperty(JSON_PROPERTY_DISTINCT_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDistinctIp(VelocityData distinctIp) { + @JsonProperty(value = JSON_PROPERTY_DISTINCT_IP, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDistinctIp(@jakarta.annotation.Nullable VelocityData distinctIp) { this.distinctIp = distinctIp; } - public Velocity distinctLinkedId(VelocityData distinctLinkedId) { + public Velocity distinctLinkedId(@jakarta.annotation.Nullable VelocityData distinctLinkedId) { this.distinctLinkedId = distinctLinkedId; return this; } - /** + /** * Get distinctLinkedId * @return distinctLinkedId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DISTINCT_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getDistinctLinkedId() { return distinctLinkedId; } - @JsonProperty(JSON_PROPERTY_DISTINCT_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDistinctLinkedId(VelocityData distinctLinkedId) { + @JsonProperty(value = JSON_PROPERTY_DISTINCT_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDistinctLinkedId(@jakarta.annotation.Nullable VelocityData distinctLinkedId) { this.distinctLinkedId = distinctLinkedId; } - public Velocity distinctCountry(VelocityData distinctCountry) { + public Velocity distinctCountry(@jakarta.annotation.Nullable VelocityData distinctCountry) { this.distinctCountry = distinctCountry; return this; } - /** + /** * Get distinctCountry * @return distinctCountry - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_COUNTRY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DISTINCT_COUNTRY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getDistinctCountry() { return distinctCountry; } - @JsonProperty(JSON_PROPERTY_DISTINCT_COUNTRY) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDistinctCountry(VelocityData distinctCountry) { + @JsonProperty(value = JSON_PROPERTY_DISTINCT_COUNTRY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDistinctCountry(@jakarta.annotation.Nullable VelocityData distinctCountry) { this.distinctCountry = distinctCountry; } - public Velocity events(VelocityData events) { + public Velocity events(@jakarta.annotation.Nullable VelocityData events) { this.events = events; return this; } - /** + /** * Get events * @return events - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_EVENTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_EVENTS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getEvents() { return events; } - @JsonProperty(JSON_PROPERTY_EVENTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setEvents(VelocityData events) { + @JsonProperty(value = JSON_PROPERTY_EVENTS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEvents(@jakarta.annotation.Nullable VelocityData events) { this.events = events; } - public Velocity ipEvents(VelocityData ipEvents) { + public Velocity ipEvents(@jakarta.annotation.Nullable VelocityData ipEvents) { this.ipEvents = ipEvents; return this; } - /** + /** * Get ipEvents * @return ipEvents - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_IP_EVENTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_IP_EVENTS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getIpEvents() { return ipEvents; } - @JsonProperty(JSON_PROPERTY_IP_EVENTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIpEvents(VelocityData ipEvents) { + @JsonProperty(value = JSON_PROPERTY_IP_EVENTS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIpEvents(@jakarta.annotation.Nullable VelocityData ipEvents) { this.ipEvents = ipEvents; } - public Velocity distinctIpByLinkedId(VelocityData distinctIpByLinkedId) { + public Velocity distinctIpByLinkedId(@jakarta.annotation.Nullable VelocityData distinctIpByLinkedId) { this.distinctIpByLinkedId = distinctIpByLinkedId; return this; } - /** + /** * Get distinctIpByLinkedId * @return distinctIpByLinkedId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getDistinctIpByLinkedId() { return distinctIpByLinkedId; } - @JsonProperty(JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDistinctIpByLinkedId(VelocityData distinctIpByLinkedId) { + @JsonProperty(value = JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDistinctIpByLinkedId(@jakarta.annotation.Nullable VelocityData distinctIpByLinkedId) { this.distinctIpByLinkedId = distinctIpByLinkedId; } - public Velocity distinctVisitorIdByLinkedId(VelocityData distinctVisitorIdByLinkedId) { + public Velocity distinctVisitorIdByLinkedId(@jakarta.annotation.Nullable VelocityData distinctVisitorIdByLinkedId) { this.distinctVisitorIdByLinkedId = distinctVisitorIdByLinkedId; return this; } - /** + /** * Get distinctVisitorIdByLinkedId * @return distinctVisitorIdByLinkedId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public VelocityData getDistinctVisitorIdByLinkedId() { return distinctVisitorIdByLinkedId; } - @JsonProperty(JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setDistinctVisitorIdByLinkedId(VelocityData distinctVisitorIdByLinkedId) { + @JsonProperty(value = JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDistinctVisitorIdByLinkedId(@jakarta.annotation.Nullable VelocityData distinctVisitorIdByLinkedId) { this.distinctVisitorIdByLinkedId = distinctVisitorIdByLinkedId; } diff --git a/sdk/src/main/java/com/fingerprint/model/VelocityData.java b/sdk/src/main/java/com/fingerprint/model/VelocityData.java index 0d3c613d..95bf0eb3 100644 --- a/sdk/src/main/java/com/fingerprint/model/VelocityData.java +++ b/sdk/src/main/java/com/fingerprint/model/VelocityData.java @@ -1,56 +1,129 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.model; import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; 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.VelocityIntervals; import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; + /** - * VelocityData + * Is absent if the velocity data could not be generated for the visitor Id. */ - - @JsonPropertyOrder({ - VelocityData.JSON_PROPERTY_INTERVALS + VelocityData.JSON_PROPERTY_5MINUTES, + VelocityData.JSON_PROPERTY_1HOUR, + VelocityData.JSON_PROPERTY_24HOURS }) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class VelocityData { - public static final String JSON_PROPERTY_INTERVALS = "intervals"; - private VelocityIntervals intervals; + public static final String JSON_PROPERTY_5MINUTES = "5_minutes"; + @jakarta.annotation.Nonnull + private Integer _5minutes; + + public static final String JSON_PROPERTY_1HOUR = "1_hour"; + @jakarta.annotation.Nonnull + private Integer _1hour; + + public static final String JSON_PROPERTY_24HOURS = "24_hours"; + @jakarta.annotation.Nullable + private Integer _24hours; - public VelocityData() { + public VelocityData() { } - public VelocityData intervals(VelocityIntervals intervals) { - this.intervals = intervals; + public VelocityData _5minutes(@jakarta.annotation.Nonnull Integer _5minutes) { + this._5minutes = _5minutes; return this; } - /** - * Get intervals - * @return intervals - **/ + /** + * Count for the last 5 minutes of velocity data, from the time of the event. + * @return _5minutes + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_5MINUTES, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public Integer get5minutes() { + return _5minutes; + } + + + @JsonProperty(value = JSON_PROPERTY_5MINUTES, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void set5minutes(@jakarta.annotation.Nonnull Integer _5minutes) { + this._5minutes = _5minutes; + } + + + public VelocityData _1hour(@jakarta.annotation.Nonnull Integer _1hour) { + this._1hour = _1hour; + return this; + } + + /** + * Count for the last 1 hour of velocity data, from the time of the event. + * @return _1hour + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_1HOUR, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public Integer get1hour() { + return _1hour; + } + + + @JsonProperty(value = JSON_PROPERTY_1HOUR, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void set1hour(@jakarta.annotation.Nonnull Integer _1hour) { + this._1hour = _1hour; + } + + + public VelocityData _24hours(@jakarta.annotation.Nullable Integer _24hours) { + this._24hours = _24hours; + return this; + } + + /** + * The `24_hours` interval of `distinct_ip`, `distinct_linked_id`, `distinct_country`, `distinct_ip_by_linked_id` and `distinct_visitor_id_by_linked_id` will be omitted if the number of `events` for the visitor Id in the last 24 hours (`events.['24_hours']`) is higher than 20.000. + * @return _24hours + */ @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_INTERVALS) + @JsonProperty(value = JSON_PROPERTY_24HOURS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public VelocityIntervals getIntervals() { - return intervals; + public Integer get24hours() { + return _24hours; } - @JsonProperty(JSON_PROPERTY_INTERVALS) + @JsonProperty(value = JSON_PROPERTY_24HOURS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIntervals(VelocityIntervals intervals) { - this.intervals = intervals; + public void set24hours(@jakarta.annotation.Nullable Integer _24hours) { + this._24hours = _24hours; } @@ -66,19 +139,23 @@ public boolean equals(Object o) { return false; } VelocityData velocityData = (VelocityData) o; - return Objects.equals(this.intervals, velocityData.intervals); + return Objects.equals(this._5minutes, velocityData._5minutes) && + Objects.equals(this._1hour, velocityData._1hour) && + Objects.equals(this._24hours, velocityData._24hours); } @Override public int hashCode() { - return Objects.hash(intervals); + return Objects.hash(_5minutes, _1hour, _24hours); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class VelocityData {\n"); - sb.append(" intervals: ").append(toIndentedString(intervals)).append("\n"); + sb.append(" _5minutes: ").append(toIndentedString(_5minutes)).append("\n"); + sb.append(" _1hour: ").append(toIndentedString(_1hour)).append("\n"); + sb.append(" _24hours: ").append(toIndentedString(_24hours)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/model/VelocityIntervals.java b/sdk/src/main/java/com/fingerprint/model/VelocityIntervals.java deleted file mode 100644 index 209287c7..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VelocityIntervals.java +++ /dev/null @@ -1,161 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Is absent if the velocity data could not be generated for the visitor ID. - */ - -@Schema(description = "Is absent if the velocity data could not be generated for the visitor ID. ") -@JsonPropertyOrder({ - VelocityIntervals.JSON_PROPERTY_5M, - VelocityIntervals.JSON_PROPERTY_1H, - VelocityIntervals.JSON_PROPERTY_24H -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class VelocityIntervals { - public static final String JSON_PROPERTY_5M = "5m"; - private Integer _5m; - - public static final String JSON_PROPERTY_1H = "1h"; - private Integer _1h; - - public static final String JSON_PROPERTY_24H = "24h"; - private Integer _24h; - - public VelocityIntervals() { - } - - public VelocityIntervals _5m(Integer _5m) { - this._5m = _5m; - return this; - } - - /** - * Get _5m - * @return _5m - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_5M) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Integer get5m() { - return _5m; - } - - - @JsonProperty(JSON_PROPERTY_5M) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void set5m(Integer _5m) { - this._5m = _5m; - } - - - public VelocityIntervals _1h(Integer _1h) { - this._1h = _1h; - return this; - } - - /** - * Get _1h - * @return _1h - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_1H) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Integer get1h() { - return _1h; - } - - - @JsonProperty(JSON_PROPERTY_1H) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void set1h(Integer _1h) { - this._1h = _1h; - } - - - public VelocityIntervals _24h(Integer _24h) { - this._24h = _24h; - return this; - } - - /** - * The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events`` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. - * @return _24h - **/ - @jakarta.annotation.Nullable - @Schema(description = "The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events`` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. ") - @JsonProperty(JSON_PROPERTY_24H) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer get24h() { - return _24h; - } - - - @JsonProperty(JSON_PROPERTY_24H) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void set24h(Integer _24h) { - this._24h = _24h; - } - - - /** - * Return true if this VelocityIntervals object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VelocityIntervals velocityIntervals = (VelocityIntervals) o; - return Objects.equals(this._5m, velocityIntervals._5m) && - Objects.equals(this._1h, velocityIntervals._1h) && - Objects.equals(this._24h, velocityIntervals._24h); - } - - @Override - public int hashCode() { - return Objects.hash(_5m, _1h, _24h); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VelocityIntervals {\n"); - sb.append(" _5m: ").append(toIndentedString(_5m)).append("\n"); - sb.append(" _1h: ").append(toIndentedString(_1h)).append("\n"); - sb.append(" _24h: ").append(toIndentedString(_24h)).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/VirtualMachine.java b/sdk/src/main/java/com/fingerprint/model/VirtualMachine.java deleted file mode 100644 index 9baee8e7..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VirtualMachine.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * VirtualMachine - */ - - -@JsonPropertyOrder({ - VirtualMachine.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class VirtualMachine { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public VirtualMachine() { - } - - public VirtualMachine result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "`true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this VirtualMachine object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VirtualMachine virtualMachine = (VirtualMachine) o; - return Objects.equals(this.result, virtualMachine.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VirtualMachine {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/Visit.java b/sdk/src/main/java/com/fingerprint/model/Visit.java deleted file mode 100644 index 8064c387..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Visit.java +++ /dev/null @@ -1,568 +0,0 @@ -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.BrowserDetails; -import com.fingerprint.model.DeprecatedGeolocation; -import com.fingerprint.model.IdentificationConfidence; -import com.fingerprint.model.IdentificationSeenAt; -import com.fingerprint.model.RawDeviceAttribute; -import java.time.OffsetDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Visit - */ - - -@JsonPropertyOrder({ - Visit.JSON_PROPERTY_REQUEST_ID, - Visit.JSON_PROPERTY_BROWSER_DETAILS, - Visit.JSON_PROPERTY_INCOGNITO, - Visit.JSON_PROPERTY_IP, - Visit.JSON_PROPERTY_IP_LOCATION, - Visit.JSON_PROPERTY_LINKED_ID, - Visit.JSON_PROPERTY_TIMESTAMP, - Visit.JSON_PROPERTY_TIME, - Visit.JSON_PROPERTY_URL, - Visit.JSON_PROPERTY_TAG, - Visit.JSON_PROPERTY_CONFIDENCE, - Visit.JSON_PROPERTY_VISITOR_FOUND, - Visit.JSON_PROPERTY_FIRST_SEEN_AT, - Visit.JSON_PROPERTY_LAST_SEEN_AT, - Visit.JSON_PROPERTY_COMPONENTS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Visit { - public static final String JSON_PROPERTY_REQUEST_ID = "requestId"; - private String requestId; - - public static final String JSON_PROPERTY_BROWSER_DETAILS = "browserDetails"; - private BrowserDetails browserDetails; - - public static final String JSON_PROPERTY_INCOGNITO = "incognito"; - private Boolean incognito; - - public static final String JSON_PROPERTY_IP = "ip"; - private String ip; - - public static final String JSON_PROPERTY_IP_LOCATION = "ipLocation"; - private DeprecatedGeolocation ipLocation; - - public static final String JSON_PROPERTY_LINKED_ID = "linkedId"; - private String linkedId; - - public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; - private Long timestamp; - - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_URL = "url"; - private String url; - - public static final String JSON_PROPERTY_TAG = "tag"; - private Map tag = new HashMap<>(); - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private IdentificationConfidence confidence; - - public static final String JSON_PROPERTY_VISITOR_FOUND = "visitorFound"; - private Boolean visitorFound; - - public static final String JSON_PROPERTY_FIRST_SEEN_AT = "firstSeenAt"; - private IdentificationSeenAt firstSeenAt; - - public static final String JSON_PROPERTY_LAST_SEEN_AT = "lastSeenAt"; - private IdentificationSeenAt lastSeenAt; - - public static final String JSON_PROPERTY_COMPONENTS = "components"; - private Map components = null; - - public Visit() { - } - - public Visit requestId(String requestId) { - this.requestId = requestId; - return this; - } - - /** - * Unique identifier of the user's request. - * @return requestId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Unique identifier of the user's request.") - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getRequestId() { - return requestId; - } - - - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - - public Visit browserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - return this; - } - - /** - * Get browserDetails - * @return browserDetails - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public BrowserDetails getBrowserDetails() { - return browserDetails; - } - - - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setBrowserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - } - - - public Visit incognito(Boolean incognito) { - this.incognito = incognito; - return this; - } - - /** - * Flag if user used incognito session. - * @return incognito - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Flag if user used incognito session.") - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getIncognito() { - return incognito; - } - - - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIncognito(Boolean incognito) { - this.incognito = incognito; - } - - - public Visit ip(String ip) { - this.ip = ip; - return this; - } - - /** - * IP address of the requesting browser or bot. - * @return ip - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address of the requesting browser or bot.") - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getIp() { - return ip; - } - - - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIp(String ip) { - this.ip = ip; - } - - - public Visit ipLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - return this; - } - - /** - * Get ipLocation - * @return ipLocation - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public DeprecatedGeolocation getIpLocation() { - return ipLocation; - } - - - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - } - - - public Visit linkedId(String linkedId) { - this.linkedId = linkedId; - return this; - } - - /** - * A customer-provided id that was sent with the request. - * @return linkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided id that was sent with the request.") - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getLinkedId() { - return linkedId; - } - - - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLinkedId(String linkedId) { - this.linkedId = linkedId; - } - - - public Visit timestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - /** - * Timestamp of the event with millisecond precision in Unix time. - * @return timestamp - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Timestamp of the event with millisecond precision in Unix time.") - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Long getTimestamp() { - return timestamp; - } - - - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - - public Visit time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Time expressed according to ISO 8601 in UTC format, when the request from the client agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. - * @return time - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Time expressed according to ISO 8601 in UTC format, when the request from the client agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible.") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public Visit url(String url) { - this.url = url; - return this; - } - - /** - * Page URL from which the request was sent. - * @return url - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Page URL from which the request was sent.") - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUrl() { - return url; - } - - - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUrl(String url) { - this.url = url; - } - - - public Visit tag(Map tag) { - this.tag = tag; - return this; - } - - public Visit puttagItem(String key, Object tagItem) { - this.tag.put(key, tagItem); - return this; - } - - /** - * A customer-provided value or an object that was sent with identification request. - * @return tag - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "A customer-provided value or an object that was sent with identification request.") - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.ALWAYS) - - public Map getTag() { - return tag; - } - - - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.ALWAYS) - public void setTag(Map tag) { - this.tag = tag; - } - - - public Visit confidence(IdentificationConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(IdentificationConfidence confidence) { - this.confidence = confidence; - } - - - public Visit visitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - return this; - } - - /** - * Attribute represents if a visitor had been identified before. - * @return visitorFound - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Attribute represents if a visitor had been identified before.") - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getVisitorFound() { - return visitorFound; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - } - - - public Visit firstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - return this; - } - - /** - * Get firstSeenAt - * @return firstSeenAt - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public IdentificationSeenAt getFirstSeenAt() { - return firstSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setFirstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - } - - - public Visit lastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - return this; - } - - /** - * Get lastSeenAt - * @return lastSeenAt - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public IdentificationSeenAt getLastSeenAt() { - return lastSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setLastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - } - - - public Visit components(Map components) { - this.components = components; - return this; - } - - public Visit putcomponentsItem(String key, RawDeviceAttribute componentsItem) { - if (this.components == null) { - this.components = new HashMap<>(); - } - this.components.put(key, componentsItem); - return this; - } - - /** - * It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. - * @return components - **/ - @jakarta.annotation.Nullable - @Schema(description = "It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. ") - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Map getComponents() { - return components; - } - - - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComponents(Map components) { - this.components = components; - } - - - /** - * Return true if this Visit object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Visit visit = (Visit) o; - return Objects.equals(this.requestId, visit.requestId) && - Objects.equals(this.browserDetails, visit.browserDetails) && - Objects.equals(this.incognito, visit.incognito) && - Objects.equals(this.ip, visit.ip) && - Objects.equals(this.ipLocation, visit.ipLocation) && - Objects.equals(this.linkedId, visit.linkedId) && - Objects.equals(this.timestamp, visit.timestamp) && - Objects.equals(this.time, visit.time) && - Objects.equals(this.url, visit.url) && - Objects.equals(this.tag, visit.tag) && - Objects.equals(this.confidence, visit.confidence) && - Objects.equals(this.visitorFound, visit.visitorFound) && - Objects.equals(this.firstSeenAt, visit.firstSeenAt) && - Objects.equals(this.lastSeenAt, visit.lastSeenAt) && - Objects.equals(this.components, visit.components); - } - - @Override - public int hashCode() { - return Objects.hash(requestId, browserDetails, incognito, ip, ipLocation, linkedId, timestamp, time, url, tag, confidence, visitorFound, firstSeenAt, lastSeenAt, components); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Visit {\n"); - sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n"); - sb.append(" browserDetails: ").append(toIndentedString(browserDetails)).append("\n"); - sb.append(" incognito: ").append(toIndentedString(incognito)).append("\n"); - sb.append(" ip: ").append(toIndentedString(ip)).append("\n"); - sb.append(" ipLocation: ").append(toIndentedString(ipLocation)).append("\n"); - sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); - sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" visitorFound: ").append(toIndentedString(visitorFound)).append("\n"); - sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); - sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).append("\n"); - sb.append(" components: ").append(toIndentedString(components)).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/VisitorsGetResponse.java b/sdk/src/main/java/com/fingerprint/model/VisitorsGetResponse.java deleted file mode 100644 index 37b819c7..00000000 --- a/sdk/src/main/java/com/fingerprint/model/VisitorsGetResponse.java +++ /dev/null @@ -1,203 +0,0 @@ -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.Visit; -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; - -/** - * Pagination-related fields `lastTimestamp` and `paginationKey` are included if you use a pagination parameter like `limit` or `before` and there is more data available on the next page. - */ - -@Schema(description = "Pagination-related fields `lastTimestamp` and `paginationKey` are included if you use a pagination parameter like `limit` or `before` and there is more data available on the next page.") -@JsonPropertyOrder({ - VisitorsGetResponse.JSON_PROPERTY_VISITOR_ID, - VisitorsGetResponse.JSON_PROPERTY_VISITS, - VisitorsGetResponse.JSON_PROPERTY_LAST_TIMESTAMP, - VisitorsGetResponse.JSON_PROPERTY_PAGINATION_KEY -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class VisitorsGetResponse { - public static final String JSON_PROPERTY_VISITOR_ID = "visitorId"; - private String visitorId; - - public static final String JSON_PROPERTY_VISITS = "visits"; - private List visits = new ArrayList<>(); - - public static final String JSON_PROPERTY_LAST_TIMESTAMP = "lastTimestamp"; - private Long lastTimestamp; - - public static final String JSON_PROPERTY_PAGINATION_KEY = "paginationKey"; - private String paginationKey; - - public VisitorsGetResponse() { - } - - public VisitorsGetResponse visitorId(String visitorId) { - this.visitorId = visitorId; - return this; - } - - /** - * Get visitorId - * @return visitorId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getVisitorId() { - return visitorId; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisitorId(String visitorId) { - this.visitorId = visitorId; - } - - - public VisitorsGetResponse visits(List visits) { - this.visits = visits; - return this; - } - - public VisitorsGetResponse addVisitItem(Visit visitsItem) { - this.visits.add(visitsItem); - return this; - } - - /** - * Get visits - * @return visits - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_VISITS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public List getVisits() { - return visits; - } - - - @JsonProperty(JSON_PROPERTY_VISITS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVisits(List visits) { - this.visits = visits; - } - - - public VisitorsGetResponse lastTimestamp(Long lastTimestamp) { - this.lastTimestamp = lastTimestamp; - return this; - } - - /** - * ⚠️ Deprecated paging attribute, please use `paginationKey` instead. Timestamp of the last visit in the current page of results. - * @return lastTimestamp - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "⚠️ Deprecated paging attribute, please use `paginationKey` instead. Timestamp of the last visit in the current page of results. ") - @JsonProperty(JSON_PROPERTY_LAST_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getLastTimestamp() { - return lastTimestamp; - } - - - @JsonProperty(JSON_PROPERTY_LAST_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLastTimestamp(Long lastTimestamp) { - this.lastTimestamp = lastTimestamp; - } - - - public VisitorsGetResponse paginationKey(String paginationKey) { - this.paginationKey = paginationKey; - return this; - } - - /** - * Request ID of the last visit in the current page of results. Use this value in the following request as the `paginationKey` parameter to get the next page of results. - * @return paginationKey - **/ - @jakarta.annotation.Nullable - @Schema(description = "Request ID of the last visit in the current page of results. Use this value in the following request as the `paginationKey` parameter to get the next page of results.") - @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 VisitorsGetResponse object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VisitorsGetResponse visitorsGetResponse = (VisitorsGetResponse) o; - return Objects.equals(this.visitorId, visitorsGetResponse.visitorId) && - Objects.equals(this.visits, visitorsGetResponse.visits) && - Objects.equals(this.lastTimestamp, visitorsGetResponse.lastTimestamp) && - Objects.equals(this.paginationKey, visitorsGetResponse.paginationKey); - } - - @Override - public int hashCode() { - return Objects.hash(visitorId, visits, lastTimestamp, paginationKey); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VisitorsGetResponse {\n"); - sb.append(" visitorId: ").append(toIndentedString(visitorId)).append("\n"); - sb.append(" visits: ").append(toIndentedString(visits)).append("\n"); - sb.append(" lastTimestamp: ").append(toIndentedString(lastTimestamp)).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/VpnConfidence.java b/sdk/src/main/java/com/fingerprint/model/VpnConfidence.java new file mode 100644 index 00000000..e9dd4f4c --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/VpnConfidence.java @@ -0,0 +1,65 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Locale; + +/** + * A confidence rating for the VPN detection result — \"low\", \"medium\", or \"high\". Depends on the combination of results returned from all VPN detection methods. + */ +public enum VpnConfidence { + + LOW("low"), + + MEDIUM("medium"), + + HIGH("high"); + + private String value; + + VpnConfidence(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static VpnConfidence fromValue(String value) { + for (VpnConfidence b : VpnConfidence.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } +} + diff --git a/sdk/src/main/java/com/fingerprint/model/VpnMethods.java b/sdk/src/main/java/com/fingerprint/model/VpnMethods.java new file mode 100644 index 00000000..13556c11 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/model/VpnMethods.java @@ -0,0 +1,239 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.fingerprint.model; + +import java.util.Objects; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; +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 java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fingerprint.sdk.JSON; + + +/** + * VpnMethods + */ +@JsonPropertyOrder({ + VpnMethods.JSON_PROPERTY_TIMEZONE_MISMATCH, + VpnMethods.JSON_PROPERTY_PUBLIC_VPN, + VpnMethods.JSON_PROPERTY_AUXILIARY_MOBILE, + VpnMethods.JSON_PROPERTY_OS_MISMATCH, + VpnMethods.JSON_PROPERTY_RELAY +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class VpnMethods { + public static final String JSON_PROPERTY_TIMEZONE_MISMATCH = "timezone_mismatch"; + @jakarta.annotation.Nullable + private Boolean timezoneMismatch; + + public static final String JSON_PROPERTY_PUBLIC_VPN = "public_vpn"; + @jakarta.annotation.Nullable + private Boolean publicVpn; + + public static final String JSON_PROPERTY_AUXILIARY_MOBILE = "auxiliary_mobile"; + @jakarta.annotation.Nullable + private Boolean auxiliaryMobile; + + public static final String JSON_PROPERTY_OS_MISMATCH = "os_mismatch"; + @jakarta.annotation.Nullable + private Boolean osMismatch; + + public static final String JSON_PROPERTY_RELAY = "relay"; + @jakarta.annotation.Nullable + private Boolean relay; + + public VpnMethods() { + } + + public VpnMethods timezoneMismatch(@jakarta.annotation.Nullable Boolean timezoneMismatch) { + this.timezoneMismatch = timezoneMismatch; + return this; + } + + /** + * The browser timezone doesn't match the timezone inferred from the request IP address. + * @return timezoneMismatch + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_TIMEZONE_MISMATCH, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getTimezoneMismatch() { + return timezoneMismatch; + } + + + @JsonProperty(value = JSON_PROPERTY_TIMEZONE_MISMATCH, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTimezoneMismatch(@jakarta.annotation.Nullable Boolean timezoneMismatch) { + this.timezoneMismatch = timezoneMismatch; + } + + + public VpnMethods publicVpn(@jakarta.annotation.Nullable Boolean publicVpn) { + this.publicVpn = publicVpn; + return this; + } + + /** + * Request IP address is owned and used by a public VPN service provider. + * @return publicVpn + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_PUBLIC_VPN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getPublicVpn() { + return publicVpn; + } + + + @JsonProperty(value = JSON_PROPERTY_PUBLIC_VPN, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPublicVpn(@jakarta.annotation.Nullable Boolean publicVpn) { + this.publicVpn = publicVpn; + } + + + public VpnMethods auxiliaryMobile(@jakarta.annotation.Nullable Boolean auxiliaryMobile) { + this.auxiliaryMobile = auxiliaryMobile; + return this; + } + + /** + * This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. + * @return auxiliaryMobile + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_AUXILIARY_MOBILE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getAuxiliaryMobile() { + return auxiliaryMobile; + } + + + @JsonProperty(value = JSON_PROPERTY_AUXILIARY_MOBILE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAuxiliaryMobile(@jakarta.annotation.Nullable Boolean auxiliaryMobile) { + this.auxiliaryMobile = auxiliaryMobile; + } + + + public VpnMethods osMismatch(@jakarta.annotation.Nullable Boolean osMismatch) { + this.osMismatch = osMismatch; + return this; + } + + /** + * The browser runs on a different operating system than the operating system inferred from the request network signature. + * @return osMismatch + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_OS_MISMATCH, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getOsMismatch() { + return osMismatch; + } + + + @JsonProperty(value = JSON_PROPERTY_OS_MISMATCH, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOsMismatch(@jakarta.annotation.Nullable Boolean osMismatch) { + this.osMismatch = osMismatch; + } + + + public VpnMethods relay(@jakarta.annotation.Nullable Boolean relay) { + this.relay = relay; + return this; + } + + /** + * Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. + * @return relay + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_RELAY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getRelay() { + return relay; + } + + + @JsonProperty(value = JSON_PROPERTY_RELAY, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRelay(@jakarta.annotation.Nullable Boolean relay) { + this.relay = relay; + } + + + /** + * Return true if this VpnMethods object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VpnMethods vpnMethods = (VpnMethods) o; + return Objects.equals(this.timezoneMismatch, vpnMethods.timezoneMismatch) && + Objects.equals(this.publicVpn, vpnMethods.publicVpn) && + Objects.equals(this.auxiliaryMobile, vpnMethods.auxiliaryMobile) && + Objects.equals(this.osMismatch, vpnMethods.osMismatch) && + Objects.equals(this.relay, vpnMethods.relay); + } + + @Override + public int hashCode() { + return Objects.hash(timezoneMismatch, publicVpn, auxiliaryMobile, osMismatch, relay); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VpnMethods {\n"); + sb.append(" timezoneMismatch: ").append(toIndentedString(timezoneMismatch)).append("\n"); + sb.append(" publicVpn: ").append(toIndentedString(publicVpn)).append("\n"); + sb.append(" auxiliaryMobile: ").append(toIndentedString(auxiliaryMobile)).append("\n"); + sb.append(" osMismatch: ").append(toIndentedString(osMismatch)).append("\n"); + sb.append(" relay: ").append(toIndentedString(relay)).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/Webhook.java b/sdk/src/main/java/com/fingerprint/model/Webhook.java deleted file mode 100644 index deb53a57..00000000 --- a/sdk/src/main/java/com/fingerprint/model/Webhook.java +++ /dev/null @@ -1,1598 +0,0 @@ -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.BotdBot; -import com.fingerprint.model.BrowserDetails; -import com.fingerprint.model.DeprecatedGeolocation; -import com.fingerprint.model.IdentificationConfidence; -import com.fingerprint.model.IdentificationSeenAt; -import com.fingerprint.model.RawDeviceAttribute; -import com.fingerprint.model.SDK; -import com.fingerprint.model.WebhookClonedApp; -import com.fingerprint.model.WebhookDeveloperTools; -import com.fingerprint.model.WebhookEmulator; -import com.fingerprint.model.WebhookFactoryReset; -import com.fingerprint.model.WebhookFrida; -import com.fingerprint.model.WebhookHighActivity; -import com.fingerprint.model.WebhookIPBlocklist; -import com.fingerprint.model.WebhookIPInfo; -import com.fingerprint.model.WebhookJailbroken; -import com.fingerprint.model.WebhookLocationSpoofing; -import com.fingerprint.model.WebhookMitMAttack; -import com.fingerprint.model.WebhookPrivacySettings; -import com.fingerprint.model.WebhookProximity; -import com.fingerprint.model.WebhookProxy; -import com.fingerprint.model.WebhookRemoteControl; -import com.fingerprint.model.WebhookRootApps; -import com.fingerprint.model.WebhookSupplementaryIDs; -import com.fingerprint.model.WebhookSuspectScore; -import com.fingerprint.model.WebhookTampering; -import com.fingerprint.model.WebhookTor; -import com.fingerprint.model.WebhookVPN; -import com.fingerprint.model.WebhookVelocity; -import com.fingerprint.model.WebhookVirtualMachine; -import java.time.OffsetDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Webhook - */ - - -@JsonPropertyOrder({ - Webhook.JSON_PROPERTY_REQUEST_ID, - Webhook.JSON_PROPERTY_URL, - Webhook.JSON_PROPERTY_IP, - Webhook.JSON_PROPERTY_ENVIRONMENT_ID, - Webhook.JSON_PROPERTY_TAG, - Webhook.JSON_PROPERTY_TIME, - Webhook.JSON_PROPERTY_TIMESTAMP, - Webhook.JSON_PROPERTY_IP_LOCATION, - Webhook.JSON_PROPERTY_LINKED_ID, - Webhook.JSON_PROPERTY_VISITOR_ID, - Webhook.JSON_PROPERTY_VISITOR_FOUND, - Webhook.JSON_PROPERTY_CONFIDENCE, - Webhook.JSON_PROPERTY_FIRST_SEEN_AT, - Webhook.JSON_PROPERTY_LAST_SEEN_AT, - Webhook.JSON_PROPERTY_BROWSER_DETAILS, - Webhook.JSON_PROPERTY_INCOGNITO, - Webhook.JSON_PROPERTY_CLIENT_REFERRER, - Webhook.JSON_PROPERTY_COMPONENTS, - Webhook.JSON_PROPERTY_BOT, - Webhook.JSON_PROPERTY_USER_AGENT, - Webhook.JSON_PROPERTY_ROOT_APPS, - Webhook.JSON_PROPERTY_EMULATOR, - Webhook.JSON_PROPERTY_IP_INFO, - Webhook.JSON_PROPERTY_IP_BLOCKLIST, - Webhook.JSON_PROPERTY_TOR, - Webhook.JSON_PROPERTY_VPN, - Webhook.JSON_PROPERTY_PROXY, - Webhook.JSON_PROPERTY_TAMPERING, - Webhook.JSON_PROPERTY_CLONED_APP, - Webhook.JSON_PROPERTY_FACTORY_RESET, - Webhook.JSON_PROPERTY_JAILBROKEN, - Webhook.JSON_PROPERTY_FRIDA, - Webhook.JSON_PROPERTY_PRIVACY_SETTINGS, - Webhook.JSON_PROPERTY_VIRTUAL_MACHINE, - Webhook.JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES, - Webhook.JSON_PROPERTY_HIGH_ACTIVITY, - Webhook.JSON_PROPERTY_LOCATION_SPOOFING, - Webhook.JSON_PROPERTY_SUSPECT_SCORE, - Webhook.JSON_PROPERTY_REMOTE_CONTROL, - Webhook.JSON_PROPERTY_VELOCITY, - Webhook.JSON_PROPERTY_DEVELOPER_TOOLS, - Webhook.JSON_PROPERTY_MITM_ATTACK, - Webhook.JSON_PROPERTY_REPLAYED, - Webhook.JSON_PROPERTY_SDK, - Webhook.JSON_PROPERTY_SUPPLEMENTARY_IDS, - Webhook.JSON_PROPERTY_PROXIMITY -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Webhook { - public static final String JSON_PROPERTY_REQUEST_ID = "requestId"; - private String requestId; - - public static final String JSON_PROPERTY_URL = "url"; - private String url; - - public static final String JSON_PROPERTY_IP = "ip"; - private String ip; - - public static final String JSON_PROPERTY_ENVIRONMENT_ID = "environmentId"; - private String environmentId; - - public static final String JSON_PROPERTY_TAG = "tag"; - private Map tag = null; - - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; - private Long timestamp; - - public static final String JSON_PROPERTY_IP_LOCATION = "ipLocation"; - private DeprecatedGeolocation ipLocation; - - public static final String JSON_PROPERTY_LINKED_ID = "linkedId"; - private String linkedId; - - public static final String JSON_PROPERTY_VISITOR_ID = "visitorId"; - private String visitorId; - - public static final String JSON_PROPERTY_VISITOR_FOUND = "visitorFound"; - private Boolean visitorFound; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private IdentificationConfidence confidence; - - public static final String JSON_PROPERTY_FIRST_SEEN_AT = "firstSeenAt"; - private IdentificationSeenAt firstSeenAt; - - public static final String JSON_PROPERTY_LAST_SEEN_AT = "lastSeenAt"; - private IdentificationSeenAt lastSeenAt; - - public static final String JSON_PROPERTY_BROWSER_DETAILS = "browserDetails"; - private BrowserDetails browserDetails; - - public static final String JSON_PROPERTY_INCOGNITO = "incognito"; - private Boolean incognito; - - public static final String JSON_PROPERTY_CLIENT_REFERRER = "clientReferrer"; - private String clientReferrer; - - public static final String JSON_PROPERTY_COMPONENTS = "components"; - private Map components = null; - - public static final String JSON_PROPERTY_BOT = "bot"; - private BotdBot bot; - - public static final String JSON_PROPERTY_USER_AGENT = "userAgent"; - private String userAgent; - - public static final String JSON_PROPERTY_ROOT_APPS = "rootApps"; - private WebhookRootApps rootApps; - - public static final String JSON_PROPERTY_EMULATOR = "emulator"; - private WebhookEmulator emulator; - - public static final String JSON_PROPERTY_IP_INFO = "ipInfo"; - private WebhookIPInfo ipInfo; - - public static final String JSON_PROPERTY_IP_BLOCKLIST = "ipBlocklist"; - private WebhookIPBlocklist ipBlocklist; - - public static final String JSON_PROPERTY_TOR = "tor"; - private WebhookTor tor; - - public static final String JSON_PROPERTY_VPN = "vpn"; - private WebhookVPN vpn; - - public static final String JSON_PROPERTY_PROXY = "proxy"; - private WebhookProxy proxy; - - public static final String JSON_PROPERTY_TAMPERING = "tampering"; - private WebhookTampering tampering; - - public static final String JSON_PROPERTY_CLONED_APP = "clonedApp"; - private WebhookClonedApp clonedApp; - - public static final String JSON_PROPERTY_FACTORY_RESET = "factoryReset"; - private WebhookFactoryReset factoryReset; - - public static final String JSON_PROPERTY_JAILBROKEN = "jailbroken"; - private WebhookJailbroken jailbroken; - - public static final String JSON_PROPERTY_FRIDA = "frida"; - private WebhookFrida frida; - - public static final String JSON_PROPERTY_PRIVACY_SETTINGS = "privacySettings"; - private WebhookPrivacySettings privacySettings; - - public static final String JSON_PROPERTY_VIRTUAL_MACHINE = "virtualMachine"; - private WebhookVirtualMachine virtualMachine; - - public static final String JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES = "rawDeviceAttributes"; - private Map rawDeviceAttributes = null; - - public static final String JSON_PROPERTY_HIGH_ACTIVITY = "highActivity"; - private WebhookHighActivity highActivity; - - public static final String JSON_PROPERTY_LOCATION_SPOOFING = "locationSpoofing"; - private WebhookLocationSpoofing locationSpoofing; - - public static final String JSON_PROPERTY_SUSPECT_SCORE = "suspectScore"; - private WebhookSuspectScore suspectScore; - - public static final String JSON_PROPERTY_REMOTE_CONTROL = "remoteControl"; - private WebhookRemoteControl remoteControl; - - public static final String JSON_PROPERTY_VELOCITY = "velocity"; - private WebhookVelocity velocity; - - public static final String JSON_PROPERTY_DEVELOPER_TOOLS = "developerTools"; - private WebhookDeveloperTools developerTools; - - public static final String JSON_PROPERTY_MITM_ATTACK = "mitmAttack"; - private WebhookMitMAttack mitmAttack; - - public static final String JSON_PROPERTY_REPLAYED = "replayed"; - private Boolean replayed; - - public static final String JSON_PROPERTY_SDK = "sdk"; - private SDK sdk; - - public static final String JSON_PROPERTY_SUPPLEMENTARY_IDS = "supplementaryIds"; - private WebhookSupplementaryIDs supplementaryIds; - - public static final String JSON_PROPERTY_PROXIMITY = "proximity"; - private WebhookProximity proximity; - - public Webhook() { - } - - public Webhook requestId(String requestId) { - this.requestId = requestId; - return this; - } - - /** - * Unique identifier of the user's request. - * @return requestId - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Unique identifier of the user's request.") - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getRequestId() { - return requestId; - } - - - @JsonProperty(JSON_PROPERTY_REQUEST_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - - public Webhook url(String url) { - this.url = url; - return this; - } - - /** - * Page URL from which the request was sent. - * @return url - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Page URL from which the request was sent.") - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getUrl() { - return url; - } - - - @JsonProperty(JSON_PROPERTY_URL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setUrl(String url) { - this.url = url; - } - - - public Webhook ip(String ip) { - this.ip = ip; - return this; - } - - /** - * IP address of the requesting browser or bot. - * @return ip - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "IP address of the requesting browser or bot.") - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getIp() { - return ip; - } - - - @JsonProperty(JSON_PROPERTY_IP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setIp(String ip) { - this.ip = ip; - } - - - public Webhook environmentId(String environmentId) { - this.environmentId = environmentId; - return this; - } - - /** - * Environment ID of the event. - * @return environmentId - **/ - @jakarta.annotation.Nullable - @Schema(description = "Environment ID of the event.") - @JsonProperty(JSON_PROPERTY_ENVIRONMENT_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getEnvironmentId() { - return environmentId; - } - - - @JsonProperty(JSON_PROPERTY_ENVIRONMENT_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEnvironmentId(String environmentId) { - this.environmentId = environmentId; - } - - - public Webhook tag(Map tag) { - this.tag = tag; - return this; - } - - public Webhook puttagItem(String key, Object tagItem) { - if (this.tag == null) { - this.tag = new HashMap<>(); - } - this.tag.put(key, tagItem); - return this; - } - - /** - * A customer-provided value or an object that was sent with identification request. - * @return tag - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided value or an object that was sent with identification request.") - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - - public Map getTag() { - return tag; - } - - - @JsonProperty(JSON_PROPERTY_TAG) - @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) - public void setTag(Map tag) { - this.tag = tag; - } - - - public Webhook time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible. - * @return time - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Time expressed according to ISO 8601 in UTC format, when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible.") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public Webhook timestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - /** - * Timestamp of the event with millisecond precision in Unix time. - * @return timestamp - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Timestamp of the event with millisecond precision in Unix time.") - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Long getTimestamp() { - return timestamp; - } - - - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - - public Webhook ipLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - return this; - } - - /** - * Get ipLocation - * @return ipLocation - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public DeprecatedGeolocation getIpLocation() { - return ipLocation; - } - - - @JsonProperty(JSON_PROPERTY_IP_LOCATION) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpLocation(DeprecatedGeolocation ipLocation) { - this.ipLocation = ipLocation; - } - - - public Webhook linkedId(String linkedId) { - this.linkedId = linkedId; - return this; - } - - /** - * A customer-provided id that was sent with the request. - * @return linkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "A customer-provided id that was sent with the request.") - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getLinkedId() { - return linkedId; - } - - - @JsonProperty(JSON_PROPERTY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLinkedId(String linkedId) { - this.linkedId = linkedId; - } - - - public Webhook visitorId(String visitorId) { - this.visitorId = visitorId; - return this; - } - - /** - * String of 20 characters that uniquely identifies the visitor's browser or mobile device. - * @return visitorId - **/ - @jakarta.annotation.Nullable - @Schema(description = "String of 20 characters that uniquely identifies the visitor's browser or mobile device.") - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getVisitorId() { - return visitorId; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVisitorId(String visitorId) { - this.visitorId = visitorId; - } - - - public Webhook visitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - return this; - } - - /** - * Attribute represents if a visitor had been identified before. - * @return visitorFound - **/ - @jakarta.annotation.Nullable - @Schema(description = "Attribute represents if a visitor had been identified before.") - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getVisitorFound() { - return visitorFound; - } - - - @JsonProperty(JSON_PROPERTY_VISITOR_FOUND) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVisitorFound(Boolean visitorFound) { - this.visitorFound = visitorFound; - } - - - public Webhook confidence(IdentificationConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(IdentificationConfidence confidence) { - this.confidence = confidence; - } - - - public Webhook firstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - return this; - } - - /** - * Get firstSeenAt - * @return firstSeenAt - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationSeenAt getFirstSeenAt() { - return firstSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFirstSeenAt(IdentificationSeenAt firstSeenAt) { - this.firstSeenAt = firstSeenAt; - } - - - public Webhook lastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - return this; - } - - /** - * Get lastSeenAt - * @return lastSeenAt - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IdentificationSeenAt getLastSeenAt() { - return lastSeenAt; - } - - - @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLastSeenAt(IdentificationSeenAt lastSeenAt) { - this.lastSeenAt = lastSeenAt; - } - - - public Webhook browserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - return this; - } - - /** - * Get browserDetails - * @return browserDetails - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public BrowserDetails getBrowserDetails() { - return browserDetails; - } - - - @JsonProperty(JSON_PROPERTY_BROWSER_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setBrowserDetails(BrowserDetails browserDetails) { - this.browserDetails = browserDetails; - } - - - public Webhook incognito(Boolean incognito) { - this.incognito = incognito; - return this; - } - - /** - * Flag if user used incognito session. - * @return incognito - **/ - @jakarta.annotation.Nullable - @Schema(description = "Flag if user used incognito session.") - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getIncognito() { - return incognito; - } - - - @JsonProperty(JSON_PROPERTY_INCOGNITO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIncognito(Boolean incognito) { - this.incognito = incognito; - } - - - public Webhook clientReferrer(String clientReferrer) { - this.clientReferrer = clientReferrer; - return this; - } - - /** - * Get clientReferrer - * @return clientReferrer - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CLIENT_REFERRER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getClientReferrer() { - return clientReferrer; - } - - - @JsonProperty(JSON_PROPERTY_CLIENT_REFERRER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setClientReferrer(String clientReferrer) { - this.clientReferrer = clientReferrer; - } - - - public Webhook components(Map components) { - this.components = components; - return this; - } - - public Webhook putcomponentsItem(String key, RawDeviceAttribute componentsItem) { - if (this.components == null) { - this.components = new HashMap<>(); - } - this.components.put(key, componentsItem); - return this; - } - - /** - * It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. - * @return components - **/ - @jakarta.annotation.Nullable - @Schema(description = "It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. ") - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Map getComponents() { - return components; - } - - - @JsonProperty(JSON_PROPERTY_COMPONENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setComponents(Map components) { - this.components = components; - } - - - public Webhook bot(BotdBot bot) { - this.bot = bot; - return this; - } - - /** - * Get bot - * @return bot - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_BOT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public BotdBot getBot() { - return bot; - } - - - @JsonProperty(JSON_PROPERTY_BOT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setBot(BotdBot bot) { - this.bot = bot; - } - - - public Webhook userAgent(String userAgent) { - this.userAgent = userAgent; - return this; - } - - /** - * Get userAgent - * @return userAgent - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getUserAgent() { - return userAgent; - } - - - @JsonProperty(JSON_PROPERTY_USER_AGENT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUserAgent(String userAgent) { - this.userAgent = userAgent; - } - - - public Webhook rootApps(WebhookRootApps rootApps) { - this.rootApps = rootApps; - return this; - } - - /** - * Get rootApps - * @return rootApps - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_ROOT_APPS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookRootApps getRootApps() { - return rootApps; - } - - - @JsonProperty(JSON_PROPERTY_ROOT_APPS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRootApps(WebhookRootApps rootApps) { - this.rootApps = rootApps; - } - - - public Webhook emulator(WebhookEmulator emulator) { - this.emulator = emulator; - return this; - } - - /** - * Get emulator - * @return emulator - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_EMULATOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookEmulator getEmulator() { - return emulator; - } - - - @JsonProperty(JSON_PROPERTY_EMULATOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEmulator(WebhookEmulator emulator) { - this.emulator = emulator; - } - - - public Webhook ipInfo(WebhookIPInfo ipInfo) { - this.ipInfo = ipInfo; - return this; - } - - /** - * Get ipInfo - * @return ipInfo - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_INFO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookIPInfo getIpInfo() { - return ipInfo; - } - - - @JsonProperty(JSON_PROPERTY_IP_INFO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpInfo(WebhookIPInfo ipInfo) { - this.ipInfo = ipInfo; - } - - - public Webhook ipBlocklist(WebhookIPBlocklist ipBlocklist) { - this.ipBlocklist = ipBlocklist; - return this; - } - - /** - * Get ipBlocklist - * @return ipBlocklist - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_BLOCKLIST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookIPBlocklist getIpBlocklist() { - return ipBlocklist; - } - - - @JsonProperty(JSON_PROPERTY_IP_BLOCKLIST) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpBlocklist(WebhookIPBlocklist ipBlocklist) { - this.ipBlocklist = ipBlocklist; - } - - - public Webhook tor(WebhookTor tor) { - this.tor = tor; - return this; - } - - /** - * Get tor - * @return tor - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookTor getTor() { - return tor; - } - - - @JsonProperty(JSON_PROPERTY_TOR) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTor(WebhookTor tor) { - this.tor = tor; - } - - - public Webhook vpn(WebhookVPN vpn) { - this.vpn = vpn; - return this; - } - - /** - * Get vpn - * @return vpn - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VPN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookVPN getVpn() { - return vpn; - } - - - @JsonProperty(JSON_PROPERTY_VPN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVpn(WebhookVPN vpn) { - this.vpn = vpn; - } - - - public Webhook proxy(WebhookProxy proxy) { - this.proxy = proxy; - return this; - } - - /** - * Get proxy - * @return proxy - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PROXY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookProxy getProxy() { - return proxy; - } - - - @JsonProperty(JSON_PROPERTY_PROXY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setProxy(WebhookProxy proxy) { - this.proxy = proxy; - } - - - public Webhook tampering(WebhookTampering tampering) { - this.tampering = tampering; - return this; - } - - /** - * Get tampering - * @return tampering - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_TAMPERING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookTampering getTampering() { - return tampering; - } - - - @JsonProperty(JSON_PROPERTY_TAMPERING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTampering(WebhookTampering tampering) { - this.tampering = tampering; - } - - - public Webhook clonedApp(WebhookClonedApp clonedApp) { - this.clonedApp = clonedApp; - return this; - } - - /** - * Get clonedApp - * @return clonedApp - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CLONED_APP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookClonedApp getClonedApp() { - return clonedApp; - } - - - @JsonProperty(JSON_PROPERTY_CLONED_APP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setClonedApp(WebhookClonedApp clonedApp) { - this.clonedApp = clonedApp; - } - - - public Webhook factoryReset(WebhookFactoryReset factoryReset) { - this.factoryReset = factoryReset; - return this; - } - - /** - * Get factoryReset - * @return factoryReset - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FACTORY_RESET) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookFactoryReset getFactoryReset() { - return factoryReset; - } - - - @JsonProperty(JSON_PROPERTY_FACTORY_RESET) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFactoryReset(WebhookFactoryReset factoryReset) { - this.factoryReset = factoryReset; - } - - - public Webhook jailbroken(WebhookJailbroken jailbroken) { - this.jailbroken = jailbroken; - return this; - } - - /** - * Get jailbroken - * @return jailbroken - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_JAILBROKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookJailbroken getJailbroken() { - return jailbroken; - } - - - @JsonProperty(JSON_PROPERTY_JAILBROKEN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setJailbroken(WebhookJailbroken jailbroken) { - this.jailbroken = jailbroken; - } - - - public Webhook frida(WebhookFrida frida) { - this.frida = frida; - return this; - } - - /** - * Get frida - * @return frida - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_FRIDA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookFrida getFrida() { - return frida; - } - - - @JsonProperty(JSON_PROPERTY_FRIDA) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setFrida(WebhookFrida frida) { - this.frida = frida; - } - - - public Webhook privacySettings(WebhookPrivacySettings privacySettings) { - this.privacySettings = privacySettings; - return this; - } - - /** - * Get privacySettings - * @return privacySettings - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PRIVACY_SETTINGS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookPrivacySettings getPrivacySettings() { - return privacySettings; - } - - - @JsonProperty(JSON_PROPERTY_PRIVACY_SETTINGS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrivacySettings(WebhookPrivacySettings privacySettings) { - this.privacySettings = privacySettings; - } - - - public Webhook virtualMachine(WebhookVirtualMachine virtualMachine) { - this.virtualMachine = virtualMachine; - return this; - } - - /** - * Get virtualMachine - * @return virtualMachine - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VIRTUAL_MACHINE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookVirtualMachine getVirtualMachine() { - return virtualMachine; - } - - - @JsonProperty(JSON_PROPERTY_VIRTUAL_MACHINE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVirtualMachine(WebhookVirtualMachine virtualMachine) { - this.virtualMachine = virtualMachine; - } - - - public Webhook rawDeviceAttributes(Map rawDeviceAttributes) { - this.rawDeviceAttributes = rawDeviceAttributes; - return this; - } - - public Webhook putrawDeviceAttributesItem(String key, RawDeviceAttribute rawDeviceAttributesItem) { - if (this.rawDeviceAttributes == null) { - this.rawDeviceAttributes = new HashMap<>(); - } - this.rawDeviceAttributes.put(key, rawDeviceAttributesItem); - return this; - } - - /** - * It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. - * @return rawDeviceAttributes - **/ - @jakarta.annotation.Nullable - @Schema(description = "It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here. ") - @JsonProperty(JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Map getRawDeviceAttributes() { - return rawDeviceAttributes; - } - - - @JsonProperty(JSON_PROPERTY_RAW_DEVICE_ATTRIBUTES) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRawDeviceAttributes(Map rawDeviceAttributes) { - this.rawDeviceAttributes = rawDeviceAttributes; - } - - - public Webhook highActivity(WebhookHighActivity highActivity) { - this.highActivity = highActivity; - return this; - } - - /** - * Get highActivity - * @return highActivity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_HIGH_ACTIVITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookHighActivity getHighActivity() { - return highActivity; - } - - - @JsonProperty(JSON_PROPERTY_HIGH_ACTIVITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setHighActivity(WebhookHighActivity highActivity) { - this.highActivity = highActivity; - } - - - public Webhook locationSpoofing(WebhookLocationSpoofing locationSpoofing) { - this.locationSpoofing = locationSpoofing; - return this; - } - - /** - * Get locationSpoofing - * @return locationSpoofing - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_LOCATION_SPOOFING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookLocationSpoofing getLocationSpoofing() { - return locationSpoofing; - } - - - @JsonProperty(JSON_PROPERTY_LOCATION_SPOOFING) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLocationSpoofing(WebhookLocationSpoofing locationSpoofing) { - this.locationSpoofing = locationSpoofing; - } - - - public Webhook suspectScore(WebhookSuspectScore suspectScore) { - this.suspectScore = suspectScore; - return this; - } - - /** - * Get suspectScore - * @return suspectScore - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SUSPECT_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookSuspectScore getSuspectScore() { - return suspectScore; - } - - - @JsonProperty(JSON_PROPERTY_SUSPECT_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSuspectScore(WebhookSuspectScore suspectScore) { - this.suspectScore = suspectScore; - } - - - public Webhook remoteControl(WebhookRemoteControl remoteControl) { - this.remoteControl = remoteControl; - return this; - } - - /** - * Get remoteControl - * @return remoteControl - * @deprecated - **/ - @Deprecated - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_REMOTE_CONTROL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookRemoteControl getRemoteControl() { - return remoteControl; - } - - - @JsonProperty(JSON_PROPERTY_REMOTE_CONTROL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRemoteControl(WebhookRemoteControl remoteControl) { - this.remoteControl = remoteControl; - } - - - public Webhook velocity(WebhookVelocity velocity) { - this.velocity = velocity; - return this; - } - - /** - * Get velocity - * @return velocity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_VELOCITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookVelocity getVelocity() { - return velocity; - } - - - @JsonProperty(JSON_PROPERTY_VELOCITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVelocity(WebhookVelocity velocity) { - this.velocity = velocity; - } - - - public Webhook developerTools(WebhookDeveloperTools developerTools) { - this.developerTools = developerTools; - return this; - } - - /** - * Get developerTools - * @return developerTools - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DEVELOPER_TOOLS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookDeveloperTools getDeveloperTools() { - return developerTools; - } - - - @JsonProperty(JSON_PROPERTY_DEVELOPER_TOOLS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDeveloperTools(WebhookDeveloperTools developerTools) { - this.developerTools = developerTools; - } - - - public Webhook mitmAttack(WebhookMitMAttack mitmAttack) { - this.mitmAttack = mitmAttack; - return this; - } - - /** - * Get mitmAttack - * @return mitmAttack - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_MITM_ATTACK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookMitMAttack getMitmAttack() { - return mitmAttack; - } - - - @JsonProperty(JSON_PROPERTY_MITM_ATTACK) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setMitmAttack(WebhookMitMAttack mitmAttack) { - this.mitmAttack = mitmAttack; - } - - - public Webhook replayed(Boolean replayed) { - this.replayed = replayed; - return this; - } - - /** - * `true` if we determined that this payload was replayed, `false` otherwise. - * @return replayed - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if we determined that this payload was replayed, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_REPLAYED) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getReplayed() { - return replayed; - } - - - @JsonProperty(JSON_PROPERTY_REPLAYED) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setReplayed(Boolean replayed) { - this.replayed = replayed; - } - - - public Webhook sdk(SDK sdk) { - this.sdk = sdk; - return this; - } - - /** - * Get sdk - * @return sdk - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_SDK) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public SDK getSdk() { - return sdk; - } - - - @JsonProperty(JSON_PROPERTY_SDK) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setSdk(SDK sdk) { - this.sdk = sdk; - } - - - public Webhook supplementaryIds(WebhookSupplementaryIDs supplementaryIds) { - this.supplementaryIds = supplementaryIds; - return this; - } - - /** - * Get supplementaryIds - * @return supplementaryIds - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_SUPPLEMENTARY_IDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookSupplementaryIDs getSupplementaryIds() { - return supplementaryIds; - } - - - @JsonProperty(JSON_PROPERTY_SUPPLEMENTARY_IDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setSupplementaryIds(WebhookSupplementaryIDs supplementaryIds) { - this.supplementaryIds = supplementaryIds; - } - - - public Webhook proximity(WebhookProximity proximity) { - this.proximity = proximity; - return this; - } - - /** - * Get proximity - * @return proximity - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_PROXIMITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public WebhookProximity getProximity() { - return proximity; - } - - - @JsonProperty(JSON_PROPERTY_PROXIMITY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setProximity(WebhookProximity proximity) { - this.proximity = proximity; - } - - - /** - * Return true if this Webhook object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Webhook webhook = (Webhook) o; - return Objects.equals(this.requestId, webhook.requestId) && - Objects.equals(this.url, webhook.url) && - Objects.equals(this.ip, webhook.ip) && - Objects.equals(this.environmentId, webhook.environmentId) && - Objects.equals(this.tag, webhook.tag) && - Objects.equals(this.time, webhook.time) && - Objects.equals(this.timestamp, webhook.timestamp) && - Objects.equals(this.ipLocation, webhook.ipLocation) && - Objects.equals(this.linkedId, webhook.linkedId) && - Objects.equals(this.visitorId, webhook.visitorId) && - Objects.equals(this.visitorFound, webhook.visitorFound) && - Objects.equals(this.confidence, webhook.confidence) && - Objects.equals(this.firstSeenAt, webhook.firstSeenAt) && - Objects.equals(this.lastSeenAt, webhook.lastSeenAt) && - Objects.equals(this.browserDetails, webhook.browserDetails) && - Objects.equals(this.incognito, webhook.incognito) && - Objects.equals(this.clientReferrer, webhook.clientReferrer) && - Objects.equals(this.components, webhook.components) && - Objects.equals(this.bot, webhook.bot) && - Objects.equals(this.userAgent, webhook.userAgent) && - Objects.equals(this.rootApps, webhook.rootApps) && - Objects.equals(this.emulator, webhook.emulator) && - Objects.equals(this.ipInfo, webhook.ipInfo) && - Objects.equals(this.ipBlocklist, webhook.ipBlocklist) && - Objects.equals(this.tor, webhook.tor) && - Objects.equals(this.vpn, webhook.vpn) && - Objects.equals(this.proxy, webhook.proxy) && - Objects.equals(this.tampering, webhook.tampering) && - Objects.equals(this.clonedApp, webhook.clonedApp) && - Objects.equals(this.factoryReset, webhook.factoryReset) && - Objects.equals(this.jailbroken, webhook.jailbroken) && - Objects.equals(this.frida, webhook.frida) && - Objects.equals(this.privacySettings, webhook.privacySettings) && - Objects.equals(this.virtualMachine, webhook.virtualMachine) && - Objects.equals(this.rawDeviceAttributes, webhook.rawDeviceAttributes) && - Objects.equals(this.highActivity, webhook.highActivity) && - Objects.equals(this.locationSpoofing, webhook.locationSpoofing) && - Objects.equals(this.suspectScore, webhook.suspectScore) && - Objects.equals(this.remoteControl, webhook.remoteControl) && - Objects.equals(this.velocity, webhook.velocity) && - Objects.equals(this.developerTools, webhook.developerTools) && - Objects.equals(this.mitmAttack, webhook.mitmAttack) && - Objects.equals(this.replayed, webhook.replayed) && - Objects.equals(this.sdk, webhook.sdk) && - Objects.equals(this.supplementaryIds, webhook.supplementaryIds) && - Objects.equals(this.proximity, webhook.proximity); - } - - @Override - public int hashCode() { - return Objects.hash(requestId, url, ip, environmentId, tag, time, timestamp, ipLocation, linkedId, visitorId, visitorFound, confidence, firstSeenAt, lastSeenAt, browserDetails, incognito, clientReferrer, components, bot, userAgent, rootApps, emulator, ipInfo, ipBlocklist, tor, vpn, proxy, tampering, clonedApp, factoryReset, jailbroken, frida, privacySettings, virtualMachine, rawDeviceAttributes, highActivity, locationSpoofing, suspectScore, remoteControl, velocity, developerTools, mitmAttack, replayed, sdk, supplementaryIds, proximity); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Webhook {\n"); - sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append(" ip: ").append(toIndentedString(ip)).append("\n"); - sb.append(" environmentId: ").append(toIndentedString(environmentId)).append("\n"); - sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); - sb.append(" ipLocation: ").append(toIndentedString(ipLocation)).append("\n"); - sb.append(" linkedId: ").append(toIndentedString(linkedId)).append("\n"); - sb.append(" visitorId: ").append(toIndentedString(visitorId)).append("\n"); - sb.append(" visitorFound: ").append(toIndentedString(visitorFound)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); - sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).append("\n"); - sb.append(" browserDetails: ").append(toIndentedString(browserDetails)).append("\n"); - sb.append(" incognito: ").append(toIndentedString(incognito)).append("\n"); - sb.append(" clientReferrer: ").append(toIndentedString(clientReferrer)).append("\n"); - sb.append(" components: ").append(toIndentedString(components)).append("\n"); - sb.append(" bot: ").append(toIndentedString(bot)).append("\n"); - sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); - sb.append(" rootApps: ").append(toIndentedString(rootApps)).append("\n"); - sb.append(" emulator: ").append(toIndentedString(emulator)).append("\n"); - sb.append(" ipInfo: ").append(toIndentedString(ipInfo)).append("\n"); - sb.append(" ipBlocklist: ").append(toIndentedString(ipBlocklist)).append("\n"); - sb.append(" tor: ").append(toIndentedString(tor)).append("\n"); - sb.append(" vpn: ").append(toIndentedString(vpn)).append("\n"); - sb.append(" proxy: ").append(toIndentedString(proxy)).append("\n"); - sb.append(" tampering: ").append(toIndentedString(tampering)).append("\n"); - sb.append(" clonedApp: ").append(toIndentedString(clonedApp)).append("\n"); - sb.append(" factoryReset: ").append(toIndentedString(factoryReset)).append("\n"); - sb.append(" jailbroken: ").append(toIndentedString(jailbroken)).append("\n"); - sb.append(" frida: ").append(toIndentedString(frida)).append("\n"); - sb.append(" privacySettings: ").append(toIndentedString(privacySettings)).append("\n"); - sb.append(" virtualMachine: ").append(toIndentedString(virtualMachine)).append("\n"); - sb.append(" rawDeviceAttributes: ").append(toIndentedString(rawDeviceAttributes)).append("\n"); - sb.append(" highActivity: ").append(toIndentedString(highActivity)).append("\n"); - sb.append(" locationSpoofing: ").append(toIndentedString(locationSpoofing)).append("\n"); - sb.append(" suspectScore: ").append(toIndentedString(suspectScore)).append("\n"); - sb.append(" remoteControl: ").append(toIndentedString(remoteControl)).append("\n"); - sb.append(" velocity: ").append(toIndentedString(velocity)).append("\n"); - sb.append(" developerTools: ").append(toIndentedString(developerTools)).append("\n"); - sb.append(" mitmAttack: ").append(toIndentedString(mitmAttack)).append("\n"); - sb.append(" replayed: ").append(toIndentedString(replayed)).append("\n"); - sb.append(" sdk: ").append(toIndentedString(sdk)).append("\n"); - sb.append(" supplementaryIds: ").append(toIndentedString(supplementaryIds)).append("\n"); - sb.append(" proximity: ").append(toIndentedString(proximity)).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/WebhookClonedApp.java b/sdk/src/main/java/com/fingerprint/model/WebhookClonedApp.java deleted file mode 100644 index cd489732..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookClonedApp.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookClonedApp - */ - - -@JsonPropertyOrder({ - WebhookClonedApp.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookClonedApp { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookClonedApp() { - } - - public WebhookClonedApp result(Boolean result) { - this.result = result; - return this; - } - - /** - * 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. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "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. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookClonedApp object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookClonedApp webhookClonedApp = (WebhookClonedApp) o; - return Objects.equals(this.result, webhookClonedApp.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookClonedApp {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookDeveloperTools.java b/sdk/src/main/java/com/fingerprint/model/WebhookDeveloperTools.java deleted file mode 100644 index 5fcda1a5..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookDeveloperTools.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookDeveloperTools - */ - - -@JsonPropertyOrder({ - WebhookDeveloperTools.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookDeveloperTools { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookDeveloperTools() { - } - - public WebhookDeveloperTools result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookDeveloperTools object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookDeveloperTools webhookDeveloperTools = (WebhookDeveloperTools) o; - return Objects.equals(this.result, webhookDeveloperTools.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookDeveloperTools {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookEmulator.java b/sdk/src/main/java/com/fingerprint/model/WebhookEmulator.java deleted file mode 100644 index ed994f12..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookEmulator.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookEmulator - */ - - -@JsonPropertyOrder({ - WebhookEmulator.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookEmulator { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookEmulator() { - } - - public WebhookEmulator result(Boolean result) { - this.result = result; - return this; - } - - /** - * 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. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "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. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookEmulator object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookEmulator webhookEmulator = (WebhookEmulator) o; - return Objects.equals(this.result, webhookEmulator.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookEmulator {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookFactoryReset.java b/sdk/src/main/java/com/fingerprint/model/WebhookFactoryReset.java deleted file mode 100644 index 4fbc15f1..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookFactoryReset.java +++ /dev/null @@ -1,130 +0,0 @@ -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 java.time.OffsetDateTime; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookFactoryReset - */ - - -@JsonPropertyOrder({ - WebhookFactoryReset.JSON_PROPERTY_TIME, - WebhookFactoryReset.JSON_PROPERTY_TIMESTAMP -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookFactoryReset { - public static final String JSON_PROPERTY_TIME = "time"; - private OffsetDateTime time; - - public static final String JSON_PROPERTY_TIMESTAMP = "timestamp"; - private Long timestamp; - - public WebhookFactoryReset() { - } - - public WebhookFactoryReset time(OffsetDateTime time) { - this.time = time; - return this; - } - - /** - * Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. - * @return time - **/ - @jakarta.annotation.Nullable - @Schema(description = "Indicates the time (in UTC) of the most recent factory reset that happened on the **mobile device**. When a factory reset cannot be detected on the mobile device or when the request is initiated from a browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 UTC). See [Factory Reset Detection](https://dev.fingerprint.com/docs/smart-signals-overview#factory-reset-detection) to learn more about this Smart Signal. ") - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public OffsetDateTime getTime() { - return time; - } - - - @JsonProperty(JSON_PROPERTY_TIME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTime(OffsetDateTime time) { - this.time = time; - } - - - public WebhookFactoryReset timestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - /** - * This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. - * @return timestamp - **/ - @jakarta.annotation.Nullable - @Schema(description = "This field is just another representation of the value in the `time` field. The time of the most recent factory reset that happened on the **mobile device** is expressed as Unix epoch time. ") - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getTimestamp() { - return timestamp; - } - - - @JsonProperty(JSON_PROPERTY_TIMESTAMP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTimestamp(Long timestamp) { - this.timestamp = timestamp; - } - - - /** - * Return true if this WebhookFactoryReset object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookFactoryReset webhookFactoryReset = (WebhookFactoryReset) o; - return Objects.equals(this.time, webhookFactoryReset.time) && - Objects.equals(this.timestamp, webhookFactoryReset.timestamp); - } - - @Override - public int hashCode() { - return Objects.hash(time, timestamp); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookFactoryReset {\n"); - sb.append(" time: ").append(toIndentedString(time)).append("\n"); - sb.append(" timestamp: ").append(toIndentedString(timestamp)).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/WebhookFrida.java b/sdk/src/main/java/com/fingerprint/model/WebhookFrida.java deleted file mode 100644 index e382ca97..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookFrida.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookFrida - */ - - -@JsonPropertyOrder({ - WebhookFrida.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookFrida { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookFrida() { - } - - public WebhookFrida result(Boolean result) { - this.result = result; - return this; - } - - /** - * [Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "[Frida](https://frida.re/docs/) detection for Android and iOS devices. There are 2 values: * `true` - Frida detected * `false` - No signs of Frida or the client is not a mobile device. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookFrida object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookFrida webhookFrida = (WebhookFrida) o; - return Objects.equals(this.result, webhookFrida.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookFrida {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookHighActivity.java b/sdk/src/main/java/com/fingerprint/model/WebhookHighActivity.java deleted file mode 100644 index f60d98ed..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookHighActivity.java +++ /dev/null @@ -1,130 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookHighActivity - */ - - -@JsonPropertyOrder({ - WebhookHighActivity.JSON_PROPERTY_RESULT, - WebhookHighActivity.JSON_PROPERTY_DAILY_REQUESTS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookHighActivity { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_DAILY_REQUESTS = "dailyRequests"; - private Long dailyRequests; - - public WebhookHighActivity() { - } - - public WebhookHighActivity result(Boolean result) { - this.result = result; - return this; - } - - /** - * Flag indicating if the request came from a high-activity visitor. - * @return result - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "Flag indicating if the request came from a high-activity visitor.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setResult(Boolean result) { - this.result = result; - } - - - public WebhookHighActivity dailyRequests(Long dailyRequests) { - this.dailyRequests = dailyRequests; - return this; - } - - /** - * Number of requests from the same visitor in the previous day. - * minimum: 1 - * @return dailyRequests - **/ - @jakarta.annotation.Nullable - @Schema(description = "Number of requests from the same visitor in the previous day.") - @JsonProperty(JSON_PROPERTY_DAILY_REQUESTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Long getDailyRequests() { - return dailyRequests; - } - - - @JsonProperty(JSON_PROPERTY_DAILY_REQUESTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDailyRequests(Long dailyRequests) { - this.dailyRequests = dailyRequests; - } - - - /** - * Return true if this WebhookHighActivity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookHighActivity webhookHighActivity = (WebhookHighActivity) o; - return Objects.equals(this.result, webhookHighActivity.result) && - Objects.equals(this.dailyRequests, webhookHighActivity.dailyRequests); - } - - @Override - public int hashCode() { - return Objects.hash(result, dailyRequests); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookHighActivity {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" dailyRequests: ").append(toIndentedString(dailyRequests)).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/WebhookIPBlocklist.java b/sdk/src/main/java/com/fingerprint/model/WebhookIPBlocklist.java deleted file mode 100644 index df2bddc1..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookIPBlocklist.java +++ /dev/null @@ -1,130 +0,0 @@ -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.IPBlocklistDetails; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookIPBlocklist - */ - - -@JsonPropertyOrder({ - WebhookIPBlocklist.JSON_PROPERTY_RESULT, - WebhookIPBlocklist.JSON_PROPERTY_DETAILS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookIPBlocklist { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_DETAILS = "details"; - private IPBlocklistDetails details; - - public WebhookIPBlocklist() { - } - - public WebhookIPBlocklist result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if request IP address is part of any database that we use to search for known malicious actors, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - public WebhookIPBlocklist details(IPBlocklistDetails details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IPBlocklistDetails getDetails() { - return details; - } - - - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDetails(IPBlocklistDetails details) { - this.details = details; - } - - - /** - * Return true if this WebhookIPBlocklist object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookIPBlocklist webhookIPBlocklist = (WebhookIPBlocklist) o; - return Objects.equals(this.result, webhookIPBlocklist.result) && - Objects.equals(this.details, webhookIPBlocklist.details); - } - - @Override - public int hashCode() { - return Objects.hash(result, details); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookIPBlocklist {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).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/WebhookIPInfo.java b/sdk/src/main/java/com/fingerprint/model/WebhookIPInfo.java deleted file mode 100644 index 8a4bda4c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookIPInfo.java +++ /dev/null @@ -1,131 +0,0 @@ -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.IPInfoV4; -import com.fingerprint.model.IPInfoV6; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Details about the request IP address. Has separate fields for v4 and v6 IP address versions. - */ - -@Schema(description = "Details about the request IP address. Has separate fields for v4 and v6 IP address versions.") -@JsonPropertyOrder({ - WebhookIPInfo.JSON_PROPERTY_V4, - WebhookIPInfo.JSON_PROPERTY_V6 -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookIPInfo { - public static final String JSON_PROPERTY_V4 = "v4"; - private IPInfoV4 v4; - - public static final String JSON_PROPERTY_V6 = "v6"; - private IPInfoV6 v6; - - public WebhookIPInfo() { - } - - public WebhookIPInfo v4(IPInfoV4 v4) { - this.v4 = v4; - return this; - } - - /** - * Get v4 - * @return v4 - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_V4) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IPInfoV4 getV4() { - return v4; - } - - - @JsonProperty(JSON_PROPERTY_V4) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setV4(IPInfoV4 v4) { - this.v4 = v4; - } - - - public WebhookIPInfo v6(IPInfoV6 v6) { - this.v6 = v6; - return this; - } - - /** - * Get v6 - * @return v6 - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_V6) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public IPInfoV6 getV6() { - return v6; - } - - - @JsonProperty(JSON_PROPERTY_V6) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setV6(IPInfoV6 v6) { - this.v6 = v6; - } - - - /** - * Return true if this WebhookIPInfo object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookIPInfo webhookIPInfo = (WebhookIPInfo) o; - return Objects.equals(this.v4, webhookIPInfo.v4) && - Objects.equals(this.v6, webhookIPInfo.v6); - } - - @Override - public int hashCode() { - return Objects.hash(v4, v6); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookIPInfo {\n"); - sb.append(" v4: ").append(toIndentedString(v4)).append("\n"); - sb.append(" v6: ").append(toIndentedString(v6)).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/WebhookJailbroken.java b/sdk/src/main/java/com/fingerprint/model/WebhookJailbroken.java deleted file mode 100644 index 8a8ec334..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookJailbroken.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookJailbroken - */ - - -@JsonPropertyOrder({ - WebhookJailbroken.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookJailbroken { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookJailbroken() { - } - - public WebhookJailbroken result(Boolean result) { - this.result = result; - return this; - } - - /** - * iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "iOS specific jailbreak detection. There are 2 values: * `true` - Jailbreak detected. * `false` - No signs of jailbreak or the client is not iOS. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookJailbroken object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookJailbroken webhookJailbroken = (WebhookJailbroken) o; - return Objects.equals(this.result, webhookJailbroken.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookJailbroken {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookLocationSpoofing.java b/sdk/src/main/java/com/fingerprint/model/WebhookLocationSpoofing.java deleted file mode 100644 index d27776cd..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookLocationSpoofing.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookLocationSpoofing - */ - - -@JsonPropertyOrder({ - WebhookLocationSpoofing.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookLocationSpoofing { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookLocationSpoofing() { - } - - public WebhookLocationSpoofing result(Boolean result) { - this.result = result; - return this; - } - - /** - * Flag indicating whether the request came from a mobile device with location spoofing enabled. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "Flag indicating whether the request came from a mobile device with location spoofing enabled.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookLocationSpoofing object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookLocationSpoofing webhookLocationSpoofing = (WebhookLocationSpoofing) o; - return Objects.equals(this.result, webhookLocationSpoofing.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookLocationSpoofing {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookMitMAttack.java b/sdk/src/main/java/com/fingerprint/model/WebhookMitMAttack.java deleted file mode 100644 index fda6157d..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookMitMAttack.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookMitMAttack - */ - - -@JsonPropertyOrder({ - WebhookMitMAttack.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookMitMAttack { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookMitMAttack() { - } - - public WebhookMitMAttack result(Boolean result) { - this.result = result; - return this; - } - - /** - * * `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-overview#mitm-attack-detection) to learn more about this Smart Signal. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "* `true` - When requests made from your users' mobile devices to Fingerprint servers have been intercepted and potentially modified. * `false` - Otherwise or when the request originated from a browser. See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-overview#mitm-attack-detection) to learn more about this Smart Signal. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookMitMAttack object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookMitMAttack webhookMitMAttack = (WebhookMitMAttack) o; - return Objects.equals(this.result, webhookMitMAttack.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookMitMAttack {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookPrivacySettings.java b/sdk/src/main/java/com/fingerprint/model/WebhookPrivacySettings.java deleted file mode 100644 index 976d6fee..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookPrivacySettings.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookPrivacySettings - */ - - -@JsonPropertyOrder({ - WebhookPrivacySettings.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookPrivacySettings { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookPrivacySettings() { - } - - public WebhookPrivacySettings result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if the request is from a privacy aware browser (e.g. Tor) or from a browser in which fingerprinting is blocked. Otherwise `false`. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookPrivacySettings object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookPrivacySettings webhookPrivacySettings = (WebhookPrivacySettings) o; - return Objects.equals(this.result, webhookPrivacySettings.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookPrivacySettings {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookProximity.java b/sdk/src/main/java/com/fingerprint/model/WebhookProximity.java deleted file mode 100644 index 3b31aa8e..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookProximity.java +++ /dev/null @@ -1,212 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. - */ - -@Schema(description = "Proximity ID represents a fixed geographical zone in a discrete global grid within which the device is observed. ") -@JsonPropertyOrder({ - WebhookProximity.JSON_PROPERTY_ID, - WebhookProximity.JSON_PROPERTY_PRECISION_RADIUS, - WebhookProximity.JSON_PROPERTY_CONFIDENCE -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookProximity { - public static final String JSON_PROPERTY_ID = "id"; - private String id; - - /** - * The radius of the proximity zone’s precision level, in meters. - */ - public enum PrecisionRadiusEnum { - NUMBER_10(10), - - NUMBER_25(25), - - NUMBER_65(65), - - NUMBER_175(175), - - NUMBER_450(450), - - NUMBER_1200(1200), - - NUMBER_3300(3300), - - NUMBER_8500(8500), - - NUMBER_22500(22500); - - private Integer value; - - PrecisionRadiusEnum(Integer value) { - this.value = value; - } - - @JsonValue - public Integer getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static PrecisionRadiusEnum fromValue(Integer value) { - for (PrecisionRadiusEnum b : PrecisionRadiusEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - return null; - } - } - - public static final String JSON_PROPERTY_PRECISION_RADIUS = "precisionRadius"; - private PrecisionRadiusEnum precisionRadius; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private Float confidence; - - public WebhookProximity() { - } - - public WebhookProximity id(String id) { - this.id = id; - return this; - } - - /** - * A stable privacy-preserving identifier for a given proximity zone. - * @return id - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "A stable privacy-preserving identifier for a given proximity zone. ") - @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public String getId() { - return id; - } - - - @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setId(String id) { - this.id = id; - } - - - public WebhookProximity precisionRadius(PrecisionRadiusEnum precisionRadius) { - this.precisionRadius = precisionRadius; - return this; - } - - /** - * The radius of the proximity zone’s precision level, in meters. - * @return precisionRadius - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "The radius of the proximity zone’s precision level, in meters. ") - @JsonProperty(JSON_PROPERTY_PRECISION_RADIUS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public PrecisionRadiusEnum getPrecisionRadius() { - return precisionRadius; - } - - - @JsonProperty(JSON_PROPERTY_PRECISION_RADIUS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setPrecisionRadius(PrecisionRadiusEnum precisionRadius) { - this.precisionRadius = precisionRadius; - } - - - public WebhookProximity confidence(Float confidence) { - this.confidence = confidence; - return this; - } - - /** - * A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. - * minimum: 0 - * maximum: 1 - * @return confidence - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "A value between `0` and `1` representing the likelihood that the true device location lies within the mapped proximity zone. * Scores closer to `1` indicate high confidence that the location is inside the mapped proximity zone. * Scores closer to `0` indicate lower confidence, suggesting the true location may fall in an adjacent zone. ") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public Float getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setConfidence(Float confidence) { - this.confidence = confidence; - } - - - /** - * Return true if this WebhookProximity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookProximity webhookProximity = (WebhookProximity) o; - return Objects.equals(this.id, webhookProximity.id) && - Objects.equals(this.precisionRadius, webhookProximity.precisionRadius) && - Objects.equals(this.confidence, webhookProximity.confidence); - } - - @Override - public int hashCode() { - return Objects.hash(id, precisionRadius, confidence); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookProximity {\n"); - sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" precisionRadius: ").append(toIndentedString(precisionRadius)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).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/WebhookProxy.java b/sdk/src/main/java/com/fingerprint/model/WebhookProxy.java deleted file mode 100644 index c0a52bce..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookProxy.java +++ /dev/null @@ -1,163 +0,0 @@ -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.ProxyConfidence; -import com.fingerprint.model.ProxyDetails; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookProxy - */ - - -@JsonPropertyOrder({ - WebhookProxy.JSON_PROPERTY_RESULT, - WebhookProxy.JSON_PROPERTY_CONFIDENCE, - WebhookProxy.JSON_PROPERTY_DETAILS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookProxy { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private ProxyConfidence confidence; - - public static final String JSON_PROPERTY_DETAILS = "details"; - private ProxyDetails details; - - public WebhookProxy() { - } - - public WebhookProxy result(Boolean result) { - this.result = result; - return this; - } - - /** - * IP address was used by a public proxy provider or belonged to a known recent residential proxy - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "IP address was used by a public proxy provider or belonged to a known recent residential proxy ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - public WebhookProxy confidence(ProxyConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProxyConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(ProxyConfidence confidence) { - this.confidence = confidence; - } - - - public WebhookProxy details(ProxyDetails details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public ProxyDetails getDetails() { - return details; - } - - - @JsonProperty(JSON_PROPERTY_DETAILS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDetails(ProxyDetails details) { - this.details = details; - } - - - /** - * Return true if this WebhookProxy object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookProxy webhookProxy = (WebhookProxy) o; - return Objects.equals(this.result, webhookProxy.result) && - Objects.equals(this.confidence, webhookProxy.confidence) && - Objects.equals(this.details, webhookProxy.details); - } - - @Override - public int hashCode() { - return Objects.hash(result, confidence, details); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookProxy {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).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/WebhookRemoteControl.java b/sdk/src/main/java/com/fingerprint/model/WebhookRemoteControl.java deleted file mode 100644 index 6b62b4fc..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookRemoteControl.java +++ /dev/null @@ -1,98 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * This signal is deprecated. - * @deprecated - */ -@Deprecated -@Schema(description = "This signal is deprecated. ") -@JsonPropertyOrder({ - WebhookRemoteControl.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookRemoteControl { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookRemoteControl() { - } - - public WebhookRemoteControl result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if the request came from a machine being remotely controlled (e.g. TeamViewer), `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookRemoteControl object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookRemoteControl webhookRemoteControl = (WebhookRemoteControl) o; - return Objects.equals(this.result, webhookRemoteControl.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookRemoteControl {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookRootApps.java b/sdk/src/main/java/com/fingerprint/model/WebhookRootApps.java deleted file mode 100644 index 0afe2f2c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookRootApps.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookRootApps - */ - - -@JsonPropertyOrder({ - WebhookRootApps.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookRootApps { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookRootApps() { - } - - public WebhookRootApps result(Boolean result) { - this.result = result; - return this; - } - - /** - * Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "Android specific root management apps detection. There are 2 values: * `true` - Root Management Apps detected (e.g. Magisk). * `false` - No Root Management Apps detected or the client isn't Android. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookRootApps object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookRootApps webhookRootApps = (WebhookRootApps) o; - return Objects.equals(this.result, webhookRootApps.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookRootApps {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookSupplementaryIDs.java b/sdk/src/main/java/com/fingerprint/model/WebhookSupplementaryIDs.java deleted file mode 100644 index 9e3752d2..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookSupplementaryIDs.java +++ /dev/null @@ -1,130 +0,0 @@ -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.SupplementaryID; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Other identities that have been established for a given Visitor. - */ - -@Schema(description = "Other identities that have been established for a given Visitor.") -@JsonPropertyOrder({ - WebhookSupplementaryIDs.JSON_PROPERTY_STANDARD, - WebhookSupplementaryIDs.JSON_PROPERTY_HIGH_RECALL -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookSupplementaryIDs { - public static final String JSON_PROPERTY_STANDARD = "standard"; - private SupplementaryID standard; - - public static final String JSON_PROPERTY_HIGH_RECALL = "highRecall"; - private SupplementaryID highRecall; - - public WebhookSupplementaryIDs() { - } - - public WebhookSupplementaryIDs standard(SupplementaryID standard) { - this.standard = standard; - return this; - } - - /** - * Get standard - * @return standard - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_STANDARD) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public SupplementaryID getStandard() { - return standard; - } - - - @JsonProperty(JSON_PROPERTY_STANDARD) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setStandard(SupplementaryID standard) { - this.standard = standard; - } - - - public WebhookSupplementaryIDs highRecall(SupplementaryID highRecall) { - this.highRecall = highRecall; - return this; - } - - /** - * Get highRecall - * @return highRecall - **/ - @jakarta.annotation.Nonnull - @Schema(required = true, description = "") - @JsonProperty(JSON_PROPERTY_HIGH_RECALL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - - public SupplementaryID getHighRecall() { - return highRecall; - } - - - @JsonProperty(JSON_PROPERTY_HIGH_RECALL) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setHighRecall(SupplementaryID highRecall) { - this.highRecall = highRecall; - } - - - /** - * Return true if this WebhookSupplementaryIDs object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookSupplementaryIDs webhookSupplementaryIDs = (WebhookSupplementaryIDs) o; - return Objects.equals(this.standard, webhookSupplementaryIDs.standard) && - Objects.equals(this.highRecall, webhookSupplementaryIDs.highRecall); - } - - @Override - public int hashCode() { - return Objects.hash(standard, highRecall); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookSupplementaryIDs {\n"); - sb.append(" standard: ").append(toIndentedString(standard)).append("\n"); - sb.append(" highRecall: ").append(toIndentedString(highRecall)).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/WebhookSuspectScore.java b/sdk/src/main/java/com/fingerprint/model/WebhookSuspectScore.java deleted file mode 100644 index b221688c..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookSuspectScore.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookSuspectScore - */ - - -@JsonPropertyOrder({ - WebhookSuspectScore.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookSuspectScore { - public static final String JSON_PROPERTY_RESULT = "result"; - private Integer result; - - public WebhookSuspectScore() { - } - - public WebhookSuspectScore result(Integer result) { - this.result = result; - return this; - } - - /** - * Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart Signals present in the payload that helps identify suspicious activity. The value range is [0; S] where S is sum of all Smart Signals weights. See more details here: https://dev.fingerprint.com/docs/suspect-score ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Integer getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Integer result) { - this.result = result; - } - - - /** - * Return true if this WebhookSuspectScore object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookSuspectScore webhookSuspectScore = (WebhookSuspectScore) o; - return Objects.equals(this.result, webhookSuspectScore.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookSuspectScore {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookTampering.java b/sdk/src/main/java/com/fingerprint/model/WebhookTampering.java deleted file mode 100644 index 5e08948f..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookTampering.java +++ /dev/null @@ -1,163 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookTampering - */ - - -@JsonPropertyOrder({ - WebhookTampering.JSON_PROPERTY_RESULT, - WebhookTampering.JSON_PROPERTY_ANOMALY_SCORE, - WebhookTampering.JSON_PROPERTY_ANTI_DETECT_BROWSER -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookTampering { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_ANOMALY_SCORE = "anomalyScore"; - private Double anomalyScore; - - public static final String JSON_PROPERTY_ANTI_DETECT_BROWSER = "antiDetectBrowser"; - private Boolean antiDetectBrowser; - - public WebhookTampering() { - } - - public WebhookTampering result(Boolean result) { - this.result = result; - return this; - } - - /** - * Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests. * `true` - If the request meets either of the following conditions: * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`). * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`). * `false` - If the request is considered genuine or was generated by the iOS SDK. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - public WebhookTampering anomalyScore(Double anomalyScore) { - this.anomalyScore = anomalyScore; - return this; - } - - /** - * A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. - * minimum: 0 - * maximum: 1 - * @return anomalyScore - **/ - @jakarta.annotation.Nullable - @Schema(description = "A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs. * Values above `0.5` indicate that the request has been tampered with. * Values below `0.5` indicate that the request is genuine. ") - @JsonProperty(JSON_PROPERTY_ANOMALY_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Double getAnomalyScore() { - return anomalyScore; - } - - - @JsonProperty(JSON_PROPERTY_ANOMALY_SCORE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAnomalyScore(Double anomalyScore) { - this.anomalyScore = anomalyScore; - } - - - public WebhookTampering antiDetectBrowser(Boolean antiDetectBrowser) { - this.antiDetectBrowser = antiDetectBrowser; - return this; - } - - /** - * Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. - * @return antiDetectBrowser - **/ - @jakarta.annotation.Nullable - @Schema(description = "Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs. * `true` - The browser resembles a known anti-detect browser, for example, Incognition. * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK. ") - @JsonProperty(JSON_PROPERTY_ANTI_DETECT_BROWSER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getAntiDetectBrowser() { - return antiDetectBrowser; - } - - - @JsonProperty(JSON_PROPERTY_ANTI_DETECT_BROWSER) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAntiDetectBrowser(Boolean antiDetectBrowser) { - this.antiDetectBrowser = antiDetectBrowser; - } - - - /** - * Return true if this WebhookTampering object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookTampering webhookTampering = (WebhookTampering) o; - return Objects.equals(this.result, webhookTampering.result) && - Objects.equals(this.anomalyScore, webhookTampering.anomalyScore) && - Objects.equals(this.antiDetectBrowser, webhookTampering.antiDetectBrowser); - } - - @Override - public int hashCode() { - return Objects.hash(result, anomalyScore, antiDetectBrowser); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookTampering {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" anomalyScore: ").append(toIndentedString(anomalyScore)).append("\n"); - sb.append(" antiDetectBrowser: ").append(toIndentedString(antiDetectBrowser)).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/WebhookTor.java b/sdk/src/main/java/com/fingerprint/model/WebhookTor.java deleted file mode 100644 index 72dc8ee1..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookTor.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookTor - */ - - -@JsonPropertyOrder({ - WebhookTor.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookTor { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookTor() { - } - - public WebhookTor result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request IP address is a known tor exit node, `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if the request IP address is a known tor exit node, `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookTor object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookTor webhookTor = (WebhookTor) o; - return Objects.equals(this.result, webhookTor.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookTor {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/WebhookVPN.java b/sdk/src/main/java/com/fingerprint/model/WebhookVPN.java deleted file mode 100644 index 1bff896d..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookVPN.java +++ /dev/null @@ -1,227 +0,0 @@ -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.VPNConfidence; -import com.fingerprint.model.VPNMethods; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookVPN - */ - - -@JsonPropertyOrder({ - WebhookVPN.JSON_PROPERTY_RESULT, - WebhookVPN.JSON_PROPERTY_CONFIDENCE, - WebhookVPN.JSON_PROPERTY_ORIGIN_TIMEZONE, - WebhookVPN.JSON_PROPERTY_ORIGIN_COUNTRY, - WebhookVPN.JSON_PROPERTY_METHODS -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookVPN { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public static final String JSON_PROPERTY_CONFIDENCE = "confidence"; - private VPNConfidence confidence; - - public static final String JSON_PROPERTY_ORIGIN_TIMEZONE = "originTimezone"; - private String originTimezone; - - public static final String JSON_PROPERTY_ORIGIN_COUNTRY = "originCountry"; - private String originCountry; - - public static final String JSON_PROPERTY_METHODS = "methods"; - private VPNMethods methods; - - public WebhookVPN() { - } - - public WebhookVPN result(Boolean result) { - this.result = result; - return this; - } - - /** - * VPN or other anonymizing service has been used when sending the request. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "VPN or other anonymizing service has been used when sending the request.") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - public WebhookVPN confidence(VPNConfidence confidence) { - this.confidence = confidence; - return this; - } - - /** - * Get confidence - * @return confidence - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VPNConfidence getConfidence() { - return confidence; - } - - - @JsonProperty(JSON_PROPERTY_CONFIDENCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setConfidence(VPNConfidence confidence) { - this.confidence = confidence; - } - - - public WebhookVPN originTimezone(String originTimezone) { - this.originTimezone = originTimezone; - return this; - } - - /** - * Local timezone which is used in timezoneMismatch method. - * @return originTimezone - **/ - @jakarta.annotation.Nullable - @Schema(description = "Local timezone which is used in timezoneMismatch method.") - @JsonProperty(JSON_PROPERTY_ORIGIN_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getOriginTimezone() { - return originTimezone; - } - - - @JsonProperty(JSON_PROPERTY_ORIGIN_TIMEZONE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setOriginTimezone(String originTimezone) { - this.originTimezone = originTimezone; - } - - - public WebhookVPN originCountry(String originCountry) { - this.originCountry = originCountry; - return this; - } - - /** - * Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). - * @return originCountry - **/ - @jakarta.annotation.Nullable - @Schema(description = "Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown).") - @JsonProperty(JSON_PROPERTY_ORIGIN_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public String getOriginCountry() { - return originCountry; - } - - - @JsonProperty(JSON_PROPERTY_ORIGIN_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setOriginCountry(String originCountry) { - this.originCountry = originCountry; - } - - - public WebhookVPN methods(VPNMethods methods) { - this.methods = methods; - return this; - } - - /** - * Get methods - * @return methods - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_METHODS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VPNMethods getMethods() { - return methods; - } - - - @JsonProperty(JSON_PROPERTY_METHODS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setMethods(VPNMethods methods) { - this.methods = methods; - } - - - /** - * Return true if this WebhookVPN object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookVPN webhookVPN = (WebhookVPN) o; - return Objects.equals(this.result, webhookVPN.result) && - Objects.equals(this.confidence, webhookVPN.confidence) && - Objects.equals(this.originTimezone, webhookVPN.originTimezone) && - Objects.equals(this.originCountry, webhookVPN.originCountry) && - Objects.equals(this.methods, webhookVPN.methods); - } - - @Override - public int hashCode() { - return Objects.hash(result, confidence, originTimezone, originCountry, methods); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookVPN {\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" confidence: ").append(toIndentedString(confidence)).append("\n"); - sb.append(" originTimezone: ").append(toIndentedString(originTimezone)).append("\n"); - sb.append(" originCountry: ").append(toIndentedString(originCountry)).append("\n"); - sb.append(" methods: ").append(toIndentedString(methods)).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/WebhookVelocity.java b/sdk/src/main/java/com/fingerprint/model/WebhookVelocity.java deleted file mode 100644 index 4f0985ed..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookVelocity.java +++ /dev/null @@ -1,290 +0,0 @@ -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.VelocityData; -import java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor ID. - Number of distinct linked IDs associated with the visitor ID. - Number of distinct countries associated with the visitor ID. - Number of identification events associated with the visitor ID. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked ID. - Number of distinct visitor IDs associated with the provided linked ID. The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. - */ - -@Schema(description = "Sums key data points for a specific `visitorId`, `ipAddress` and `linkedId` at three distinct time intervals: 5 minutes, 1 hour, and 24 hours as follows: - Number of distinct IP addresses associated to the visitor ID. - Number of distinct linked IDs associated with the visitor ID. - Number of distinct countries associated with the visitor ID. - Number of identification events associated with the visitor ID. - Number of identification events associated with the detected IP address. - Number of distinct IP addresses associated with the provided linked ID. - Number of distinct visitor IDs associated with the provided linked ID. The `24h` interval of `distinctIp`, `distinctLinkedId`, `distinctCountry`, `distinctIpByLinkedId` and `distinctVisitorIdByLinkedId` will be omitted if the number of `events` for the visitor ID in the last 24 hours (`events.intervals.['24h']`) is higher than 20.000. ") -@JsonPropertyOrder({ - WebhookVelocity.JSON_PROPERTY_DISTINCT_IP, - WebhookVelocity.JSON_PROPERTY_DISTINCT_LINKED_ID, - WebhookVelocity.JSON_PROPERTY_DISTINCT_COUNTRY, - WebhookVelocity.JSON_PROPERTY_EVENTS, - WebhookVelocity.JSON_PROPERTY_IP_EVENTS, - WebhookVelocity.JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID, - WebhookVelocity.JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookVelocity { - public static final String JSON_PROPERTY_DISTINCT_IP = "distinctIp"; - private VelocityData distinctIp; - - public static final String JSON_PROPERTY_DISTINCT_LINKED_ID = "distinctLinkedId"; - private VelocityData distinctLinkedId; - - public static final String JSON_PROPERTY_DISTINCT_COUNTRY = "distinctCountry"; - private VelocityData distinctCountry; - - public static final String JSON_PROPERTY_EVENTS = "events"; - private VelocityData events; - - public static final String JSON_PROPERTY_IP_EVENTS = "ipEvents"; - private VelocityData ipEvents; - - public static final String JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID = "distinctIpByLinkedId"; - private VelocityData distinctIpByLinkedId; - - public static final String JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID = "distinctVisitorIdByLinkedId"; - private VelocityData distinctVisitorIdByLinkedId; - - public WebhookVelocity() { - } - - public WebhookVelocity distinctIp(VelocityData distinctIp) { - this.distinctIp = distinctIp; - return this; - } - - /** - * Get distinctIp - * @return distinctIp - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_IP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getDistinctIp() { - return distinctIp; - } - - - @JsonProperty(JSON_PROPERTY_DISTINCT_IP) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDistinctIp(VelocityData distinctIp) { - this.distinctIp = distinctIp; - } - - - public WebhookVelocity distinctLinkedId(VelocityData distinctLinkedId) { - this.distinctLinkedId = distinctLinkedId; - return this; - } - - /** - * Get distinctLinkedId - * @return distinctLinkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getDistinctLinkedId() { - return distinctLinkedId; - } - - - @JsonProperty(JSON_PROPERTY_DISTINCT_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDistinctLinkedId(VelocityData distinctLinkedId) { - this.distinctLinkedId = distinctLinkedId; - } - - - public WebhookVelocity distinctCountry(VelocityData distinctCountry) { - this.distinctCountry = distinctCountry; - return this; - } - - /** - * Get distinctCountry - * @return distinctCountry - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getDistinctCountry() { - return distinctCountry; - } - - - @JsonProperty(JSON_PROPERTY_DISTINCT_COUNTRY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDistinctCountry(VelocityData distinctCountry) { - this.distinctCountry = distinctCountry; - } - - - public WebhookVelocity events(VelocityData events) { - this.events = events; - return this; - } - - /** - * Get events - * @return events - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_EVENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getEvents() { - return events; - } - - - @JsonProperty(JSON_PROPERTY_EVENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setEvents(VelocityData events) { - this.events = events; - } - - - public WebhookVelocity ipEvents(VelocityData ipEvents) { - this.ipEvents = ipEvents; - return this; - } - - /** - * Get ipEvents - * @return ipEvents - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_IP_EVENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getIpEvents() { - return ipEvents; - } - - - @JsonProperty(JSON_PROPERTY_IP_EVENTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setIpEvents(VelocityData ipEvents) { - this.ipEvents = ipEvents; - } - - - public WebhookVelocity distinctIpByLinkedId(VelocityData distinctIpByLinkedId) { - this.distinctIpByLinkedId = distinctIpByLinkedId; - return this; - } - - /** - * Get distinctIpByLinkedId - * @return distinctIpByLinkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getDistinctIpByLinkedId() { - return distinctIpByLinkedId; - } - - - @JsonProperty(JSON_PROPERTY_DISTINCT_IP_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDistinctIpByLinkedId(VelocityData distinctIpByLinkedId) { - this.distinctIpByLinkedId = distinctIpByLinkedId; - } - - - public WebhookVelocity distinctVisitorIdByLinkedId(VelocityData distinctVisitorIdByLinkedId) { - this.distinctVisitorIdByLinkedId = distinctVisitorIdByLinkedId; - return this; - } - - /** - * Get distinctVisitorIdByLinkedId - * @return distinctVisitorIdByLinkedId - **/ - @jakarta.annotation.Nullable - @Schema(description = "") - @JsonProperty(JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public VelocityData getDistinctVisitorIdByLinkedId() { - return distinctVisitorIdByLinkedId; - } - - - @JsonProperty(JSON_PROPERTY_DISTINCT_VISITOR_ID_BY_LINKED_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDistinctVisitorIdByLinkedId(VelocityData distinctVisitorIdByLinkedId) { - this.distinctVisitorIdByLinkedId = distinctVisitorIdByLinkedId; - } - - - /** - * Return true if this WebhookVelocity object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookVelocity webhookVelocity = (WebhookVelocity) o; - return Objects.equals(this.distinctIp, webhookVelocity.distinctIp) && - Objects.equals(this.distinctLinkedId, webhookVelocity.distinctLinkedId) && - Objects.equals(this.distinctCountry, webhookVelocity.distinctCountry) && - Objects.equals(this.events, webhookVelocity.events) && - Objects.equals(this.ipEvents, webhookVelocity.ipEvents) && - Objects.equals(this.distinctIpByLinkedId, webhookVelocity.distinctIpByLinkedId) && - Objects.equals(this.distinctVisitorIdByLinkedId, webhookVelocity.distinctVisitorIdByLinkedId); - } - - @Override - public int hashCode() { - return Objects.hash(distinctIp, distinctLinkedId, distinctCountry, events, ipEvents, distinctIpByLinkedId, distinctVisitorIdByLinkedId); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookVelocity {\n"); - sb.append(" distinctIp: ").append(toIndentedString(distinctIp)).append("\n"); - sb.append(" distinctLinkedId: ").append(toIndentedString(distinctLinkedId)).append("\n"); - sb.append(" distinctCountry: ").append(toIndentedString(distinctCountry)).append("\n"); - sb.append(" events: ").append(toIndentedString(events)).append("\n"); - sb.append(" ipEvents: ").append(toIndentedString(ipEvents)).append("\n"); - sb.append(" distinctIpByLinkedId: ").append(toIndentedString(distinctIpByLinkedId)).append("\n"); - sb.append(" distinctVisitorIdByLinkedId: ").append(toIndentedString(distinctVisitorIdByLinkedId)).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/WebhookVirtualMachine.java b/sdk/src/main/java/com/fingerprint/model/WebhookVirtualMachine.java deleted file mode 100644 index 224338b4..00000000 --- a/sdk/src/main/java/com/fingerprint/model/WebhookVirtualMachine.java +++ /dev/null @@ -1,97 +0,0 @@ -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 java.util.Arrays; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * WebhookVirtualMachine - */ - - -@JsonPropertyOrder({ - WebhookVirtualMachine.JSON_PROPERTY_RESULT -}) -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class WebhookVirtualMachine { - public static final String JSON_PROPERTY_RESULT = "result"; - private Boolean result; - - public WebhookVirtualMachine() { - } - - public WebhookVirtualMachine result(Boolean result) { - this.result = result; - return this; - } - - /** - * `true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. - * @return result - **/ - @jakarta.annotation.Nullable - @Schema(description = "`true` if the request came from a browser running inside a virtual machine (e.g. VMWare), `false` otherwise. ") - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getResult() { - return result; - } - - - @JsonProperty(JSON_PROPERTY_RESULT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setResult(Boolean result) { - this.result = result; - } - - - /** - * Return true if this WebhookVirtualMachine object is equal to o. - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookVirtualMachine webhookVirtualMachine = (WebhookVirtualMachine) o; - return Objects.equals(this.result, webhookVirtualMachine.result); - } - - @Override - public int hashCode() { - return Objects.hash(result); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class WebhookVirtualMachine {\n"); - sb.append(" result: ").append(toIndentedString(result)).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/sdk/ApiClient.java b/sdk/src/main/java/com/fingerprint/sdk/ApiClient.java index f24947d0..25bf9696 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/ApiClient.java +++ b/sdk/src/main/java/com/fingerprint/sdk/ApiClient.java @@ -1,3 +1,16 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.sdk; import jakarta.ws.rs.client.Client; @@ -49,6 +62,7 @@ import java.util.Arrays; import java.util.ArrayList; import java.util.Date; +import java.util.Locale; import java.util.stream.Collectors; import java.util.stream.Stream; import java.time.OffsetDateTime; @@ -70,29 +84,29 @@ /** *

ApiClient class.

*/ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ApiClient extends JavaTimeFormatter { - private static final Pattern JSON_MIME_PATTERN = Pattern.compile("(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"); + protected static final Pattern JSON_MIME_PATTERN = Pattern.compile("(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"); protected Map defaultHeaderMap = new HashMap<>(); protected Map defaultCookieMap = new HashMap<>(); - protected String basePath = "https://api.fpjs.io"; + protected String basePath = "https://api.fpjs.io/v4"; protected String userAgent; - private static final Logger log = Logger.getLogger(ApiClient.class.getName()); + protected static final Logger log = Logger.getLogger(ApiClient.class.getName()); protected List servers = new ArrayList<>(Arrays.asList( new ServerConfiguration( - "https://api.fpjs.io", + "https://api.fpjs.io/v4", "Global", new LinkedHashMap<>() ), new ServerConfiguration( - "https://eu.api.fpjs.io", + "https://eu.api.fpjs.io/v4", "EU", new LinkedHashMap<>() ), new ServerConfiguration( - "https://ap.api.fpjs.io", + "https://ap.api.fpjs.io/v4", "Asia (Mumbai)", new LinkedHashMap<>() ) @@ -105,7 +119,7 @@ public class ApiClient extends JavaTimeFormatter { protected boolean debugging = false; protected ClientConfig clientConfig; protected int connectionTimeout = 0; - private int readTimeout = 0; + protected int readTimeout = 0; protected Client httpClient; protected JSON json; @@ -141,20 +155,12 @@ public ApiClient(Map authMap) { authentications = new HashMap<>(); Authentication auth = null; if (authMap != null) { - auth = authMap.get("ApiKeyHeader"); - } - if (auth instanceof ApiKeyAuth) { - authentications.put("ApiKeyHeader", auth); - } else { - authentications.put("ApiKeyHeader", new ApiKeyAuth("header", "Auth-API-Key")); - } - if (authMap != null) { - auth = authMap.get("ApiKeyQuery"); + auth = authMap.get("bearerAuth"); } - if (auth instanceof ApiKeyAuth) { - authentications.put("ApiKeyQuery", auth); + if (auth instanceof HttpBearerAuth) { + authentications.put("bearerAuth", auth); } else { - authentications.put("ApiKeyQuery", new ApiKeyAuth("query", "api_key")); + authentications.put("bearerAuth", new HttpBearerAuth("bearer")); } // Prevent the authentications from being modified. authentications = Collections.unmodifiableMap(authentications); @@ -185,7 +191,7 @@ public Client getHttpClient() { *

Setter for the field httpClient.

* * @param httpClient a {@link jakarta.ws.rs.client.Client} object. - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setHttpClient(Client httpClient) { this.httpClient = httpClient; @@ -205,7 +211,7 @@ public String getBasePath() { * Sets the base URL to the location where the OpenAPI document is being served. * * @param basePath The base URL to the target host. - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setBasePath(String basePath) { this.basePath = basePath; @@ -225,7 +231,7 @@ public List getServers() { *

Setter for the field servers.

* * @param servers a {@link java.util.List} of servers. - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setServers(List servers) { this.servers = servers; @@ -246,7 +252,7 @@ public Integer getServerIndex() { *

Setter for the field serverIndex.

* * @param serverIndex the server index - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setServerIndex(Integer serverIndex) { this.serverIndex = serverIndex; @@ -267,7 +273,7 @@ public Map getServerVariables() { *

Setter for the field serverVariables.

* * @param serverVariables a {@link java.util.Map} of server variables. - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setServerVariables(Map serverVariables) { this.serverVariables = serverVariables; @@ -275,7 +281,7 @@ public ApiClient setServerVariables(Map serverVariables) { return this; } - private void updateBasePath() { + protected void updateBasePath() { if (serverIndex != null) { setBasePath(servers.get(serverIndex).URL(serverVariables)); } @@ -304,7 +310,7 @@ public Authentication getAuthentication(String authName) { * Helper method to set username for the first HTTP basic authentication. * * @param username Username - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setUsername(String username) { for (Authentication auth : authentications.values()) { @@ -320,7 +326,7 @@ public ApiClient setUsername(String username) { * Helper method to set password for the first HTTP basic authentication. * * @param password Password - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setPassword(String password) { for (Authentication auth : authentications.values()) { @@ -336,7 +342,7 @@ public ApiClient setPassword(String password) { * Helper method to set API key value for the first API key authentication. * * @param apiKey API key - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setApiKey(String apiKey) { for (Authentication auth : authentications.values()) { @@ -352,7 +358,7 @@ public ApiClient setApiKey(String apiKey) { * Helper method to configure authentications which respects aliases of API keys. * * @param secrets Hash map from authentication name to its secret. - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient configureApiKeys(Map secrets) { for (Map.Entry authEntry : authentications.entrySet()) { @@ -374,7 +380,7 @@ public ApiClient configureApiKeys(Map secrets) { * Helper method to set API key prefix for the first API key authentication. * * @param apiKeyPrefix API key prefix - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setApiKeyPrefix(String apiKeyPrefix) { for (Authentication auth : authentications.values()) { @@ -390,7 +396,7 @@ public ApiClient setApiKeyPrefix(String apiKeyPrefix) { * Helper method to set bearer token for the first Bearer authentication. * * @param bearerToken Bearer token - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setBearerToken(String bearerToken) { for (Authentication auth : authentications.values()) { @@ -406,7 +412,7 @@ public ApiClient setBearerToken(String bearerToken) { * Set the User-Agent header's value (by adding to the default header map). * * @param userAgent Http user agent - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setUserAgent(String userAgent) { this.userAgent = userAgent; @@ -428,7 +434,7 @@ public String getUserAgent(){ * * @param key The header's key * @param value The header's value - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient addDefaultHeader(String key, String value) { defaultHeaderMap.put(key, value); @@ -440,7 +446,7 @@ public ApiClient addDefaultHeader(String key, String value) { * * @param key The cookie's key * @param value The cookie's value - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient addDefaultCookie(String key, String value) { defaultCookieMap.put(key, value); @@ -460,7 +466,7 @@ public ClientConfig getClientConfig() { * Set the client config. * * @param clientConfig Set the client config - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setClientConfig(ClientConfig clientConfig) { this.clientConfig = clientConfig; @@ -482,10 +488,11 @@ public boolean isDebugging() { * Enable/disable debugging for this API client. * * @param debugging To enable (true) or disable (false) debugging - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setDebugging(boolean debugging) { this.debugging = debugging; + applyDebugSetting(this.clientConfig); // Rebuild HTTP Client according to the new "debugging" value. this.httpClient = buildHttpClient(); return this; @@ -506,7 +513,7 @@ public String getTempFolderPath() { * Set temp folder path * * @param tempFolderPath Temp folder path - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setTempFolderPath(String tempFolderPath) { this.tempFolderPath = tempFolderPath; @@ -528,7 +535,7 @@ public int getConnectTimeout() { * {@link Integer#MAX_VALUE}. * * @param connectionTimeout Connection timeout in milliseconds - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setConnectTimeout(int connectionTimeout) { this.connectionTimeout = connectionTimeout; @@ -551,7 +558,7 @@ public int getReadTimeout() { * {@link Integer#MAX_VALUE}. * * @param readTimeout Read timeout in milliseconds - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setReadTimeout(int readTimeout) { this.readTimeout = readTimeout; @@ -572,7 +579,7 @@ public DateFormat getDateFormat() { * Set the date format used to parse/format date parameters. * * @param dateFormat Date format - * @return a {@link org.openapitools.client.ApiClient} object. + * @return a {@link ApiClient} object. */ public ApiClient setDateFormat(DateFormat dateFormat) { this.dateFormat = dateFormat; @@ -780,24 +787,10 @@ public Entity serialize(Object obj, Map formParams, String co if (contentType.startsWith("multipart/form-data")) { MultiPart multiPart = new MultiPart(); for (Entry param: formParams.entrySet()) { - if (param.getValue() instanceof File) { - File file = (File) param.getValue(); - FormDataContentDisposition contentDisp = FormDataContentDisposition.name(param.getKey()) - .fileName(file.getName()).size(file.length()).build(); - - // Attempt to probe the content type for the file so that the form part is more correctly - // and precisely identified, but fall back to application/octet-stream if that fails. - MediaType type; - try { - type = MediaType.valueOf(Files.probeContentType(file.toPath())); - } catch (IOException | IllegalArgumentException e) { - type = MediaType.APPLICATION_OCTET_STREAM_TYPE; - } - - multiPart.bodyPart(new FormDataBodyPart(contentDisp, file, type)); + if (param.getValue() instanceof Iterable) { + ((Iterable)param.getValue()).forEach(v -> addParamToMultipart(v, param.getKey(), multiPart)); } else { - FormDataContentDisposition contentDisp = FormDataContentDisposition.name(param.getKey()).build(); - multiPart.bodyPart(new FormDataBodyPart(contentDisp, parameterToString(param.getValue()))); + addParamToMultipart(param.getValue(), param.getKey(), multiPart); } } entity = Entity.entity(multiPart, MediaType.MULTIPART_FORM_DATA_TYPE); @@ -826,6 +819,36 @@ public Entity serialize(Object obj, Map formParams, String co return entity; } + /** + * Adds the object with the provided key to the MultiPart. + * Based on the object type sets Content-Disposition and Content-Type. + * + * @param obj Object + * @param key Key of the object + * @param multiPart MultiPart to add the form param to + */ + protected void addParamToMultipart(Object value, String key, MultiPart multiPart) { + if (value instanceof File) { + File file = (File) value; + FormDataContentDisposition contentDisp = FormDataContentDisposition.name(key) + .fileName(file.getName()).size(file.length()).build(); + + // Attempt to probe the content type for the file so that the form part is more correctly + // and precisely identified, but fall back to application/octet-stream if that fails. + MediaType type; + try { + type = MediaType.valueOf(Files.probeContentType(file.toPath())); + } catch (IOException | IllegalArgumentException e) { + type = MediaType.APPLICATION_OCTET_STREAM_TYPE; + } + + multiPart.bodyPart(new FormDataBodyPart(contentDisp, file, type)); + } else { + FormDataContentDisposition contentDisp = FormDataContentDisposition.name(key).build(); + multiPart.bodyPart(new FormDataBodyPart(contentDisp, parameterToString(value))); + } + } + /** * Serialize the given Java object into string according the given * Content-Type (only JSON, HTTP form is supported for now). @@ -997,6 +1020,7 @@ public ApiResponse invokeAPI( if (index < 0 || index >= serverConfigurations.size()) { throw new ArrayIndexOutOfBoundsException( String.format( + Locale.ROOT, "Invalid index %d when selecting the host settings. Must be less than %d", index, serverConfigurations.size())); } @@ -1008,6 +1032,22 @@ public ApiResponse invokeAPI( // to support (constant) query string in `path`, e.g. "/posts?draft=1" WebTarget target = httpClient.target(targetURL); + // put all headers in one place + Map allHeaderParams = new HashMap<>(defaultHeaderMap); + allHeaderParams.putAll(headerParams); + + if (authNames != null) { + // update different parameters (e.g. headers) for authentication + updateParamsForAuth( + authNames, + queryParams, + allHeaderParams, + cookieParams, + null, + method, + target.getUri()); + } + if (queryParams != null) { for (Pair queryParam : queryParams) { if (queryParam.getValue() != null) { @@ -1038,22 +1078,6 @@ public ApiResponse invokeAPI( Entity entity = serialize(body, formParams, contentType, isBodyNullable); - // put all headers in one place - Map allHeaderParams = new HashMap<>(defaultHeaderMap); - allHeaderParams.putAll(headerParams); - - if (authNames != null) { - // update different parameters (e.g. headers) for authentication - updateParamsForAuth( - authNames, - queryParams, - allHeaderParams, - cookieParams, - null, - method, - target.getUri()); - } - for (Entry entry : allHeaderParams.entrySet()) { String value = entry.getValue(); if (value != null) { @@ -1102,14 +1126,18 @@ public ApiResponse invokeAPI( } } - private Response sendRequest(String method, Invocation.Builder invocationBuilder, Entity entity) { + protected Response sendRequest(String method, Invocation.Builder invocationBuilder, Entity entity) { Response response; if ("POST".equals(method)) { response = invocationBuilder.post(entity); } else if ("PUT".equals(method)) { response = invocationBuilder.put(entity); } else if ("DELETE".equals(method)) { - response = invocationBuilder.method("DELETE", entity); + if ("".equals(entity.getEntity())) { + response = invocationBuilder.method("DELETE"); + } else { + response = invocationBuilder.method("DELETE", entity); + } } else if ("PATCH".equals(method)) { response = invocationBuilder.method("PATCH", entity); } else { @@ -1132,8 +1160,10 @@ public ApiResponse invokeAPI(String path, String method, List query * @return Client */ protected Client buildHttpClient() { - // recreate the client config to pickup changes - clientConfig = getDefaultClientConfig(); + // Create ClientConfig if it has not been initialized yet + if (clientConfig == null) { + clientConfig = getDefaultClientConfig(); + } ClientBuilder clientBuilder = ClientBuilder.newBuilder(); clientBuilder = clientBuilder.withConfig(clientConfig); @@ -1154,6 +1184,11 @@ public ClientConfig getDefaultClientConfig() { clientConfig.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true); // turn off compliance validation to be able to send payloads with DELETE calls clientConfig.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); + applyDebugSetting(clientConfig); + return clientConfig; + } + + protected void applyDebugSetting(ClientConfig clientConfig) { if (debugging) { clientConfig.register(new LoggingFeature(java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), java.util.logging.Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, 1024*50 /* Log payloads up to 50K */)); clientConfig.property(LoggingFeature.LOGGING_FEATURE_VERBOSITY, LoggingFeature.Verbosity.PAYLOAD_ANY); @@ -1163,8 +1198,6 @@ public ClientConfig getDefaultClientConfig() { // suppress warnings for payloads with DELETE calls: java.util.logging.Logger.getLogger("org.glassfish.jersey.client").setLevel(java.util.logging.Level.SEVERE); } - - return clientConfig; } /** @@ -1256,4 +1289,4 @@ protected void updateParamsForAuth(String[] authNames, List queryParams, M auth.applyToParams(queryParams, headerParams, cookieParams, payload, method, uri); } } -} +} \ No newline at end of file diff --git a/sdk/src/main/java/com/fingerprint/sdk/ApiException.java b/sdk/src/main/java/com/fingerprint/sdk/ApiException.java index 85d2145f..78c33c53 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/ApiException.java +++ b/sdk/src/main/java/com/fingerprint/sdk/ApiException.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -19,7 +19,7 @@ /** * API Exception */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ApiException extends Exception { private static final long serialVersionUID = 1L; diff --git a/sdk/src/main/java/com/fingerprint/sdk/ApiResponse.java b/sdk/src/main/java/com/fingerprint/sdk/ApiResponse.java index f06f4627..348b2ef9 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/ApiResponse.java +++ b/sdk/src/main/java/com/fingerprint/sdk/ApiResponse.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/sdk/src/main/java/com/fingerprint/sdk/Configuration.java b/sdk/src/main/java/com/fingerprint/sdk/Configuration.java index 32e09a7d..8d853638 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/Configuration.java +++ b/sdk/src/main/java/com/fingerprint/sdk/Configuration.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,9 +13,13 @@ package com.fingerprint.sdk; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") -public class Configuration { - private static ApiClient defaultApiClient = new ApiClient(); +import java.util.Objects; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Supplier; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0")public class Configuration { + private static final AtomicReference defaultApiClient = new AtomicReference<>(); + private static volatile Supplier apiClientFactory = ApiClient::new; /** * Get the default API client, which would be used when creating API @@ -24,22 +28,33 @@ public class Configuration { * @return Default API client */ public static ApiClient getDefaultApiClient() { - return defaultApiClient; + ApiClient client = defaultApiClient.get(); + if (client == null) { + client = defaultApiClient.updateAndGet(val -> { + if (val != null) { // changed by another thread + return val; + } + return apiClientFactory.get(); + }); + } + return client; } public static ApiClient getDefaultApiClient(String apiKey, Region region) { - defaultApiClient.setApiKey(apiKey); - defaultApiClient.setBasePath(region.toString()); - return defaultApiClient; + ApiClient client = getDefaultApiClient(); + client.setBearerToken(apiKey); + client.setBasePath(region.toString()); + return client; } public static ApiClient getDefaultApiClient(String apiKey, String regionStr) { + ApiClient client = getDefaultApiClient(); switch (regionStr) { case "eu": case "EU": case "EUROPE": case "europe": - defaultApiClient.setBasePath(Region.EUROPE.toString()); + client.setBasePath(Region.EUROPE.toString()); break; case "global": case "GLOBAL": @@ -50,25 +65,26 @@ public static ApiClient getDefaultApiClient(String apiKey, String regionStr) { case "America": case "america": case "AMERICA": - defaultApiClient.setBasePath(Region.GLOBAL.toString()); + client.setBasePath(Region.GLOBAL.toString()); break; case "asia": case "Asia": case "as": case "AS": - defaultApiClient.setBasePath(Region.ASIA.toString()); + client.setBasePath(Region.ASIA.toString()); break; default: - defaultApiClient.setBasePath(regionStr); + client.setBasePath(regionStr); } - defaultApiClient.setApiKey(apiKey); - return defaultApiClient; + client.setBearerToken(apiKey); + return client; } public static ApiClient getDefaultApiClient(String apiKey) { - defaultApiClient.setApiKey(apiKey); - defaultApiClient.setBasePath(Region.GLOBAL.toString()); - return defaultApiClient; + ApiClient client = getDefaultApiClient(); + client.setBearerToken(apiKey); + client.setBasePath(Region.GLOBAL.toString()); + return client; } /** @@ -78,6 +94,16 @@ public static ApiClient getDefaultApiClient(String apiKey) { * @param apiClient API client */ public static void setDefaultApiClient(ApiClient apiClient) { - defaultApiClient = apiClient; + defaultApiClient.set(apiClient); + } + + /** + * set the callback used to create new ApiClient objects + */ + public static void setApiClientFactory(Supplier factory) { + apiClientFactory = Objects.requireNonNull(factory); + } + + private Configuration() { } } diff --git a/sdk/src/main/java/com/fingerprint/sdk/JSON.java b/sdk/src/main/java/com/fingerprint/sdk/JSON.java index 26b26ee3..7b4d43b5 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/JSON.java +++ b/sdk/src/main/java/com/fingerprint/sdk/JSON.java @@ -1,10 +1,22 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.sdk; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.fingerprint.model.*; import java.text.DateFormat; import java.util.HashMap; @@ -14,21 +26,23 @@ import jakarta.ws.rs.core.GenericType; import jakarta.ws.rs.ext.ContextResolver; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class JSON implements ContextResolver { private ObjectMapper mapper; public JSON() { - mapper = new ObjectMapper(); - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - JsonMapper.builder().configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); - mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); - mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); - mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); - mapper.setDateFormat(new RFC3339DateFormat()); - mapper.registerModule(new JavaTimeModule()); + mapper = JsonMapper.builder() + .serializationInclusion(JsonInclude.Include.NON_NULL) + .configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, true) + .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING) + .enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING) + .defaultDateFormat(new RFC3339DateFormat()) + .addModule(new JavaTimeModule()) + .addModule(new RFC3339JavaTimeModule()) + .build(); } /** @@ -61,7 +75,7 @@ public ObjectMapper getContext(Class type) { public static Class getClassForElement(JsonNode node, Class modelClass) { ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); if (cdm != null) { - return cdm.getClassForElement(node, new HashSet>()); + return cdm.getClassForElement(node, new HashSet<>()); } return null; } @@ -81,7 +95,7 @@ private static class ClassDiscriminatorMapping { ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { modelClass = cls; discriminatorName = propertyName; - discriminatorMappings = new HashMap>(); + discriminatorMappings = new HashMap<>(); if (mappings != null) { discriminatorMappings.putAll(mappings); } @@ -176,9 +190,9 @@ public static boolean isInstanceOf(Class modelClass, Object inst, Set descendants = modelDescendants.get(modelClass); + Map> descendants = modelDescendants.get(modelClass); if (descendants != null) { - for (GenericType childType : descendants.values()) { + for (GenericType childType : descendants.values()) { if (isInstanceOf(childType.getRawType(), inst, visitedClasses)) { return true; } @@ -190,12 +204,12 @@ public static boolean isInstanceOf(Class modelClass, Object inst, Set, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); + private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap<>(); /** * A map of oneOf/anyOf descendants for each model class. */ - private static Map, Map> modelDescendants = new HashMap, Map>(); + private static Map, Map>> modelDescendants = new HashMap<>(); /** * Register a model class discriminator. @@ -215,7 +229,7 @@ public static void registerDiscriminator(Class modelClass, String discriminat * @param modelClass the model class * @param descendants a map of oneOf/anyOf descendants. */ - public static void registerDescendants(Class modelClass, Map descendants) { + public static void registerDescendants(Class modelClass, Map> descendants) { modelDescendants.put(modelClass, descendants); } diff --git a/sdk/src/main/java/com/fingerprint/sdk/JavaTimeFormatter.java b/sdk/src/main/java/com/fingerprint/sdk/JavaTimeFormatter.java index 4f330ad2..d7b99ead 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/JavaTimeFormatter.java +++ b/sdk/src/main/java/com/fingerprint/sdk/JavaTimeFormatter.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,45 +20,49 @@ * Class that add parsing/formatting support for Java 8+ {@code OffsetDateTime} class. * It's generated for java clients when {@code AbstractJavaCodegen#dateLibrary} specified as {@code java8}. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class JavaTimeFormatter { + private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; - private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; + /** + * Get the date format used to parse/format {@code OffsetDateTime} parameters. + * + * @return DateTimeFormatter + */ + public DateTimeFormatter getOffsetDateTimeFormatter() { + return offsetDateTimeFormatter; + } - /** - * Get the date format used to parse/format {@code OffsetDateTime} parameters. - * @return DateTimeFormatter - */ - public DateTimeFormatter getOffsetDateTimeFormatter() { - return offsetDateTimeFormatter; - } + /** + * Set the date format used to parse/format {@code OffsetDateTime} parameters. + * + * @param offsetDateTimeFormatter {@code DateTimeFormatter} + */ + public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) { + this.offsetDateTimeFormatter = offsetDateTimeFormatter; + } - /** - * Set the date format used to parse/format {@code OffsetDateTime} parameters. - * @param offsetDateTimeFormatter {@code DateTimeFormatter} - */ - public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) { - this.offsetDateTimeFormatter = offsetDateTimeFormatter; + /** + * Parse the given string into {@code OffsetDateTime} object. + * + * @param str String + * @return {@code OffsetDateTime} + */ + public OffsetDateTime parseOffsetDateTime(String str) { + try { + return OffsetDateTime.parse(str, offsetDateTimeFormatter); + } catch (DateTimeParseException e) { + throw new RuntimeException(e); } + } - /** - * Parse the given string into {@code OffsetDateTime} object. - * @param str String - * @return {@code OffsetDateTime} - */ - public OffsetDateTime parseOffsetDateTime(String str) { - try { - return OffsetDateTime.parse(str, offsetDateTimeFormatter); - } catch (DateTimeParseException e) { - throw new RuntimeException(e); - } - } - /** - * Format the given {@code OffsetDateTime} object into string. - * @param offsetDateTime {@code OffsetDateTime} - * @return {@code OffsetDateTime} in string format - */ - public String formatOffsetDateTime(OffsetDateTime offsetDateTime) { - return offsetDateTimeFormatter.format(offsetDateTime); - } -} + /** + * Format the given {@code OffsetDateTime} object into string. + * + * @param offsetDateTime {@code OffsetDateTime} + * @return {@code OffsetDateTime} in string format + */ + public String formatOffsetDateTime(OffsetDateTime offsetDateTime) { + return offsetDateTimeFormatter.format(offsetDateTime); + } +} \ No newline at end of file diff --git a/sdk/src/main/java/com/fingerprint/sdk/Pair.java b/sdk/src/main/java/com/fingerprint/sdk/Pair.java index e025918b..e7705e89 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/Pair.java +++ b/sdk/src/main/java/com/fingerprint/sdk/Pair.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,45 +13,25 @@ package com.fingerprint.sdk; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class Pair { - private String name = ""; - private String value = ""; + private final String name; + private final String value; - public Pair (String name, String value) { - setName(name); - setValue(value); - } + public Pair(String name, String value) { + this.name = isValidString(name) ? name : ""; + this.value = isValidString(value) ? value : ""; + } - private void setName(String name) { - if (!isValidString(name)) { - return; - } + public String getName() { + return this.name; + } - this.name = name; - } + public String getValue() { + return this.value; + } - private void setValue(String value) { - if (!isValidString(value)) { - return; - } - - this.value = value; - } - - public String getName() { - return this.name; - } - - public String getValue() { - return this.value; - } - - private boolean isValidString(String arg) { - if (arg == null) { - return false; - } - - return true; - } + private static boolean isValidString(String arg) { + return arg != null; + } } diff --git a/sdk/src/main/java/com/fingerprint/sdk/RFC3339DateFormat.java b/sdk/src/main/java/com/fingerprint/sdk/RFC3339DateFormat.java index cc294089..8dfbaa40 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/RFC3339DateFormat.java +++ b/sdk/src/main/java/com/fingerprint/sdk/RFC3339DateFormat.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -22,7 +22,7 @@ import java.util.GregorianCalendar; import java.util.TimeZone; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class RFC3339DateFormat extends DateFormat { private static final long serialVersionUID = 1L; private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC"); diff --git a/sdk/src/main/java/com/fingerprint/sdk/RFC3339InstantDeserializer.java b/sdk/src/main/java/com/fingerprint/sdk/RFC3339InstantDeserializer.java new file mode 100644 index 00000000..2b4f9850 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/sdk/RFC3339InstantDeserializer.java @@ -0,0 +1,100 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fingerprint.sdk; + +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.Temporal; +import java.time.temporal.TemporalAccessor; +import java.util.function.BiFunction; +import java.util.function.Function; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature; +import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RFC3339InstantDeserializer extends InstantDeserializer { + private static final long serialVersionUID = 1L; + private final static boolean DEFAULT_NORMALIZE_ZONE_ID = JavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID.enabledByDefault(); + private final static boolean DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + = JavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS.enabledByDefault(); + + public static final RFC3339InstantDeserializer INSTANT = new RFC3339InstantDeserializer<>( + Instant.class, DateTimeFormatter.ISO_INSTANT, + Instant::from, + a -> Instant.ofEpochMilli( a.value ), + a -> Instant.ofEpochSecond( a.integer, a.fraction ), + null, + true, // yes, replace zero offset with Z + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + public static final RFC3339InstantDeserializer OFFSET_DATE_TIME = new RFC3339InstantDeserializer<>( + OffsetDateTime.class, DateTimeFormatter.ISO_OFFSET_DATE_TIME, + OffsetDateTime::from, + a -> OffsetDateTime.ofInstant( Instant.ofEpochMilli( a.value ), a.zoneId ), + a -> OffsetDateTime.ofInstant( Instant.ofEpochSecond( a.integer, a.fraction ), a.zoneId ), + (d, z) -> ( d.isEqual( OffsetDateTime.MIN ) || d.isEqual( OffsetDateTime.MAX ) ? + d : + d.withOffsetSameInstant( z.getRules().getOffset( d.toLocalDateTime() ) ) ), + true, // yes, replace zero offset with Z + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + public static final RFC3339InstantDeserializer ZONED_DATE_TIME = new RFC3339InstantDeserializer<>( + ZonedDateTime.class, DateTimeFormatter.ISO_ZONED_DATE_TIME, + ZonedDateTime::from, + a -> ZonedDateTime.ofInstant( Instant.ofEpochMilli( a.value ), a.zoneId ), + a -> ZonedDateTime.ofInstant( Instant.ofEpochSecond( a.integer, a.fraction ), a.zoneId ), + ZonedDateTime::withZoneSameInstant, + false, // keep zero offset and Z separate since zones explicitly supported + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + protected RFC3339InstantDeserializer( + Class supportedType, + DateTimeFormatter formatter, + Function parsedToValue, + Function fromMilliseconds, + Function fromNanoseconds, + BiFunction adjust, + boolean replaceZeroOffsetAsZ, + boolean normalizeZoneId, + boolean readNumericStringsAsTimestamp) { + super( + supportedType, + formatter, + parsedToValue, + fromMilliseconds, + fromNanoseconds, + adjust, + replaceZeroOffsetAsZ, + normalizeZoneId, + readNumericStringsAsTimestamp + ); + } + + @Override + protected T _fromString(JsonParser p, DeserializationContext ctxt, String string0) throws IOException { + return super._fromString(p, ctxt, string0.replace( ' ', 'T' )); + } +} \ No newline at end of file diff --git a/sdk/src/main/java/com/fingerprint/sdk/RFC3339JavaTimeModule.java b/sdk/src/main/java/com/fingerprint/sdk/RFC3339JavaTimeModule.java new file mode 100644 index 00000000..e7716280 --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/sdk/RFC3339JavaTimeModule.java @@ -0,0 +1,39 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fingerprint.sdk; + +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; + +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.Module.SetupContext; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RFC3339JavaTimeModule extends SimpleModule { + private static final long serialVersionUID = 1L; + + public RFC3339JavaTimeModule() { + super("RFC3339JavaTimeModule"); + } + + @Override + public void setupModule(SetupContext context) { + super.setupModule(context); + + addDeserializer(Instant.class, RFC3339InstantDeserializer.INSTANT); + addDeserializer(OffsetDateTime.class, RFC3339InstantDeserializer.OFFSET_DATE_TIME); + addDeserializer(ZonedDateTime.class, RFC3339InstantDeserializer.ZONED_DATE_TIME); + } + +} diff --git a/sdk/src/main/java/com/fingerprint/sdk/Region.java b/sdk/src/main/java/com/fingerprint/sdk/Region.java index e8cb0adf..4d8a80cb 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/Region.java +++ b/sdk/src/main/java/com/fingerprint/sdk/Region.java @@ -1,9 +1,9 @@ package com.fingerprint.sdk; public enum Region { - GLOBAL ("https://api.fpjs.io"), - EUROPE ("https://eu.api.fpjs.io"), - ASIA ("https://ap.api.fpjs.io"); + GLOBAL ("https://api.fpjs.io/v4"), + EUROPE ("https://eu.api.fpjs.io/v4"), + ASIA ("https://ap.api.fpjs.io/v4"); private final String url; Region(String s) { @@ -13,4 +13,4 @@ public enum Region { public String toString() { return this.url; } -} \ No newline at end of file +} diff --git a/sdk/src/main/java/com/fingerprint/sdk/ServerConfiguration.java b/sdk/src/main/java/com/fingerprint/sdk/ServerConfiguration.java index 8b451812..c3533cb9 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/ServerConfiguration.java +++ b/sdk/src/main/java/com/fingerprint/sdk/ServerConfiguration.java @@ -1,3 +1,16 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.sdk; import java.util.Map; @@ -5,7 +18,7 @@ /** * Representing a Server configuration. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ServerConfiguration { public String URL; public String description; diff --git a/sdk/src/main/java/com/fingerprint/sdk/ServerVariable.java b/sdk/src/main/java/com/fingerprint/sdk/ServerVariable.java index bff497c6..ccd5d567 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/ServerVariable.java +++ b/sdk/src/main/java/com/fingerprint/sdk/ServerVariable.java @@ -1,3 +1,16 @@ +/* + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + package com.fingerprint.sdk; import java.util.HashSet; @@ -5,7 +18,7 @@ /** * Representing a Server Variable for server URL template substitution. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ServerVariable { public String description; public String defaultValue; diff --git a/sdk/src/main/java/com/fingerprint/sdk/StringUtil.java b/sdk/src/main/java/com/fingerprint/sdk/StringUtil.java index dd42997a..d2a47f5b 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/StringUtil.java +++ b/sdk/src/main/java/com/fingerprint/sdk/StringUtil.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import java.util.Collection; import java.util.Iterator; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class StringUtil { /** * Check if the given array contains the given value (with case-insensitive comparison). diff --git a/sdk/src/main/java/com/fingerprint/sdk/auth/ApiKeyAuth.java b/sdk/src/main/java/com/fingerprint/sdk/auth/ApiKeyAuth.java index b88fa211..ede94b36 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/auth/ApiKeyAuth.java +++ b/sdk/src/main/java/com/fingerprint/sdk/auth/ApiKeyAuth.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,7 @@ import java.util.Map; import java.util.List; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class ApiKeyAuth implements Authentication { private final String location; private final String paramName; diff --git a/sdk/src/main/java/com/fingerprint/sdk/auth/Authentication.java b/sdk/src/main/java/com/fingerprint/sdk/auth/Authentication.java index 21f21b2a..df91010b 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/auth/Authentication.java +++ b/sdk/src/main/java/com/fingerprint/sdk/auth/Authentication.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,6 +20,7 @@ import java.util.Map; import java.util.List; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public interface Authentication { /** * Apply authentication settings to header and query params. diff --git a/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBasicAuth.java b/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBasicAuth.java index 65f910dc..47bdf09e 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBasicAuth.java +++ b/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBasicAuth.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -23,7 +23,7 @@ import java.util.Map; import java.util.List; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class HttpBasicAuth implements Authentication { private String username; private String password; diff --git a/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBearerAuth.java b/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBearerAuth.java index ef2ad071..688dac92 100644 --- a/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBearerAuth.java +++ b/sdk/src/main/java/com/fingerprint/sdk/auth/HttpBearerAuth.java @@ -1,8 +1,8 @@ /* - * Fingerprint Server API - * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Server API + * # Overview Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. * - * The version of the OpenAPI document: 3 + * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,7 @@ import java.util.Map; import java.util.List; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") public class HttpBearerAuth implements Authentication { private final String scheme; private String bearerToken; diff --git a/sdk/src/test/java/com/fingerprint/SealedTest.java b/sdk/src/test/java/com/fingerprint/SealedTest.java index d405e9b5..61f3e413 100644 --- a/sdk/src/test/java/com/fingerprint/SealedTest.java +++ b/sdk/src/test/java/com/fingerprint/SealedTest.java @@ -1,7 +1,7 @@ package com.fingerprint; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fingerprint.model.EventsGetResponse; +import com.fasterxml.jackson.core.io.JsonEOFException; +import com.fingerprint.model.Event; import com.fingerprint.sdk.JSON; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @@ -14,12 +14,12 @@ public class SealedTest { @Test public void unsealEventResponseTest() throws Exception { - byte[] sealedResult = Base64.getDecoder().decode("noXc7SXO+mqeAGrvBMgObi/S0fXTpP3zupk8qFqsO/1zdtWCD169iLA3VkkZh9ICHpZ0oWRzqG0M9/TnCeKFohgBLqDp6O0zEfXOv6i5q++aucItznQdLwrKLP+O0blfb4dWVI8/aSbd4ELAZuJJxj9bCoVZ1vk+ShbUXCRZTD30OIEAr3eiG9aw00y1UZIqMgX6CkFlU9L9OnKLsNsyomPIaRHTmgVTI5kNhrnVNyNsnzt9rY7fUD52DQxJILVPrUJ1Q+qW7VyNslzGYBPG0DyYlKbRAomKJDQIkdj/Uwa6bhSTq4XYNVvbk5AJ/dGwvsVdOnkMT2Ipd67KwbKfw5bqQj/cw6bj8Cp2FD4Dy4Ud4daBpPRsCyxBM2jOjVz1B/lAyrOp8BweXOXYugwdPyEn38MBZ5oL4D38jIwR/QiVnMHpERh93jtgwh9Abza6i4/zZaDAbPhtZLXSM5ztdctv8bAb63CppLU541Kf4OaLO3QLvfLRXK2n8bwEwzVAqQ22dyzt6/vPiRbZ5akh8JB6QFXG0QJF9DejsIspKF3JvOKjG2edmC9o+GfL3hwDBiihYXCGY9lElZICAdt+7rZm5UxMx7STrVKy81xcvfaIp1BwGh/HyMsJnkE8IczzRFpLlHGYuNDxdLoBjiifrmHvOCUDcV8UvhSV+UAZtAVejdNGo5G/bz0NF21HUO4pVRPu6RqZIs/aX4hlm6iO/0Ru00ct8pfadUIgRcephTuFC2fHyZxNBC6NApRtLSNLfzYTTo/uSjgcu6rLWiNo5G7yfrM45RXjalFEFzk75Z/fu9lCJJa5uLFgDNKlU+IaFjArfXJCll3apbZp4/LNKiU35ZlB7ZmjDTrji1wLep8iRVVEGht/DW00MTok7Zn7Fv+MlxgWmbZB3BuezwTmXb/fNw=="); + byte[] sealedResult = Base64.getDecoder().decode("noXc7Xu7PIKu1tbMkMxLbQG4XU46Bv5dED98hqTkPYZnmb8PG81Q83Kpg541Vt4NQdkzfezDSVk8FP9ZzJ08L0MMb4S8bT78c10Op1LyKwZU6DGr1e3V+ZWcNzHVG1rPoL+eUHN6yR9MQp8/CmSUBQUPOOAUXdoqWohbfIGxoQIuQ5BtfpSJuYD6kTyswSi56wxzY/s24dMwgS2KnA81Y1pdi3ZVJKBdwGYGg4T5Dvcqu0GWv3sScKD9b4Tagfbe2m8nbXY/QtN770c7J1xo/TNXXdq4lyqaMyqIayHOwRBP58tNF8mACusm1pogOVIt456wIMetCGKxicPJr7m/Q02ONzhkMtzzXwgwriglGHfM7UbtTsCytCBP7J2vp0tEkHiq/X3qtuvSLJqNyRzwFJhgisKGftc5CIaT2VxVKKxkL/6Ws6FPm4sQB1UGtMCMftKpyb1lFzG9lwFkKvYN9+FGtvRM50mbrzz7ONDxbwykkxihAab36MIuk7dfhvnVLFAjrpuCkEFdWrtjVyWmM0xVeXpEUtP6Ijk5P+VuPZ1alV/JV1q4WvfrGMizEZbwbp6eQZg9mwKe4IX+FVi7sPF2S/CCLI/d90S5Yz6bBP9uiQ3pCVlYbVOkpwS0YQxnR+h5J50qodY7LuswNO5VlEgI0ztkjPQBr8koT4SM54X2z14tA2tKCxSv1psEL5HOk4IWN+9f3RVfDKBDruDiDd+BtZquhYLmOFat9K4h41NrPGAqv5tKmmJtx3llMs6LFHPKBlNlI5zgqE7T47xv2AWw5nqWM107t8lpRETIgJx+YN/Jv6byJSQm7afaeDtHXGceMPOKMziH1XgsiQiS56OsmyyRgaq5YCmMuaPw8gcgVa7RNZSafkP34aQBAuJOA3JFs5xcYcubKutD3h1mk697A8vwdtR/Gj0zTvuUnQ/9o3qHSLseAEIiY9/dS6WJnKXRKTonQi2F6DV9NTzFVQl99AH22jq6lIsjbEEKcq/ydFDUpgAq4lyp9nPBHuPXSojdG+1BWuUyjYykaqnLzzqKgRalGzeWmRHd2qeNw8Bz5OWYBw82C3gHRS2BB9VquIgEYktDvgJ5yRfDYkp8qgxHoYeR88ijccWgdvk+WH78OPdwqA7rqdAYcWqn9KNozoxuYddc0fnrHbgaWpanCmPp0gNEeb4r+i9FDGPSkgYBdyrEPHblsDN/Ad1dhLIHEDEtQyv13s6tDRgLVvhowrzqIM+5cm/abyTDhXzSYDfCw2Wf90cBOMsbQBB2N2YRqnrpA50PGp+0IwlPL7qZj1N4JGhvQD0ux8Ood6AiXpdguj7DMP+T0laHIjWee5/xGZB6g3EsCdOZJjVj7hSE/L3eV4No0WcLqJ5DPOgw+FnvQpxndCTc8DW83tNm624lm7scu0A499vEFj1dhtq5gUxsGcqzm09+Vk2V/d0sa77Xocqe3bcfS5lXc/pHrOc1qKlK8kTr2AYNwjeJJ14euuin361WBETd1I6n8eIs02HyBas09o9lT7Nq05jsnbxej6d0q6GH7IYusiBFTJaAZ6UXOV5i1NOcw9jaGyHms3M2N/b2cmXFYTIFZSjSfbqoI6YZF73sMPhEZqfZ5Jjq+ZLMC3A+yFPFJOW/0oolUGbcC8TBVmLi37Z9Wgc338w2Jf+I94SdViku"); byte[] key = Base64.getDecoder().decode("p2PA7MGy5tx56cnyJaFZMr96BCFwZeHjZV2EqMvTq53="); - EventsGetResponse expectedResponse = JSON.getDefault().getMapper().readValue("{\"products\":{\"identification\":{\"data\":{\"visitorId\":\"2ZEDCZEfOfXjEmMuE3tq\",\"requestId\":\"1703067132750.Z5hutJ\",\"browserDetails\":{\"browserName\":\"Safari\",\"browserMajorVersion\":\"17\",\"browserFullVersion\":\"17.3\",\"os\":\"Mac OS X\",\"osVersion\":\"10.15.7\",\"device\":\"Other\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Safari/605.1.15\"},\"incognito\":false,\"ip\":\"::1\",\"ipLocation\":{\"accuracyRadius\":1000,\"latitude\":59.3241,\"longitude\":18.0517,\"postalCode\":\"100 05\",\"timezone\":\"Europe/Stockholm\",\"city\":{\"name\":\"Stockholm\"},\"country\":{\"code\":\"SE\",\"name\":\"Sweden\"},\"continent\":{\"code\":\"EU\",\"name\":\"Europe\"},\"subdivisions\":[{\"isoCode\":\"AB\",\"name\":\"Stockholm County\"}]},\"timestamp\":1703067136286,\"time\":\"2023-12-20T10:12:16Z\",\"url\":\"http://localhost:8080/\",\"tag\":{\"foo\":\"bar\"},\"confidence\":{\"score\":1},\"visitorFound\":true,\"firstSeenAt\":{\"global\":\"2023-12-15T12:13:55.103Z\",\"subscription\":\"2023-12-15T12:13:55.103Z\"},\"lastSeenAt\":{\"global\":\"2023-12-19T11:39:51.52Z\",\"subscription\":\"2023-12-19T11:39:51.52Z\"}}},\"botd\":{\"data\":{\"bot\":{\"result\":\"notDetected\"},\"meta\":{\"foo\":\"bar\"},\"url\":\"http://localhost:8080/\",\"ip\":\"::1\",\"time\":\"2023-12-20T10:12:13.894Z\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Safari/605.1.15\",\"requestId\":\"1703067132750.Z5hutJ\"}}}}", EventsGetResponse.class); + Event expectedResponse = JSON.getDefault().getMapper().readValue("{\"linked_id\":\"somelinkedId\",\"tags\":{},\"timestamp\":1708102555327,\"event_id\":\"1708102555327.NLOjmg\",\"url\":\"https://www.example.com/login?hope{this{works[!\",\"ip_address\":\"61.127.217.15\",\"user_agent\":\"Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....\",\"browser_details\":{\"browser_name\":\"Chrome\",\"browser_major_version\":\"74\",\"browser_full_version\":\"74.0.3729\",\"os\":\"Windows\",\"os_version\":\"7\",\"device\":\"Other\"},\"identification\":{\"visitor_id\":\"Ibk1527CUFmcnjLwIs4A9\",\"confidence\":{\"score\":0.97,\"version\":\"1.1\"},\"visitor_found\":false,\"first_seen_at\":1708102555327,\"last_seen_at\":1708102555327},\"supplementary_id_high_recall\":{\"visitor_id\":\"3HNey93AkBW6CRbxV6xP\",\"visitor_found\":true,\"confidence\":{\"score\":0.97,\"version\":\"1.1\"},\"first_seen_at\":1708102555327,\"last_seen_at\":1708102555327},\"bot\":\"not_detected\",\"root_apps\":false,\"emulator\":false,\"ip_info\":{\"v4\":{\"address\":\"94.142.239.124\",\"geolocation\":{\"accuracy_radius\":20,\"latitude\":50.05,\"longitude\":14.4,\"postal_code\":\"150 00\",\"timezone\":\"Europe/Prague\",\"city_name\":\"Prague\",\"country_code\":\"CZ\",\"country_name\":\"Czechia\",\"continent_code\":\"EU\",\"continent_name\":\"Europe\",\"subdivisions\":[{\"iso_code\":\"10\",\"name\":\"Hlavni mesto Praha\"}]},\"asn\":\"7922\",\"asn_name\":\"COMCAST-7922\",\"asn_network\":\"73.136.0.0/13\",\"datacenter_result\":true,\"datacenter_name\":\"DediPath\"},\"v6\":{\"address\":\"2001:db8:3333:4444:5555:6666:7777:8888\",\"geolocation\":{\"accuracy_radius\":5,\"latitude\":49.982,\"longitude\":36.2566,\"postal_code\":\"10112\",\"timezone\":\"Europe/Berlin\",\"city_name\":\"Berlin\",\"country_code\":\"DE\",\"country_name\":\"Germany\",\"continent_code\":\"EU\",\"continent_name\":\"Europe\",\"subdivisions\":[{\"iso_code\":\"BE\",\"name\":\"Land Berlin\"}]},\"asn\":\"6805\",\"asn_name\":\"Telefonica Germany\",\"asn_network\":\"2a02:3100::/24\",\"datacenter_result\":false,\"datacenter_name\":\"\"}},\"ip_blocklist\":{\"email_spam\":false,\"attack_source\":false,\"tor_node\":false},\"proxy\":true,\"proxy_confidence\":\"low\",\"proxy_details\":{\"proxy_type\":\"residential\",\"last_seen_at\":1708102555327},\"vpn\":false,\"vpn_confidence\":\"high\",\"vpn_origin_timezone\":\"Europe/Berlin\",\"vpn_origin_country\":\"unknown\",\"vpn_methods\":{\"timezone_mismatch\":false,\"public_vpn\":false,\"auxiliary_mobile\":false,\"os_mismatch\":false,\"relay\":false},\"incognito\":false,\"tampering\":false,\"tampering_details\":{\"anomaly_score\":0.1955,\"anti_detect_browser\":false},\"cloned_app\":false,\"factory_reset_timestamp\":0,\"jailbroken\":false,\"frida\":false,\"privacy_settings\":false,\"virtual_machine\":false,\"location_spoofing\":false,\"velocity\":{\"distinct_ip\":{\"5_minutes\":1,\"1_hour\":1,\"24_hours\":1},\"distinct_country\":{\"5_minutes\":1,\"1_hour\":2,\"24_hours\":2},\"events\":{\"5_minutes\":1,\"1_hour\":5,\"24_hours\":5},\"ip_events\":{\"5_minutes\":1,\"1_hour\":5,\"24_hours\":5},\"distinct_ip_by_linked_id\":{\"5_minutes\":1,\"1_hour\":5,\"24_hours\":5},\"distinct_visitor_id_by_linked_id\":{\"5_minutes\":1,\"1_hour\":5,\"24_hours\":5}},\"developer_tools\":false,\"mitm_attack\":false,\"sdk\":{\"platform\":\"js\",\"version\":\"3.11.10\"},\"replayed\":false}", Event.class); - EventsGetResponse eventResponse = Sealed.unsealEventResponse( + Event eventResponse = Sealed.unsealEventResponse( sealedResult, new Sealed.DecryptionKey[]{ new Sealed.DecryptionKey( @@ -66,10 +66,10 @@ public void unsealEventResponseWithInvalidSealedResultTest() throws Exception { @Test public void unsealEventResponseWithInvalidJsonSealedResultTest() throws Exception { - byte[] sealedResult = Base64.getDecoder().decode("noXc7XdbEp5JpFNJaMxCB5leuFeW9Fs0tqvwnbU3ND2yShYn+dgeUWvdk32YrXam4yuvhmpO8gww//Qmsu2sbyvyMRuXmlKoriV9EVPYVCB2xszskg34ngrAh4sreRZV3c8d0DcXZulbMiiXrli931fEABWRHM0NtcoPuubqb+TysNSoFIYVZxpRVDR8jDiTXuQyPzvqBJD4+xeQTOOAOjPlqRTQSSBrlWjeZLNA70wWX7VRDXA1SoR+1k7bkBFK4OwRnh5rVGeGvGeHisOe/SyOL6GlQyBk3sRdSCQiI/g0ywdqLsOk4xDdCgg5vMI07APvL9FSaQrglMvD8NRmQOr5glZoV6S3DoBgaYQVvEygTZy2gfJ0z6hLY6Q8WSW0hpb3t9m4MP9WC5Vc2r0fmfqX7gjYZpwyfJxsyyk4iksminhm2T8N8DTYuZuz82jjaGNDqAPn1PZKqiEh8H9TpcgewAP8mlVrB5CUPJMHH+p7dM5zibfKM9+1MPxvZNp0PBkljBwrfGjiKlmYhn7bb5UW5TeEMtiP27KoA26PX+NV130Vi9Y/LUgMivLwaIc+jnlFyaoqg6Kg6H8G3WhT0r/pc4KP0mwyHJzfXjep8kQZGKxbMd0Sc3h4kpoWR1hdYM4QZRvKQzh7BqBPtPiVgHYoEJf9qFVxYhel9UFONz65q5bA2Y25oFKpzfsiXQqFEo/LRANnW7iUdfesGtGjjP4N6rd8ssNpYf57FmPBpWC4RwjG45MHRUSajCVLKiwUgFQbOo7/t5hgQIQOui3jmCBDjCjpjGZK8vd2nFputUTqI/MmZK7THaDPFsn8h9M1boF3VMCzDXygJFhd5lwdVErXGtQcc1lApEvdOr24QB5Io4SjfjJCfEQ7g4ulBXuqsh6I4VkcuMh5zgBIdmGm"); + byte[] sealedResult = Base64.getDecoder().decode("noXc7VE/iOGp4qw5etO5BigT7Gq3Grr3vFf4O+kB+JGQFDBDPAy7afWfhz/AhDRiY86mH7GSfOhBbNL4Q/xAvJPLepFFFs2YKYKGH5KLLvTfTX9/MPR4xACLJTbBRk1oLrz7KvyUh8wJzRH15MFryFIgTprKQEAURxSxVfkwKFc/lQvth9A/VD+qfrfQPPfOevGydBSuwhInuOWXsrtT+Oy036o+sf3uR2sGSAVwqMkORNu1s4jvCvT+v5fQH0SVHp2E24tscteOEUNhYcfsWInoDKl2vFR04YX8TSXqC9/YWJDRv4rSV2H806HvKJguElS7Bk4PVGELNg6bYKTV+QVq70UM/X9aABbOy/maYVE1Cv2fV7lOsKj58i4XXMnBoHf6HSrdLBMuelcEbqmILlnouZr9EusGJw9s3bVFihC1ZJMBVkwuUn93eicqg2YjTN+pUevEyQuSYJ9UZ6sRPOGp8OwQNBEYJiMN7M5/5cO4jAB5W7Sgsn+tN5khUDevrXaAdj/q/a6Sq9sGTImySH6IWm8LY+TA13JRTztQne3aD0XmWT2QkTHZ9MP67zaRl5wcJaKWHMYuDcRXu8DJNHQS3IC7RMOKboJPSTrIgmCEeNP4ctdqV+piBC0AEX1zEO/tms3XmoLqGtflHxP/h20XVRlX5YAPyRWJju5gFdXNyLRU6IS2/crJiPocgyTJXtS8/Ffg6ksyg7NSO0Z3232cv1uAszeBsQmBxz6/kwpq5fiNDGTsQouS5g8GqePB34Dduasi/Hn9oHKnDOOpYUnCkIUSJrwJSwqh6Z6kWbZywdqhS6paGeYW+bcVo/zdBhIdS6OH8AAf+5NaZpqmUweTpRcI3/2BYRMhn5KNbVJMG0Egq986V9G0g2o3+7pkpFyHMBuMN4txwLmonU5Thgg="); byte[] key = Base64.getDecoder().decode("p2PA7MGy5tx56cnyJaFZMr96BCFwZeHjZV2EqMvTq53="); - assertThrows(JsonMappingException.class, () -> Sealed.unsealEventResponse( + assertThrows(JsonEOFException.class, () -> Sealed.unsealEventResponse( sealedResult, new Sealed.DecryptionKey[]{ new Sealed.DecryptionKey( diff --git a/sdk/src/test/java/com/fingerprint/SerializationTest.java b/sdk/src/test/java/com/fingerprint/SerializationTest.java index 0b95ae7d..d25e8a19 100644 --- a/sdk/src/test/java/com/fingerprint/SerializationTest.java +++ b/sdk/src/test/java/com/fingerprint/SerializationTest.java @@ -3,8 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.fingerprint.model.EventsGetResponse; -import com.fingerprint.model.ProductRawDeviceAttributes; +import com.fingerprint.model.Event; import com.fingerprint.sdk.ApiException; import com.fingerprint.sdk.JSON; import org.junit.jupiter.api.Test; @@ -38,18 +37,18 @@ private static ObjectMapper getMapper() { return mapper; } - @Test - public void serializeRawDeviceAttributesTest() throws IOException { - ObjectMapper sdkObjectMapper = JSON.getDefault().getMapper(); - EventsGetResponse eventResponse = sdkObjectMapper.readValue(getFileAsIOStream("mocks/get_event_200.json"), EventsGetResponse.class); - - ProductRawDeviceAttributes signalResponseRawDeviceAttributes = eventResponse.getProducts().getRawDeviceAttributes(); - String sdkResult = sdkObjectMapper.writeValueAsString(signalResponseRawDeviceAttributes); - - ObjectMapper springLikeObjectMapper = getMapper(); - String springResult = springLikeObjectMapper.writeValueAsString(signalResponseRawDeviceAttributes); - - assertTrue(sdkResult.contains("\"architecture\":{\"value\":127}")); - assertTrue(springResult.contains("\"architecture\":{\"value\":127,\"error\":null}")); - } +// @Test +// public void serializeRawDeviceAttributesTest() throws IOException { +// ObjectMapper sdkObjectMapper = JSON.getDefault().getMapper(); +// Event eventResponse = sdkObjectMapper.readValue(getFileAsIOStream("mocks/events/get_event_200.json"), EventsGetResponse.class); +// +// ProductRawDeviceAttributes signalResponseRawDeviceAttributes = eventResponse.getProducts().getRawDeviceAttributes(); +// String sdkResult = sdkObjectMapper.writeValueAsString(signalResponseRawDeviceAttributes); +// +// ObjectMapper springLikeObjectMapper = getMapper(); +// String springResult = springLikeObjectMapper.writeValueAsString(signalResponseRawDeviceAttributes); +// +// assertTrue(sdkResult.contains("\"architecture\":{\"value\":127}")); +// assertTrue(springResult.contains("\"architecture\":{\"value\":127,\"error\":null}")); +// } } diff --git a/sdk/src/test/java/com/fingerprint/api/FingerprintApiTest.java b/sdk/src/test/java/com/fingerprint/api/FingerprintApiTest.java index 7f9cc044..b59fbff5 100644 --- a/sdk/src/test/java/com/fingerprint/api/FingerprintApiTest.java +++ b/sdk/src/test/java/com/fingerprint/api/FingerprintApiTest.java @@ -21,7 +21,6 @@ import java.io.InputStream; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; -import java.time.OffsetDateTime; import java.util.*; import java.util.stream.Collectors; @@ -35,16 +34,9 @@ public class FingerprintApiTest { private FingerprintApi api; private static final String MOCK_REQUEST_ID = "0KSh65EnVoB85JBmloQK"; - private static final String MOCK_REQUEST_WITH_EXTRA_FIELDS_ID = "EXTRA_FIELDS"; - private static final String MOCK_REQUEST_WITH_ALL_FAILED_SIGNALS = "ALL_FAILED_SIGNALS"; - private static final String MOCK_REQUEST_BOTD_FAILED = "MOCK_REQUEST_BOTD_FAILED"; - private static final String MOCK_REQUEST_BOTD_MANY_REQUEST = "MOCK_REQUEST_BOTD_MANY_REQUEST"; - private static final String MOCK_REQUEST_IDENTIFICATION_FAILED = "MOCK_REQUEST_IDENTIFICATION_FAILED"; - private static final String MOCK_REQUEST_IDENTIFICATION_MANY_REQUEST = "MOCK_REQUEST_IDENTIFICATION_MANY_REQUEST"; private static final String MOCK_VISITOR_ID = "AcxioeQKffpXF8iGQK3P"; - private static final String MOCK_VISITOR_REQUEST_ID = "1655373780901.HhjRFX"; - private static final String MOCK_WEBHOOK_VISITOR_ID = "3HNey93AkBW6CRbxV6xP"; - private static final String MOCK_WEBHOOK_REQUEST_ID = "Px6VxbRC6WBkA39yeNH3"; + private static final String MOCK_WEBHOOK_VISITOR_ID = "Ibk1527CUFmcnjLwIs4A9"; + private static final String MOCK_WEBHOOK_EVENT_ID = "1708102555327.NLOjmg"; private static final ObjectMapper MAPPER = getMapper(); @@ -72,6 +64,7 @@ private void validateIntegrationInfo(List queryParams) { public void before() { ApiClient realApiClient = new ApiClient(); ApiClient apiClient = Mockito.spy(realApiClient); +// apiClient.setBearerToken("MOCK_API_KEY"); api = new FingerprintApi(apiClient); } @@ -98,22 +91,14 @@ private void addMock(String operation, String path, ApiAnswerFunction ans break; case "updateEvent": path = "/events/" + path; - httpMethod = "PUT"; - break; - case "getVisits": - path = "/visitors/" + path; - httpMethod = "GET"; + httpMethod = "PATCH"; break; case "deleteVisitorData": path = "/visitors/" + path; httpMethod = "DELETE"; break; - case "getRelatedVisitors": - path = "/related-visitors"; - httpMethod = "GET"; - break; case "searchEvents": - path = "/events/search"; + path = "/events"; httpMethod = "GET"; break; default: @@ -133,7 +118,7 @@ private void addMock(String operation, String path, ApiAnswerFunction ans eq(httpMethod), // HTTP-method any(), // queryParams argThat(body -> { - if (httpMethod.equals("PUT")) { + if (httpMethod.equals("PATCH")) { return body != null; } else { return body == null; @@ -180,53 +165,44 @@ public static boolean listContainsPair(List pairs, String key, String valu @Test public void getEventTest() throws ApiException { addMock("getEvent", MOCK_REQUEST_ID, invocation -> { - return mockFileToResponse(200, invocation, "mocks/get_event_200.json"); + return mockFileToResponse(200, invocation, "mocks/events/get_event_200.json"); }); - EventsGetResponse response = api.getEvent(MOCK_REQUEST_ID); - assertNotNull(response.getProducts()); - assertNotNull(response.getProducts().getIdentification()); - assertNotNull(response.getProducts().getIdentification().getData()); - assertEquals("Ibk1527CUFmcnjLwIs4A9", response.getProducts().getIdentification().getData().getVisitorId()); - - assertFalse(response.getProducts().getClonedApp().getData().getResult()); - assertFalse(response.getProducts().getEmulator().getData().getResult()); - assertFalse(response.getProducts().getFrida().getData().getResult()); - assertFalse(response.getProducts().getJailbroken().getData().getResult()); - assertFalse(response.getProducts().getIpBlocklist().getData().getResult()); - assertTrue(response.getProducts().getProxy().getData().getResult()); - assertEquals(ProxyDetails.ProxyTypeEnum.RESIDENTIAL, response.getProducts().getProxy().getData().getDetails().getProxyType()); - assertInstanceOf(OffsetDateTime.class, response.getProducts().getProxy().getData().getDetails().getLastSeenAt()); - assertFalse(response.getProducts().getTampering().getData().getResult()); - assertFalse(response.getProducts().getTor().getData().getResult()); - assertFalse(response.getProducts().getVpn().getData().getResult()); - assertFalse(response.getProducts().getVirtualMachine().getData().getResult()); - assertFalse(response.getProducts().getHighActivity().getData().getResult()); - assertFalse(response.getProducts().getLocationSpoofing().getData().getResult()); - assertEquals(0, response.getProducts().getFactoryReset().getData().getTimestamp()); - ProductRawDeviceAttributes signalResponseRawDeviceAttributes = response.getProducts().getRawDeviceAttributes(); - assertEquals(127, signalResponseRawDeviceAttributes.getData().get("architecture").getValue()); - assertEquals(35.73832903057337, signalResponseRawDeviceAttributes.getData().get("audio").getValue()); - Map canvasAttribute = (Map) response.getProducts().getRawDeviceAttributes().getData().get("canvas").getValue(); - assertEquals(true, canvasAttribute.get("Winding")); - assertEquals("4dce9d6017c3e0c052a77252f29f2b1c", canvasAttribute.get("Geometry")); - assertEquals("p3", signalResponseRawDeviceAttributes.getData().get("colorGamut").getValue()); - assertEquals(true, signalResponseRawDeviceAttributes.getData().get("cookiesEnabled").getValue()); + Event response = api.getEvent(MOCK_REQUEST_ID); + assertNotNull(response); + assertNotNull(response.getIdentification()); + assertEquals("Ibk1527CUFmcnjLwIs4A9", response.getIdentification().getVisitorId()); + + assertFalse(response.getClonedApp()); + assertFalse(response.getEmulator()); + assertFalse(response.getFrida()); + assertFalse(response.getJailbroken()); + assertFalse(response.getIpBlocklist().getEmailSpam()); + assertFalse(response.getIpBlocklist().getTorNode()); + assertTrue(response.getProxy()); + assertEquals(ProxyDetails.ProxyTypeEnum.RESIDENTIAL, response.getProxyDetails().getProxyType()); + assertEquals(1708102555327L, response.getProxyDetails().getLastSeenAt()); + assertFalse(response.getTampering()); + assertFalse(response.getVpn()); + assertFalse(response.getVirtualMachine()); + assertInstanceOf(VelocityData.class, response.getVelocity().getDistinctCountry()); + assertFalse(response.getLocationSpoofing()); + assertEquals(0L, response.getFactoryResetTimestamp()); } @Test public void updateEventLinkedIdRequest() throws ApiException { final String LINKED_ID = "myLinkedId"; - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setLinkedId(LINKED_ID); addMock("updateEvent", MOCK_REQUEST_ID, invocation -> { List queryParams = invocation.getArgument(3); assertEquals(1, queryParams.size()); - EventsUpdateRequest body = invocation.getArgument(4); + EventUpdate body = invocation.getArgument(4); assertEquals(LINKED_ID, body.getLinkedId()); - assertNull(body.getTag()); + assertNull(body.getTags()); assertNull(body.getSuspect()); return mockFileToResponse(200, invocation, null); }); @@ -247,16 +223,16 @@ public void updateEventTagRequest() throws ApiException { put("key1", "value1"); put("key2", 2); }}); - EventsUpdateRequest request = new EventsUpdateRequest(); - request.setTag(TAG); + EventUpdate request = new EventUpdate(); + request.setTags(TAG); addMock("updateEvent", MOCK_REQUEST_ID, invocation -> { List queryParams = invocation.getArgument(3); assertEquals(1, queryParams.size()); - EventsUpdateRequest body = invocation.getArgument(4); + EventUpdate body = invocation.getArgument(4); assertNull(body.getLinkedId()); - assertEquals(TAG, body.getTag()); + assertEquals(TAG, body.getTags()); assertNull(body.getSuspect()); return mockFileToResponse(200, invocation, null); }); @@ -265,16 +241,16 @@ public void updateEventTagRequest() throws ApiException { @Test public void updateEventSuspectPositiveRequest() throws ApiException { - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setSuspect(true); addMock("updateEvent", MOCK_REQUEST_ID, invocation -> { List queryParams = invocation.getArgument(3); assertEquals(1, queryParams.size()); - EventsUpdateRequest body = invocation.getArgument(4); + EventUpdate body = invocation.getArgument(4); assertNull(body.getLinkedId()); - assertNull(body.getTag()); + assertNull(body.getTags()); assertTrue(body.getSuspect()); return mockFileToResponse(200, invocation, null); }); @@ -283,16 +259,16 @@ public void updateEventSuspectPositiveRequest() throws ApiException { @Test public void updateEventSuspectNegativeRequest() throws ApiException { - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setSuspect(false); addMock("updateEvent", MOCK_REQUEST_ID, invocation -> { List queryParams = invocation.getArgument(3); assertEquals(1, queryParams.size()); - EventsUpdateRequest body = invocation.getArgument(4); + EventUpdate body = invocation.getArgument(4); assertNull(body.getLinkedId()); - assertNull(body.getTag()); + assertNull(body.getTags()); assertFalse(body.getSuspect()); return mockFileToResponse(200, invocation, null); }); @@ -307,18 +283,18 @@ public void updateMultipleFieldsEventRequest() throws ApiException { TAG.put("booleanKey", true); TAG.put("numberKey", 123); TAG.put("arrayStringKey", new String[]{"value1", "value2"}); - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setLinkedId(LINKED_ID); - request.setTag(TAG); + request.setTags(TAG); request.setSuspect(true); addMock("updateEvent", MOCK_REQUEST_ID, invocation -> { List queryParams = invocation.getArgument(3); assertEquals(1, queryParams.size()); - EventsUpdateRequest body = invocation.getArgument(4); + EventUpdate body = invocation.getArgument(4); assertEquals(LINKED_ID, body.getLinkedId()); - assertEquals(TAG, body.getTag()); + assertEquals(TAG, body.getTags()); assertTrue(body.getSuspect()); return mockFileToResponse(200, invocation, null); }); @@ -336,147 +312,6 @@ public void deleteVisitorDataTest() throws ApiException { api.deleteVisitorData(MOCK_VISITOR_ID); } - /** - * Get event by requestId - * This endpoint allows you to get events with all the information from each activated product (Fingerprint Pro or Bot Detection). Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. - * Answer will contain fields of additional products that don't described in schema - * - * @throws ApiException if the Api call fails - */ - @Test - public void getEventWithExtraFieldsTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_WITH_EXTRA_FIELDS_ID, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_extra_fields.json") - ); - EventsGetResponse response = api.getEvent(MOCK_REQUEST_WITH_EXTRA_FIELDS_ID); - Products products = response.getProducts(); - assertNotNull(products); - assertNotNull(products.getIdentification()); - assertNotNull(products.getIdentification().getData()); - assertEquals("Ibk1527CUFmcnjLwIs4A9", products.getIdentification().getData().getVisitorId()); - } - - @Test - public void getEventWithAllFailedSignalsTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_WITH_ALL_FAILED_SIGNALS, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_all_errors.json") - ); - - EventsGetResponse response = api.getEvent(MOCK_REQUEST_WITH_ALL_FAILED_SIGNALS); - Products products = response.getProducts(); - - assertNotNull(products); - assertEquals(ErrorCode.FAILED, products.getIdentification().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getBotd().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getIpInfo().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getIncognito().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getRootApps().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getEmulator().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getIpBlocklist().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getTor().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getVpn().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getProxy().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getTampering().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getClonedApp().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getFactoryReset().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getJailbroken().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getFrida().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getPrivacySettings().getError().getCode()); - assertEquals(ErrorCode.FAILED, products.getVirtualMachine().getError().getCode()); - - ProductRawDeviceAttributes signalResponseRawDeviceAttributes = response.getProducts().getRawDeviceAttributes(); - assertEquals("Error", signalResponseRawDeviceAttributes.getData().get("audio").getError().getName()); - assertEquals("internal server error", signalResponseRawDeviceAttributes.getData().get("audio").getError().getMessage()); - assertEquals("Error", signalResponseRawDeviceAttributes.getData().get("canvas").getError().getName()); - assertEquals("internal server error", signalResponseRawDeviceAttributes.getData().get("canvas").getError().getMessage()); - } - - @Test - public void getEventBotdFailedErrorTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_BOTD_FAILED, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_botd_failed_error.json") - ); - - EventsGetResponse response = api.getEvent(MOCK_REQUEST_BOTD_FAILED); - Products products = response.getProducts(); - assertNotNull(products); - assertNotNull(products.getIdentification()); - assertNotNull(products.getIdentification().getData()); - assertEquals("Ibk1527CUFmcnjLwIs4A9", products.getIdentification().getData().getVisitorId()); - - assertNotNull(products.getBotd()); - assertNotNull(products.getBotd().getError()); - assertEquals(ErrorCode.FAILED, products.getBotd().getError().getCode()); - } - - @Test - public void getEventBotdManyRequestsErrorTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_BOTD_MANY_REQUEST, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_too_many_requests_error.json") - ); - - EventsGetResponse response = api.getEvent(MOCK_REQUEST_BOTD_MANY_REQUEST); - Products products = response.getProducts(); - assertNotNull(products); - assertNotNull(products.getBotd()); - assertNotNull(products.getBotd().getError()); - assertEquals(ErrorCode.TOO_MANY_REQUESTS, products.getBotd().getError().getCode()); - } - - @Test - public void getEventIdentificationFailedErrorTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_IDENTIFICATION_FAILED, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_identification_failed_error.json") - ); - - EventsGetResponse response = api.getEvent(MOCK_REQUEST_IDENTIFICATION_FAILED); - Products products = response.getProducts(); - assertNotNull(products); - assertNotNull(products.getIdentification()); - assertNotNull(products.getIdentification().getError()); - assertEquals(ErrorCode.FAILED, products.getIdentification().getError().getCode()); - assertNotNull(products.getBotd()); - assertNotNull(products.getBotd().getData()); - } - - @Test - public void getEventIdentificationManyRequestsErrorTest() throws ApiException { - addMock("getEvent", MOCK_REQUEST_IDENTIFICATION_MANY_REQUEST, - invocation -> mockFileToResponse(200, invocation, "mocks/get_event_200_too_many_requests_error.json") - ); - - EventsGetResponse response = api.getEvent(MOCK_REQUEST_IDENTIFICATION_MANY_REQUEST); - Products products = response.getProducts(); - assertNotNull(products); - assertNotNull(products.getIdentification()); - assertNotNull(products.getIdentification().getError()); - assertEquals(ErrorCode._429_TOO_MANY_REQUESTS, products.getIdentification().getError().getCode()); - } - - /** - * Get visits by visitorId - * This endpoint allows you to get a history of visits with all available information. Use the visitorId as a URL path parameter. This API method is scoped to a visitor, i.e. all returned information is by visitorId. - * - * @throws ApiException if the Api call fails - */ - @Test - public void getVisitsTest() throws ApiException { - final String PAGINATION_KEY = "1683900801733.Ogvu1j"; - final int LIMIT = 50; - addMock("getVisits", MOCK_VISITOR_ID, invocation -> { - List queryParams = invocation.getArgument(3); - - assertEquals(4, queryParams.size()); - assertTrue(listContainsPair(queryParams, "request_id", MOCK_VISITOR_REQUEST_ID)); - assertTrue(listContainsPair(queryParams, "limit", String.valueOf(LIMIT))); - assertTrue(listContainsPair(queryParams, "paginationKey", PAGINATION_KEY)); - - return mockFileToResponse(200, invocation, "mocks/get_visitors_200_limit_500.json"); - }); - VisitorsGetResponse response = api.getVisits(MOCK_VISITOR_ID, MOCK_VISITOR_REQUEST_ID, null, LIMIT, PAGINATION_KEY, null); - assertEquals(response.getVisitorId(), MOCK_VISITOR_ID); - } - /** * Webhook * Check that webhook correctly deserializes the JSON payload to the WebhookVisit object. @@ -488,28 +323,10 @@ public void webhookTest() throws Exception { ObjectMapper mapper = new ObjectMapper().registerModule(new JavaTimeModule()); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - Webhook visit = mapper.readValue(getFileAsIOStream("mocks/webhook.json"), Webhook.class); + Event event = mapper.readValue(getFileAsIOStream("mocks/webhook/webhook_event.json"), Event.class); - assertEquals(MOCK_WEBHOOK_VISITOR_ID, visit.getVisitorId()); - assertEquals(MOCK_WEBHOOK_REQUEST_ID, visit.getRequestId()); - } - - @Test - public void relatedVisitorsTest() throws ApiException { - addMock("getRelatedVisitors", null, invocation -> { - List queryParams = invocation.getArgument(3); - assertEquals(2, queryParams.size()); - assertTrue(listContainsPair(queryParams, "visitor_id", MOCK_VISITOR_ID)); - - return mockFileToResponse(200, invocation, "mocks/related-visitors/get_related_visitors_200.json"); - }); - - RelatedVisitorsResponse response = api.getRelatedVisitors(MOCK_VISITOR_ID); - List relatedVisitorsList = response.getRelatedVisitors(); - - assertEquals(relatedVisitorsList.size(), 2); - assertEquals(relatedVisitorsList.get(0).getVisitorId(), "NtCUJGceWX9RpvSbhvOm"); - assertEquals(relatedVisitorsList.get(1).getVisitorId(), "25ee02iZwGxeyT0jMNkZ"); + assertEquals(MOCK_WEBHOOK_VISITOR_ID, event.getIdentification().getVisitorId()); + assertEquals(MOCK_WEBHOOK_EVENT_ID, event.getEventId()); } @Test @@ -520,41 +337,32 @@ public void searchEventsMinimumParamsTest() throws ApiException { assertEquals(2, queryParams.size()); assertTrue(listContainsPair(queryParams, "limit", String.valueOf(LIMIT))); - return mockFileToResponse(200, invocation, "mocks/get_event_search_200.json"); + return mockFileToResponse(200, invocation, "mocks/events/search/get_event_search_200.json"); }); - SearchEventsResponse response = api.searchEvents(LIMIT, null); - List events = response.getEvents(); + EventSearch response = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams().setLimit(LIMIT)); + List events = response.getEvents(); assertEquals(events.size(), 1); - Products products = events.get(0).getProducts(); - - assertNotNull(products); - assertNotNull(products.getIdentification()); - assertNotNull(products.getIdentification().getData()); - assertEquals("Ibk1527CUFmcnjLwIs4A9", products.getIdentification().getData().getVisitorId()); - - assertFalse(products.getClonedApp().getData().getResult()); - assertFalse(products.getEmulator().getData().getResult()); - assertFalse(products.getFrida().getData().getResult()); - assertFalse(products.getJailbroken().getData().getResult()); - assertFalse(products.getIpBlocklist().getData().getResult()); - assertFalse(products.getProxy().getData().getResult()); - assertFalse(products.getTampering().getData().getResult()); - assertFalse(products.getTor().getData().getResult()); - assertFalse(products.getVpn().getData().getResult()); - assertFalse(products.getVirtualMachine().getData().getResult()); - assertFalse(products.getHighActivity().getData().getResult()); - assertFalse(products.getLocationSpoofing().getData().getResult()); - assertEquals(0, products.getFactoryReset().getData().getTimestamp()); - ProductRawDeviceAttributes signalResponseRawDeviceAttributes = products.getRawDeviceAttributes(); - assertEquals(127, signalResponseRawDeviceAttributes.getData().get("architecture").getValue()); - assertEquals(35.73832903057337, signalResponseRawDeviceAttributes.getData().get("audio").getValue()); - Map canvasAttribute = (Map) products.getRawDeviceAttributes().getData().get("canvas").getValue(); - assertEquals(true, canvasAttribute.get("Winding")); - assertEquals("4dce9d6017c3e0c052a77252f29f2b1c", canvasAttribute.get("Geometry")); - assertEquals("p3", signalResponseRawDeviceAttributes.getData().get("colorGamut").getValue()); - assertEquals(true, signalResponseRawDeviceAttributes.getData().get("cookiesEnabled").getValue()); + Event event = events.get(0); + + assertNotNull(event); + assertNotNull(event.getIdentification()); + assertEquals("Ibk1527CUFmcnjLwIs4A9", event.getIdentification().getVisitorId()); + + assertFalse(event.getClonedApp()); + assertFalse(event.getEmulator()); + assertFalse(event.getFrida()); + assertFalse(event.getJailbroken()); + assertFalse(event.getIpBlocklist().getAttackSource()); + assertFalse(event.getIpBlocklist().getTorNode()); + assertTrue(event.getProxy()); + assertFalse(event.getTampering()); + assertFalse(event.getVpn()); + assertFalse(event.getVirtualMachine()); + assertInstanceOf(VelocityData.class, event.getVelocity().getDistinctVisitorIdByLinkedId()); + assertFalse(event.getLocationSpoofing()); + assertEquals(0L, event.getFactoryResetTimestamp()); } @Test @@ -594,7 +402,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { ENVIRONMENT.add("env1"); ENVIRONMENT.add("env2"); final String PROXIMITY_ID = "testProximityId"; - final Integer PROXIMITY_PRECISION_RADIUS = 10; + final String ASN = "testAsn"; +// final Integer PROXIMITY_PRECISION_RADIUS = 10; Map expectedQueryParams = new HashMap<>(); expectedQueryParams.put("limit", String.valueOf(LIMIT)); @@ -621,8 +430,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { expectedQueryParams.put("vpn_confidence", VPN_CONFIDENCE); expectedQueryParams.put("emulator", String.valueOf(EMULATOR)); expectedQueryParams.put("incognito", String.valueOf(INCOGNITO)); - expectedQueryParams.put("ip_blocklist", String.valueOf(IP_BLOCKLIST)); - expectedQueryParams.put("datacenter", String.valueOf(DATACENTER)); +// expectedQueryParams.put("ip_blocklist", String.valueOf(IP_BLOCKLIST)); +// expectedQueryParams.put("datacenter", String.valueOf(DATACENTER)); expectedQueryParams.put("developer_tools", String.valueOf(DEVELOPER_TOOLS)); expectedQueryParams.put("location_spoofing", String.valueOf(LOCATION_SPOOFING)); expectedQueryParams.put("mitm_attack", String.valueOf(MITM_ATTACK)); @@ -630,7 +439,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { expectedQueryParams.put("sdk_version", SDK_VERSION); expectedQueryParams.put("sdk_platform", SDK_PLATFORM); expectedQueryParams.put("proximity_id", PROXIMITY_ID); - expectedQueryParams.put("proximity_precision_radius", String.valueOf(PROXIMITY_PRECISION_RADIUS)); + expectedQueryParams.put("asn", ASN); +// expectedQueryParams.put("proximity_precision_radius", String.valueOf(PROXIMITY_PRECISION_RADIUS)); addMock("searchEvents", null, invocation -> { List queryParams = invocation.getArgument(3); @@ -649,10 +459,11 @@ public void searchEventsMaximumParamsTest() throws ApiException { assertEquals(ENVIRONMENT, actualEnv); - return mockFileToResponse(200, invocation, "mocks/get_event_search_200.json"); + return mockFileToResponse(200, invocation, "mocks/events/search/get_event_search_200.json"); }); - SearchEventsResponse response = api.searchEvents(LIMIT, new FingerprintApi.SearchEventsOptionalParams() + EventSearch response = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() + .setLimit(LIMIT) .setPaginationKey(PAGINATION_KEY) .setVisitorId(MOCK_VISITOR_ID) .setBot(BOT).setIpAddress(IP_ADDRESS) @@ -673,8 +484,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { .setVpnConfidence(VPN_CONFIDENCE) .setEmulator(EMULATOR) .setIncognito(INCOGNITO) - .setIpBlocklist(IP_BLOCKLIST) - .setDatacenter(DATACENTER) +// .setIpBlocklist(IP_BLOCKLIST) +// .setDatacenter(DATACENTER) .setDeveloperTools(DEVELOPER_TOOLS) .setLocationSpoofing(LOCATION_SPOOFING) .setMitmAttack(MITM_ATTACK) @@ -683,9 +494,10 @@ public void searchEventsMaximumParamsTest() throws ApiException { .setSdkPlatform(SDK_PLATFORM) .setEnvironment(ENVIRONMENT) .setProximityId(PROXIMITY_ID) - .setProximityPrecisionRadius(PROXIMITY_PRECISION_RADIUS) + .setAsn(ASN) +// .setProximityPrecisionRadius(PROXIMITY_PRECISION_RADIUS) ); - List events = response.getEvents(); + List events = response.getEvents(); assertEquals(events.size(), 1); } @@ -694,14 +506,13 @@ public void searchEvents400ErrorTest() throws ApiException, JsonProcessingExcept int LIMIT = 1; addMock("searchEvents", null, invocation -> { List queryParams = invocation.getArgument(3); - assertEquals(2, queryParams.size()); - assertTrue(listContainsPair(queryParams, "limit", String.valueOf(LIMIT))); + assertEquals(1, queryParams.size()); return mockFileToResponse(400, invocation, "mocks/errors/400_ip_address_invalid.json"); }); ApiException exception = assertThrows(ApiException.class, - () -> api.searchEvents(LIMIT, null)); + () -> api.searchEvents(null)); assertEquals(400, exception.getCode()); ErrorResponse response = MAPPER.readValue(exception.getResponseBody(), ErrorResponse.class); @@ -714,14 +525,13 @@ public void searchEvents403ErrorTest() throws ApiException, JsonProcessingExcept int LIMIT = 1; addMock("searchEvents", null, invocation -> { List queryParams = invocation.getArgument(3); - assertEquals(2, queryParams.size()); - assertTrue(listContainsPair(queryParams, "limit", String.valueOf(LIMIT))); + assertEquals(1, queryParams.size()); return mockFileToResponse(403, invocation, "mocks/errors/403_feature_not_enabled.json"); }); ApiException exception = assertThrows(ApiException.class, - () -> api.searchEvents(LIMIT, null)); + () -> api.searchEvents(null)); assertEquals(403, exception.getCode()); ErrorResponse response = MAPPER.readValue(exception.getResponseBody(), ErrorResponse.class); diff --git a/sdk/src/test/resources/mocks/errors/400_bot_type_invalid.json b/sdk/src/test/resources/mocks/errors/400_bot_type_invalid.json index 8dd65266..caa21bf4 100644 --- a/sdk/src/test/resources/mocks/errors/400_bot_type_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_bot_type_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid bot type" } } diff --git a/sdk/src/test/resources/mocks/errors/400_end_time_invalid.json b/sdk/src/test/resources/mocks/errors/400_end_time_invalid.json index 88654093..7b4eb466 100644 --- a/sdk/src/test/resources/mocks/errors/400_end_time_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_end_time_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid end time" } } \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/errors/400_event_id_invalid.json b/sdk/src/test/resources/mocks/errors/400_event_id_invalid.json new file mode 100644 index 00000000..5c43577e --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_event_id_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "request_cannot_be_parsed", + "message": "invalid event_id" + } +} diff --git a/sdk/src/test/resources/mocks/errors/400_ip_address_invalid.json b/sdk/src/test/resources/mocks/errors/400_ip_address_invalid.json index 5969bab6..8f6ab37d 100644 --- a/sdk/src/test/resources/mocks/errors/400_ip_address_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_ip_address_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid ip address" } } \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/errors/400_limit_invalid.json b/sdk/src/test/resources/mocks/errors/400_limit_invalid.json index 46297eb4..9cd005e8 100644 --- a/sdk/src/test/resources/mocks/errors/400_limit_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_limit_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid limit" } } diff --git a/sdk/src/test/resources/mocks/errors/400_linked_id_invalid.json b/sdk/src/test/resources/mocks/errors/400_linked_id_invalid.json index 72de54e0..d573919d 100644 --- a/sdk/src/test/resources/mocks/errors/400_linked_id_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_linked_id_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "linked_id can't be greater than 256 characters long" } } diff --git a/sdk/src/test/resources/mocks/errors/400_pagination_key_invalid.json b/sdk/src/test/resources/mocks/errors/400_pagination_key_invalid.json index df559f9a..e7597f91 100644 --- a/sdk/src/test/resources/mocks/errors/400_pagination_key_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_pagination_key_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid pagination key" } } diff --git a/sdk/src/test/resources/mocks/errors/400_request_body_invalid.json b/sdk/src/test/resources/mocks/errors/400_request_body_invalid.json index ce56deff..c71fae96 100644 --- a/sdk/src/test/resources/mocks/errors/400_request_body_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_request_body_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "request body is not valid" } } diff --git a/sdk/src/test/resources/mocks/errors/400_reverse_invalid.json b/sdk/src/test/resources/mocks/errors/400_reverse_invalid.json index 540800fa..da696b5b 100644 --- a/sdk/src/test/resources/mocks/errors/400_reverse_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_reverse_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid reverse param" } } diff --git a/sdk/src/test/resources/mocks/errors/400_start_time_invalid.json b/sdk/src/test/resources/mocks/errors/400_start_time_invalid.json index 5d93f929..d564703d 100644 --- a/sdk/src/test/resources/mocks/errors/400_start_time_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_start_time_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid start time" } } \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/errors/400_visitor_id_invalid.json b/sdk/src/test/resources/mocks/errors/400_visitor_id_invalid.json index c204c568..ae7a3596 100644 --- a/sdk/src/test/resources/mocks/errors/400_visitor_id_invalid.json +++ b/sdk/src/test/resources/mocks/errors/400_visitor_id_invalid.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "invalid visitor id" } } diff --git a/sdk/src/test/resources/mocks/errors/400_visitor_id_required.json b/sdk/src/test/resources/mocks/errors/400_visitor_id_required.json index 6c5801a0..e144a892 100644 --- a/sdk/src/test/resources/mocks/errors/400_visitor_id_required.json +++ b/sdk/src/test/resources/mocks/errors/400_visitor_id_required.json @@ -1,6 +1,6 @@ { "error": { - "code": "RequestCannotBeParsed", + "code": "request_cannot_be_parsed", "message": "visitor id is required" } } diff --git a/sdk/src/test/resources/mocks/errors/403_feature_not_enabled.json b/sdk/src/test/resources/mocks/errors/403_feature_not_enabled.json index 9820a568..1478d51d 100644 --- a/sdk/src/test/resources/mocks/errors/403_feature_not_enabled.json +++ b/sdk/src/test/resources/mocks/errors/403_feature_not_enabled.json @@ -1,6 +1,6 @@ { "error": { - "code": "FeatureNotEnabled", + "code": "feature_not_enabled", "message": "feature not enabled" } } diff --git a/sdk/src/test/resources/mocks/errors/403_secret_api_key_not_found.json b/sdk/src/test/resources/mocks/errors/403_secret_api_key_not_found.json new file mode 100644 index 00000000..0871b424 --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/403_secret_api_key_not_found.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "secret_api_key_not_found", + "message": "no fingerprint application found for specified secret API key" + } +} diff --git a/sdk/src/test/resources/mocks/errors/403_secret_api_key_required.json b/sdk/src/test/resources/mocks/errors/403_secret_api_key_required.json new file mode 100644 index 00000000..9ed2f958 --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/403_secret_api_key_required.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "secret_api_key_required", + "message": "secret API key in header is missing or empty" + } +} diff --git a/sdk/src/test/resources/mocks/errors/403_subscription_not_active.json b/sdk/src/test/resources/mocks/errors/403_subscription_not_active.json index 3deac898..761bbfed 100644 --- a/sdk/src/test/resources/mocks/errors/403_subscription_not_active.json +++ b/sdk/src/test/resources/mocks/errors/403_subscription_not_active.json @@ -1,6 +1,6 @@ { "error": { - "code": "SubscriptionNotActive", + "code": "subscription_not_active", "message": "forbidden" } } diff --git a/sdk/src/test/resources/mocks/errors/403_token_not_found.json b/sdk/src/test/resources/mocks/errors/403_token_not_found.json deleted file mode 100644 index 3936b530..00000000 --- a/sdk/src/test/resources/mocks/errors/403_token_not_found.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "TokenNotFound", - "message": "secret key is not found" - } -} diff --git a/sdk/src/test/resources/mocks/errors/403_token_required.json b/sdk/src/test/resources/mocks/errors/403_token_required.json deleted file mode 100644 index 544d8714..00000000 --- a/sdk/src/test/resources/mocks/errors/403_token_required.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "TokenRequired", - "message": "secret key is required" - } -} diff --git a/sdk/src/test/resources/mocks/errors/403_wrong_region.json b/sdk/src/test/resources/mocks/errors/403_wrong_region.json index 8acc9e01..3c5fe748 100644 --- a/sdk/src/test/resources/mocks/errors/403_wrong_region.json +++ b/sdk/src/test/resources/mocks/errors/403_wrong_region.json @@ -1,6 +1,6 @@ { "error": { - "code": "WrongRegion", + "code": "wrong_region", "message": "wrong region" } } diff --git a/sdk/src/test/resources/mocks/errors/404_event_not_found.json b/sdk/src/test/resources/mocks/errors/404_event_not_found.json new file mode 100644 index 00000000..f7f7e542 --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/404_event_not_found.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "event_not_found", + "message": "event id not found" + } +} diff --git a/sdk/src/test/resources/mocks/errors/404_request_not_found.json b/sdk/src/test/resources/mocks/errors/404_request_not_found.json deleted file mode 100644 index 389b351c..00000000 --- a/sdk/src/test/resources/mocks/errors/404_request_not_found.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "RequestNotFound", - "message": "request id is not found" - } -} diff --git a/sdk/src/test/resources/mocks/errors/404_visitor_not_found.json b/sdk/src/test/resources/mocks/errors/404_visitor_not_found.json index 11da4f3d..e4076f4f 100644 --- a/sdk/src/test/resources/mocks/errors/404_visitor_not_found.json +++ b/sdk/src/test/resources/mocks/errors/404_visitor_not_found.json @@ -1,6 +1,6 @@ { "error": { - "code": "VisitorNotFound", + "code": "visitor_not_found", "message": "visitor not found" } } diff --git a/sdk/src/test/resources/mocks/errors/409_state_not_ready.json b/sdk/src/test/resources/mocks/errors/409_state_not_ready.json index 36e6dde3..4ba3ac53 100644 --- a/sdk/src/test/resources/mocks/errors/409_state_not_ready.json +++ b/sdk/src/test/resources/mocks/errors/409_state_not_ready.json @@ -1,6 +1,6 @@ { "error": { - "code": "StateNotReady", + "code": "state_not_ready", "message": "resource is not mutable yet, try again" } } diff --git a/sdk/src/test/resources/mocks/errors/429_too_many_requests.json b/sdk/src/test/resources/mocks/errors/429_too_many_requests.json index e38639aa..bbbc7c41 100644 --- a/sdk/src/test/resources/mocks/errors/429_too_many_requests.json +++ b/sdk/src/test/resources/mocks/errors/429_too_many_requests.json @@ -1,6 +1,6 @@ { "error": { - "code": "TooManyRequests", + "code": "too_many_requests", "message": "too many requests" } } diff --git a/sdk/src/test/resources/mocks/errors/500_internal_server_error.json b/sdk/src/test/resources/mocks/errors/500_internal_server_error.json new file mode 100644 index 00000000..5a8bc8af --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/500_internal_server_error.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "failed", + "message": "internal server error" + } +} \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/events/get_event_200.json b/sdk/src/test/resources/mocks/events/get_event_200.json new file mode 100644 index 00000000..5cb733e5 --- /dev/null +++ b/sdk/src/test/resources/mocks/events/get_event_200.json @@ -0,0 +1,178 @@ +{ + "linked_id": "somelinkedId", + "tags": {}, + "timestamp": 1708102555327, + "event_id": "1708102555327.NLOjmg", + "url": "https://www.example.com/login?hope{this{works[!", + "ip_address": "61.127.217.15", + "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....", + "browser_details": { + "browser_name": "Chrome", + "browser_major_version": "74", + "browser_full_version": "74.0.3729", + "os": "Windows", + "os_version": "7", + "device": "Other" + }, + "identification": { + "visitor_id": "Ibk1527CUFmcnjLwIs4A9", + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "visitor_found": false, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "supplementary_id_high_recall": { + "visitor_id": "3HNey93AkBW6CRbxV6xP", + "visitor_found": true, + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "bot": "not_detected", + "root_apps": false, + "emulator": false, + "ip_info": { + "v4": { + "address": "94.142.239.124", + "geolocation": { + "accuracy_radius": 20, + "latitude": 50.05, + "longitude": 14.4, + "postal_code": "150 00", + "timezone": "Europe/Prague", + "city_name": "Prague", + "country_code": "CZ", + "country_name": "Czechia", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "10", + "name": "Hlavni mesto Praha" + } + ] + }, + "asn": "7922", + "asn_name": "COMCAST-7922", + "asn_network": "73.136.0.0/13", + "datacenter_result": true, + "datacenter_name": "DediPath" + }, + "v6": { + "address": "2001:db8:3333:4444:5555:6666:7777:8888", + "geolocation": { + "accuracy_radius": 5, + "latitude": 49.982, + "longitude": 36.2566, + "postal_code": "10112", + "timezone": "Europe/Berlin", + "city_name": "Berlin", + "country_code": "DE", + "country_name": "Germany", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "BE", + "name": "Land Berlin" + } + ] + }, + "asn": "6805", + "asn_name": "Telefonica Germany", + "asn_network": "2a02:3100::/24", + "datacenter_result": false, + "datacenter_name": "" + } + }, + "ip_blocklist": { + "email_spam": false, + "attack_source": false, + "tor_node": false + }, + "proxy": true, + "proxy_confidence": "low", + "proxy_details": { + "proxy_type": "residential", + "last_seen_at": 1708102555327 + }, + "vpn": false, + "vpn_confidence": "high", + "vpn_origin_timezone": "Europe/Berlin", + "vpn_origin_country": "unknown", + "vpn_methods": { + "timezone_mismatch": false, + "public_vpn": false, + "auxiliary_mobile": false, + "os_mismatch": false, + "relay": false + }, + "incognito": false, + "tampering": false, + "tampering_details" : { + "anomaly_score": 0.1955, + "anti_detect_browser": false + }, + "cloned_app": false, + "factory_reset_timestamp": 0, + "jailbroken": false, + "frida": false, + "privacy_settings": false, + "virtual_machine": false, + "location_spoofing": false, + "velocity": { + "distinct_ip": { + "5_minutes": 1, + "1_hour": 1, + "24_hours": 1 + }, + "distinct_country": { + "5_minutes": 1, + "1_hour": 2, + "24_hours": 2 + }, + "events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "ip_events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_ip_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_visitor_id_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + } + }, + "developer_tools": false, + "mitm_attack": false, + "sdk": { + "platform": "js", + "version": "3.11.10", + "integrations": [ + { + "name": "fingerprint-pro-react", + "version": "3.11.10", + "subintegration": { + "name": "preact", + "version": "10.21.0" + } + } + ] + }, + "replayed": false +} 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 new file mode 100644 index 00000000..f72e99d1 --- /dev/null +++ b/sdk/src/test/resources/mocks/events/search/get_event_search_200.json @@ -0,0 +1,183 @@ +{ + "events": [ + { + "linked_id": "somelinkedId", + "tags": {}, + "timestamp": 1708102555327, + "event_id": "1708102555327.NLOjmg", + "url": "https://www.example.com/login?hope{this{works[!", + "ip_address": "61.127.217.15", + "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....", + "browser_details": { + "browser_name": "Chrome", + "browser_major_version": "74", + "browser_full_version": "74.0.3729", + "os": "Windows", + "os_version": "7", + "device": "Other" + }, + "identification": { + "visitor_id": "Ibk1527CUFmcnjLwIs4A9", + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "visitor_found": false, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "supplementary_id_high_recall": { + "visitor_id": "3HNey93AkBW6CRbxV6xP", + "visitor_found": true, + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "bot": "not_detected", + "root_apps": false, + "emulator": false, + "ip_info": { + "v4": { + "address": "94.142.239.124", + "geolocation": { + "accuracy_radius": 20, + "latitude": 50.05, + "longitude": 14.4, + "postal_code": "150 00", + "timezone": "Europe/Prague", + "city_name": "Prague", + "country_code": "CZ", + "country_name": "Czechia", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "10", + "name": "Hlavni mesto Praha" + } + ] + }, + "asn": "7922", + "asn_name": "COMCAST-7922", + "asn_network": "73.136.0.0/13", + "datacenter_result": true, + "datacenter_name": "DediPath" + }, + "v6": { + "address": "2001:db8:3333:4444:5555:6666:7777:8888", + "geolocation": { + "accuracy_radius": 5, + "latitude": 49.982, + "longitude": 36.2566, + "postal_code": "10112", + "timezone": "Europe/Berlin", + "city_name": "Berlin", + "country_code": "DE", + "country_name": "Germany", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "BE", + "name": "Land Berlin" + } + ] + }, + "asn": "6805", + "asn_name": "Telefonica Germany", + "asn_network": "2a02:3100::/24", + "datacenter_result": false, + "datacenter_name": "" + } + }, + "ip_blocklist": { + "email_spam": false, + "attack_source": false, + "tor_node": false + }, + "proxy": true, + "proxy_confidence": "low", + "proxy_details": { + "proxy_type": "residential", + "last_seen_at": 1708102555327 + }, + "vpn": false, + "vpn_confidence": "high", + "vpn_origin_timezone": "Europe/Berlin", + "vpn_origin_country": "unknown", + "vpn_methods": { + "timezone_mismatch": false, + "public_vpn": false, + "auxiliary_mobile": false, + "os_mismatch": false, + "relay": false + }, + "incognito": false, + "tampering": false, + "tampering_details": { + "anomaly_score": 0.1955, + "anti_detect_browser": false + }, + "cloned_app": false, + "factory_reset_timestamp": 0, + "jailbroken": false, + "frida": false, + "privacy_settings": false, + "virtual_machine": false, + "location_spoofing": false, + "velocity": { + "distinct_ip": { + "5_minutes": 1, + "1_hour": 1, + "24_hours": 1 + }, + "distinct_country": { + "5_minutes": 1, + "1_hour": 2, + "24_hours": 2 + }, + "events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "ip_events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_ip_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_visitor_id_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + } + }, + "developer_tools": false, + "mitm_attack": false, + "sdk": { + "platform": "js", + "version": "3.11.10", + "integrations": [ + { + "name": "fingerprint-pro-react", + "version": "3.11.10", + "subintegration": { + "name": "preact", + "version": "10.21.0" + } + } + ] + }, + "replayed": false + } + ], + "pagination_key": "1708102555327" +} \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/events/update_event_multiple_fields_request.json b/sdk/src/test/resources/mocks/events/update_event_multiple_fields_request.json new file mode 100644 index 00000000..adcdb05f --- /dev/null +++ b/sdk/src/test/resources/mocks/events/update_event_multiple_fields_request.json @@ -0,0 +1,7 @@ +{ + "linked_id": "some_username", + "tags": { + "my_tag": "some_value" + }, + "suspect": true +} diff --git a/sdk/src/test/resources/mocks/events/update_event_one_field_request.json b/sdk/src/test/resources/mocks/events/update_event_one_field_request.json new file mode 100644 index 00000000..e42988f5 --- /dev/null +++ b/sdk/src/test/resources/mocks/events/update_event_one_field_request.json @@ -0,0 +1,3 @@ +{ + "linked_id": "some_username" +} diff --git a/sdk/src/test/resources/mocks/get_event_200.json b/sdk/src/test/resources/mocks/get_event_200.json deleted file mode 100644 index 7560b9a6..00000000 --- a/sdk/src/test/resources/mocks/get_event_200.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "products": { - "identification": { - "data": { - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "1708102555327.NLOjmg", - "incognito": true, - "linkedId": "somelinkedId", - "tag": {}, - "time": "2019-05-21T16:40:13Z", - "timestamp": 1582299576512, - "url": "https://www.example.com/login?hope{this{works[!", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97 - }, - "visitorFound": false, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": null, - "subscription": null - }, - "sdk": { - "platform": "js", - "version": "3.11.10" - }, - "replayed": false - } - }, - "botd": { - "data": { - "bot": { - "result": "notDetected" - }, - "url": "https://www.example.com/login?hope{this{works}[!", - "ip": "61.127.217.15", - "time": "2019-05-21T16:40:13Z", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", - "requestId": "1708102555327.NLOjmg" - } - }, - "rootApps": { - "data": { - "result": false - } - }, - "emulator": { - "data": { - "result": false - } - }, - "ipInfo": { - "data": { - "v4": { - "address": "94.142.239.124", - "geolocation": { - "accuracyRadius": 20, - "latitude": 50.05, - "longitude": 14.4, - "postalCode": "150 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "asn": { - "asn": "7922", - "name": "COMCAST-7922", - "network": "73.136.0.0/13" - }, - "datacenter": { - "result": true, - "name": "DediPath" - } - }, - "v6": { - "address": "2001:db8:3333:4444:5555:6666:7777:8888", - "geolocation": { - "accuracyRadius": 5, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "10112", - "timezone": "Europe/Berlin", - "city": { - "name": "Berlin" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "BE", - "name": "Land Berlin" - } - ] - }, - "asn": { - "asn": "6805", - "name": "Telefonica Germany", - "network": "2a02:3100::/24" - }, - "datacenter": { - "result": false, - "name": "" - } - } - } - }, - "ipBlocklist": { - "data": { - "result": false, - "details": { - "emailSpam": false, - "attackSource": false - } - } - }, - "tor": { - "data": { - "result": false - } - }, - "vpn": { - "data": { - "result": false, - "confidence": "high", - "originTimezone": "Europe/Berlin", - "originCountry": "unknown", - "methods": { - "timezoneMismatch": false, - "publicVPN": false, - "auxiliaryMobile": false, - "osMismatch": false, - "relay": false - } - } - }, - "proxy": { - "data": { - "result": true, - "confidence": "high", - "details": { - "proxyType": "residential", - "lastSeenAt": "2025-08-12T13:00:00Z" - } - } - }, - "incognito": { - "data": { - "result": false - } - }, - "tampering": { - "data": { - "result": false, - "anomalyScore": 0.1955, - "antiDetectBrowser": false - } - }, - "clonedApp": { - "data": { - "result": false - } - }, - "factoryReset": { - "data": { - "time": "1970-01-01T00:00:00Z", - "timestamp": 0 - } - }, - "jailbroken": { - "data": { - "result": false - } - }, - "frida": { - "data": { - "result": false - } - }, - "privacySettings": { - "data": { - "result": false - } - }, - "virtualMachine": { - "data": { - "result": false - } - }, - "rawDeviceAttributes": { - "data": { - "architecture": { - "value": 127 - }, - "audio": { - "value": 35.73832903057337 - }, - "canvas": { - "value": { - "Winding": true, - "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", - "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" - } - }, - "colorDepth": { - "value": 30 - }, - "colorGamut": { - "value": "p3" - }, - "contrast": { - "value": 0 - }, - "cookiesEnabled": { - "value": true - }, - "cpuClass": {}, - "fonts": { - "value": ["Arial Unicode MS", "Gill Sans", "Helvetica Neue", "Menlo"] - } - } - }, - "highActivity": { - "data": { - "result": false - } - }, - "locationSpoofing": { - "data": { - "result": false - } - }, - "velocity": { - "data": { - "distinctIp": { - "intervals": { - "5m": 1, - "1h": 1, - "24h": 1 - } - }, - "distinctLinkedId": {}, - "distinctCountry": { - "intervals": { - "5m": 1, - "1h": 2, - "24h": 2 - } - }, - "events": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "ipEvents": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctIpByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctVisitorIdByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - } - } - }, - "developerTools": { - "data": { - "result": false - } - }, - "mitmAttack": { - "data": { - "result": false - } - }, - "proximity": { - "data": { - "id": "w1aTfd4MCvl", - "precisionRadius": 10, - "confidence": 0.95 - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_all_errors.json b/sdk/src/test/resources/mocks/get_event_200_all_errors.json deleted file mode 100644 index 15ea2037..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_all_errors.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "products": { - "identification": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "botd": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "ipInfo": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "incognito": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "rootApps": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "clonedApp": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "factoryReset": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "jailbroken": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "frida": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "emulator": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "ipBlocklist": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "tor": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "vpn": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "proxy": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "privacySettings": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "virtualMachine": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "tampering": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "rawDeviceAttributes": { - "data": { - "audio": { - "error": { - "name": "Error", - "message": "internal server error" - } - }, - "canvas": { - "error": { - "name": "Error", - "message": "internal server error" - } - } - } - }, - "locationSpoofing": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "highActivity": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "suspectScore": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "velocity": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "developerTools": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "mitmAttack": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "proximity": { - "error": { - "code": "Failed", - "message": "internal server error" - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_botd_failed_error.json b/sdk/src/test/resources/mocks/get_event_200_botd_failed_error.json deleted file mode 100644 index 0afa5b79..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_botd_failed_error.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "products": { - "identification": { - "data": { - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "0KSh65EnVoB85JBmloQK", - "incognito": true, - "linkedId": "somelinkedId", - "time": "2019-05-21T16:40:13Z", - "tag": {}, - "timestamp": 1582299576512, - "url": "https://www.example.com/login", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": "2022-03-16T11:28:34.023Z", - "subscription": null - }, - "replayed": false - } - }, - "botd": { - "error": { - "code": "Failed", - "message": "internal server error" - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_extra_fields.json b/sdk/src/test/resources/mocks/get_event_200_extra_fields.json deleted file mode 100644 index 5a56a1c7..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_extra_fields.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "products": { - "identification": { - "data": { - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "0KSh65EnVoB85JBmloQK", - "incognito": true, - "linkedId": "somelinkedId", - "tag": {}, - "time": "2019-05-21T16:40:13Z", - "timestamp": 1582299576512, - "url": "https://www.example.com/login", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97, - "revision": "v1.1" - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": "2022-03-16T11:28:34.023Z", - "subscription": null - }, - "replayed": false - } - }, - "botd": { - "data": { - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", - "requestId": "1708102555327.NLOjmg", - "bot": { - "result": "notDetected" - }, - "url": "https://www.example.com/login", - "ip": "61.127.217.15", - "time": "2019-05-21T16:40:13Z" - } - }, - "product3": { - "data": { - "result": false - } - }, - "product4": { - "data": { - "result": true, - "details": { - "detail1": true, - "detail2": "detail description", - "detail3": 42 - } - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_identification_failed_error.json b/sdk/src/test/resources/mocks/get_event_200_identification_failed_error.json deleted file mode 100644 index 4739f36e..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_identification_failed_error.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "products": { - "identification": { - "error": { - "code": "Failed", - "message": "internal server error" - } - }, - "botd": { - "data": { - "bot": { - "result": "bad", - "type": "headlessChrome" - }, - "url": "https://example.com/login", - "ip": "94.60.143.223", - "time": "2024-02-23T10:20:25.287Z", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/121.0.6167.57 Safari/537.36", - "requestId": "1708683625245.tuJ4nD" - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_too_many_requests_error.json b/sdk/src/test/resources/mocks/get_event_200_too_many_requests_error.json deleted file mode 100644 index 138aae72..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_too_many_requests_error.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "products": { - "identification": { - "error": { - "code": "429 Too Many Requests", - "message": "too many requests" - } - }, - "botd": { - "error": { - "code": "TooManyRequests", - "message": "too many requests" - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_with_broken_format.json b/sdk/src/test/resources/mocks/get_event_200_with_broken_format.json deleted file mode 100644 index 58081140..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_with_broken_format.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - "products": { - "identification": { - "data": { - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "1708102555327.NLOjmg", - "incognito": true, - "linkedId": { - "broken": "format" - }, - "tag": {}, - "time": "2019-05-21T16:40:13Z", - "timestamp": 1582299576512, - "url": "https://www.example.com/login?hope{this{works[!", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97 - }, - "visitorFound": false, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": null, - "subscription": null - }, - "replayed": false - } - }, - "botd": { - "data": { - "bot": { - "result": "notDetected" - }, - "url": "https://www.example.com/login?hope{this{works}[!", - "ip": "61.127.217.15", - "time": "2019-05-21T16:40:13Z", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", - "requestId": "1708102555327.NLOjmg" - } - }, - "rootApps": { - "data": { - "result": false - } - }, - "emulator": { - "data": { - "result": false - } - }, - "ipInfo": { - "data": { - "v4": { - "address": "94.142.239.124", - "geolocation": { - "accuracyRadius": 20, - "latitude": 50.05, - "longitude": 14.4, - "postalCode": "150 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "asn": { - "asn": "7922", - "name": "COMCAST-7922", - "network": "73.136.0.0/13" - }, - "datacenter": { - "result": true, - "name": "DediPath" - } - }, - "v6": { - "address": "2001:db8:3333:4444:5555:6666:7777:8888", - "geolocation": { - "accuracyRadius": 5, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "10112", - "timezone": "Europe/Berlin", - "city": { - "name": "Berlin" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "BE", - "name": "Land Berlin" - } - ] - }, - "asn": { - "asn": "6805", - "name": "Telefonica Germany", - "network": "2a02:3100::/24" - }, - "datacenter": { - "result": false, - "name": "" - } - } - } - }, - "ipBlocklist": { - "data": { - "result": false, - "details": { - "emailSpam": false, - "attackSource": false - } - } - }, - "tor": { - "data": { - "result": false - } - }, - "vpn": { - "data": { - "result": false, - "originTimezone": "Europe/Berlin", - "originCountry": "unknown", - "methods": { - "timezoneMismatch": false, - "publicVPN": false, - "auxiliaryMobile": false - } - } - }, - "proxy": { - "data": { - "result": true, - "confidence": "high", - "details": { - "proxyType": "residential", - "lastSeenAt": "2025-08-12T13:00:00Z" - } - } - }, - "incognito": { - "data": { - "result": false - } - }, - "tampering": { - "data": { - "result": false, - "anomalyScore": 0.1955 - } - }, - "clonedApp": { - "data": { - "result": false - } - }, - "factoryReset": { - "data": { - "time": "1970-01-01T00:00:00Z", - "timestamp": 0 - } - }, - "jailbroken": { - "data": { - "result": false - } - }, - "frida": { - "data": { - "result": false - } - }, - "privacySettings": { - "data": { - "result": false - } - }, - "virtualMachine": { - "data": { - "result": false - } - }, - "rawDeviceAttributes": { - "data": { - "architecture": { - "value": 127 - }, - "audio": { - "value": 35.73832903057337 - }, - "canvas": { - "value": { - "Winding": true, - "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", - "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" - } - }, - "colorDepth": { - "value": 30 - }, - "colorGamut": { - "value": "p3" - }, - "contrast": { - "value": 0 - }, - "cookiesEnabled": { - "value": true - }, - "cpuClass": {}, - "fonts": { - "value": [ - "Arial Unicode MS", - "Gill Sans", - "Helvetica Neue", - "Menlo" - ] - } - } - }, - "highActivity": { - "data": { - "result": false - } - }, - "locationSpoofing": { - "data": { - "result": false - } - }, - "mitmAttack": { - "data": { - "result": false - } - }, - "proximity": { - "data": { - "id": "w1aTfd4MCvl", - "precisionRadius": 10, - "confidence": 0.95 - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_200_with_unknown_field.json b/sdk/src/test/resources/mocks/get_event_200_with_unknown_field.json deleted file mode 100644 index 6af6ad63..00000000 --- a/sdk/src/test/resources/mocks/get_event_200_with_unknown_field.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "unknown": "field", - "products": { - "unknown": "field", - "identification": { - "unknown": "field", - "data": { - "unknown": "field", - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "1708102555327.NLOjmg", - "incognito": true, - "linkedId": "somelinkedId", - "tag": {}, - "time": "2019-05-21T16:40:13Z", - "timestamp": 1582299576512, - "url": "https://www.example.com/login?hope{this{works[!", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97 - }, - "visitorFound": false, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": null, - "subscription": null - }, - "replayed": false - } - }, - "botd": { - "data": { - "bot": { - "result": "notDetected" - }, - "url": "https://www.example.com/login?hope{this{works}[!", - "ip": "61.127.217.15", - "time": "2019-05-21T16:40:13Z", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", - "requestId": "1708102555327.NLOjmg" - } - }, - "rootApps": { - "data": { - "result": false - } - }, - "emulator": { - "data": { - "result": false - } - }, - "ipInfo": { - "data": { - "v4": { - "address": "94.142.239.124", - "geolocation": { - "accuracyRadius": 20, - "latitude": 50.05, - "longitude": 14.4, - "postalCode": "150 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "asn": { - "asn": "7922", - "name": "COMCAST-7922", - "network": "73.136.0.0/13" - }, - "datacenter": { - "result": true, - "name": "DediPath" - } - }, - "v6": { - "address": "2001:db8:3333:4444:5555:6666:7777:8888", - "geolocation": { - "accuracyRadius": 5, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "10112", - "timezone": "Europe/Berlin", - "city": { - "name": "Berlin" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "BE", - "name": "Land Berlin" - } - ] - }, - "asn": { - "asn": "6805", - "name": "Telefonica Germany", - "network": "2a02:3100::/24" - }, - "datacenter": { - "result": false, - "name": "" - } - } - } - }, - "ipBlocklist": { - "data": { - "result": false, - "details": { - "emailSpam": false, - "attackSource": false - } - } - }, - "tor": { - "data": { - "result": false - } - }, - "vpn": { - "data": { - "result": false, - "originTimezone": "Europe/Berlin", - "originCountry": "unknown", - "methods": { - "timezoneMismatch": false, - "publicVPN": false, - "auxiliaryMobile": false - } - } - }, - "proxy": { - "data": { - "result": false, - "confidence": "high" - } - }, - "incognito": { - "data": { - "result": false - } - }, - "tampering": { - "data": { - "result": false, - "anomalyScore": 0.1955 - } - }, - "clonedApp": { - "data": { - "result": false - } - }, - "factoryReset": { - "data": { - "time": "1970-01-01T00:00:00Z", - "timestamp": 0 - } - }, - "jailbroken": { - "data": { - "result": false - } - }, - "frida": { - "data": { - "result": false - } - }, - "privacySettings": { - "data": { - "result": false - } - }, - "virtualMachine": { - "data": { - "result": false - } - }, - "rawDeviceAttributes": { - "data": { - "architecture": { - "value": 127 - }, - "audio": { - "value": 35.73832903057337 - }, - "canvas": { - "value": { - "Winding": true, - "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", - "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" - } - }, - "colorDepth": { - "value": 30 - }, - "colorGamut": { - "value": "p3" - }, - "contrast": { - "value": 0 - }, - "cookiesEnabled": { - "value": true - }, - "cpuClass": {}, - "fonts": { - "value": [ - "Arial Unicode MS", - "Gill Sans", - "Helvetica Neue", - "Menlo" - ] - } - } - }, - "highActivity": { - "data": { - "result": false - } - }, - "locationSpoofing": { - "data": { - "result": false - } - }, - "mitmAttack": { - "data": { - "result": false - } - }, - "proximity": { - "data": { - "id": "w1aTfd4MCvl", - "precisionRadius": 10, - "confidence": 0.95 - } - } - } -} diff --git a/sdk/src/test/resources/mocks/get_event_search_200.json b/sdk/src/test/resources/mocks/get_event_search_200.json deleted file mode 100644 index 27b7848d..00000000 --- a/sdk/src/test/resources/mocks/get_event_search_200.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "events": [ - { - "products": { - "identification": { - "data": { - "visitorId": "Ibk1527CUFmcnjLwIs4A9", - "requestId": "1708102555327.NLOjmg", - "incognito": true, - "linkedId": "somelinkedId", - "tag": {}, - "time": "2019-05-21T16:40:13Z", - "timestamp": 1582299576512, - "url": "https://www.example.com/login?hope{this{works[!", - "ip": "61.127.217.15", - "ipLocation": { - "accuracyRadius": 10, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "61202", - "timezone": "Europe/Dusseldorf", - "city": { - "name": "Dusseldorf" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "63", - "name": "North Rhine-Westphalia" - } - ] - }, - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "74", - "browserFullVersion": "74.0.3729", - "os": "Windows", - "osVersion": "7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." - }, - "confidence": { - "score": 0.97 - }, - "visitorFound": false, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": null, - "subscription": null - }, - "replayed": false - } - }, - "botd": { - "data": { - "bot": { - "result": "notDetected" - }, - "url": "https://www.example.com/login?hope{this{works}[!", - "ip": "61.127.217.15", - "time": "2019-05-21T16:40:13Z", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", - "requestId": "1708102555327.NLOjmg" - } - }, - "rootApps": { - "data": { - "result": false - } - }, - "emulator": { - "data": { - "result": false - } - }, - "ipInfo": { - "data": { - "v4": { - "address": "94.142.239.124", - "geolocation": { - "accuracyRadius": 20, - "latitude": 50.05, - "longitude": 14.4, - "postalCode": "150 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "asn": { - "asn": "7922", - "name": "COMCAST-7922", - "network": "73.136.0.0/13" - }, - "datacenter": { - "result": true, - "name": "DediPath" - } - }, - "v6": { - "address": "2001:db8:3333:4444:5555:6666:7777:8888", - "geolocation": { - "accuracyRadius": 5, - "latitude": 49.982, - "longitude": 36.2566, - "postalCode": "10112", - "timezone": "Europe/Berlin", - "city": { - "name": "Berlin" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "BE", - "name": "Land Berlin" - } - ] - }, - "asn": { - "asn": "6805", - "name": "Telefonica Germany", - "network": "2a02:3100::/24" - }, - "datacenter": { - "result": false, - "name": "" - } - } - } - }, - "ipBlocklist": { - "data": { - "result": false, - "details": { - "emailSpam": false, - "attackSource": false - } - } - }, - "tor": { - "data": { - "result": false - } - }, - "vpn": { - "data": { - "result": false, - "confidence": "high", - "originTimezone": "Europe/Berlin", - "originCountry": "unknown", - "methods": { - "timezoneMismatch": false, - "publicVPN": false, - "auxiliaryMobile": false, - "osMismatch": false, - "relay": false - } - } - }, - "proxy": { - "data": { - "result": false, - "confidence": "high", - "details": { - "proxyType": "residential", - "lastSeenAt": "2025-08-12T13:00:00Z" - } - } - }, - "incognito": { - "data": { - "result": false - } - }, - "tampering": { - "data": { - "result": false, - "anomalyScore": 0.1955, - "antiDetectBrowser": false - } - }, - "clonedApp": { - "data": { - "result": false - } - }, - "factoryReset": { - "data": { - "time": "1970-01-01T00:00:00Z", - "timestamp": 0 - } - }, - "jailbroken": { - "data": { - "result": false - } - }, - "frida": { - "data": { - "result": false - } - }, - "privacySettings": { - "data": { - "result": false - } - }, - "virtualMachine": { - "data": { - "result": false - } - }, - "rawDeviceAttributes": { - "data": { - "architecture": { - "value": 127 - }, - "audio": { - "value": 35.73832903057337 - }, - "canvas": { - "value": { - "Winding": true, - "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", - "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" - } - }, - "colorDepth": { - "value": 30 - }, - "colorGamut": { - "value": "p3" - }, - "contrast": { - "value": 0 - }, - "cookiesEnabled": { - "value": true - }, - "cpuClass": {}, - "fonts": { - "value": ["Arial Unicode MS", "Gill Sans", "Helvetica Neue", "Menlo"] - } - } - }, - "highActivity": { - "data": { - "result": false - } - }, - "locationSpoofing": { - "data": { - "result": false - } - }, - "velocity": { - "data": { - "distinctIp": { - "intervals": { - "5m": 1, - "1h": 1, - "24h": 1 - } - }, - "distinctLinkedId": {}, - "distinctCountry": { - "intervals": { - "5m": 1, - "1h": 2, - "24h": 2 - } - }, - "events": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "ipEvents": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctIpByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctVisitorIdByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - } - } - }, - "developerTools": { - "data": { - "result": false - } - }, - "mitmAttack": { - "data": { - "result": false - } - }, - "proximity": { - "data": { - "id": "w1aTfd4MCvl", - "precisionRadius": 10, - "confidence": 0.95 - } - } - }} - ], - "paginationKey": "1655373953086" -} diff --git a/sdk/src/test/resources/mocks/get_visitors_200_limit_1.json b/sdk/src/test/resources/mocks/get_visitors_200_limit_1.json deleted file mode 100644 index f6357ea5..00000000 --- a/sdk/src/test/resources/mocks/get_visitors_200_limit_1.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "visitorId": "AcxioeQKffpXF8iGQK3P", - "visits": [ - { - "requestId": "1655373953086.DDlfmP", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "82.118.30.68", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 50.0805, - "longitude": 14.467, - "postalCode": "130 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "timestamp": 1655373953094, - "time": "2022-06-16T10:05:53Z", - "url": "https://dashboard.fingerprint.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-16T10:03:00.912Z", - "subscription": "2022-06-16T10:03:00.912Z" - } - } - ], - "lastTimestamp": 1655373953086, - "paginationKey": "1655373953086.DDlfmP" -} diff --git a/sdk/src/test/resources/mocks/get_visitors_200_limit_500.json b/sdk/src/test/resources/mocks/get_visitors_200_limit_500.json deleted file mode 100644 index 3e3aceb0..00000000 --- a/sdk/src/test/resources/mocks/get_visitors_200_limit_500.json +++ /dev/null @@ -1,3030 +0,0 @@ -{ - "visitorId": "AcxioeQKffpXF8iGQK3P", - "visits": [ - { - "requestId": "1655373780901.HhjRFX", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1655373780912, - "time": "2022-06-16T10:03:00Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-16T05:27:30.578Z", - "subscription": "2022-06-16T05:27:30.578Z" - } - }, - { - "requestId": "1655357250568.vqejDF", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "82.118.30.62", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 50.0805, - "longitude": 14.467, - "postalCode": "130 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "timestamp": 1655357250578, - "time": "2022-06-16T05:27:30Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-15T15:28:33.479Z", - "subscription": "2022-06-15T15:28:33.479Z" - } - }, - { - "requestId": "1655306913474.kFQsQx", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "82.118.30.68", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 50.0805, - "longitude": 14.467, - "postalCode": "130 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "timestamp": 1655306913479, - "time": "2022-06-15T15:28:33Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-15T08:47:34.677Z", - "subscription": "2022-06-15T08:47:34.677Z" - } - }, - { - "requestId": "1655282854672.vz4ZlN", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "82.118.30.91", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 50.0805, - "longitude": 14.467, - "postalCode": "130 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "timestamp": 1655282854677, - "time": "2022-06-15T08:47:34Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-14T14:19:42.753Z", - "subscription": "2022-06-14T14:19:42.753Z" - } - }, - { - "requestId": "1655216382743.RDRa4h", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1655216382753, - "time": "2022-06-14T14:19:42Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-13T07:53:19.878Z", - "subscription": "2022-06-13T07:53:19.878Z" - } - }, - { - "requestId": "1655106799870.C8m8hR", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.137", - "timestamp": 1655106799878, - "time": "2022-06-13T07:53:19Z", - "url": "https://fingerprint.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-07T12:54:35.413Z", - "subscription": "2022-06-07T12:54:35.413Z" - } - }, - { - "requestId": "1654606475406.2uXCJx", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.157", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651 - }, - "timestamp": 1654606475413, - "time": "2022-06-07T12:54:35Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-07T09:37:57.43Z", - "subscription": "2022-06-07T09:37:57.43Z" - } - }, - { - "requestId": "1654594677423.pCHmKJ", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "timezone": "Europe/Moscow" - }, - "timestamp": 1654594677430, - "time": "2022-06-07T09:37:57Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-07T09:37:50.109Z", - "subscription": "2022-06-07T09:37:50.109Z" - } - }, - { - "requestId": "1654594670097.Lmodmj", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1654594670109, - "time": "2022-06-07T09:37:50Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-07T08:31:31.9Z", - "subscription": "2022-06-07T08:31:31.9Z" - } - }, - { - "requestId": "1654590691894.aCYqYE", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1654590691900, - "time": "2022-06-07T08:31:31Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-06T09:05:25.954Z", - "subscription": "2022-06-06T09:05:25.954Z" - } - }, - { - "requestId": "1654506325946.ijIwzu", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1654506325954, - "time": "2022-06-06T09:05:25Z", - "url": "https://fingerprintcom.netlify.app/blog/name-change/", - "tag": {}, - "confidence": { - "score": 0.99 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-02T16:58:53.635Z", - "subscription": "2022-06-02T16:58:53.635Z" - } - }, - { - "requestId": "1654189133629.0V1gtF", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1654189133635, - "time": "2022-06-02T16:58:53Z", - "url": "https://fingerprintcom.netlify.app/blog/name-change/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-06-02T16:58:51.483Z", - "subscription": "2022-06-02T16:58:51.483Z" - } - }, - { - "requestId": "1654189131472.r49Bbh", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "102", - "browserFullVersion": "102.0.5005", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1654189131483, - "time": "2022-06-02T16:58:51Z", - "url": "https://fingerprintcom.netlify.app/", - "tag": {}, - "confidence": { - "score": 0.95 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-27T14:52:26.624Z", - "subscription": "2022-05-27T14:52:26.624Z" - } - }, - { - "requestId": "1653663146617.o8KpJO", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1653663146624, - "time": "2022-05-27T14:52:26Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-20T09:50:06.7Z", - "subscription": "2022-05-20T09:50:06.7Z" - } - }, - { - "requestId": "1653040206694.Q5Csig", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1653040206700, - "time": "2022-05-20T09:50:06Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-19T16:27:38.029Z", - "subscription": "2022-05-19T16:27:38.029Z" - } - }, - { - "requestId": "1652977658020.xbfYhA", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1652977658029, - "time": "2022-05-19T16:27:38Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-17T15:09:32.666Z", - "subscription": "2022-05-17T15:09:32.666Z" - } - }, - { - "requestId": "1652800172657.xA22Pd", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1652800172666, - "time": "2022-05-17T15:09:32Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-17T14:18:17.631Z", - "subscription": "2022-05-17T14:18:17.631Z" - } - }, - { - "requestId": "1652797097626.faAMJO", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1652797097631, - "time": "2022-05-17T14:18:17Z", - "url": "https://fingerprintjs.com/careers/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-17T10:16:04.809Z", - "subscription": "2022-05-17T10:16:04.809Z" - } - }, - { - "requestId": "1652782564800.MWH0GO", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1652782564809, - "time": "2022-05-17T10:16:04Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-16T06:47:01.511Z", - "subscription": "2022-05-16T06:47:01.511Z" - } - }, - { - "requestId": "1652683621505.1tOjuc", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "217.150.54.233", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1652683621511, - "time": "2022-05-16T06:47:01Z", - "url": "https://fingerprintjs.com/products/bot-detection/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-16T06:45:49.586Z", - "subscription": "2022-05-16T06:45:49.586Z" - } - }, - { - "requestId": "1652683586557.67Faeg", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": true, - "ip": "217.150.54.233", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1652683586562, - "time": "2022-05-16T06:46:26Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 0.94 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-16T06:45:49.586Z", - "subscription": "2022-05-16T06:45:49.586Z" - } - }, - { - "requestId": "1652683549513.aVRqEP", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "101", - "browserFullVersion": "101.0.4951", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" - }, - "incognito": false, - "ip": "217.150.54.233", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1652683549586, - "time": "2022-05-16T06:45:49Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-05T10:11:25.96Z", - "subscription": "2022-05-05T10:11:25.96Z" - } - }, - { - "requestId": "1651745485951.Oj68me", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1651745485960, - "time": "2022-05-05T10:11:25Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-05T09:33:40.155Z", - "subscription": "2022-05-05T09:33:40.155Z" - } - }, - { - "requestId": "1651743220004.W02rhx", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1651743220155, - "time": "2022-05-05T09:33:40Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-05-03T15:26:32.826Z", - "subscription": "2022-05-03T15:26:32.826Z" - } - }, - { - "requestId": "1651591592822.Is9u93", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.157", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1651591592826, - "time": "2022-05-03T15:26:32Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-29T13:23:37.049Z", - "subscription": "2022-04-29T13:23:37.049Z" - } - }, - { - "requestId": "1651238617044.rMVPGS", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "89.38.224.165", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 44.804, - "longitude": 20.4651, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1651238617049, - "time": "2022-04-29T13:23:37Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-29T10:37:53.333Z", - "subscription": "2022-04-29T10:37:53.333Z" - } - }, - { - "requestId": "1651228673329.QZI2Cu", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1651228673333, - "time": "2022-04-29T10:37:53Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-28T13:58:06.323Z", - "subscription": "2022-04-28T13:58:06.323Z" - } - }, - { - "requestId": "1651154286221.YvuOCP", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "84.247.59.113", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 50.0971, - "longitude": 8.5952, - "postalCode": "65933", - "timezone": "Europe/Berlin", - "city": { - "name": "Frankfurt am Main" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "HE", - "name": "Hesse" - } - ] - }, - "timestamp": 1651154286323, - "time": "2022-04-28T13:58:06Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-28T12:16:02.564Z", - "subscription": "2022-04-28T12:16:02.564Z" - } - }, - { - "requestId": "1651148162556.dySgif", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "84.247.59.113", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 50.0971, - "longitude": 8.5952, - "postalCode": "65933", - "timezone": "Europe/Berlin", - "city": { - "name": "Frankfurt am Main" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "HE", - "name": "Hesse" - } - ] - }, - "timestamp": 1651148162564, - "time": "2022-04-28T12:16:02Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-28T11:57:13.267Z", - "subscription": "2022-04-28T11:57:13.267Z" - } - }, - { - "requestId": "1651147033260.SxmFvL", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "84.247.59.146", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 50.0971, - "longitude": 8.5952, - "postalCode": "65933", - "timezone": "Europe/Berlin", - "city": { - "name": "Frankfurt am Main" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "HE", - "name": "Hesse" - } - ] - }, - "timestamp": 1651147033267, - "time": "2022-04-28T11:57:13Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-28T11:57:06.24Z", - "subscription": "2022-04-28T11:57:06.24Z" - } - }, - { - "requestId": "1651147026139.aAZ8TO", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "84.247.59.146", - "ipLocation": { - "accuracyRadius": 20, - "latitude": 50.0971, - "longitude": 8.5952, - "postalCode": "65933", - "timezone": "Europe/Berlin", - "city": { - "name": "Frankfurt am Main" - }, - "country": { - "code": "DE", - "name": "Germany" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "HE", - "name": "Hesse" - } - ] - }, - "timestamp": 1651147026240, - "time": "2022-04-28T11:57:06Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-26T14:10:31.908Z", - "subscription": "2022-04-26T14:10:31.908Z" - } - }, - { - "requestId": "1650982231903.eG0b6v", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.105", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650982231908, - "time": "2022-04-26T14:10:31Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-26T11:43:37.373Z", - "subscription": "2022-04-26T11:43:37.373Z" - } - }, - { - "requestId": "1650973417360.xupFFD", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.99", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650973417373, - "time": "2022-04-26T11:43:37Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-26T11:43:30.111Z", - "subscription": "2022-04-26T11:43:30.111Z" - } - }, - { - "requestId": "1650973410104.AQD4qu", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.99", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650973410111, - "time": "2022-04-26T11:43:30Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-26T11:22:34.148Z", - "subscription": "2022-04-26T11:22:34.148Z" - } - }, - { - "requestId": "1650972154133.lSWE8a", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.96", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650972154148, - "time": "2022-04-26T11:22:34Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-26T11:22:03.83Z", - "subscription": "2022-04-26T11:22:03.83Z" - } - }, - { - "requestId": "1650972123824.xk8MUR", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.96", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650972123830, - "time": "2022-04-26T11:22:03Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-25T09:46:15.458Z", - "subscription": "2022-04-25T09:46:15.458Z" - } - }, - { - "requestId": "1650879975452.kfuowM", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "188.242.36.107", - "ipLocation": { - "accuracyRadius": 5, - "latitude": 59.8983, - "longitude": 30.2618, - "postalCode": "190924", - "timezone": "Europe/Moscow", - "city": { - "name": "St Petersburg" - }, - "country": { - "code": "RU", - "name": "Russia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "SPE", - "name": "St.-Petersburg" - } - ] - }, - "timestamp": 1650879975458, - "time": "2022-04-25T09:46:15Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-22T16:51:44.816Z", - "subscription": "2022-04-22T16:51:44.816Z" - } - }, - { - "requestId": "1650646304808.xQbAju", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.227", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650646304816, - "time": "2022-04-22T16:51:44Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-21T11:43:33.116Z", - "subscription": "2022-04-21T11:43:33.116Z" - } - }, - { - "requestId": "1650541413105.leAPLz", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.89", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650541413116, - "time": "2022-04-21T11:43:33Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-20T17:11:54.717Z", - "subscription": "2022-04-20T17:11:54.717Z" - } - }, - { - "requestId": "1650474714710.M1IGsl", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.111", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650474714717, - "time": "2022-04-20T17:11:54Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-20T17:11:47.217Z", - "subscription": "2022-04-20T17:11:47.217Z" - } - }, - { - "requestId": "1650474707211.CEUuZk", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.111", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650474707217, - "time": "2022-04-20T17:11:47Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-20T17:11:12.076Z", - "subscription": "2022-04-20T17:11:12.076Z" - } - }, - { - "requestId": "1650474672071.Pz4WsK", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.111", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650474672076, - "time": "2022-04-20T17:11:12Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T12:29:06.692Z", - "subscription": "2022-04-19T12:29:06.692Z" - } - }, - { - "requestId": "1650371346684.1d7sgv", - "browserDetails": { - "browserName": "Chrome Mobile", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Android", - "osVersion": "6.0", - "device": "Nexus 5", - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.198", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650371346692, - "time": "2022-04-19T12:29:06Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T12:29:02.15Z", - "subscription": "2022-04-19T12:29:02.15Z" - } - }, - { - "requestId": "1650371342145.oWyfRx", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.198", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650371342150, - "time": "2022-04-19T12:29:02Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T11:35:14.729Z", - "subscription": "2022-04-19T11:35:14.729Z" - } - }, - { - "requestId": "1650368114723.YEXcHI", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.206", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650368114729, - "time": "2022-04-19T11:35:14Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T11:13:33.107Z", - "subscription": "2022-04-19T11:13:33.107Z" - } - }, - { - "requestId": "1650366813101.SvUZC1", - "browserDetails": { - "browserName": "Chrome Mobile", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Android", - "osVersion": "6.0", - "device": "Nexus 5", - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.204", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650366813107, - "time": "2022-04-19T11:13:33Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T11:13:28.453Z", - "subscription": "2022-04-19T11:13:28.453Z" - } - }, - { - "requestId": "1650366808426.Hy6j7v", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.204", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650366808453, - "time": "2022-04-19T11:13:28Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T11:07:05.19Z", - "subscription": "2022-04-19T11:07:05.19Z" - } - }, - { - "requestId": "1650366425184.xvYkdr", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.204", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650366425190, - "time": "2022-04-19T11:07:05Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T11:07:00.483Z", - "subscription": "2022-04-19T11:07:00.483Z" - } - }, - { - "requestId": "1650366420377.VR5pDX", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.204", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650366420483, - "time": "2022-04-19T11:07:00Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T10:37:45.279Z", - "subscription": "2022-04-19T10:37:45.279Z" - } - }, - { - "requestId": "1650364665274.qq31O4", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.172", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650364665279, - "time": "2022-04-19T10:37:45Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T10:22:58.87Z", - "subscription": "2022-04-19T10:22:58.87Z" - } - }, - { - "requestId": "1650363778864.tsVBjO", - "browserDetails": { - "browserName": "Chrome Mobile", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Android", - "osVersion": "6.0", - "device": "Nexus 5", - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.210", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650363778870, - "time": "2022-04-19T10:22:58Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T10:22:46.894Z", - "subscription": "2022-04-19T10:22:46.894Z" - } - }, - { - "requestId": "1650363766889.KuVDpm", - "browserDetails": { - "browserName": "Chrome Mobile", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Android", - "osVersion": "6.0", - "device": "Nexus 5", - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.210", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650363766894, - "time": "2022-04-19T10:22:46Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T10:07:01.528Z", - "subscription": "2022-04-19T10:07:01.528Z" - } - }, - { - "requestId": "1650362821521.dXH2Ce", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.180", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650362821528, - "time": "2022-04-19T10:07:01Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-19T10:02:42.46Z", - "subscription": "2022-04-19T10:02:42.46Z" - } - }, - { - "requestId": "1650362562448.a5cPLU", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.180", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650362562460, - "time": "2022-04-19T10:02:42Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-18T17:06:30.834Z", - "subscription": "2022-04-18T17:06:30.834Z" - } - }, - { - "requestId": "1650301590829.YXGX7h", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.195", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650301590834, - "time": "2022-04-18T17:06:30Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-18T12:23:30.446Z", - "subscription": "2022-04-18T12:23:30.446Z" - } - }, - { - "requestId": "1650284610441.lJrX4M", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36" - }, - "incognito": false, - "ip": "45.86.200.179", - "ipLocation": { - "accuracyRadius": 1000, - "latitude": 52.3824, - "longitude": 4.8995, - "timezone": "Europe/Amsterdam", - "country": { - "code": "NL", - "name": "Netherlands" - }, - "continent": { - "code": "EU", - "name": "Europe" - } - }, - "timestamp": 1650284610446, - "time": "2022-04-18T12:23:30Z", - "url": "https://fingerprintjs.com/blog/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-04-06T14:53:00.526Z", - "subscription": "2022-04-06T14:53:00.526Z" - } - }, - { - "requestId": "1649256780522.WAXWf2", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36" - }, - "incognito": false, - "ip": "109.245.35.200", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1649256780526, - "time": "2022-04-06T14:53:00Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-18T11:08:35.698Z", - "subscription": "2022-03-18T11:08:35.698Z" - } - }, - { - "requestId": "1649256780520.RRC4PR", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "100", - "browserFullVersion": "100.0.4896", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36" - }, - "incognito": false, - "ip": "109.245.35.200", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1649256780525, - "time": "2022-04-06T14:53:00Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-18T11:08:35.698Z", - "subscription": "2022-03-18T11:08:35.698Z" - } - }, - { - "requestId": "1647601715689.iocXfW", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "98", - "browserFullVersion": "98.0.4758", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" - }, - "incognito": false, - "ip": "178.223.21.183", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1647601715698, - "time": "2022-03-18T11:08:35Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-16T08:21:23.62Z", - "subscription": "2022-03-16T08:21:23.62Z" - } - }, - { - "requestId": "1647418883615.Vck2NA", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "98", - "browserFullVersion": "98.0.4758", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" - }, - "incognito": false, - "ip": "87.116.165.97", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1647418883620, - "time": "2022-03-16T08:21:23Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-16T08:21:18.398Z", - "subscription": "2022-03-16T08:21:18.398Z" - } - }, - { - "requestId": "1647418878391.NZDmht", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "98", - "browserFullVersion": "98.0.4758", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" - }, - "incognito": false, - "ip": "87.116.165.97", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1647418878398, - "time": "2022-03-16T08:21:18Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-15T11:46:51.858Z", - "subscription": "2022-03-15T11:46:51.858Z" - } - }, - { - "requestId": "1647344811836.RvNkL5", - "browserDetails": { - "browserName": "Chrome", - "browserMajorVersion": "98", - "browserFullVersion": "98.0.4758", - "os": "Mac OS X", - "osVersion": "10.15.7", - "device": "Other", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" - }, - "incognito": false, - "ip": "87.116.165.97", - "ipLocation": { - "accuracyRadius": 50, - "latitude": 44.8166, - "longitude": 20.4721, - "timezone": "Europe/Belgrade", - "city": { - "name": "Belgrade" - }, - "country": { - "code": "RS", - "name": "Serbia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "00", - "name": "Belgrade" - } - ] - }, - "timestamp": 1647344811858, - "time": "2022-03-15T11:46:51Z", - "url": "https://fingerprintjs.com/", - "tag": {}, - "confidence": { - "score": 1 - }, - "visitorFound": true, - "firstSeenAt": { - "global": "2022-02-04T11:31:20Z", - "subscription": "2022-02-04T11:31:20Z" - }, - "lastSeenAt": { - "global": "2022-03-08T12:33:05.677Z", - "subscription": "2022-03-08T12:33:05.677Z" - } - } - ] -} diff --git a/sdk/src/test/resources/mocks/get_visitors_400_bad_request.json b/sdk/src/test/resources/mocks/get_visitors_400_bad_request.json deleted file mode 100644 index c2b6e295..00000000 --- a/sdk/src/test/resources/mocks/get_visitors_400_bad_request.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "bad request" -} diff --git a/sdk/src/test/resources/mocks/get_visitors_403_forbidden.json b/sdk/src/test/resources/mocks/get_visitors_403_forbidden.json deleted file mode 100644 index 8a886d18..00000000 --- a/sdk/src/test/resources/mocks/get_visitors_403_forbidden.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Forbidden (HTTP 403)" -} diff --git a/sdk/src/test/resources/mocks/get_visitors_429_too_many_requests.json b/sdk/src/test/resources/mocks/get_visitors_429_too_many_requests.json deleted file mode 100644 index 00d00f2e..00000000 --- a/sdk/src/test/resources/mocks/get_visitors_429_too_many_requests.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "too many requests" -} diff --git a/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200.json b/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200.json deleted file mode 100644 index 7a46a69e..00000000 --- a/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "relatedVisitors": [ - { - "visitorId": "NtCUJGceWX9RpvSbhvOm" - }, - { - "visitorId": "25ee02iZwGxeyT0jMNkZ" - } - ] -} diff --git a/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200_empty.json b/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200_empty.json deleted file mode 100644 index 6c9b02c1..00000000 --- a/sdk/src/test/resources/mocks/related-visitors/get_related_visitors_200_empty.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "relatedVisitors": [] -} diff --git a/sdk/src/test/resources/mocks/update_event_multiple_fields_request.json b/sdk/src/test/resources/mocks/update_event_multiple_fields_request.json deleted file mode 100644 index f85d2e75..00000000 --- a/sdk/src/test/resources/mocks/update_event_multiple_fields_request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "linkedId": "myNewLinkedId", - "tag": { - "myTag": "myNewValue" - }, - "suspect": true -} diff --git a/sdk/src/test/resources/mocks/update_event_one_field_request.json b/sdk/src/test/resources/mocks/update_event_one_field_request.json deleted file mode 100644 index 0ebd1549..00000000 --- a/sdk/src/test/resources/mocks/update_event_one_field_request.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "linkedId": "myNewLinkedId" -} diff --git a/sdk/src/test/resources/mocks/webhook.json b/sdk/src/test/resources/mocks/webhook.json deleted file mode 100644 index 1180fcdc..00000000 --- a/sdk/src/test/resources/mocks/webhook.json +++ /dev/null @@ -1,293 +0,0 @@ -{ - "requestId": "Px6VxbRC6WBkA39yeNH3", - "url": "https://banking.example.com/signup", - "ip": "216.3.128.12", - "tag": { - "requestType": "signup", - "yourCustomId": 45321 - }, - "time": "2019-10-12T07:20:50.52Z", - "timestamp": 1554910997788, - "ipLocation": { - "accuracyRadius": 1, - "city": { - "name": "Bolingbrook" - }, - "continent": { - "code": "NA", - "name": "North America" - }, - "country": { - "code": "US", - "name": "United States" - }, - "latitude": 41.12933, - "longitude": -88.9954, - "postalCode": "60547", - "subdivisions": [ - { - "isoCode": "IL", - "name": "Illinois" - } - ], - "timezone": "America/Chicago" - }, - "linkedId": "any-string", - "visitorId": "3HNey93AkBW6CRbxV6xP", - "visitorFound": true, - "confidence": { - "score": 0.97 - }, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": "2022-03-16T11:28:34.023Z", - "subscription": null - }, - "browserDetails": { - "browserName": "Chrome", - "browserFullVersion": "73.0.3683.86", - "browserMajorVersion": "73", - "os": "Mac OS X", - "osVersion": "10.14.3", - "device": "Other", - "userAgent": "(Macintosh; Intel Mac OS X 10_14_3) Chrome/73.0.3683.86" - }, - "incognito": false, - "clientReferrer": "https://google.com?search=banking+services", - "bot": { - "result": "bad", - "type": "selenium" - }, - "userAgent": "(Macintosh; Intel Mac OS X 10_14_3) Chrome/73.0.3683.86", - "rootApps": { - "result": false - }, - "emulator": { - "result": false - }, - "ipInfo": { - "v4": { - "address": "94.142.239.124", - "geolocation": { - "accuracyRadius": 20, - "latitude": 50.05, - "longitude": 14.4, - "postalCode": "150 00", - "timezone": "Europe/Prague", - "city": { - "name": "Prague" - }, - "country": { - "code": "CZ", - "name": "Czechia" - }, - "continent": { - "code": "EU", - "name": "Europe" - }, - "subdivisions": [ - { - "isoCode": "10", - "name": "Hlavni mesto Praha" - } - ] - }, - "asn": { - "asn": "7922", - "name": "COMCAST-7922", - "network": "73.136.0.0/13" - }, - "datacenter": { - "result": true, - "name": "DediPath" - } - } - }, - "ipBlocklist": { - "result": false, - "details": { - "emailSpam": false, - "attackSource": false - } - }, - "tor": { - "result": false - }, - "vpn": { - "result": false, - "confidence": "high", - "originTimezone": "Europe/Berlin", - "originCountry": "unknown", - "methods": { - "timezoneMismatch": false, - "publicVPN": false, - "auxiliaryMobile": false, - "osMismatch": false, - "relay": false - } - }, - "proxy": { - "result": true, - "confidence": "high", - "details": { - "proxyType": "residential", - "lastSeenAt": "2025-08-12T13:00:00Z" - } - }, - "tampering": { - "result": false, - "anomalyScore": 0, - "antiDetectBrowser": false - }, - "clonedApp": { - "result": false - }, - "factoryReset": { - "time": "1970-01-01T00:00:00Z", - "timestamp": 0 - }, - "jailbroken": { - "result": false - }, - "frida": { - "result": false - }, - "privacySettings": { - "result": false - }, - "virtualMachine": { - "result": false - }, - "rawDeviceAttributes": { - "architecture": { - "value": 127 - }, - "audio": { - "value": 35.73832903057337 - }, - "canvas": { - "value": { - "Winding": true, - "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", - "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" - } - }, - "colorDepth": { - "value": 30 - }, - "colorGamut": { - "value": "srgb" - }, - "contrast": { - "value": 0 - }, - "cookiesEnabled": { - "value": true - } - }, - "highActivity": { - "result": false - }, - "locationSpoofing": { - "result": true - }, - "suspectScore": { - "result": 0 - }, - "velocity": { - "distinctIp": { - "intervals": { - "5m": 1, - "1h": 1, - "24h": 1 - } - }, - "distinctLinkedId": {}, - "distinctCountry": { - "intervals": { - "5m": 1, - "1h": 2, - "24h": 2 - } - }, - "events": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "ipEvents": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctIpByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - }, - "distinctVisitorIdByLinkedId": { - "intervals": { - "5m": 1, - "1h": 5, - "24h": 5 - } - } - }, - "developerTools": { - "result": false - }, - "mitmAttack": { - "result": false - }, - "sdk": { - "platform": "js", - "version": "3.11.10" - }, - "replayed": false, - "supplementaryIds": { - "standard": { - "visitorId": "3HNey93AkBW6CRbxV6xP", - "visitorFound": true, - "confidence": { - "score": 0.97 - }, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": "2022-03-16T11:28:34.023Z", - "subscription": "2022-03-16T11:28:34.023Z" - } - }, - "highRecall": { - "visitorId": "3HNey93AkBW6CRbxV6xP", - "visitorFound": true, - "confidence": { - "score": 0.97 - }, - "firstSeenAt": { - "global": "2022-03-16T11:26:45.362Z", - "subscription": "2022-03-16T11:31:01.101Z" - }, - "lastSeenAt": { - "global": "2022-03-16T11:28:34.023Z", - "subscription": "2022-03-16T11:28:34.023Z" - } - } - }, - "proximity": { - "id": "w1aTfd4MCvl", - "precisionRadius": 10, - "confidence": 0.95 - } -} diff --git a/sdk/src/test/resources/mocks/webhook/webhook_event.json b/sdk/src/test/resources/mocks/webhook/webhook_event.json new file mode 100644 index 00000000..09c15380 --- /dev/null +++ b/sdk/src/test/resources/mocks/webhook/webhook_event.json @@ -0,0 +1,178 @@ +{ + "linked_id": "somelinkedId", + "tags": {}, + "timestamp": 1708102555327, + "event_id": "1708102555327.NLOjmg", + "url": "https://www.example.com/login?hope{this{works[!", + "ip_address": "61.127.217.15", + "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....", + "browser_details": { + "browser_name": "Chrome", + "browser_major_version": "74", + "browser_full_version": "74.0.3729", + "os": "Windows", + "os_version": "7", + "device": "Other" + }, + "identification": { + "visitor_id": "Ibk1527CUFmcnjLwIs4A9", + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "visitor_found": false, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "supplementary_id_high_recall": { + "visitor_id": "3HNey93AkBW6CRbxV6xP", + "visitor_found": true, + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "bot": "not_detected", + "root_apps": false, + "emulator": false, + "ip_info": { + "v4": { + "address": "94.142.239.124", + "geolocation": { + "accuracy_radius": 20, + "latitude": 50.05, + "longitude": 14.4, + "postal_code": "150 00", + "timezone": "Europe/Prague", + "city_name": "Prague", + "country_code": "CZ", + "country_name": "Czechia", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "10", + "name": "Hlavni mesto Praha" + } + ] + }, + "asn": "7922", + "asn_name": "COMCAST-7922", + "asn_network": "73.136.0.0/13", + "datacenter_result": true, + "datacenter_name": "DediPath" + }, + "v6": { + "address": "2001:db8:3333:4444:5555:6666:7777:8888", + "geolocation": { + "accuracy_radius": 5, + "latitude": 49.982, + "longitude": 36.2566, + "postal_code": "10112", + "timezone": "Europe/Berlin", + "city_name": "Berlin", + "country_code": "DE", + "country_name": "Germany", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "BE", + "name": "Land Berlin" + } + ] + }, + "asn": "6805", + "asn_name": "Telefonica Germany", + "asn_network": "2a02:3100::/24", + "datacenter_result": false, + "datacenter_name": "" + } + }, + "ip_blocklist": { + "email_spam": false, + "attack_source": false, + "tor_node": false + }, + "proxy": true, + "proxy_confidence": "low", + "proxy_details": { + "proxy_type": "residential", + "last_seen_at": 1708102555327 + }, + "vpn": false, + "vpn_confidence": "high", + "vpn_origin_timezone": "Europe/Berlin", + "vpn_origin_country": "unknown", + "vpn_methods": { + "timezone_mismatch": false, + "public_vpn": false, + "auxiliary_mobile": false, + "os_mismatch": false, + "relay": false + }, + "incognito": false, + "tampering": false, + "tampering_details": { + "anomaly_score": 0.1955, + "anti_detect_browser": false + }, + "cloned_app": false, + "factory_reset_timestamp": 0, + "jailbroken": false, + "frida": false, + "privacy_settings": false, + "virtual_machine": false, + "location_spoofing": false, + "velocity": { + "distinct_ip": { + "5_minutes": 1, + "1_hour": 1, + "24_hours": 1 + }, + "distinct_country": { + "5_minutes": 1, + "1_hour": 2, + "24_hours": 2 + }, + "events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "ip_events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_ip_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_visitor_id_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + } + }, + "developer_tools": false, + "mitm_attack": false, + "sdk": { + "platform": "js", + "version": "3.11.10", + "integrations": [ + { + "name": "fingerprint-pro-react", + "version": "3.11.10", + "subintegration": { + "name": "preact", + "version": "10.21.0" + } + } + ] + }, + "replayed": false +} \ No newline at end of file diff --git a/template/Configuration.mustache b/template/Configuration.mustache index 4f185409..84cb7a76 100644 --- a/template/Configuration.mustache +++ b/template/Configuration.mustache @@ -2,9 +2,14 @@ package {{invokerPackage}}; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Supplier; + {{>generatedAnnotation}} public class Configuration { - private static ApiClient defaultApiClient = new ApiClient(); + private static final AtomicReference defaultApiClient = new AtomicReference<>(); + private static volatile Supplier apiClientFactory = ApiClient::new; /** * Get the default API client, which would be used when creating API @@ -13,22 +18,33 @@ public class Configuration { * @return Default API client */ public static ApiClient getDefaultApiClient() { - return defaultApiClient; + ApiClient client = defaultApiClient.get(); + if (client == null) { + client = defaultApiClient.updateAndGet(val -> { + if (val != null) { // changed by another thread + return val; + } + return apiClientFactory.get(); + }); + } + return client; } public static ApiClient getDefaultApiClient(String apiKey, Region region) { - defaultApiClient.setApiKey(apiKey); - defaultApiClient.setBasePath(region.toString()); - return defaultApiClient; + ApiClient client = getDefaultApiClient(); + client.setBearerToken(apiKey); + client.setBasePath(region.toString()); + return client; } public static ApiClient getDefaultApiClient(String apiKey, String regionStr) { + ApiClient client = getDefaultApiClient(); switch (regionStr) { case "eu": case "EU": case "EUROPE": case "europe": - defaultApiClient.setBasePath(Region.EUROPE.toString()); + client.setBasePath(Region.EUROPE.toString()); break; case "global": case "GLOBAL": @@ -39,25 +55,26 @@ public class Configuration { case "America": case "america": case "AMERICA": - defaultApiClient.setBasePath(Region.GLOBAL.toString()); + client.setBasePath(Region.GLOBAL.toString()); break; case "asia": case "Asia": case "as": case "AS": - defaultApiClient.setBasePath(Region.ASIA.toString()); + client.setBasePath(Region.ASIA.toString()); break; default: - defaultApiClient.setBasePath(regionStr); + client.setBasePath(regionStr); } - defaultApiClient.setApiKey(apiKey); - return defaultApiClient; + client.setBearerToken(apiKey); + return client; } public static ApiClient getDefaultApiClient(String apiKey) { - defaultApiClient.setApiKey(apiKey); - defaultApiClient.setBasePath(Region.GLOBAL.toString()); - return defaultApiClient; + ApiClient client = getDefaultApiClient(); + client.setBearerToken(apiKey); + client.setBasePath(Region.GLOBAL.toString()); + return client; } /** @@ -67,6 +84,16 @@ public class Configuration { * @param apiClient API client */ public static void setDefaultApiClient(ApiClient apiClient) { - defaultApiClient = apiClient; + defaultApiClient.set(apiClient); + } + + /** + * set the callback used to create new ApiClient objects + */ + public static void setApiClientFactory(Supplier factory) { + apiClientFactory = Objects.requireNonNull(factory); + } + + private Configuration() { } } diff --git a/template/README.mustache b/template/README.mustache index dfa6e872..756209c9 100644 --- a/template/README.mustache +++ b/template/README.mustache @@ -35,6 +35,7 @@ The following versions of Java are supported - Java 11 - Java 17 - Java 21 +- Java 25 ## Installation @@ -136,8 +137,8 @@ Please follow the [installation](#installation) instruction and execute the foll package main; import com.fingerprint.api.FingerprintApi; -import com.fingerprint.model.EventsGetResponse; -import com.fingerprint.model.EventsUpdateRequest; +import com.fingerprint.model.Events; +import com.fingerprint.model.UpdateEvents; import com.fingerprint.model.VisitorsGetResponse; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; @@ -149,8 +150,8 @@ public class FingerprintApiExample { private static final String FPJS_API_SECRET = "Fingerprint Secret API Key"; // A mandatory visitorId of a specific visitor private static final String FPJS_VISITOR_ID = "visitorId"; - // An optional requestId made by a specific visitor - private static final String FPJS_REQUEST_ID = "requestId"; + // An optional eventId initiated by a specific visitor + private static final String FPJS_EVENT_ID = "eventId"; // An optional linkedId of the visit private static final String FPJS_LINKED_ID = "linkedId"; // An optional parameter limiting scanned results @@ -173,7 +174,7 @@ public class FingerprintApiExample { // Get an event with a given requestId try { // Fetch the event with a given requestId - EventsGetResponse response = api.getEvent(FPJS_REQUEST_ID); + Event response = api.getEvent(FPJS_EVENT_ID); System.out.println(response.getProducts().toString()); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.getEvent:" + e.getMessage()); @@ -196,40 +197,13 @@ public class FingerprintApiExample { // Update an event with a given requestId try { - EventsUpdateRequest request = new EventsUpdateRequest(); + EventUpdate request = new EventUpdate(); request.setLinkedId("myNewLinkedId"); - api.updateEvent(FPJS_REQUEST_ID, request); + api.updateEvent(FPJS_EVENT_ID, request); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.updateEvent:" + e.getMessage()); } - // Get a specific visitor's all visits - try { - // Fetch all visits with a given visitorId, with a page limit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, null, null, LIMIT, null, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - - // Get a specific visitor's all visits with a linkedId - try { - // Fetch all visits with a given visitorId, with a page limit, skipping the first visit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, null, FPJS_LINKED_ID, LIMIT, PAGINATION_KEY, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - - // Use all the parameters on getVisits - try { - // Fetch the visitor's all visits with a given requestId and linkedId with a page limit while skipping the first visit - VisitorsGetResponse response = api.getVisits(FPJS_VISITOR_ID, FPJS_REQUEST_ID, FPJS_LINKED_ID, LIMIT, PAGINATION_KEY, null); - System.out.println(response.getVisits().toString()); - } catch (ApiException e) { - System.err.println("Exception when calling FingerprintApi.getVisits:" + e.getMessage()); - } - // Delete visitor data with a given visitorID try { api.deleteVisitorData(FPJS_VISITOR_ID); diff --git a/template/enum_outer_doc.mustache b/template/enum_outer_doc.mustache index 0f2f0fab..11dbee32 100644 --- a/template/enum_outer_doc.mustache +++ b/template/enum_outer_doc.mustache @@ -1,6 +1,6 @@ # {{classname}} {{#unescapedDescription}} - {{{.}}} +{{{.}}} {{/unescapedDescription}} ## Enum diff --git a/template/libraries/jersey3/JSON.mustache b/template/libraries/jersey3/JSON.mustache deleted file mode 100644 index 8c2720e2..00000000 --- a/template/libraries/jersey3/JSON.mustache +++ /dev/null @@ -1,261 +0,0 @@ -package {{invokerPackage}}; - -import com.fasterxml.jackson.annotation.*; -import com.fasterxml.jackson.databind.*; -import com.fasterxml.jackson.databind.json.JsonMapper; -{{#openApiNullable}} -import org.openapitools.jackson.nullable.JsonNullableModule; -{{/openApiNullable}} -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -{{#joda}} -import com.fasterxml.jackson.datatype.joda.JodaModule; -{{/joda}} -{{#models.0}} -import {{modelPackage}}.*; -{{/models.0}} - -import java.text.DateFormat; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import jakarta.ws.rs.core.GenericType; -import jakarta.ws.rs.ext.ContextResolver; - -{{>generatedAnnotation}} -public class JSON implements ContextResolver { - private ObjectMapper mapper; - - public JSON() { - mapper = new ObjectMapper(); - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - JsonMapper.builder().configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); - mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); - mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); - mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); - mapper.setDateFormat(new RFC3339DateFormat()); - mapper.registerModule(new JavaTimeModule()); - {{#joda}} - mapper.registerModule(new JodaModule()); - {{/joda}} - {{#openApiNullable}} - JsonNullableModule jnm = new JsonNullableModule(); - mapper.registerModule(jnm); - {{/openApiNullable}} - } - - /** - * Set the date format for JSON (de)serialization with Date properties. - * @param dateFormat Date format - */ - public void setDateFormat(DateFormat dateFormat) { - mapper.setDateFormat(dateFormat); - } - - @Override - public ObjectMapper getContext(Class type) { - return mapper; - } - - /** - * Get the object mapper - * - * @return object mapper - */ - public ObjectMapper getMapper() { return mapper; } - - /** - * Returns the target model class that should be used to deserialize the input data. - * The discriminator mappings are used to determine the target model class. - * - * @param node The input data. - * @param modelClass The class that contains the discriminator mappings. - */ - public static Class getClassForElement(JsonNode node, Class modelClass) { - ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); - if (cdm != null) { - return cdm.getClassForElement(node, new HashSet>()); - } - return null; - } - - /** - * Helper class to register the discriminator mappings. - */ - private static class ClassDiscriminatorMapping { - // The model class name. - Class modelClass; - // The name of the discriminator property. - String discriminatorName; - // The discriminator mappings for a model class. - Map> discriminatorMappings; - - // Constructs a new class discriminator. - ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { - modelClass = cls; - discriminatorName = propertyName; - discriminatorMappings = new HashMap>(); - if (mappings != null) { - discriminatorMappings.putAll(mappings); - } - } - - // Return the name of the discriminator property for this model class. - String getDiscriminatorPropertyName() { - return discriminatorName; - } - - // Return the discriminator value or null if the discriminator is not - // present in the payload. - String getDiscriminatorValue(JsonNode node) { - // Determine the value of the discriminator property in the input data. - if (discriminatorName != null) { - // Get the value of the discriminator property, if present in the input payload. - node = node.get(discriminatorName); - if (node != null && node.isValueNode()) { - String discrValue = node.asText(); - if (discrValue != null) { - return discrValue; - } - } - } - return null; - } - - /** - * Returns the target model class that should be used to deserialize the input data. - * This function can be invoked for anyOf/oneOf composed models with discriminator mappings. - * The discriminator mappings are used to determine the target model class. - * - * @param node The input data. - * @param visitedClasses The set of classes that have already been visited. - */ - Class getClassForElement(JsonNode node, Set> visitedClasses) { - if (visitedClasses.contains(modelClass)) { - // Class has already been visited. - return null; - } - // Determine the value of the discriminator property in the input data. - String discrValue = getDiscriminatorValue(node); - if (discrValue == null) { - return null; - } - Class cls = discriminatorMappings.get(discrValue); - // It may not be sufficient to return this cls directly because that target class - // may itself be a composed schema, possibly with its own discriminator. - visitedClasses.add(modelClass); - for (Class childClass : discriminatorMappings.values()) { - ClassDiscriminatorMapping childCdm = modelDiscriminators.get(childClass); - if (childCdm == null) { - continue; - } - if (!discriminatorName.equals(childCdm.discriminatorName)) { - discrValue = getDiscriminatorValue(node); - if (discrValue == null) { - continue; - } - } - if (childCdm != null) { - // Recursively traverse the discriminator mappings. - Class childDiscr = childCdm.getClassForElement(node, visitedClasses); - if (childDiscr != null) { - return childDiscr; - } - } - } - return cls; - } - } - - /** - * Returns true if inst is an instance of modelClass in the OpenAPI model hierarchy. - * - * The Java class hierarchy is not implemented the same way as the OpenAPI model hierarchy, - * so it's not possible to use the instanceof keyword. - * - * @param modelClass A OpenAPI model class. - * @param inst The instance object. - */ - public static boolean isInstanceOf(Class modelClass, Object inst, Set> visitedClasses) { - if (modelClass.isInstance(inst)) { - // This handles the 'allOf' use case with single parent inheritance. - return true; - } - if (visitedClasses.contains(modelClass)) { - // This is to prevent infinite recursion when the composed schemas have - // a circular dependency. - return false; - } - visitedClasses.add(modelClass); - - // Traverse the oneOf/anyOf composed schemas. - Map descendants = modelDescendants.get(modelClass); - if (descendants != null) { - for (GenericType childType : descendants.values()) { - if (isInstanceOf(childType.getRawType(), inst, visitedClasses)) { - return true; - } - } - } - return false; - } - - /** - * A map of discriminators for all model classes. - */ - private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); - - /** - * A map of oneOf/anyOf descendants for each model class. - */ - private static Map, Map> modelDescendants = new HashMap, Map>(); - - /** - * Register a model class discriminator. - * - * @param modelClass the model class - * @param discriminatorPropertyName the name of the discriminator property - * @param mappings a map with the discriminator mappings. - */ - public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map> mappings) { - ClassDiscriminatorMapping m = new ClassDiscriminatorMapping(modelClass, discriminatorPropertyName, mappings); - modelDiscriminators.put(modelClass, m); - } - - /** - * Register the oneOf/anyOf descendants of the modelClass. - * - * @param modelClass the model class - * @param descendants a map of oneOf/anyOf descendants. - */ - public static void registerDescendants(Class modelClass, Map descendants) { - modelDescendants.put(modelClass, descendants); - } - - private static JSON json; - - static - { - json = new JSON(); - } - - /** - * Get the default JSON instance. - * - * @return the default JSON instance - */ - public static JSON getDefault() { - return json; - } - - /** - * Set the default JSON instance. - * - * @param json JSON instance to be used - */ - public static void setDefault(JSON json) { - JSON.json = json; - } -} diff --git a/template/libraries/jersey3/api.mustache b/template/libraries/jersey3/api.mustache index a57b05fa..614969c8 100644 --- a/template/libraries/jersey3/api.mustache +++ b/template/libraries/jersey3/api.mustache @@ -60,7 +60,6 @@ public class {{classname}} { } {{#operation}} - {{^vendorExtensions.x-flatten-optional-params}} {{#hasOptionalParams}} public static class {{operationIdCamelCase}}OptionalParams { {{#allParams}} @@ -88,27 +87,17 @@ public class {{classname}} { {{/allParams}} } {{/hasOptionalParams}} - {{/vendorExtensions.x-flatten-optional-params}} /** * {{summary}} * {{{notes}}} - {{^vendorExtensions.x-flatten-optional-params}} {{#allParams}} {{#required}} * @param {{paramName}} {{{description}}} (required) {{/required}} {{/allParams}} - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - {{#allParams}} - * @param {{paramName}} {{{description}}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} - {{/allParams}} - {{/vendorExtensions.x-flatten-optional-params}} - {{^vendorExtensions.x-flatten-optional-params}} {{#hasOptionalParams}} * @param {{operationId}}OptionalParams Object containing optional parameters for API method. (optional) {{/hasOptionalParams}} - {{/vendorExtensions.x-flatten-optional-params}} {{#returnType}} * @return {{.}} {{/returnType}} @@ -133,37 +122,21 @@ public class {{classname}} { {{#isDeprecated}} @Deprecated {{/isDeprecated}} - {{^vendorExtensions.x-flatten-optional-params}} public {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{#required}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}{{operationIdCamelCase}}OptionalParams {{operationId}}OptionalParams{{/hasOptionalParams}}) throws ApiException { {{#returnType}}return {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{#required}}{{paramName}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}{{operationId}}OptionalParams{{/hasOptionalParams}}){{#returnType}}.getData(){{/returnType}}; } - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - public {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { - {{#returnType}}return {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}){{#returnType}}.getData(){{/returnType}}; - } - {{/vendorExtensions.x-flatten-optional-params}} /** * {{summary}} * {{{notes}}} - {{^vendorExtensions.x-flatten-optional-params}} {{#allParams}} {{#required}} * @param {{paramName}} {{{description}}} (required) {{/required}} {{/allParams}} - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - {{#allParams}} - * @param {{paramName}} {{{description}}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} - {{/allParams}} - {{/vendorExtensions.x-flatten-optional-params}} - {{^vendorExtensions.x-flatten-optional-params}} {{#hasOptionalParams}} * @param {{operationId}}OptionalParams Object containing optional parameters for API method. (optional) {{/hasOptionalParams}} - {{/vendorExtensions.x-flatten-optional-params}} * @return ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}> * @throws ApiException if fails to make API call {{#responses.0}} @@ -186,12 +159,7 @@ public class {{classname}} { {{#isDeprecated}} @Deprecated {{/isDeprecated}} - {{^vendorExtensions.x-flatten-optional-params}} public ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{#required}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}{{operationIdCamelCase}}OptionalParams {{operationId}}OptionalParams{{/hasOptionalParams}}) throws ApiException { - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - public ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { - {{/vendorExtensions.x-flatten-optional-params}} Object localVarPostBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}; {{#allParams}}{{#required}} // verify the required parameter '{{paramName}}' is set @@ -210,8 +178,6 @@ public class {{classname}} { {{javaUtilPrefix}}Map localVarFormParams = new {{javaUtilPrefix}}HashMap(); localVarQueryParams.add(new Pair("ii", INTEGRATION_INFO)); - - {{^vendorExtensions.x-flatten-optional-params}} {{#queryParams}} {{#required}} localVarQueryParams.addAll(apiClient.parameterToPairs("{{{collectionFormat}}}", "{{baseName}}", {{paramName}})); @@ -226,35 +192,21 @@ public class {{classname}} { {{/queryParams}} } {{/hasOptionalParams}} - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - {{#queryParams}} - localVarQueryParams.addAll(apiClient.parameterToPairs("{{{collectionFormat}}}", "{{baseName}}", {{paramName}})); - {{/queryParams}} - {{/vendorExtensions.x-flatten-optional-params}} - - {{#headerParams}}if ({{paramName}} != null) + {{#headerParams}} + if ({{paramName}} != null) localVarHeaderParams.put("{{baseName}}", apiClient.parameterToString({{paramName}})); {{/headerParams}} - - {{#cookieParams}}if ({{paramName}} != null) + {{#cookieParams}} + if ({{paramName}} != null) localVarCookieParams.put("{{baseName}}", apiClient.parameterToString({{paramName}})); {{/cookieParams}} - - {{#formParams}}if ({{paramName}} != null) + {{#formParams}} + if ({{paramName}} != null) localVarFormParams.put("{{baseName}}", {{paramName}}); {{/formParams}} - final String[] localVarAccepts = { - {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} - }; - final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); - - final String[] localVarContentTypes = { - {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} - }; - final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); - + final String localVarAccept = apiClient.selectHeaderAccept({{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}); + final String localVarContentType = apiClient.selectHeaderContentType({{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}}); String[] localVarAuthNames = new String[] { {{#authMethods}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}} }; {{#returnType}} diff --git a/template/libraries/jersey3/api_doc.mustache b/template/libraries/jersey3/api_doc.mustache index 1996879d..9a7d220a 100644 --- a/template/libraries/jersey3/api_doc.mustache +++ b/template/libraries/jersey3/api_doc.mustache @@ -14,12 +14,7 @@ All URIs are relative to *{{basePath}}* ## {{operationId}} -{{#vendorExtensions.x-flatten-optional-params}} -> {{#returnType}}{{.}} {{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) -{{/vendorExtensions.x-flatten-optional-params}} -{{^vendorExtensions.x-flatten-optional-params}} > {{#returnType}}{{.}} {{/returnType}}{{operationId}}({{#allParams}}{{#required}}{{{paramName}}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}{{operationId}}OptionalParams{{/hasOptionalParams}}) -{{/vendorExtensions.x-flatten-optional-params}} {{summary}}{{#notes}} @@ -31,12 +26,9 @@ All URIs are relative to *{{basePath}}* 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.model.*; import com.fingerprint.sdk.ApiClient; import com.fingerprint.sdk.ApiException; -import com.fingerprint.sdk.Configuration; import com.fingerprint.sdk.Region; public class FingerprintApiExample { @@ -52,19 +44,13 @@ public class FingerprintApiExample { Region.EUROPE Region.ASIA */ - ApiClient client = Configuration.getDefaultApiClient(FPJS_API_SECRET, Region.EUROPE); - {{classname}} api = new {{classname}}(client); + {{classname}} api = new {{classname}}(FPJS_API_SECRET, Region.EUROPE); {{#allParams}} {{{dataType}}} {{{paramName}}} = {{{example}}}; // {{{dataType}}} | {{{description}}} {{/allParams}} try { - {{^vendorExtensions.x-flatten-optional-params}} {{#returnType}}{{{returnType}}} result = {{/returnType}}api.{{{operationId}}}({{#allParams}}{{#required}}{{{paramName}}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}new FingerprintApi.{{operationIdCamelCase}}OptionalParams(){{#allParams}}{{^required}} .set{{#lambda.titlecase}}{{paramName}}{{/lambda.titlecase}}({{{paramName}}}){{/required}}{{/allParams}}{{/hasOptionalParams}}); - {{/vendorExtensions.x-flatten-optional-params}} - {{#vendorExtensions.x-flatten-optional-params}} - {{#returnType}}{{{returnType}}} result = {{/returnType}}api.{{{operationId}}}({{#allParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/allParams}}); - {{/vendorExtensions.x-flatten-optional-params}} {{#returnType}} System.out.println(result); {{/returnType}} @@ -81,11 +67,6 @@ public class FingerprintApiExample { {{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}} | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------|{{/-last}}{{/allParams}} -{{#vendorExtensions.x-flatten-optional-params}} -{{#allParams}}| **{{paramName}}** | {{#isContainer}}{{#isArray}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**List<{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isArray}}{{#isMap}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**Map<String,{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**{{dataType}}**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/isContainer}}| {{{description}}} |{{^required}} [optional]{{/required}}{{^isContainer}}{{#defaultValue}} [default to {{.}}]{{/defaultValue}}{{/isContainer}}{{#allowableValues}} [enum: {{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} | -{{/allParams}} -{{/vendorExtensions.x-flatten-optional-params}} -{{^vendorExtensions.x-flatten-optional-params}} {{#allParams}}{{#required}}| **{{paramName}}** | {{#isContainer}}{{#isArray}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**List<{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isArray}}{{#isMap}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**Map<String,{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**{{dataType}}**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/isContainer}}| {{{description}}} |{{^required}} [optional]{{/required}}{{^isContainer}}{{#defaultValue}} [default to {{.}}]{{/defaultValue}}{{/isContainer}}{{#allowableValues}} [enum: {{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} | {{/required}}{{/allParams}}{{#hasOptionalParams}}| **{{operationId}}OptionalParams** | [**{{classname}}.{{operationIdCamelCase}}OptionalParams**](#{{#lambda.lowercase}}{{classname}}{{operationId}}OptionalParams{{/lambda.lowercase}}) | | [optional] | @@ -96,7 +77,7 @@ Object containing optional parameters for API method. Supports a fluent interfac | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| {{#allParams}}{{^required}}| **{{paramName}}** | {{#isContainer}}{{#isArray}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**List<{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isArray}}{{#isMap}}{{#items}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**Map<String,{{dataType}}>**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{#isModel}}{{^isFile}}[{{/isFile}}{{/isModel}}**{{dataType}}**{{#isModel}}{{^isFile}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isFile}}{{/isModel}}{{/isContainer}}| {{{description}}} |{{^required}} [optional]{{/required}}{{^isContainer}}{{#defaultValue}} [default to {{.}}]{{/defaultValue}}{{/isContainer}}{{#allowableValues}} [enum: {{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} | -{{/required}}{{/allParams}}{{/hasOptionalParams}}{{/vendorExtensions.x-flatten-optional-params}} +{{/required}}{{/allParams}}{{/hasOptionalParams}} ### Return type {{#returnType}}{{#returnTypeIsPrimitive}}**{{returnType}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{returnType}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}null (empty response body){{/returnType}} diff --git a/template/libraries/jersey3/enumOuterClass.mustache b/template/libraries/jersey3/enumOuterClass.mustache deleted file mode 100644 index fe118436..00000000 --- a/template/libraries/jersey3/enumOuterClass.mustache +++ /dev/null @@ -1,37 +0,0 @@ -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} - */ -public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} { - {{#allowableValues}}{{#enumVars}} - {{{name}}}({{{value}}}){{^-last}}, - {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} - - private {{{dataType}}} value; - - {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}({{{dataType}}} value) { - this.value = value; - } - - @JsonValue - public {{{dataType}}} getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue({{{dataType}}} value) { - for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { - if (b.value.equals(value)) { - return b; - } - } - {{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + value + "' for '{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}' enum.");{{/errorOnUnknownEnum}} - } -} diff --git a/template/model.mustache b/template/model.mustache deleted file mode 100644 index 2f21d6d0..00000000 --- a/template/model.mustache +++ /dev/null @@ -1,28 +0,0 @@ -package {{package}}; - -{{^x-is-composed-model}} -import java.util.Objects; -{{#imports}}import {{import}}; -{{/imports}} -{{#jackson}} -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -{{/jackson}} -import com.fingerprint.sdk.JSON; -import io.swagger.v3.oas.annotations.media.Schema; -{{/x-is-composed-model}} - -{{#models}} -{{#model}} -{{#isComposedModel}} -{{>interface}} -{{/isComposedModel}} -{{^isComposedModel}} -{{#isEnum}} -{{>enumOuterClass}} -{{/isEnum}} -{{^isEnum}} -{{>pojo}} -{{/isEnum}} -{{/isComposedModel}} -{{/model}} -{{/models}} \ No newline at end of file diff --git a/template/modelEnum.mustache b/template/modelEnum.mustache index 7bf3f030..8c1adb89 100644 --- a/template/modelEnum.mustache +++ b/template/modelEnum.mustache @@ -9,21 +9,37 @@ import com.google.gson.annotations.JsonAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; {{/gson}} +{{#isUri}} +import java.net.URI; +{{/isUri}} +import java.util.Locale; /** - * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} + * {{{description}}}{{^description}}Gets or Sets {{{name}}}{{/description}} */ {{#gson}} -@JsonAdapter({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.Adapter.class) +@JsonAdapter({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.Adapter.class) {{/gson}} -public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} { +{{#jsonb}} +@JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class) +@JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class) +{{/jsonb}} +{{>additionalEnumTypeAnnotations}}public enum {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} { {{#allowableValues}}{{#enumVars}} + {{#enumDescription}} + /** + * {{.}} + */ + {{/enumDescription}} + {{#withXml}} + @XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) + {{/withXml}} {{{name}}}({{{value}}}){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} private {{{dataType}}} value; - {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}({{{dataType}}} value) { + {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}({{{dataType}}} value) { this.value = value; } @@ -42,27 +58,64 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum {{#jackson}} @JsonCreator {{/jackson}} - public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue{{#jackson}}({{{dataType}}} value){{/jackson}}{{^jackson}}(String text){{/jackson}} { - for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { - if ({{#jackson}}b.value.equals(value){{/jackson}}{{^jackson}}String.valueOf(b.value).equals(text){{/jackson}}) { + public static {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue({{{dataType}}} value) { + for ({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (b.value.{{^isString}}equals{{/isString}}{{#isString}}{{#useEnumCaseInsensitive}}equalsIgnoreCase{{/useEnumCaseInsensitive}}{{^useEnumCaseInsensitive}}equals{{/useEnumCaseInsensitive}}{{/isString}}(value)) { return b; } } - {{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + {{#jackson}}value{{/jackson}}{{^jackson}}text{{/jackson}} + "' for '{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}' enum.");{{/errorOnUnknownEnum}} + {{#isNullable}}return null;{{/isNullable}}{{^isNullable}}{{#enumUnknownDefaultCase}}{{#allowableValues}}{{#enumVars}}{{#-last}}return {{{name}}};{{/-last}}{{/enumVars}}{{/allowableValues}}{{/enumUnknownDefaultCase}}{{^enumUnknownDefaultCase}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/enumUnknownDefaultCase}}{{/isNullable}} } {{#gson}} - public static class Adapter extends TypeAdapter<{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}> { + public static class Adapter extends TypeAdapter<{{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}> { @Override - public void write(final JsonWriter jsonWriter, final {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); + public void write(final JsonWriter jsonWriter, final {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} enumeration) throws IOException { + jsonWriter.value(enumeration.getValue(){{#isUri}}.toASCIIString(){{/isUri}}); } @Override - public {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException { - {{#isNumber}}BigDecimal value = new BigDecimal(jsonReader.nextDouble()){{/isNumber}}{{^isNumber}}{{#isInteger}}Integer value {{/isInteger}}{{^isInteger}}String value {{/isInteger}}= jsonReader.{{#isInteger}}nextInt(){{/isInteger}}{{^isInteger}}nextString(){{/isInteger}}{{/isNumber}}; - return {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.fromValue({{#jackson}}value{{/jackson}}{{^jackson}}String.valueOf(value){{/jackson}}); + public {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException { + {{^isNumber}}{{{dataType}}}{{/isNumber}}{{#isNumber}}String{{/isNumber}} value = {{#isFloat}}(float){{/isFloat}}{{#isUri}}URI.create({{/isUri}}jsonReader.{{#isNumber}}nextString(){{/isNumber}}{{#isInteger}}nextInt(){{/isInteger}}{{#isUri}}nextString()){{/isUri}}{{^isNumber}}{{^isInteger}}{{^isUri}}{{#isFloat}}nextDouble{{/isFloat}}{{^isFloat}}next{{{dataType}}}{{/isFloat}}(){{/isUri}}{{/isInteger}}{{/isNumber}}; + return {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.fromValue({{#isNumber}}new BigDecimal({{/isNumber}}value{{#isNumber}}){{/isNumber}}); } } {{/gson}} +{{#jsonb}} + + public static final class Deserializer implements JsonbDeserializer<{{datatypeWithEnum}}> { + @Override + public {{datatypeWithEnum}} deserialize(JsonParser parser, DeserializationContext ctx, Type rtType) { + for ({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (String.valueOf(b.value).equals(parser.getString())) { + return b; + } + } + {{#useNullForUnknownEnumValue}}return null;{{/useNullForUnknownEnumValue}}{{^useNullForUnknownEnumValue}}throw new IllegalArgumentException("Unexpected value '" + parser.getString() + "'");{{/useNullForUnknownEnumValue}} + } + } + + public static final class Serializer implements JsonbSerializer<{{datatypeWithEnum}}> { + @Override + public void serialize({{datatypeWithEnum}} obj, JsonGenerator generator, SerializationContext ctx) { + generator.write(obj.value); + } + } +{{/jsonb}} +{{#supportUrlQuery}} + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format(Locale.ROOT, "%s=%s", prefix, this.toString()); + } +{{/supportUrlQuery}} } diff --git a/template/modelInnerEnum.mustache b/template/modelInnerEnum.mustache index 478ffea4..17825230 100644 --- a/template/modelInnerEnum.mustache +++ b/template/modelInnerEnum.mustache @@ -1,27 +1,43 @@ /** - * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} + * {{{description}}}{{^description}}Gets or Sets {{{name}}}{{/description}} */ {{#gson}} - @JsonAdapter({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.Adapter.class) + @JsonAdapter({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.Adapter.class) {{/gson}} - public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} { +{{#jsonb}} + @JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class) + @JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class) +{{/jsonb}} +{{#withXml}} + @XmlType(name="{{datatypeWithEnum}}") + @XmlEnum({{dataType}}.class) +{{/withXml}} + {{>additionalEnumTypeAnnotations}}public enum {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} { {{#allowableValues}} {{#enumVars}} - {{{name}}}({{{value}}}){{^-last}}, + {{#enumDescription}} + /** + * {{.}} + */ + {{/enumDescription}} + {{#withXml}} + @XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) + {{/withXml}} + {{{name}}}({{^isUri}}{{dataType}}.valueOf({{/isUri}}{{{value}}}{{^isUri}}){{/isUri}}){{^-last}}, {{/-last}}{{#-last}};{{/-last}} {{/enumVars}} {{/allowableValues}} - private {{{datatype}}} value; + private {{{dataType}}} value; - {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}({{{datatype}}} value) { + {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}({{{dataType}}} value) { this.value = value; } {{#jackson}} @JsonValue {{/jackson}} - public {{{datatype}}} getValue() { + public {{{dataType}}} getValue() { return value; } @@ -33,27 +49,47 @@ {{#jackson}} @JsonCreator {{/jackson}} - public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue{{#jackson}}({{{datatype}}} value){{/jackson}}{{^jackson}}(String text){{/jackson}} { - for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { - if ({{#jackson}}b.value.equals(value){{/jackson}}{{^jackson}}String.valueOf(b.value).equals(text){{/jackson}}) { + public static {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue({{{dataType}}} value) { + for ({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (b.value.{{^isString}}equals{{/isString}}{{#isString}}{{#useEnumCaseInsensitive}}equalsIgnoreCase{{/useEnumCaseInsensitive}}{{^useEnumCaseInsensitive}}equals{{/useEnumCaseInsensitive}}{{/isString}}(value)) { return b; } } - {{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + {{#jackson}}value{{/jackson}}{{^jackson}}text{{/jackson}} + "' for '{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}' enum.");{{/errorOnUnknownEnum}} + {{#isNullable}}return null;{{/isNullable}}{{^isNullable}}{{#enumUnknownDefaultCase}}{{#allowableValues}}{{#enumVars}}{{#-last}}return {{{name}}};{{/-last}}{{/enumVars}}{{/allowableValues}}{{/enumUnknownDefaultCase}}{{^enumUnknownDefaultCase}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/enumUnknownDefaultCase}}{{/isNullable}} } {{#gson}} - public static class Adapter extends TypeAdapter<{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}> { + public static class Adapter extends TypeAdapter<{{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}> { @Override - public void write(final JsonWriter jsonWriter, final {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); + public void write(final JsonWriter jsonWriter, final {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} enumeration) throws IOException { + jsonWriter.value(enumeration.getValue(){{#isUri}}.toASCIIString(){{/isUri}}); } @Override - public {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException { - {{#isNumber}}Object value = new BigDecimal(jsonReader.nextDouble()){{/isNumber}}{{^isNumber}}{{#isInteger}}int value {{/isInteger}}{{^isInteger}}String value {{/isInteger}}= jsonReader.{{#isInteger}}nextInt(){{/isInteger}}{{^isInteger}}nextString(){{/isInteger}}{{/isNumber}}; - return {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.fromValue({{#jackson}}value{{/jackson}}{{^jackson}}String.valueOf(value){{/jackson}}); + public {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException { + {{^isNumber}}{{{dataType}}}{{/isNumber}}{{#isNumber}}String{{/isNumber}} value = {{#isFloat}}(float){{/isFloat}} {{#isUri}}URI.create({{/isUri}}jsonReader.{{#isNumber}}nextString(){{/isNumber}}{{#isInteger}}nextInt(){{/isInteger}}{{#isUri}}nextString()){{/isUri}}{{^isNumber}}{{^isInteger}}{{^isUri}}{{#isFloat}}nextDouble{{/isFloat}}{{^isFloat}}next{{{dataType}}}{{/isFloat}}(){{/isUri}}{{/isInteger}}{{/isNumber}}; + return {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.fromValue({{#isNumber}}new BigDecimal({{/isNumber}}value{{#isNumber}}){{/isNumber}}); } } {{/gson}} +{{#jsonb}} + public static final class Deserializer implements JsonbDeserializer<{{datatypeWithEnum}}> { + @Override + public {{datatypeWithEnum}} deserialize(JsonParser parser, DeserializationContext ctx, Type rtType) { + for ({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (String.valueOf(b.value).equals(parser.getString())) { + return b; + } + } + {{#useNullForUnknownEnumValue}}return null;{{/useNullForUnknownEnumValue}}{{^useNullForUnknownEnumValue}}throw new IllegalArgumentException("Unexpected value '" + parser.getString() + "'");{{/useNullForUnknownEnumValue}} + } + } + + public static final class Serializer implements JsonbSerializer<{{datatypeWithEnum}}> { + @Override + public void serialize({{datatypeWithEnum}} obj, JsonGenerator generator, SerializationContext ctx) { + generator.write(obj.value); + } + } +{{/jsonb}} } diff --git a/template/pojo.mustache b/template/pojo.mustache deleted file mode 100644 index dfcb001f..00000000 --- a/template/pojo.mustache +++ /dev/null @@ -1,394 +0,0 @@ -/** - * {{{description}}}{{^description}}{{classname}}{{/description}}{{#isDeprecated}} - * @deprecated{{/isDeprecated}} - */ -{{#isDeprecated}} -@Deprecated{{/isDeprecated}} -{{#description}} -@Schema(description = "{{{.}}}"){{/description}} -{{#jackson}} -@JsonPropertyOrder({ -{{#vars}} - {{classname}}.JSON_PROPERTY_{{nameInSnakeCase}}{{^-last}},{{/-last}} -{{/vars}} -}) -{{#isClassnameSanitized}} -@JsonTypeName("{{name}}") -{{/isClassnameSanitized}} -{{/jackson}} -{{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{>xmlAnnotation}} -{{#vendorExtensions.x-class-extra-annotation}} -{{{vendorExtensions.x-class-extra-annotation}}} -{{/vendorExtensions.x-class-extra-annotation}} -public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{#-last}} {{/-last}}{{/vendorExtensions.x-implements}}{ -{{#serializableModel}} - private static final long serialVersionUID = 1L; - -{{/serializableModel}} - {{#vars}} - {{#isEnum}} - {{^isContainer}} -{{>modelInnerEnum}} - {{/isContainer}} - {{#isContainer}} - {{#mostInnerItems}} -{{>modelInnerEnum}} - {{/mostInnerItems}} - {{/isContainer}} - {{/isEnum}} - {{#gson}} - public static final String SERIALIZED_NAME_{{nameInSnakeCase}} = "{{baseName}}"; - {{/gson}} - {{#jackson}} - public static final String JSON_PROPERTY_{{nameInSnakeCase}} = "{{baseName}}"; - {{/jackson}} - {{#withXml}} - {{#isXmlAttribute}} - @XmlAttribute(name = "{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isXmlAttribute}} - {{^isXmlAttribute}} - {{^isContainer}} - @XmlElement({{#xmlNamespace}}namespace="{{.}}", {{/xmlNamespace}}name = "{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isContainer}} - {{#isContainer}} - // Is a container wrapped={{isXmlWrapped}} - {{#items}} - // items.name={{name}} items.baseName={{baseName}} items.xmlName={{xmlName}} items.xmlNamespace={{xmlNamespace}} - // items.example={{example}} items.type={{dataType}} - @XmlElement({{#xmlNamespace}}namespace="{{.}}", {{/xmlNamespace}}name = "{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/items}} - {{#isXmlWrapped}} - @XmlElementWrapper({{#xmlNamespace}}namespace="{{.}}", {{/xmlNamespace}}name = "{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isXmlWrapped}} - {{/isContainer}} - {{#isDateTime}} - @XmlJavaTypeAdapter(OffsetDateTimeXmlAdapter.class) - {{/isDateTime}} - {{/isXmlAttribute}} - {{/withXml}} - {{#gson}} - @SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}}) - {{/gson}} - {{#vendorExtensions.x-field-extra-annotation}} - {{{vendorExtensions.x-field-extra-annotation}}} - {{/vendorExtensions.x-field-extra-annotation}} - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{#isContainer}} - private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined(); - {{/isContainer}} - {{^isContainer}} - private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}}; - {{/isContainer}} - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - {{#isContainer}} - private {{{datatypeWithEnum}}} {{name}}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}} = null{{/required}}; - {{/isContainer}} - {{^isContainer}} - {{#isDiscriminator}}protected{{/isDiscriminator}}{{^isDiscriminator}}private{{/isDiscriminator}} {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}; - {{/isContainer}} - {{/vendorExtensions.x-is-jackson-optional-nullable}} - - {{/vars}} - public {{classname}}() { - {{#parent}} - {{#parcelableModel}} - super();{{/parcelableModel}} - {{/parent}} - {{#gson}} - {{#discriminator}} - {{#discriminator.isEnum}} - this.{{{discriminatorName}}} = this.getClass().getSimpleName(); - {{/discriminator.isEnum}} - {{/discriminator}} - {{/gson}} - } - {{#vendorExtensions.x-has-readonly-properties}} - {{^withXml}} - - {{#jsonb}}@JsonbCreator{{/jsonb}}{{#jackson}}@JsonCreator{{/jackson}} - public {{classname}}( - {{#readOnlyVars}} - {{#jsonb}}@JsonbProperty(value = "{{baseName}}"{{^required}}, nillable = true{{/required}}){{/jsonb}}{{#jackson}}@JsonProperty(JSON_PROPERTY_{{nameInSnakeCase}}){{/jackson}} {{{datatypeWithEnum}}} {{name}}{{^-last}}, {{/-last}} - {{/readOnlyVars}} - ) { - this(); - {{#readOnlyVars}} - this.{{name}} = {{#vendorExtensions.x-is-jackson-optional-nullable}}{{name}} == null ? JsonNullable.<{{{datatypeWithEnum}}}>undefined() : JsonNullable.of({{name}}){{/vendorExtensions.x-is-jackson-optional-nullable}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{name}}{{/vendorExtensions.x-is-jackson-optional-nullable}}; - {{/readOnlyVars}} - } - {{/withXml}} - {{/vendorExtensions.x-has-readonly-properties}} - {{#vars}} - - {{^isReadOnly}} - public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) { - {{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}}{{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}} - return this; - } - {{#isArray}} - - public {{classname}} add{{items.datatypeWithEnum}}Item({{{items.datatypeWithEnum}}} {{name}}Item) { - {{#vendorExtensions.x-is-jackson-optional-nullable}} - if (this.{{name}} == null || !this.{{name}}.isPresent()) { - this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{{defaultValue}}}); - } - try { - this.{{name}}.get().add({{name}}Item); - } catch (java.util.NoSuchElementException e) { - // this can never happen, as we make sure above that the value is present - } - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - {{^required}} - if (this.{{name}} == null) { - this.{{name}} = {{{defaultValue}}}; - } - {{/required}} - this.{{name}}.add({{name}}Item); - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - {{/isArray}} - {{#isMap}} - - public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) { - {{#vendorExtensions.x-is-jackson-optional-nullable}} - if (this.{{name}} == null || !this.{{name}}.isPresent()) { - this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{{defaultValue}}}); - } - try { - this.{{name}}.get().put(key, {{name}}Item); - } catch (java.util.NoSuchElementException e) { - // this can never happen, as we make sure above that the value is present - } - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - {{^required}} - if (this.{{name}} == null) { - this.{{name}} = {{{defaultValue}}}; - } - {{/required}} - this.{{name}}.put(key, {{name}}Item); - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - {{/isMap}} - - {{/isReadOnly}} - /** - {{#description}} - * {{{.}}} - {{/description}} - {{^description}} - * Get {{name}} - {{/description}} - {{#minimum}} - * minimum: {{.}} - {{/minimum}} - {{#maximum}} - * maximum: {{.}} - {{/maximum}} - * @return {{name}} - {{#deprecated}} - * @deprecated - {{/deprecated}} - **/ -{{#deprecated}} - @Deprecated -{{/deprecated}} -{{#required}} -{{#isNullable}} - @jakarta.annotation.Nullable -{{/isNullable}} -{{^isNullable}} - @jakarta.annotation.Nonnull -{{/isNullable}} -{{/required}} -{{^required}} - @jakarta.annotation.Nullable -{{/required}} -{{#jsonb}} - @JsonbProperty("{{baseName}}") -{{/jsonb}} -{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} @Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}description = "{{{description}}}") -{{#vendorExtensions.x-extra-annotation}} - {{{vendorExtensions.x-extra-annotation}}} -{{/vendorExtensions.x-extra-annotation}} -{{#vendorExtensions.x-is-jackson-optional-nullable}} - {{!unannotated, Jackson would pick this up automatically and add it *in addition* to the _JsonNullable getter field}} - @JsonIgnore -{{/vendorExtensions.x-is-jackson-optional-nullable}} -{{^vendorExtensions.x-is-jackson-optional-nullable}}{{#jackson}}{{> jackson_annotations}}{{/jackson}}{{/vendorExtensions.x-is-jackson-optional-nullable}} - public {{{datatypeWithEnum}}} {{getter}}() { - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{#isReadOnly}}{{! A readonly attribute doesn't have setter => jackson will set null directly if explicitly returned by API, so make sure we have an empty JsonNullable}} - if ({{name}} == null) { - {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}}; - } - {{/isReadOnly}} - return {{name}}.orElse(null); - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - return {{name}}; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - - {{#vendorExtensions.x-is-jackson-optional-nullable}} -{{> jackson_annotations}} - public JsonNullable<{{{datatypeWithEnum}}}> {{getter}}_JsonNullable() { - return {{name}}; - } - {{/vendorExtensions.x-is-jackson-optional-nullable}}{{#vendorExtensions.x-is-jackson-optional-nullable}} - @JsonProperty(JSON_PROPERTY_{{nameInSnakeCase}}) - {{#isReadOnly}}private{{/isReadOnly}}{{^isReadOnly}}public{{/isReadOnly}} void {{setter}}_JsonNullable(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) { - {{! For getters/setters that have name differing from attribute name, we must include setter (albeit private) for jackson to be able to set the attribute}} - this.{{name}} = {{name}}; - } - {{/vendorExtensions.x-is-jackson-optional-nullable}} - - {{^isReadOnly}} -{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}} -{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) { - {{#vendorExtensions.x-is-jackson-optional-nullable}} - this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}}); - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - this.{{name}} = {{name}}; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - {{/isReadOnly}} - - {{/vars}} - - /** - * Return true if this {{name}} object is equal to o. - */ - @Override - public boolean equals(Object o) { - {{#useReflectionEqualsHashCode}} - return EqualsBuilder.reflectionEquals(this, o, false, null, true); - {{/useReflectionEqualsHashCode}} - {{^useReflectionEqualsHashCode}} - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - }{{#hasVars}} - {{classname}} {{classVarName}} = ({{classname}}) o; - return {{#vars}}{{#vendorExtensions.x-is-jackson-optional-nullable}}equalsNullable(this.{{name}}, {{classVarName}}.{{name}}){{/vendorExtensions.x-is-jackson-optional-nullable}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{#isByteArray}}Arrays{{/isByteArray}}{{^isByteArray}}Objects{{/isByteArray}}.equals(this.{{name}}, {{classVarName}}.{{name}}){{/vendorExtensions.x-is-jackson-optional-nullable}}{{^-last}} && - {{/-last}}{{/vars}}{{#parent}} && - super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}} - return {{#parent}}super.equals(o){{/parent}}{{^parent}}true{{/parent}};{{/hasVars}} - {{/useReflectionEqualsHashCode}} - }{{#vendorExtensions.x-jackson-optional-nullable-helpers}} - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); - }{{/vendorExtensions.x-jackson-optional-nullable-helpers}} - - @Override - public int hashCode() { - {{#useReflectionEqualsHashCode}} - return HashCodeBuilder.reflectionHashCode(this); - {{/useReflectionEqualsHashCode}} - {{^useReflectionEqualsHashCode}} - return Objects.hash({{#vars}}{{#vendorExtensions.x-is-jackson-optional-nullable}}hashCodeNullable({{name}}){{/vendorExtensions.x-is-jackson-optional-nullable}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{^isByteArray}}{{name}}{{/isByteArray}}{{#isByteArray}}Arrays.hashCode({{name}}){{/isByteArray}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}}); - {{/useReflectionEqualsHashCode}} - }{{#vendorExtensions.x-jackson-optional-nullable-helpers}} - - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; - } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; - }{{/vendorExtensions.x-jackson-optional-nullable-helpers}} - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class {{classname}} {\n"); - {{#parent}} - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - {{/parent}} - {{#vars}} - sb.append(" {{name}}: ").append(toIndentedString({{name}})).append("\n"); - {{/vars}} - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private{{#jsonb}} static{{/jsonb}} String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -{{#parcelableModel}} - - public void writeToParcel(Parcel out, int flags) { -{{#model}} -{{#isArray}} - out.writeList(this); -{{/isArray}} -{{^isArray}} -{{#parent}} - super.writeToParcel(out, flags); -{{/parent}} -{{#vars}} - out.writeValue({{name}}); -{{/vars}} -{{/isArray}} -{{/model}} - } - - {{classname}}(Parcel in) { -{{#isArray}} - in.readTypedList(this, {{arrayModelType}}.CREATOR); -{{/isArray}} -{{^isArray}} -{{#parent}} - super(in); -{{/parent}} -{{#vars}} -{{#isPrimitiveType}} - {{name}} = ({{{datatypeWithEnum}}})in.readValue(null); -{{/isPrimitiveType}} -{{^isPrimitiveType}} - {{name}} = ({{{datatypeWithEnum}}})in.readValue({{complexType}}.class.getClassLoader()); -{{/isPrimitiveType}} -{{/vars}} -{{/isArray}} - } - - public int describeContents() { - return 0; - } - - public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() { - public {{classname}} createFromParcel(Parcel in) { -{{#model}} -{{#isArray}} - {{classname}} result = new {{classname}}(); - result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader())); - return result; -{{/isArray}} -{{^isArray}} - return new {{classname}}(in); -{{/isArray}} -{{/model}} - } - public {{classname}}[] newArray(int size) { - return new {{classname}}[size]; - } - }; -{{/parcelableModel}} -} diff --git a/template/pojo_doc.mustache b/template/pojo_doc.mustache deleted file mode 100644 index ee0791bf..00000000 --- a/template/pojo_doc.mustache +++ /dev/null @@ -1,20 +0,0 @@ -# {{classname}} - -{{#description}} -{{{unescapedDescription}}} -{{/description}} - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -{{#vars}}|**{{name}}** | {{#isEnum}}[**{{datatypeWithEnum}}**](#{{datatypeWithEnum}}){{/isEnum}}{{^isEnum}}{{#isPrimitiveType}}**{{datatype}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}**]({{complexType}}.md){{/isPrimitiveType}}{{/isEnum}} | {{{description}}} | {{^required}} [optional]{{/required}}{{#readOnly}} [readonly]{{/readOnly}} | -{{/vars}} -{{#vars}}{{#isEnum}} - -## Enum: {{datatypeWithEnum}} - -| Name | Value | -|---- | -----{{#allowableValues}}{{#enumVars}} | -| {{name}} | {{value}}{{/enumVars}}{{/allowableValues}} | -{{/isEnum}}{{/vars}}