From e47d042cf2026f5cc8193412aea39f9bf122a262 Mon Sep 17 00:00:00 2001 From: "fingerprint-dx-team-actions-runner[bot]" <197604345+fingerprint-dx-team-actions-runner[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 15:38:31 +0000 Subject: [PATCH] feat: sync OpenAPI schema to v3.9.0 --- .changeset/deprecate-504-events-search.md | 5 +++ .changeset/deprecate-504-events.md | 5 +++ .../error-response-503-events-search.md | 5 +++ .changeset/error-response-503-events.md | 5 +++ .changeset/pre.json | 8 ++++ .schema-version | 2 +- docs/DeviceDetails.md | 2 +- docs/FingerprintApi.md | 10 +++-- res/fingerprint-server-api.yaml | 44 ++++++++++--------- scripts/sync.sh | 1 + .../fingerprint/v4/api/FingerprintApi.java | 25 ++++++----- .../fingerprint/v4/model/DeviceDetails.java | 2 +- .../mocks/errors/503_service_unavailable.json | 6 +++ .../errors/504_search_timeout_exceeded.json | 6 --- 14 files changed, 83 insertions(+), 43 deletions(-) create mode 100644 .changeset/deprecate-504-events-search.md create mode 100644 .changeset/deprecate-504-events.md create mode 100644 .changeset/error-response-503-events-search.md create mode 100644 .changeset/error-response-503-events.md create mode 100644 .changeset/pre.json create mode 100644 sdk/src/test/resources/mocks/errors/503_service_unavailable.json delete mode 100644 sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json diff --git a/.changeset/deprecate-504-events-search.md b/.changeset/deprecate-504-events-search.md new file mode 100644 index 00000000..a158d7b7 --- /dev/null +++ b/.changeset/deprecate-504-events-search.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: The `504` response for the Events Search endpoint is deprecated and will no longer be generated by the Server API. diff --git a/.changeset/deprecate-504-events.md b/.changeset/deprecate-504-events.md new file mode 100644 index 00000000..175be46f --- /dev/null +++ b/.changeset/deprecate-504-events.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: The `504` response for the Get Event endpoint is deprecated and will no longer be generated by the Server API. diff --git a/.changeset/error-response-503-events-search.md b/.changeset/error-response-503-events-search.md new file mode 100644 index 00000000..118489a0 --- /dev/null +++ b/.changeset/error-response-503-events-search.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: Add `503` Service Temporarily Unavailable response to the Events Search endpoint diff --git a/.changeset/error-response-503-events.md b/.changeset/error-response-503-events.md new file mode 100644 index 00000000..5c553321 --- /dev/null +++ b/.changeset/error-response-503-events.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `503` Service Temporarily Unavailable response to the Get Event endpoint diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..ea347a81 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,8 @@ +{ + "mode": "pre", + "tag": "rc", + "initialVersions": { + "java-sdk": "8.8.0" + }, + "changesets": [] +} diff --git a/.schema-version b/.schema-version index ea535dc5..65aee83a 100644 --- a/.schema-version +++ b/.schema-version @@ -1 +1 @@ -v3.8.0 \ No newline at end of file +v3.9.0 \ No newline at end of file diff --git a/docs/DeviceDetails.md b/docs/DeviceDetails.md index 60ca525c..28e73418 100644 --- a/docs/DeviceDetails.md +++ b/docs/DeviceDetails.md @@ -9,7 +9,7 @@ Native, SDK-collected mobile device identification signals (manufacturer, model, | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**deviceManufacturer** | **String** | Raw device manufacturer string as reported by the device OS. Not normalized: casing is vendor-defined (samsung, Xiaomi, OPPO, HUAWEI). Always `Apple` on iOS. | [optional] | -|**deviceModel** | **String** | Raw device model identifier, as reported by the mobile OS. | [optional] | +|**deviceModel** | **String** | Raw device model identifier, as reported by the mobile OS. On Android, this is the vendor-defined model string (e.g., `SM-G991U`). On iOS, this is an Apple board code (e.g., `D84AP`). | [optional] | |**osVersion** | **String** | Mobile operating system version. Component count is not fixed and must not be assumed by consumers: iOS always reports `major.minor.patch` (e.g. `17.4.1`), while Android's precision varies by OS era and which raw signal resolved it — `major` only (`9`, `13`) since Android 10 dropped point releases, `major.minor` (`16.1`) from Android 16 (API 36+) reintroducing a minor component, or a genuine `major.minor.patch` (`8.1.0`) on pre-Android 10 devices that shipped real point releases. Never a fabricated/zero-padded component. | [optional] | diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 18374693..c94de867 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -202,9 +202,10 @@ Object containing optional parameters for API method. Supports a fluent interfac | **400** | Bad request. The event ID provided is not valid. | - | | **403** | Forbidden. Access to this API is denied. | - | | **404** | Not found. The event ID cannot be found in this workspace's data. | - | -| **429** | Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. | - | +| **429** | Too Many Requests. The request is throttled. | - | | **500** | Workspace error. | - | -| **504** | Gateway Timeout. Search execution exceeded the allowed timeout window. | - | +| **503** | Service Temporarily Unavailable. | - | +| **504** | Gateway Timeout. | - | ## searchEvents @@ -475,9 +476,10 @@ Object containing optional parameters for API method. Supports a fluent interfac | **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. | - | | **404** | Not found. The requested visitor does not exist in this workspace's data. | - | -| **429** | Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. | - | +| **429** | Too Many Requests. The request is throttled. | - | | **500** | Workspace error. | - | -| **504** | Gateway Timeout. Search execution exceeded the allowed timeout window. | - | +| **503** | Service Temporarily Unavailable. | - | +| **504** | Gateway Timeout. | - | ## updateEvent diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index ca054e6d..531bdae8 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -17,8 +17,7 @@ info: email: support@fingerprint.com license: name: MIT - url: >- - https://github.com/fingerprintjs/fingerprint-pro-server-api-openapi/blob/main/LICENSE + url: https://github.com/fingerprintjs/openapi/blob/main/LICENSE tags: - name: Fingerprint description: >- @@ -104,12 +103,8 @@ paths: schema: $ref: '#/components/schemas/ErrorResponse' '429': - description: > + description: | Too Many Requests. The request is throttled. - - To protect service stability during rare periods of extreme load, we - may return HTTP 429 responses with message `too many search - requests` even if you are within your assigned rate limits. content: application/json: schema: @@ -120,10 +115,15 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + '503': + description: Service Temporarily Unavailable. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' '504': - description: >- - Gateway Timeout. Search execution exceeded the allowed timeout - window. + description: Gateway Timeout. + x-deprecated-response: true content: application/json: schema: @@ -1019,12 +1019,8 @@ paths: schema: $ref: '#/components/schemas/ErrorResponse' '429': - description: > + description: | Too Many Requests. The request is throttled. - - To protect service stability during rare periods of extreme load, we - may return HTTP 429 responses with message `too many search - requests` even if you are within your assigned rate limits. content: application/json: schema: @@ -1035,10 +1031,15 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + '503': + description: Service Temporarily Unavailable. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' '504': - description: >- - Gateway Timeout. Search execution exceeded the allowed timeout - window. + description: Gateway Timeout. + x-deprecated-response: true content: application/json: schema: @@ -2102,8 +2103,11 @@ components: type: string examples: - SM-G991U - - iPhone14,5 - description: Raw device model identifier, as reported by the mobile OS. + - D84AP + description: >- + Raw device model identifier, as reported by the mobile OS. On + Android, this is the vendor-defined model string (e.g., `SM-G991U`). + On iOS, this is an Apple board code (e.g., `D84AP`). os_version: type: string examples: diff --git a/scripts/sync.sh b/scripts/sync.sh index 02e92b6b..0db9c691 100755 --- a/scripts/sync.sh +++ b/scripts/sync.sh @@ -52,6 +52,7 @@ examples=( 'errors/409_state_not_ready.json' 'errors/429_too_many_requests.json' 'errors/500_internal_server_error.json' + 'errors/503_service_unavailable.json' ) for example in "${examples[@]}"; do diff --git a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java index f7fb4ce7..db22e6d2 100644 --- a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java @@ -183,9 +183,10 @@ public GetEventOptionalParams setRulesetId(String rulesetId) { * 400 Bad request. The event ID provided is not valid. - * 403 Forbidden. Access to this API is denied. - * 404 Not found. The event ID cannot be found in this workspace's data. - - * 429 Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. - + * 429 Too Many Requests. The request is throttled. - * 500 Workspace error. - - * 504 Gateway Timeout. Search execution exceeded the allowed timeout window. - + * 503 Service Temporarily Unavailable. - + * 504 Gateway Timeout. - * */ public Event getEvent(String eventId) throws ApiException { @@ -206,9 +207,10 @@ public Event getEvent(String eventId) throws ApiException { * 400 Bad request. The event ID provided is not valid. - * 403 Forbidden. Access to this API is denied. - * 404 Not found. The event ID cannot be found in this workspace's data. - - * 429 Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. - + * 429 Too Many Requests. The request is throttled. - * 500 Workspace error. - - * 504 Gateway Timeout. Search execution exceeded the allowed timeout window. - + * 503 Service Temporarily Unavailable. - + * 504 Gateway Timeout. - * */ public Event getEvent(String eventId, GetEventOptionalParams getEventOptionalParams) @@ -230,9 +232,10 @@ public Event getEvent(String eventId, GetEventOptionalParams getEventOptionalPar * 400 Bad request. The event ID provided is not valid. - * 403 Forbidden. Access to this API is denied. - * 404 Not found. The event ID cannot be found in this workspace's data. - - * 429 Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. - + * 429 Too Many Requests. The request is throttled. - * 500 Workspace error. - - * 504 Gateway Timeout. Search execution exceeded the allowed timeout window. - + * 503 Service Temporarily Unavailable. - + * 504 Gateway Timeout. - * */ public ApiResponse getEventWithHttpInfo( @@ -1199,9 +1202,10 @@ public SearchEventsOptionalParams setSource(List source) { * 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. - * 404 Not found. The requested visitor does not exist in this workspace's data. - - * 429 Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. - + * 429 Too Many Requests. The request is throttled. - * 500 Workspace error. - - * 504 Gateway Timeout. Search execution exceeded the allowed timeout window. - + * 503 Service Temporarily Unavailable. - + * 504 Gateway Timeout. - * */ public EventSearch searchEvents(SearchEventsOptionalParams searchEventsOptionalParams) @@ -1222,9 +1226,10 @@ public EventSearch searchEvents(SearchEventsOptionalParams searchEventsOptionalP * 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. - * 404 Not found. The requested visitor does not exist in this workspace's data. - - * 429 Too Many Requests. The request is throttled. To protect service stability during rare periods of extreme load, we may return HTTP 429 responses with message `too many search requests` even if you are within your assigned rate limits. - + * 429 Too Many Requests. The request is throttled. - * 500 Workspace error. - - * 504 Gateway Timeout. Search execution exceeded the allowed timeout window. - + * 503 Service Temporarily Unavailable. - + * 504 Gateway Timeout. - * */ public ApiResponse searchEventsWithHttpInfo( diff --git a/sdk/src/main/java/com/fingerprint/v4/model/DeviceDetails.java b/sdk/src/main/java/com/fingerprint/v4/model/DeviceDetails.java index 6ea5ca76..ca6afb56 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/DeviceDetails.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/DeviceDetails.java @@ -68,7 +68,7 @@ public DeviceDetails deviceModel(@jakarta.annotation.Nullable String deviceModel } /** - * Raw device model identifier, as reported by the mobile OS. + * Raw device model identifier, as reported by the mobile OS. On Android, this is the vendor-defined model string (e.g., `SM-G991U`). On iOS, this is an Apple board code (e.g., `D84AP`). * @return deviceModel */ @jakarta.annotation.Nullable diff --git a/sdk/src/test/resources/mocks/errors/503_service_unavailable.json b/sdk/src/test/resources/mocks/errors/503_service_unavailable.json new file mode 100644 index 00000000..aebf5cdd --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/503_service_unavailable.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "service_unavailable", + "message": "service temporarily unavailable" + } +} diff --git a/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json b/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json deleted file mode 100644 index cc5fcbd7..00000000 --- a/sdk/src/test/resources/mocks/errors/504_search_timeout_exceeded.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "error": { - "code": "failed", - "message": "gateway timeout" - } -}