diff --git a/README.md b/README.md index 98e109d6..09bd8bf8 100644 --- a/README.md +++ b/README.md @@ -337,6 +337,8 @@ Class | Method | HTTP request | Description - [Integration](docs/Integration.md) - [IntegrationSubintegration](docs/IntegrationSubintegration.md) - [Jailbroken](docs/Jailbroken.md) + - [Labels](docs/Labels.md) + - [LabelsInner](docs/LabelsInner.md) - [LocationSpoofing](docs/LocationSpoofing.md) - [MitMAttack](docs/MitMAttack.md) - [PrivacySettings](docs/PrivacySettings.md) @@ -352,11 +354,13 @@ Class | Method | HTTP request | Description - [ProductIdentification](docs/ProductIdentification.md) - [ProductIncognito](docs/ProductIncognito.md) - [ProductJailbroken](docs/ProductJailbroken.md) + - [ProductLabels](docs/ProductLabels.md) - [ProductLocationSpoofing](docs/ProductLocationSpoofing.md) - [ProductMitMAttack](docs/ProductMitMAttack.md) - [ProductPrivacySettings](docs/ProductPrivacySettings.md) - [ProductProximity](docs/ProductProximity.md) - [ProductProxy](docs/ProductProxy.md) + - [ProductRareDevice](docs/ProductRareDevice.md) - [ProductRawDeviceAttributes](docs/ProductRawDeviceAttributes.md) - [ProductRemoteControl](docs/ProductRemoteControl.md) - [ProductRootApps](docs/ProductRootApps.md) @@ -371,6 +375,7 @@ Class | Method | HTTP request | Description - [Proxy](docs/Proxy.md) - [ProxyConfidence](docs/ProxyConfidence.md) - [ProxyDetails](docs/ProxyDetails.md) + - [RareDevice](docs/RareDevice.md) - [RawDeviceAttribute](docs/RawDeviceAttribute.md) - [RawDeviceAttributeError](docs/RawDeviceAttributeError.md) - [RawDeviceAttributes](docs/RawDeviceAttributes.md) @@ -410,6 +415,7 @@ Class | Method | HTTP request | Description - [WebhookPrivacySettings](docs/WebhookPrivacySettings.md) - [WebhookProximity](docs/WebhookProximity.md) - [WebhookProxy](docs/WebhookProxy.md) + - [WebhookRareDevice](docs/WebhookRareDevice.md) - [WebhookRawDeviceAttributes](docs/WebhookRawDeviceAttributes.md) - [WebhookRemoteControl](docs/WebhookRemoteControl.md) - [WebhookRootApps](docs/WebhookRootApps.md) diff --git a/docs/DeveloperTools.md b/docs/DeveloperTools.md index 0eebf37f..ad44377c 100644 --- a/docs/DeveloperTools.md +++ b/docs/DeveloperTools.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**result** | **bool** | `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. | +**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 412ffad4..c9d4b493 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -278,7 +278,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **search_events** -> SearchEventsResponse search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect, vpn=vpn, virtual_machine=virtual_machine, tampering=tampering, anti_detect_browser=anti_detect_browser, incognito=incognito, privacy_settings=privacy_settings, jailbroken=jailbroken, frida=frida, factory_reset=factory_reset, cloned_app=cloned_app, emulator=emulator, root_apps=root_apps, vpn_confidence=vpn_confidence, min_suspect_score=min_suspect_score, ip_blocklist=ip_blocklist, datacenter=datacenter, developer_tools=developer_tools, location_spoofing=location_spoofing, mitm_attack=mitm_attack, proxy=proxy, sdk_version=sdk_version, sdk_platform=sdk_platform, environment=environment, proximity_id=proximity_id, proximity_precision_radius=proximity_precision_radius) +> SearchEventsResponse search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect, vpn=vpn, virtual_machine=virtual_machine, tampering=tampering, anti_detect_browser=anti_detect_browser, incognito=incognito, privacy_settings=privacy_settings, jailbroken=jailbroken, frida=frida, factory_reset=factory_reset, cloned_app=cloned_app, emulator=emulator, root_apps=root_apps, vpn_confidence=vpn_confidence, min_suspect_score=min_suspect_score, ip_blocklist=ip_blocklist, datacenter=datacenter, developer_tools=developer_tools, location_spoofing=location_spoofing, mitm_attack=mitm_attack, rare_device=rare_device, rare_device_percentile_bucket=rare_device_percentile_bucket, proxy=proxy, sdk_version=sdk_version, sdk_platform=sdk_platform, environment=environment, proximity_id=proximity_id, proximity_precision_radius=proximity_precision_radius) Get events via search @@ -332,6 +332,8 @@ datacenter = True # bool | Filter events by Datacenter Detection result. > Note: developer_tools = True # bool | 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) location_spoofing = True # bool | 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) mitm_attack = True # bool | 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) +rare_device = True # bool | Filter events by Rare Device detection result. > Note: When using this parameter, only events with the `products.rareDevice.data.result` property set to `true` or `false` are returned. Events without a `products.rareDevice` Smart Signal result are left out of the response. (optional) +rare_device_percentile_bucket = 'rare_device_percentile_bucket_example' # str | Filter events by Rare Device percentile bucket. ` 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) sdk_version = 'sdk_version_example' # str | Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` (optional) sdk_platform = 'sdk_platform_example' # str | 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) @@ -341,7 +343,7 @@ proximity_precision_radius = 56 # int | Filter events by Proximity Radius. > Not try: # Get events via search - api_response = api_instance.search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect, vpn=vpn, virtual_machine=virtual_machine, tampering=tampering, anti_detect_browser=anti_detect_browser, incognito=incognito, privacy_settings=privacy_settings, jailbroken=jailbroken, frida=frida, factory_reset=factory_reset, cloned_app=cloned_app, emulator=emulator, root_apps=root_apps, vpn_confidence=vpn_confidence, min_suspect_score=min_suspect_score, ip_blocklist=ip_blocklist, datacenter=datacenter, developer_tools=developer_tools, location_spoofing=location_spoofing, mitm_attack=mitm_attack, proxy=proxy, sdk_version=sdk_version, sdk_platform=sdk_platform, environment=environment, proximity_id=proximity_id, proximity_precision_radius=proximity_precision_radius) + api_response = api_instance.search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect, vpn=vpn, virtual_machine=virtual_machine, tampering=tampering, anti_detect_browser=anti_detect_browser, incognito=incognito, privacy_settings=privacy_settings, jailbroken=jailbroken, frida=frida, factory_reset=factory_reset, cloned_app=cloned_app, emulator=emulator, root_apps=root_apps, vpn_confidence=vpn_confidence, min_suspect_score=min_suspect_score, ip_blocklist=ip_blocklist, datacenter=datacenter, developer_tools=developer_tools, location_spoofing=location_spoofing, mitm_attack=mitm_attack, rare_device=rare_device, rare_device_percentile_bucket=rare_device_percentile_bucket, proxy=proxy, sdk_version=sdk_version, sdk_platform=sdk_platform, environment=environment, proximity_id=proximity_id, proximity_precision_radius=proximity_precision_radius) print(api_response) except ApiException as e: print("Exception when calling FingerprintApi->search_events: %s\n" % e) @@ -380,6 +382,8 @@ Name | Type | Description | Notes **developer_tools** | **bool**| 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] **location_spoofing** | **bool**| 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] **mitm_attack** | **bool**| 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] + **rare_device** | **bool**| Filter events by Rare Device detection result. > Note: When using this parameter, only events with the `products.rareDevice.data.result` property set to `true` or `false` are returned. Events without a `products.rareDevice` Smart Signal result are left out of the response. | [optional] + **rare_device_percentile_bucket** | **str**| Filter events by Rare Device percentile bucket. ` 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] **sdk_version** | **str**| Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` | [optional] **sdk_platform** | **str**| 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] diff --git a/docs/Labels.md b/docs/Labels.md new file mode 100644 index 00000000..8fb6a4a8 --- /dev/null +++ b/docs/Labels.md @@ -0,0 +1,11 @@ +# Labels +Each label returns a prediction (true or false) for a specific use case (label field) based on a machine learning score. The machine learning score is determined by a model trained on customer data for that use case. This field is in the beta phase and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). + + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/LabelsInner.md b/docs/LabelsInner.md new file mode 100644 index 00000000..7efdd564 --- /dev/null +++ b/docs/LabelsInner.md @@ -0,0 +1,11 @@ +# LabelsInner + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**label** | **str** | | [optional] +**prediction** | **bool** | | [optional] +**ml_score** | **float** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ProductLabels.md b/docs/ProductLabels.md new file mode 100644 index 00000000..9f7d0478 --- /dev/null +++ b/docs/ProductLabels.md @@ -0,0 +1,10 @@ +# ProductLabels + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**Labels**](Labels.md) | | [optional] +**error** | [**Error**](Error.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ProductRareDevice.md b/docs/ProductRareDevice.md new file mode 100644 index 00000000..68033224 --- /dev/null +++ b/docs/ProductRareDevice.md @@ -0,0 +1,10 @@ +# ProductRareDevice + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**RareDevice**](RareDevice.md) | | [optional] +**error** | [**Error**](Error.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/Products.md b/docs/Products.md index 428c28be..1d907658 100644 --- a/docs/Products.md +++ b/docs/Products.md @@ -30,7 +30,9 @@ Name | Type | Description | Notes **velocity** | [**ProductVelocity**](ProductVelocity.md) | | [optional] **developer_tools** | [**ProductDeveloperTools**](ProductDeveloperTools.md) | | [optional] **mitm_attack** | [**ProductMitMAttack**](ProductMitMAttack.md) | | [optional] +**rare_device** | [**ProductRareDevice**](ProductRareDevice.md) | | [optional] **proximity** | [**ProductProximity**](ProductProximity.md) | | [optional] +**labels** | [**ProductLabels**](ProductLabels.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Proxy.md b/docs/Proxy.md index 6b194376..b20a843b 100644 --- a/docs/Proxy.md +++ b/docs/Proxy.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes **result** | **bool** | 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] +**ml_score** | **float** | Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ProxyDetails.md b/docs/ProxyDetails.md index cd06b640..b58adc66 100644 --- a/docs/ProxyDetails.md +++ b/docs/ProxyDetails.md @@ -5,7 +5,7 @@ Proxy detection details (present if proxy is detected) ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**proxy_type** | **str** | Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers | +**proxy_type** | **str** | Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers. `unknown` is reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type. | **last_seen_at** | **datetime** | ISO 8601 formatted timestamp in UTC with hourly resolution of when this IP was last seen as a proxy when available. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/RareDevice.md b/docs/RareDevice.md new file mode 100644 index 00000000..8b6b4dbf --- /dev/null +++ b/docs/RareDevice.md @@ -0,0 +1,14 @@ +# RareDevice +Rare device details (present if the device is considered rare) +> This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). + + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**result** | **bool** | `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). | [optional] +**percentile_bucket** | **str** | The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/VPN.md b/docs/VPN.md index 0b2a789d..01b0a603 100644 --- a/docs/VPN.md +++ b/docs/VPN.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **result** | **bool** | VPN or other anonymizing service has been used when sending the request. | **confidence** | [**VPNConfidence**](VPNConfidence.md) | | +**ml_score** | **float** | Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] **origin_timezone** | **str** | Local timezone which is used in timezoneMismatch method. | **origin_country** | **str** | 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/VPNMethods.md b/docs/VPNMethods.md index e2981041..c7fc46b0 100644 --- a/docs/VPNMethods.md +++ b/docs/VPNMethods.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **auxiliary_mobile** | **bool** | This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. | **os_mismatch** | **bool** | The browser runs on a different operating system than the operating system inferred from the request network signature. | **relay** | **bool** | 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. | +**ml_prediction** | **bool** | `true` if the request came from a device running a VPN, `false` otherwise. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Webhook.md b/docs/Webhook.md index 7b1051de..5fb89058 100644 --- a/docs/Webhook.md +++ b/docs/Webhook.md @@ -45,6 +45,7 @@ Name | Type | Description | Notes **velocity** | [**WebhookVelocity**](WebhookVelocity.md) | | [optional] **developer_tools** | [**WebhookDeveloperTools**](WebhookDeveloperTools.md) | | [optional] **mitm_attack** | [**WebhookMitMAttack**](WebhookMitMAttack.md) | | [optional] +**rare_device** | [**WebhookRareDevice**](WebhookRareDevice.md) | | [optional] **replayed** | **bool** | `true` if we determined that this payload was replayed, `false` otherwise. | [optional] **sdk** | [**SDK**](SDK.md) | | **supplementary_ids** | [**WebhookSupplementaryIDs**](WebhookSupplementaryIDs.md) | | [optional] diff --git a/docs/WebhookDeveloperTools.md b/docs/WebhookDeveloperTools.md index 70cf9e2f..8f428cf3 100644 --- a/docs/WebhookDeveloperTools.md +++ b/docs/WebhookDeveloperTools.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**result** | **bool** | `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. | [optional] +**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/WebhookProxy.md b/docs/WebhookProxy.md index a6516094..e38dbf9c 100644 --- a/docs/WebhookProxy.md +++ b/docs/WebhookProxy.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes **result** | **bool** | 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] +**ml_score** | **float** | Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/WebhookRareDevice.md b/docs/WebhookRareDevice.md new file mode 100644 index 00000000..999e484c --- /dev/null +++ b/docs/WebhookRareDevice.md @@ -0,0 +1,10 @@ +# WebhookRareDevice + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**result** | **bool** | `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] +**percentile_bucket** | **str** | The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/WebhookVPN.md b/docs/WebhookVPN.md index d050117f..73d66b95 100644 --- a/docs/WebhookVPN.md +++ b/docs/WebhookVPN.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **result** | **bool** | VPN or other anonymizing service has been used when sending the request. | [optional] **confidence** | [**VPNConfidence**](VPNConfidence.md) | | [optional] +**ml_score** | **float** | Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] **origin_timezone** | **str** | Local timezone which is used in timezoneMismatch method. | [optional] **origin_country** | **str** | 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/fingerprint_pro_server_api_sdk/__init__.py b/fingerprint_pro_server_api_sdk/__init__.py index 40f2c522..062bb8f3 100644 --- a/fingerprint_pro_server_api_sdk/__init__.py +++ b/fingerprint_pro_server_api_sdk/__init__.py @@ -66,6 +66,8 @@ from fingerprint_pro_server_api_sdk.models.integration import Integration from fingerprint_pro_server_api_sdk.models.integration_subintegration import IntegrationSubintegration from fingerprint_pro_server_api_sdk.models.jailbroken import Jailbroken +from fingerprint_pro_server_api_sdk.models.labels import Labels +from fingerprint_pro_server_api_sdk.models.labels_inner import LabelsInner from fingerprint_pro_server_api_sdk.models.location_spoofing import LocationSpoofing from fingerprint_pro_server_api_sdk.models.mit_m_attack import MitMAttack from fingerprint_pro_server_api_sdk.models.privacy_settings import PrivacySettings @@ -81,11 +83,13 @@ from fingerprint_pro_server_api_sdk.models.product_identification import ProductIdentification from fingerprint_pro_server_api_sdk.models.product_incognito import ProductIncognito from fingerprint_pro_server_api_sdk.models.product_jailbroken import ProductJailbroken +from fingerprint_pro_server_api_sdk.models.product_labels import ProductLabels from fingerprint_pro_server_api_sdk.models.product_location_spoofing import ProductLocationSpoofing from fingerprint_pro_server_api_sdk.models.product_mit_m_attack import ProductMitMAttack from fingerprint_pro_server_api_sdk.models.product_privacy_settings import ProductPrivacySettings from fingerprint_pro_server_api_sdk.models.product_proximity import ProductProximity from fingerprint_pro_server_api_sdk.models.product_proxy import ProductProxy +from fingerprint_pro_server_api_sdk.models.product_rare_device import ProductRareDevice from fingerprint_pro_server_api_sdk.models.product_raw_device_attributes import ProductRawDeviceAttributes from fingerprint_pro_server_api_sdk.models.product_remote_control import ProductRemoteControl from fingerprint_pro_server_api_sdk.models.product_root_apps import ProductRootApps @@ -100,6 +104,7 @@ from fingerprint_pro_server_api_sdk.models.proxy import Proxy from fingerprint_pro_server_api_sdk.models.proxy_confidence import ProxyConfidence from fingerprint_pro_server_api_sdk.models.proxy_details import ProxyDetails +from fingerprint_pro_server_api_sdk.models.rare_device import RareDevice from fingerprint_pro_server_api_sdk.models.raw_device_attribute import RawDeviceAttribute from fingerprint_pro_server_api_sdk.models.raw_device_attribute_error import RawDeviceAttributeError from fingerprint_pro_server_api_sdk.models.raw_device_attributes import RawDeviceAttributes @@ -139,6 +144,7 @@ from fingerprint_pro_server_api_sdk.models.webhook_privacy_settings import WebhookPrivacySettings from fingerprint_pro_server_api_sdk.models.webhook_proximity import WebhookProximity from fingerprint_pro_server_api_sdk.models.webhook_proxy import WebhookProxy +from fingerprint_pro_server_api_sdk.models.webhook_rare_device import WebhookRareDevice from fingerprint_pro_server_api_sdk.models.webhook_raw_device_attributes import WebhookRawDeviceAttributes from fingerprint_pro_server_api_sdk.models.webhook_remote_control import WebhookRemoteControl from fingerprint_pro_server_api_sdk.models.webhook_root_apps import WebhookRootApps diff --git a/fingerprint_pro_server_api_sdk/api/fingerprint_api.py b/fingerprint_pro_server_api_sdk/api/fingerprint_api.py index dd12156b..a1b53e95 100644 --- a/fingerprint_pro_server_api_sdk/api/fingerprint_api.py +++ b/fingerprint_pro_server_api_sdk/api/fingerprint_api.py @@ -535,6 +535,8 @@ def search_events(self, limit: int, **kwargs) -> Union[SearchEventsResponse, Asy :param developer_tools: 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. :param location_spoofing: 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. :param mitm_attack: 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. + :param rare_device: Filter events by Rare Device detection result. > Note: When using this parameter, only events with the `products.rareDevice.data.result` property set to `true` or `false` are returned. Events without a `products.rareDevice` Smart Signal result are left out of the response. + :param rare_device_percentile_bucket: Filter events by Rare Device percentile bucket. ` 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. :param sdk_version: Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` :param sdk_platform: Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. @@ -591,6 +593,8 @@ def search_events_with_http_info(self, limit: int, **kwargs): # noqa: E501 :param bool developer_tools: 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. :param bool location_spoofing: 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. :param bool mitm_attack: 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. + :param bool rare_device: Filter events by Rare Device detection result. > Note: When using this parameter, only events with the `products.rareDevice.data.result` property set to `true` or `false` are returned. Events without a `products.rareDevice` Smart Signal result are left out of the response. + :param str rare_device_percentile_bucket: Filter events by Rare Device percentile bucket. ` 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. :param str sdk_version: Filter events by a specific SDK version associated with the identification event. Example: `3.11.14` :param str sdk_platform: Filter events by the SDK Platform associated with the identification event. `js` - JavaScript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. @@ -632,6 +636,8 @@ def search_events_with_http_info(self, limit: int, **kwargs): # noqa: E501 'developer_tools', 'location_spoofing', 'mitm_attack', + 'rare_device', + 'rare_device_percentile_bucket', 'proxy', 'sdk_version', 'sdk_platform', @@ -719,6 +725,10 @@ def search_events_with_http_info(self, limit: int, **kwargs): # noqa: E501 query_params.append(('location_spoofing', params['location_spoofing'])) # noqa: E501 if 'mitm_attack' in params: query_params.append(('mitm_attack', params['mitm_attack'])) # noqa: E501 + if 'rare_device' in params: + query_params.append(('rare_device', params['rare_device'])) # noqa: E501 + if 'rare_device_percentile_bucket' in params: + query_params.append(('rare_device_percentile_bucket', params['rare_device_percentile_bucket'])) # noqa: E501 if 'proxy' in params: query_params.append(('proxy', params['proxy'])) # noqa: E501 if 'sdk_version' in params: diff --git a/fingerprint_pro_server_api_sdk/models/__init__.py b/fingerprint_pro_server_api_sdk/models/__init__.py index 67a1487a..37add727 100644 --- a/fingerprint_pro_server_api_sdk/models/__init__.py +++ b/fingerprint_pro_server_api_sdk/models/__init__.py @@ -49,6 +49,8 @@ from fingerprint_pro_server_api_sdk.models.integration import Integration from fingerprint_pro_server_api_sdk.models.integration_subintegration import IntegrationSubintegration from fingerprint_pro_server_api_sdk.models.jailbroken import Jailbroken +from fingerprint_pro_server_api_sdk.models.labels import Labels +from fingerprint_pro_server_api_sdk.models.labels_inner import LabelsInner from fingerprint_pro_server_api_sdk.models.location_spoofing import LocationSpoofing from fingerprint_pro_server_api_sdk.models.mit_m_attack import MitMAttack from fingerprint_pro_server_api_sdk.models.privacy_settings import PrivacySettings @@ -64,11 +66,13 @@ from fingerprint_pro_server_api_sdk.models.product_identification import ProductIdentification from fingerprint_pro_server_api_sdk.models.product_incognito import ProductIncognito from fingerprint_pro_server_api_sdk.models.product_jailbroken import ProductJailbroken +from fingerprint_pro_server_api_sdk.models.product_labels import ProductLabels from fingerprint_pro_server_api_sdk.models.product_location_spoofing import ProductLocationSpoofing from fingerprint_pro_server_api_sdk.models.product_mit_m_attack import ProductMitMAttack from fingerprint_pro_server_api_sdk.models.product_privacy_settings import ProductPrivacySettings from fingerprint_pro_server_api_sdk.models.product_proximity import ProductProximity from fingerprint_pro_server_api_sdk.models.product_proxy import ProductProxy +from fingerprint_pro_server_api_sdk.models.product_rare_device import ProductRareDevice from fingerprint_pro_server_api_sdk.models.product_raw_device_attributes import ProductRawDeviceAttributes from fingerprint_pro_server_api_sdk.models.product_remote_control import ProductRemoteControl from fingerprint_pro_server_api_sdk.models.product_root_apps import ProductRootApps @@ -83,6 +87,7 @@ from fingerprint_pro_server_api_sdk.models.proxy import Proxy from fingerprint_pro_server_api_sdk.models.proxy_confidence import ProxyConfidence from fingerprint_pro_server_api_sdk.models.proxy_details import ProxyDetails +from fingerprint_pro_server_api_sdk.models.rare_device import RareDevice from fingerprint_pro_server_api_sdk.models.raw_device_attribute import RawDeviceAttribute from fingerprint_pro_server_api_sdk.models.raw_device_attribute_error import RawDeviceAttributeError from fingerprint_pro_server_api_sdk.models.raw_device_attributes import RawDeviceAttributes @@ -122,6 +127,7 @@ from fingerprint_pro_server_api_sdk.models.webhook_privacy_settings import WebhookPrivacySettings from fingerprint_pro_server_api_sdk.models.webhook_proximity import WebhookProximity from fingerprint_pro_server_api_sdk.models.webhook_proxy import WebhookProxy +from fingerprint_pro_server_api_sdk.models.webhook_rare_device import WebhookRareDevice from fingerprint_pro_server_api_sdk.models.webhook_raw_device_attributes import WebhookRawDeviceAttributes from fingerprint_pro_server_api_sdk.models.webhook_remote_control import WebhookRemoteControl from fingerprint_pro_server_api_sdk.models.webhook_root_apps import WebhookRootApps diff --git a/fingerprint_pro_server_api_sdk/models/developer_tools.py b/fingerprint_pro_server_api_sdk/models/developer_tools.py index 7b57359d..571b961b 100644 --- a/fingerprint_pro_server_api_sdk/models/developer_tools.py +++ b/fingerprint_pro_server_api_sdk/models/developer_tools.py @@ -49,7 +49,7 @@ def __init__(self, result=None): # noqa: E501 def result(self) -> bool: """Gets the result of this DeveloperTools. # noqa: E501 - `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. # noqa: E501 + `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. # noqa: E501 :return: The result of this DeveloperTools. # noqa: E501 """ @@ -59,7 +59,7 @@ def result(self) -> bool: def result(self, result: bool): """Sets the result of this DeveloperTools. - `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. # noqa: E501 + `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. # noqa: E501 :param result: The result of this DeveloperTools. # noqa: E501 """ diff --git a/fingerprint_pro_server_api_sdk/models/labels.py b/fingerprint_pro_server_api_sdk/models/labels.py new file mode 100644 index 00000000..a8c9abe3 --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/labels.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel + + +class Labels(BaseModel): + """ + Each label returns a prediction (true or false) for a specific use case (label field) based on a machine learning score. The machine learning score is determined by a model trained on customer data for that use case. This field is in the beta phase and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). + + NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + } + + nullable_map = { + } + + attribute_map = { + } + + def __init__(self): # noqa: E501 + """Labels - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + diff --git a/fingerprint_pro_server_api_sdk/models/labels_inner.py b/fingerprint_pro_server_api_sdk/models/labels_inner.py new file mode 100644 index 00000000..c450e4d9 --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/labels_inner.py @@ -0,0 +1,117 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel + + +class LabelsInner(BaseModel): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'label': 'str', + 'prediction': 'bool', + 'ml_score': 'float' + } + + nullable_map = { + 'label': False, + 'prediction': False, + 'ml_score': False + } + + attribute_map = { + 'label': 'label', + 'prediction': 'prediction', + 'ml_score': 'mlScore' + } + + def __init__(self, label=None, prediction=None, ml_score=None): # noqa: E501 + """LabelsInner - a model defined in Swagger""" # noqa: E501 + self._label = None + self._prediction = None + self._ml_score = None + self.discriminator = None + if label is not None: + self.label = label + if prediction is not None: + self.prediction = prediction + if ml_score is not None: + self.ml_score = ml_score + + @property + def label(self) -> Optional[str]: + """Gets the label of this LabelsInner. # noqa: E501 + + + :return: The label of this LabelsInner. # noqa: E501 + """ + return self._label + + @label.setter + def label(self, label: Optional[str]): + """Sets the label of this LabelsInner. + + + :param label: The label of this LabelsInner. # noqa: E501 + """ + + self._label = label + + @property + def prediction(self) -> Optional[bool]: + """Gets the prediction of this LabelsInner. # noqa: E501 + + + :return: The prediction of this LabelsInner. # noqa: E501 + """ + return self._prediction + + @prediction.setter + def prediction(self, prediction: Optional[bool]): + """Sets the prediction of this LabelsInner. + + + :param prediction: The prediction of this LabelsInner. # noqa: E501 + """ + + self._prediction = prediction + + @property + def ml_score(self) -> Optional[float]: + """Gets the ml_score of this LabelsInner. # noqa: E501 + + + :return: The ml_score of this LabelsInner. # noqa: E501 + """ + return self._ml_score + + @ml_score.setter + def ml_score(self, ml_score: Optional[float]): + """Sets the ml_score of this LabelsInner. + + + :param ml_score: The ml_score of this LabelsInner. # noqa: E501 + """ + + self._ml_score = ml_score + diff --git a/fingerprint_pro_server_api_sdk/models/product_labels.py b/fingerprint_pro_server_api_sdk/models/product_labels.py new file mode 100644 index 00000000..e52b4872 --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/product_labels.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel +from fingerprint_pro_server_api_sdk.models.labels import Labels +from fingerprint_pro_server_api_sdk.models.error import Error + + +class ProductLabels(BaseModel): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'data': 'Labels', + 'error': 'Error' + } + + nullable_map = { + 'data': False, + 'error': False + } + + attribute_map = { + 'data': 'data', + 'error': 'error' + } + + def __init__(self, data=None, error=None): # noqa: E501 + """ProductLabels - a model defined in Swagger""" # noqa: E501 + self._data = None + self._error = None + self.discriminator = None + if data is not None: + self.data = data + if error is not None: + self.error = error + + @property + def data(self) -> Optional[Labels]: + """Gets the data of this ProductLabels. # noqa: E501 + + + :return: The data of this ProductLabels. # noqa: E501 + """ + return self._data + + @data.setter + def data(self, data: Optional[Labels]): + """Sets the data of this ProductLabels. + + + :param data: The data of this ProductLabels. # noqa: E501 + """ + + self._data = data + + @property + def error(self) -> Optional[Error]: + """Gets the error of this ProductLabels. # noqa: E501 + + + :return: The error of this ProductLabels. # noqa: E501 + """ + return self._error + + @error.setter + def error(self, error: Optional[Error]): + """Sets the error of this ProductLabels. + + + :param error: The error of this ProductLabels. # noqa: E501 + """ + + self._error = error + diff --git a/fingerprint_pro_server_api_sdk/models/product_rare_device.py b/fingerprint_pro_server_api_sdk/models/product_rare_device.py new file mode 100644 index 00000000..fdd074dd --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/product_rare_device.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel +from fingerprint_pro_server_api_sdk.models.rare_device import RareDevice +from fingerprint_pro_server_api_sdk.models.error import Error + + +class ProductRareDevice(BaseModel): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'data': 'RareDevice', + 'error': 'Error' + } + + nullable_map = { + 'data': False, + 'error': False + } + + attribute_map = { + 'data': 'data', + 'error': 'error' + } + + def __init__(self, data=None, error=None): # noqa: E501 + """ProductRareDevice - a model defined in Swagger""" # noqa: E501 + self._data = None + self._error = None + self.discriminator = None + if data is not None: + self.data = data + if error is not None: + self.error = error + + @property + def data(self) -> Optional[RareDevice]: + """Gets the data of this ProductRareDevice. # noqa: E501 + + + :return: The data of this ProductRareDevice. # noqa: E501 + """ + return self._data + + @data.setter + def data(self, data: Optional[RareDevice]): + """Sets the data of this ProductRareDevice. + + + :param data: The data of this ProductRareDevice. # noqa: E501 + """ + + self._data = data + + @property + def error(self) -> Optional[Error]: + """Gets the error of this ProductRareDevice. # noqa: E501 + + + :return: The error of this ProductRareDevice. # noqa: E501 + """ + return self._error + + @error.setter + def error(self, error: Optional[Error]): + """Sets the error of this ProductRareDevice. + + + :param error: The error of this ProductRareDevice. # noqa: E501 + """ + + self._error = error + diff --git a/fingerprint_pro_server_api_sdk/models/products.py b/fingerprint_pro_server_api_sdk/models/products.py index 55f368ef..ba6390d9 100644 --- a/fingerprint_pro_server_api_sdk/models/products.py +++ b/fingerprint_pro_server_api_sdk/models/products.py @@ -38,7 +38,9 @@ from fingerprint_pro_server_api_sdk.models.product_velocity import ProductVelocity from fingerprint_pro_server_api_sdk.models.product_developer_tools import ProductDeveloperTools from fingerprint_pro_server_api_sdk.models.product_mit_m_attack import ProductMitMAttack +from fingerprint_pro_server_api_sdk.models.product_rare_device import ProductRareDevice from fingerprint_pro_server_api_sdk.models.product_proximity import ProductProximity +from fingerprint_pro_server_api_sdk.models.product_labels import ProductLabels class Products(BaseModel): @@ -82,7 +84,9 @@ class Products(BaseModel): 'velocity': 'ProductVelocity', 'developer_tools': 'ProductDeveloperTools', 'mitm_attack': 'ProductMitMAttack', - 'proximity': 'ProductProximity' + 'rare_device': 'ProductRareDevice', + 'proximity': 'ProductProximity', + 'labels': 'ProductLabels' } nullable_map = { @@ -111,7 +115,9 @@ class Products(BaseModel): 'velocity': False, 'developer_tools': False, 'mitm_attack': False, - 'proximity': False + 'rare_device': False, + 'proximity': False, + 'labels': False } attribute_map = { @@ -140,10 +146,12 @@ class Products(BaseModel): 'velocity': 'velocity', 'developer_tools': 'developerTools', 'mitm_attack': 'mitmAttack', - 'proximity': 'proximity' + 'rare_device': 'rareDevice', + 'proximity': 'proximity', + 'labels': 'labels' } - def __init__(self, identification=None, botd=None, root_apps=None, emulator=None, ip_info=None, ip_blocklist=None, tor=None, vpn=None, proxy=None, incognito=None, tampering=None, cloned_app=None, factory_reset=None, jailbroken=None, frida=None, privacy_settings=None, virtual_machine=None, raw_device_attributes=None, high_activity=None, location_spoofing=None, suspect_score=None, remote_control=None, velocity=None, developer_tools=None, mitm_attack=None, proximity=None): # noqa: E501 + def __init__(self, identification=None, botd=None, root_apps=None, emulator=None, ip_info=None, ip_blocklist=None, tor=None, vpn=None, proxy=None, incognito=None, tampering=None, cloned_app=None, factory_reset=None, jailbroken=None, frida=None, privacy_settings=None, virtual_machine=None, raw_device_attributes=None, high_activity=None, location_spoofing=None, suspect_score=None, remote_control=None, velocity=None, developer_tools=None, mitm_attack=None, rare_device=None, proximity=None, labels=None): # noqa: E501 """Products - a model defined in Swagger""" # noqa: E501 self._identification = None self._botd = None @@ -170,7 +178,9 @@ def __init__(self, identification=None, botd=None, root_apps=None, emulator=None self._velocity = None self._developer_tools = None self._mitm_attack = None + self._rare_device = None self._proximity = None + self._labels = None self.discriminator = None if identification is not None: self.identification = identification @@ -222,8 +232,12 @@ def __init__(self, identification=None, botd=None, root_apps=None, emulator=None self.developer_tools = developer_tools if mitm_attack is not None: self.mitm_attack = mitm_attack + if rare_device is not None: + self.rare_device = rare_device if proximity is not None: self.proximity = proximity + if labels is not None: + self.labels = labels @property def identification(self) -> Optional[ProductIdentification]: @@ -700,6 +714,25 @@ def mitm_attack(self, mitm_attack: Optional[ProductMitMAttack]): self._mitm_attack = mitm_attack + @property + def rare_device(self) -> Optional[ProductRareDevice]: + """Gets the rare_device of this Products. # noqa: E501 + + + :return: The rare_device of this Products. # noqa: E501 + """ + return self._rare_device + + @rare_device.setter + def rare_device(self, rare_device: Optional[ProductRareDevice]): + """Sets the rare_device of this Products. + + + :param rare_device: The rare_device of this Products. # noqa: E501 + """ + + self._rare_device = rare_device + @property def proximity(self) -> Optional[ProductProximity]: """Gets the proximity of this Products. # noqa: E501 @@ -719,3 +752,22 @@ def proximity(self, proximity: Optional[ProductProximity]): self._proximity = proximity + @property + def labels(self) -> Optional[ProductLabels]: + """Gets the labels of this Products. # noqa: E501 + + + :return: The labels of this Products. # noqa: E501 + """ + return self._labels + + @labels.setter + def labels(self, labels: Optional[ProductLabels]): + """Sets the labels of this Products. + + + :param labels: The labels of this Products. # noqa: E501 + """ + + self._labels = labels + diff --git a/fingerprint_pro_server_api_sdk/models/proxy.py b/fingerprint_pro_server_api_sdk/models/proxy.py index 68c66794..4a114527 100644 --- a/fingerprint_pro_server_api_sdk/models/proxy.py +++ b/fingerprint_pro_server_api_sdk/models/proxy.py @@ -32,31 +32,37 @@ class Proxy(BaseModel): swagger_types = { 'result': 'bool', 'confidence': 'ProxyConfidence', - 'details': 'ProxyDetails' + 'details': 'ProxyDetails', + 'ml_score': 'float' } nullable_map = { 'result': False, 'confidence': False, - 'details': False + 'details': False, + 'ml_score': False } attribute_map = { 'result': 'result', 'confidence': 'confidence', - 'details': 'details' + 'details': 'details', + 'ml_score': 'mlScore' } - def __init__(self, result=None, confidence=None, details=None): # noqa: E501 + def __init__(self, result=None, confidence=None, details=None, ml_score=None): # noqa: E501 """Proxy - a model defined in Swagger""" # noqa: E501 self._result = None self._confidence = None self._details = None + self._ml_score = None self.discriminator = None self.result = result self.confidence = confidence if details is not None: self.details = details + if ml_score is not None: + self.ml_score = ml_score @property def result(self) -> bool: @@ -121,3 +127,24 @@ def details(self, details: Optional[ProxyDetails]): self._details = details + @property + def ml_score(self) -> Optional[float]: + """Gets the ml_score of this Proxy. # noqa: E501 + + Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :return: The ml_score of this Proxy. # noqa: E501 + """ + return self._ml_score + + @ml_score.setter + def ml_score(self, ml_score: Optional[float]): + """Sets the ml_score of this Proxy. + + Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :param ml_score: The ml_score of this Proxy. # noqa: E501 + """ + + self._ml_score = ml_score + diff --git a/fingerprint_pro_server_api_sdk/models/proxy_details.py b/fingerprint_pro_server_api_sdk/models/proxy_details.py index cf638c9c..880d997c 100644 --- a/fingerprint_pro_server_api_sdk/models/proxy_details.py +++ b/fingerprint_pro_server_api_sdk/models/proxy_details.py @@ -59,7 +59,7 @@ def __init__(self, proxy_type=None, last_seen_at=None): # noqa: E501 def proxy_type(self) -> str: """Gets the proxy_type of this ProxyDetails. # noqa: E501 - Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers # noqa: E501 + Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers. `unknown` is reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type. # noqa: E501 :return: The proxy_type of this ProxyDetails. # noqa: E501 """ @@ -69,13 +69,13 @@ def proxy_type(self) -> str: def proxy_type(self, proxy_type: str): """Sets the proxy_type of this ProxyDetails. - Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers # noqa: E501 + Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers. `unknown` is reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type. # noqa: E501 :param proxy_type: The proxy_type of this ProxyDetails. # noqa: E501 """ if proxy_type is None: raise ValueError("Invalid value for `proxy_type`, must not be `None`") # noqa: E501 - allowed_values = ["residential", "data_center"] # noqa: E501 + allowed_values = ["residential", "data_center", "unknown"] # noqa: E501 if (proxy_type not in allowed_values): raise ValueError( "Invalid value for `proxy_type` ({0}), must be one of {1}" # noqa: E501 diff --git a/fingerprint_pro_server_api_sdk/models/rare_device.py b/fingerprint_pro_server_api_sdk/models/rare_device.py new file mode 100644 index 00000000..0de0fcb0 --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/rare_device.py @@ -0,0 +1,105 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel + + +class RareDevice(BaseModel): + """ + Rare device details (present if the device is considered rare) > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). + + NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'result': 'bool', + 'percentile_bucket': 'str' + } + + nullable_map = { + 'result': False, + 'percentile_bucket': False + } + + attribute_map = { + 'result': 'result', + 'percentile_bucket': 'percentileBucket' + } + + def __init__(self, result=None, percentile_bucket=None): # noqa: E501 + """RareDevice - a model defined in Swagger""" # noqa: E501 + self._result = None + self._percentile_bucket = None + self.discriminator = None + if result is not None: + self.result = result + if percentile_bucket is not None: + self.percentile_bucket = percentile_bucket + + @property + def result(self) -> Optional[bool]: + """Gets the result of this RareDevice. # noqa: E501 + + `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). # noqa: E501 + + :return: The result of this RareDevice. # noqa: E501 + """ + return self._result + + @result.setter + def result(self, result: Optional[bool]): + """Sets the result of this RareDevice. + + `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). # noqa: E501 + + :param result: The result of this RareDevice. # noqa: E501 + """ + + self._result = result + + @property + def percentile_bucket(self) -> Optional[str]: + """Gets the percentile_bucket of this RareDevice. # noqa: E501 + + The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. # noqa: E501 + + :return: The percentile_bucket of this RareDevice. # noqa: E501 + """ + return self._percentile_bucket + + @percentile_bucket.setter + def percentile_bucket(self, percentile_bucket: Optional[str]): + """Sets the percentile_bucket of this RareDevice. + + The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. # noqa: E501 + + :param percentile_bucket: The percentile_bucket of this RareDevice. # noqa: E501 + """ + allowed_values = [" Optional[float]: + """Gets the ml_score of this VPN. # noqa: E501 + + Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :return: The ml_score of this VPN. # noqa: E501 + """ + return self._ml_score + + @ml_score.setter + def ml_score(self, ml_score: Optional[float]): + """Sets the ml_score of this VPN. + + Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :param ml_score: The ml_score of this VPN. # noqa: E501 + """ + + self._ml_score = ml_score + @property def origin_timezone(self) -> str: """Gets the origin_timezone of this VPN. # noqa: E501 diff --git a/fingerprint_pro_server_api_sdk/models/vpn_methods.py b/fingerprint_pro_server_api_sdk/models/vpn_methods.py index 8b0dd814..9d76141b 100644 --- a/fingerprint_pro_server_api_sdk/models/vpn_methods.py +++ b/fingerprint_pro_server_api_sdk/models/vpn_methods.py @@ -32,7 +32,8 @@ class VPNMethods(BaseModel): 'public_vpn': 'bool', 'auxiliary_mobile': 'bool', 'os_mismatch': 'bool', - 'relay': 'bool' + 'relay': 'bool', + 'ml_prediction': 'bool' } nullable_map = { @@ -40,7 +41,8 @@ class VPNMethods(BaseModel): 'public_vpn': False, 'auxiliary_mobile': False, 'os_mismatch': False, - 'relay': False + 'relay': False, + 'ml_prediction': False } attribute_map = { @@ -48,22 +50,26 @@ class VPNMethods(BaseModel): 'public_vpn': 'publicVPN', 'auxiliary_mobile': 'auxiliaryMobile', 'os_mismatch': 'osMismatch', - 'relay': 'relay' + 'relay': 'relay', + 'ml_prediction': 'mlPrediction' } - def __init__(self, timezone_mismatch=None, public_vpn=None, auxiliary_mobile=None, os_mismatch=None, relay=None): # noqa: E501 + def __init__(self, timezone_mismatch=None, public_vpn=None, auxiliary_mobile=None, os_mismatch=None, relay=None, ml_prediction=None): # noqa: E501 """VPNMethods - a model defined in Swagger""" # noqa: E501 self._timezone_mismatch = None self._public_vpn = None self._auxiliary_mobile = None self._os_mismatch = None self._relay = None + self._ml_prediction = None self.discriminator = None self.timezone_mismatch = timezone_mismatch self.public_vpn = public_vpn self.auxiliary_mobile = auxiliary_mobile self.os_mismatch = os_mismatch self.relay = relay + if ml_prediction is not None: + self.ml_prediction = ml_prediction @property def timezone_mismatch(self) -> bool: @@ -180,3 +186,24 @@ def relay(self, relay: bool): self._relay = relay + @property + def ml_prediction(self) -> Optional[bool]: + """Gets the ml_prediction of this VPNMethods. # noqa: E501 + + `true` if the request came from a device running a VPN, `false` otherwise. # noqa: E501 + + :return: The ml_prediction of this VPNMethods. # noqa: E501 + """ + return self._ml_prediction + + @ml_prediction.setter + def ml_prediction(self, ml_prediction: Optional[bool]): + """Sets the ml_prediction of this VPNMethods. + + `true` if the request came from a device running a VPN, `false` otherwise. # noqa: E501 + + :param ml_prediction: The ml_prediction of this VPNMethods. # noqa: E501 + """ + + self._ml_prediction = ml_prediction + diff --git a/fingerprint_pro_server_api_sdk/models/webhook.py b/fingerprint_pro_server_api_sdk/models/webhook.py index 259ed8ae..8aa33671 100644 --- a/fingerprint_pro_server_api_sdk/models/webhook.py +++ b/fingerprint_pro_server_api_sdk/models/webhook.py @@ -44,6 +44,7 @@ from fingerprint_pro_server_api_sdk.models.webhook_velocity import WebhookVelocity from fingerprint_pro_server_api_sdk.models.webhook_developer_tools import WebhookDeveloperTools from fingerprint_pro_server_api_sdk.models.webhook_mit_m_attack import WebhookMitMAttack +from fingerprint_pro_server_api_sdk.models.webhook_rare_device import WebhookRareDevice from fingerprint_pro_server_api_sdk.models.sdk import SDK from fingerprint_pro_server_api_sdk.models.webhook_supplementary_i_ds import WebhookSupplementaryIDs from fingerprint_pro_server_api_sdk.models.webhook_proximity import WebhookProximity @@ -104,6 +105,7 @@ class Webhook(BaseModel): 'velocity': 'WebhookVelocity', 'developer_tools': 'WebhookDeveloperTools', 'mitm_attack': 'WebhookMitMAttack', + 'rare_device': 'WebhookRareDevice', 'replayed': 'bool', 'sdk': 'SDK', 'supplementary_ids': 'WebhookSupplementaryIDs', @@ -153,6 +155,7 @@ class Webhook(BaseModel): 'velocity': False, 'developer_tools': False, 'mitm_attack': False, + 'rare_device': False, 'replayed': False, 'sdk': False, 'supplementary_ids': False, @@ -202,13 +205,14 @@ class Webhook(BaseModel): 'velocity': 'velocity', 'developer_tools': 'developerTools', 'mitm_attack': 'mitmAttack', + 'rare_device': 'rareDevice', 'replayed': 'replayed', 'sdk': 'sdk', 'supplementary_ids': 'supplementaryIds', 'proximity': 'proximity' } - def __init__(self, request_id=None, url=None, ip=None, environment_id=None, tag=None, time=None, timestamp=None, ip_location=None, linked_id=None, visitor_id=None, visitor_found=None, confidence=None, first_seen_at=None, last_seen_at=None, browser_details=None, incognito=None, client_referrer=None, components=None, bot=None, user_agent=None, root_apps=None, emulator=None, ip_info=None, ip_blocklist=None, tor=None, vpn=None, proxy=None, tampering=None, cloned_app=None, factory_reset=None, jailbroken=None, frida=None, privacy_settings=None, virtual_machine=None, raw_device_attributes=None, high_activity=None, location_spoofing=None, suspect_score=None, remote_control=None, velocity=None, developer_tools=None, mitm_attack=None, replayed=None, sdk=None, supplementary_ids=None, proximity=None): # noqa: E501 + def __init__(self, request_id=None, url=None, ip=None, environment_id=None, tag=None, time=None, timestamp=None, ip_location=None, linked_id=None, visitor_id=None, visitor_found=None, confidence=None, first_seen_at=None, last_seen_at=None, browser_details=None, incognito=None, client_referrer=None, components=None, bot=None, user_agent=None, root_apps=None, emulator=None, ip_info=None, ip_blocklist=None, tor=None, vpn=None, proxy=None, tampering=None, cloned_app=None, factory_reset=None, jailbroken=None, frida=None, privacy_settings=None, virtual_machine=None, raw_device_attributes=None, high_activity=None, location_spoofing=None, suspect_score=None, remote_control=None, velocity=None, developer_tools=None, mitm_attack=None, rare_device=None, replayed=None, sdk=None, supplementary_ids=None, proximity=None): # noqa: E501 """Webhook - a model defined in Swagger""" # noqa: E501 self._request_id = None self._url = None @@ -252,6 +256,7 @@ def __init__(self, request_id=None, url=None, ip=None, environment_id=None, tag= self._velocity = None self._developer_tools = None self._mitm_attack = None + self._rare_device = None self._replayed = None self._sdk = None self._supplementary_ids = None @@ -336,6 +341,8 @@ def __init__(self, request_id=None, url=None, ip=None, environment_id=None, tag= self.developer_tools = developer_tools if mitm_attack is not None: self.mitm_attack = mitm_attack + if rare_device is not None: + self.rare_device = rare_device if replayed is not None: self.replayed = replayed self.sdk = sdk @@ -1172,6 +1179,25 @@ def mitm_attack(self, mitm_attack: Optional[WebhookMitMAttack]): self._mitm_attack = mitm_attack + @property + def rare_device(self) -> Optional[WebhookRareDevice]: + """Gets the rare_device of this Webhook. # noqa: E501 + + + :return: The rare_device of this Webhook. # noqa: E501 + """ + return self._rare_device + + @rare_device.setter + def rare_device(self, rare_device: Optional[WebhookRareDevice]): + """Sets the rare_device of this Webhook. + + + :param rare_device: The rare_device of this Webhook. # noqa: E501 + """ + + self._rare_device = rare_device + @property def replayed(self) -> Optional[bool]: """Gets the replayed of this Webhook. # noqa: E501 diff --git a/fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py b/fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py index 84fdd57a..3a27de92 100644 --- a/fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py +++ b/fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py @@ -50,7 +50,7 @@ def __init__(self, result=None): # noqa: E501 def result(self) -> Optional[bool]: """Gets the result of this WebhookDeveloperTools. # noqa: E501 - `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. # noqa: E501 + `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. # noqa: E501 :return: The result of this WebhookDeveloperTools. # noqa: E501 """ @@ -60,7 +60,7 @@ def result(self) -> Optional[bool]: def result(self, result: Optional[bool]): """Sets the result of this WebhookDeveloperTools. - `true` if the browser is Chrome with DevTools open or Firefox with Developer Tools open, `false` otherwise. # noqa: E501 + `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. # noqa: E501 :param result: The result of this WebhookDeveloperTools. # noqa: E501 """ diff --git a/fingerprint_pro_server_api_sdk/models/webhook_proxy.py b/fingerprint_pro_server_api_sdk/models/webhook_proxy.py index 592f946a..b8d99065 100644 --- a/fingerprint_pro_server_api_sdk/models/webhook_proxy.py +++ b/fingerprint_pro_server_api_sdk/models/webhook_proxy.py @@ -32,26 +32,30 @@ class WebhookProxy(BaseModel): swagger_types = { 'result': 'bool', 'confidence': 'ProxyConfidence', - 'details': 'ProxyDetails' + 'details': 'ProxyDetails', + 'ml_score': 'float' } nullable_map = { 'result': False, 'confidence': False, - 'details': False + 'details': False, + 'ml_score': False } attribute_map = { 'result': 'result', 'confidence': 'confidence', - 'details': 'details' + 'details': 'details', + 'ml_score': 'mlScore' } - def __init__(self, result=None, confidence=None, details=None): # noqa: E501 + def __init__(self, result=None, confidence=None, details=None, ml_score=None): # noqa: E501 """WebhookProxy - a model defined in Swagger""" # noqa: E501 self._result = None self._confidence = None self._details = None + self._ml_score = None self.discriminator = None if result is not None: self.result = result @@ -59,6 +63,8 @@ def __init__(self, result=None, confidence=None, details=None): # noqa: E501 self.confidence = confidence if details is not None: self.details = details + if ml_score is not None: + self.ml_score = ml_score @property def result(self) -> Optional[bool]: @@ -119,3 +125,24 @@ def details(self, details: Optional[ProxyDetails]): self._details = details + @property + def ml_score(self) -> Optional[float]: + """Gets the ml_score of this WebhookProxy. # noqa: E501 + + Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :return: The ml_score of this WebhookProxy. # noqa: E501 + """ + return self._ml_score + + @ml_score.setter + def ml_score(self, ml_score: Optional[float]): + """Sets the ml_score of this WebhookProxy. + + Machine learning-based proxy score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `proxy` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :param ml_score: The ml_score of this WebhookProxy. # noqa: E501 + """ + + self._ml_score = ml_score + diff --git a/fingerprint_pro_server_api_sdk/models/webhook_rare_device.py b/fingerprint_pro_server_api_sdk/models/webhook_rare_device.py new file mode 100644 index 00000000..e287fc66 --- /dev/null +++ b/fingerprint_pro_server_api_sdk/models/webhook_rare_device.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + Server API v3 (deprecated) + + > 🚧 Deprecation Notice > > This version of Server API is marked as deprecated starting on **Jan 7th 2026** and will be fully defunct on **Jan 7th 2027** according to our [API Deprecation Policy](https://dev.fingerprint.com/reference/api-deprecation-policy). If you still use this version, please follow our [migration guide](https://dev.fingerprint.com/reference/migrating-from-server-api-v3-to-v4) to migrate from this deprecated version to the new one. 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. # noqa: E501 + + OpenAPI spec version: 3 + Contact: support@fingerprint.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import re # noqa: F401 +from typing import Dict, List, Optional # noqa: F401 +from fingerprint_pro_server_api_sdk.base_model import BaseModel + + +class WebhookRareDevice(BaseModel): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'result': 'bool', + 'percentile_bucket': 'str' + } + + nullable_map = { + 'result': False, + 'percentile_bucket': False + } + + attribute_map = { + 'result': 'result', + 'percentile_bucket': 'percentileBucket' + } + + def __init__(self, result=None, percentile_bucket=None): # noqa: E501 + """WebhookRareDevice - a model defined in Swagger""" # noqa: E501 + self._result = None + self._percentile_bucket = None + self.discriminator = None + if result is not None: + self.result = result + if percentile_bucket is not None: + self.percentile_bucket = percentile_bucket + + @property + def result(self) -> Optional[bool]: + """Gets the result of this WebhookRareDevice. # noqa: E501 + + `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :return: The result of this WebhookRareDevice. # noqa: E501 + """ + return self._result + + @result.setter + def result(self, result: Optional[bool]): + """Sets the result of this WebhookRareDevice. + + `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :param result: The result of this WebhookRareDevice. # noqa: E501 + """ + + self._result = result + + @property + def percentile_bucket(self) -> Optional[str]: + """Gets the percentile_bucket of this WebhookRareDevice. # noqa: E501 + + The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. # noqa: E501 + + :return: The percentile_bucket of this WebhookRareDevice. # noqa: E501 + """ + return self._percentile_bucket + + @percentile_bucket.setter + def percentile_bucket(self, percentile_bucket: Optional[str]): + """Sets the percentile_bucket of this WebhookRareDevice. + + The rarity percentile bucket of the device, indicating how uncommon the device configuration is compared to all observed devices. # noqa: E501 + + :param percentile_bucket: The percentile_bucket of this WebhookRareDevice. # noqa: E501 + """ + allowed_values = [" Optional[float]: + """Gets the ml_score of this WebhookVPN. # noqa: E501 + + Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :return: The ml_score of this WebhookVPN. # noqa: E501 + """ + return self._ml_score + + @ml_score.setter + def ml_score(self, ml_score: Optional[float]): + """Sets the ml_score of this WebhookVPN. + + Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). # noqa: E501 + + :param ml_score: The ml_score of this WebhookVPN. # noqa: E501 + """ + + self._ml_score = ml_score + @property def origin_timezone(self) -> Optional[str]: """Gets the origin_timezone of this WebhookVPN. # noqa: E501 diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 6f941ec3..9316afdc 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -556,6 +556,35 @@ paths: `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. + - name: rare_device + in: query + schema: + type: boolean + description: > + Filter events by Rare Device detection result. + + > Note: When using this parameter, only events with the + `products.rareDevice.data.result` property set to `true` or `false` + are returned. Events without a `products.rareDevice` Smart Signal + result are left out of the response. + - name: rare_device_percentile_bucket + in: query + schema: + type: string + enum: + - + Filter events by Rare Device percentile bucket. ` + `true` if the request came from a device running a VPN, `false` + otherwise. VPN: type: object additionalProperties: false @@ -1783,6 +1817,18 @@ components: request. confidence: $ref: '#/components/schemas/VPNConfidence' + mlScore: + type: number + format: double + minimum: 0 + maximum: 1 + description: > + Machine learning–based VPN score, represented as a floating-point + value between 0 and 1 (inclusive), with up to three decimal places + of precision. A higher score means a higher confidence in the + positive `vpn` detection result. This Smart Signal is currently in + beta and only available to select customers. If you are interested, + please [contact our support team](https://fingerprint.com/support/). originTimezone: type: string description: Local timezone which is used in timezoneMismatch method. @@ -1824,11 +1870,13 @@ components: enum: - residential - data_center + - unknown description: > Residential proxies use real user IP addresses to appear as - legitimate traffic, - - while data center proxies are public proxies hosted in data centers + legitimate traffic, while data center proxies are public proxies + hosted in data centers. `unknown` is reported when a proxy is + detected solely by the ML model and the IP sources did not determine + a specific type. lastSeenAt: type: string format: date-time @@ -1852,6 +1900,18 @@ components: $ref: '#/components/schemas/ProxyConfidence' details: $ref: '#/components/schemas/ProxyDetails' + mlScore: + type: number + format: double + minimum: 0 + maximum: 1 + description: > + Machine learning-based proxy score, represented as a floating-point + value between 0 and 1 (inclusive), with up to three decimal places + of precision. A higher score means a higher confidence in the + positive `proxy` detection result. This Smart Signal is currently in + beta and only available to select customers. If you are interested, + please [contact our support team](https://fingerprint.com/support/). ProductProxy: type: object additionalProperties: false @@ -2125,6 +2185,44 @@ components: $ref: '#/components/schemas/HighActivity' error: $ref: '#/components/schemas/Error' + RareDevice: + type: object + additionalProperties: false + description: > + Rare device details (present if the device is considered rare) + + > This Smart Signal is currently in beta and only available to select + customers. If you are interested, please [contact our support + team](https://fingerprint.com/support/). + properties: + result: + type: boolean + description: > + `true` if the device is considered rare based on its combination of + hardware and software attributes. A device is classified as rare if + it falls within the top 99.9 percentile (lowest-frequency segment) + of observed traffic, or if its configuration has not been previously + seen (`not_seen`). + percentileBucket: + type: string + description: > + The rarity percentile bucket of the device, indicating how uncommon + the device configuration is compared to all observed devices. + enum: + - - `true` if the browser is Chrome with DevTools open or Firefox with - Developer Tools open, `false` otherwise. + `true` if the browser has DevTools open (Chrome, Firefox) or the + Android/iOS device has Developer Tools enabled, `false` otherwise. ProductDeveloperTools: type: object additionalProperties: false @@ -2331,6 +2429,36 @@ components: $ref: '#/components/schemas/MitMAttack' error: $ref: '#/components/schemas/Error' + Labels: + type: array + items: + type: object + additionalProperties: false + properties: + label: + type: string + prediction: + type: boolean + mlScore: + type: number + format: double + minimum: 0 + maximum: 1 + description: > + Each label returns a prediction (true or false) for a specific use case + (label field) based on a machine learning score. The machine learning + score is determined by a model trained on customer data for that use + case. This field is in the beta phase and only available to select + customers. If you are interested, please [contact our support + team](https://fingerprint.com/support/). + ProductLabels: + type: object + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/Labels' + error: + $ref: '#/components/schemas/Error' Proximity: type: object description: > @@ -2436,8 +2564,12 @@ components: $ref: '#/components/schemas/ProductDeveloperTools' mitmAttack: $ref: '#/components/schemas/ProductMitMAttack' + rareDevice: + $ref: '#/components/schemas/ProductRareDevice' proximity: $ref: '#/components/schemas/ProductProximity' + labels: + $ref: '#/components/schemas/ProductLabels' EventsGetResponse: type: object description: >- @@ -2674,6 +2806,18 @@ components: request. confidence: $ref: '#/components/schemas/VPNConfidence' + mlScore: + type: number + format: double + minimum: 0 + maximum: 1 + description: > + Machine learning–based VPN score, represented as a floating-point + value between 0 and 1 (inclusive), with up to three decimal places + of precision. A higher score means a higher confidence in the + positive `vpn` detection result. This Smart Signal is currently in + beta and only available to select customers. If you are interested, + please [contact our support team](https://fingerprint.com/support/). originTimezone: type: string description: Local timezone which is used in timezoneMismatch method. @@ -2697,6 +2841,18 @@ components: $ref: '#/components/schemas/ProxyConfidence' details: $ref: '#/components/schemas/ProxyDetails' + mlScore: + type: number + format: double + minimum: 0 + maximum: 1 + description: > + Machine learning-based proxy score, represented as a floating-point + value between 0 and 1 (inclusive), with up to three decimal places + of precision. A higher score means a higher confidence in the + positive `proxy` detection result. This Smart Signal is currently in + beta and only available to select customers. If you are interested, + please [contact our support team](https://fingerprint.com/support/). WebhookTampering: type: object additionalProperties: false @@ -2960,8 +3116,8 @@ components: result: type: boolean description: > - `true` if the browser is Chrome with DevTools open or Firefox with - Developer Tools open, `false` otherwise. + `true` if the browser has DevTools open (Chrome, Firefox) or the + Android/iOS device has Developer Tools enabled, `false` otherwise. WebhookMitMAttack: type: object additionalProperties: false @@ -2977,6 +3133,34 @@ components: See [MitM Attack Detection](https://dev.fingerprint.com/docs/smart-signals-overview#mitm-attack-detection) to learn more about this Smart Signal. + WebhookRareDevice: + type: object + additionalProperties: false + properties: + result: + type: boolean + description: > + `true` if the device is considered rare based on its combination of + hardware and software attributes. A device is classified as rare if + it falls within the top 99.9 percentile (lowest-frequency segment) + of observed traffic, or if its configuration has not been + previously seen (`not_seen`). + + > This Smart Signal is currently in beta and only available to + select customers. If you are interested, please [contact our support + team](https://fingerprint.com/support/). + percentileBucket: + type: string + description: > + The rarity percentile bucket of the device, indicating how uncommon + the device configuration is compared to all observed devices. + enum: + -