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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.13.0"
".": "0.14.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/prelude/prelude-bceac2d798eb515f8fd14406ac6f50de2aa983a3674cecb63167c0d0d52cfbc9.yml
openapi_spec_hash: b9963276e8c0178b0c45bf2ea07f63fb
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/prelude/prelude-86fc45f417e6468f6a6087f9e35b264b0a350e31385bc078a2027a1f1abd1d15.yml
openapi_spec_hash: fb72aba38ec55a3b6b5162c9f5b4228d
config_hash: 3dbe79c14ecd9a153418249f9155d159
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Changelog

## 0.14.0 (2026-09-15)

Full Changelog: [v0.13.0...v0.14.0](https://github.com/prelude-so/java-sdk/compare/v0.13.0...v0.14.0)

### Features

* **api:** api update ([b704163](https://github.com/prelude-so/java-sdk/commit/b7041632f2221e53a08eee85c0ccde5d84ef1dec))
* **api:** api update ([3b9b34c](https://github.com/prelude-so/java-sdk/commit/3b9b34cde0cbf3efa398cab5aedecd961cff745b))
* **api:** api update ([cfa0c6f](https://github.com/prelude-so/java-sdk/commit/cfa0c6fb36fa1194af2434a1e28113e8dde2221f))


### Bug Fixes

* **docs:** link the javadoc badge so the version stays current after release ([fff8c05](https://github.com/prelude-so/java-sdk/commit/fff8c05b581f12c847f83dd2edea16c6adaebe77))


### Chores

* **internal:** allow the mock server port to be set with STAINLESS_MOCK_PORT ([8181844](https://github.com/prelude-so/java-sdk/commit/8181844928f29fe11414bff4423db2c6eabfb6b7))
* **internal:** codegen related update ([775f43b](https://github.com/prelude-so/java-sdk/commit/775f43b7f440b730a8e71e913963eec408fac8a1))

## 0.13.0 (2026-08-07)

Full Changelog: [v0.12.0...v0.13.0](https://github.com/prelude-so/java-sdk/compare/v0.12.0...v0.13.0)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/so.prelude.sdk/prelude-java)](https://central.sonatype.com/artifact/so.prelude.sdk/prelude-java/0.13.0)
[![javadoc](https://javadoc.io/badge2/so.prelude.sdk/prelude-java/0.13.0/javadoc.svg)](https://javadoc.io/doc/so.prelude.sdk/prelude-java/0.13.0)
[![Maven Central](https://img.shields.io/maven-central/v/so.prelude.sdk/prelude-java)](https://central.sonatype.com/artifact/so.prelude.sdk/prelude-java/0.14.0)
[![javadoc](https://javadoc.io/badge2/so.prelude.sdk/prelude-java/javadoc.svg)](https://javadoc.io/doc/so.prelude.sdk/prelude-java/0.14.0)

<!-- x-release-please-end -->

Expand All @@ -13,7 +13,7 @@ It is generated with [Stainless](https://www.stainless.com/).

<!-- x-release-please-start-version -->

The REST API documentation can be found on [docs.prelude.so](https://docs.prelude.so). Javadocs are available on [javadoc.io](https://javadoc.io/doc/so.prelude.sdk/prelude-java/0.13.0).
The REST API documentation can be found on [docs.prelude.so](https://docs.prelude.so). Javadocs are available on [javadoc.io](https://javadoc.io/doc/so.prelude.sdk/prelude-java/0.14.0).

<!-- x-release-please-end -->

Expand All @@ -24,7 +24,7 @@ The REST API documentation can be found on [docs.prelude.so](https://docs.prelud
### Gradle

```kotlin
implementation("so.prelude.sdk:prelude-java:0.13.0")
implementation("so.prelude.sdk:prelude-java:0.14.0")
```

### Maven
Expand All @@ -33,7 +33,7 @@ implementation("so.prelude.sdk:prelude-java:0.13.0")
<dependency>
<groupId>so.prelude.sdk</groupId>
<artifactId>prelude-java</artifactId>
<version>0.13.0</version>
<version>0.14.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "so.prelude.sdk"
version = "0.13.0" // x-release-please-version
version = "0.14.0" // x-release-please-version
}

subprojects {
Expand Down
1 change: 1 addition & 0 deletions prelude-java-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ dependencies {
testImplementation("org.mockito:mockito-core:5.14.2")
testImplementation("org.mockito:mockito-junit-jupiter:5.14.2")
testImplementation("org.mockito.kotlin:mockito-kotlin:4.1.0")
testImplementation("org.slf4j:slf4j-nop:1.7.36")
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ import so.prelude.sdk.core.Params
import so.prelude.sdk.core.http.Headers
import so.prelude.sdk.core.http.QueryParams

/** Retrieve a specific subscription management configuration by its ID. */
/**
* Retrieve a specific subscription management configuration by its ID.
*
* In order to get access to this endpoint, contact our support team.
*/
class NotifyGetSubscriptionConfigParams
private constructor(
private val configId: String?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import so.prelude.sdk.core.http.QueryParams
/**
* Retrieve the current subscription status for a specific phone number within a subscription
* configuration.
*
* In order to get access to this endpoint, contact our support team.
*/
class NotifyGetSubscriptionPhoneNumberParams
private constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import so.prelude.sdk.core.http.QueryParams
*
* Each configuration represents a subscription management setup with phone numbers for receiving
* opt-out/opt-in requests and a callback URL for webhook events.
*
* In order to get access to this endpoint, contact our support team.
*/
class NotifyListSubscriptionConfigsParams
private constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import so.prelude.sdk.core.http.QueryParams
* within a subscription configuration.
*
* Events are ordered by timestamp in descending order (most recent first).
*
* In order to get access to this endpoint, contact our support team.
*/
class NotifyListSubscriptionPhoneNumberEventsParams
private constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import so.prelude.sdk.errors.PreludeInvalidDataException
* subscription configuration.
*
* You can optionally filter by subscription state (SUB or UNSUB).
*
* In order to get access to this endpoint, contact our support team.
*/
class NotifyListSubscriptionPhoneNumbersParams
private constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3005,6 +3005,7 @@ private constructor(
private val deviceId: JsonField<String>,
private val deviceModel: JsonField<String>,
private val devicePlatform: JsonField<DevicePlatform>,
private val existingUser: JsonField<Boolean>,
private val ip: JsonField<String>,
private val isTrustedUser: JsonField<Boolean>,
private val ja4Fingerprint: JsonField<String>,
Expand All @@ -3027,6 +3028,9 @@ private constructor(
@JsonProperty("device_platform")
@ExcludeMissing
devicePlatform: JsonField<DevicePlatform> = JsonMissing.of(),
@JsonProperty("existing_user")
@ExcludeMissing
existingUser: JsonField<Boolean> = JsonMissing.of(),
@JsonProperty("ip") @ExcludeMissing ip: JsonField<String> = JsonMissing.of(),
@JsonProperty("is_trusted_user")
@ExcludeMissing
Expand All @@ -3045,6 +3049,7 @@ private constructor(
deviceId,
deviceModel,
devicePlatform,
existingUser,
ip,
isTrustedUser,
ja4Fingerprint,
Expand Down Expand Up @@ -3088,6 +3093,18 @@ private constructor(
fun devicePlatform(): Optional<DevicePlatform> =
devicePlatform.getOptional("device_platform")

/**
* Whether the end-user already exists in your system, for example an existing account
* signing in again rather than a first-time signup. Unlike `is_trusted_user`, this signal
* does not bypass fraud checks; it is taken into account as one additional anti-fraud
* signal. For more details, refer to
* [Signals](/verify/v2/documentation/prevent-fraud#signals).
*
* @throws PreludeInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
*/
fun existingUser(): Optional<Boolean> = existingUser.getOptional("existing_user")

/**
* The public IP v4 or v6 address of the end-user's device. You should collect this from
* your backend. If your backend is behind a proxy, use the `X-Forwarded-For`, `Forwarded`,
Expand Down Expand Up @@ -3172,6 +3189,16 @@ private constructor(
@ExcludeMissing
fun _devicePlatform(): JsonField<DevicePlatform> = devicePlatform

/**
* Returns the raw JSON value of [existingUser].
*
* Unlike [existingUser], this method doesn't throw if the JSON field has an unexpected
* type.
*/
@JsonProperty("existing_user")
@ExcludeMissing
fun _existingUser(): JsonField<Boolean> = existingUser

/**
* Returns the raw JSON value of [ip].
*
Expand Down Expand Up @@ -3238,6 +3265,7 @@ private constructor(
private var deviceId: JsonField<String> = JsonMissing.of()
private var deviceModel: JsonField<String> = JsonMissing.of()
private var devicePlatform: JsonField<DevicePlatform> = JsonMissing.of()
private var existingUser: JsonField<Boolean> = JsonMissing.of()
private var ip: JsonField<String> = JsonMissing.of()
private var isTrustedUser: JsonField<Boolean> = JsonMissing.of()
private var ja4Fingerprint: JsonField<String> = JsonMissing.of()
Expand All @@ -3251,6 +3279,7 @@ private constructor(
deviceId = signals.deviceId
deviceModel = signals.deviceModel
devicePlatform = signals.devicePlatform
existingUser = signals.existingUser
ip = signals.ip
isTrustedUser = signals.isTrustedUser
ja4Fingerprint = signals.ja4Fingerprint
Expand Down Expand Up @@ -3316,6 +3345,26 @@ private constructor(
this.devicePlatform = devicePlatform
}

/**
* Whether the end-user already exists in your system, for example an existing account
* signing in again rather than a first-time signup. Unlike `is_trusted_user`, this
* signal does not bypass fraud checks; it is taken into account as one additional
* anti-fraud signal. For more details, refer to
* [Signals](/verify/v2/documentation/prevent-fraud#signals).
*/
fun existingUser(existingUser: Boolean) = existingUser(JsonField.of(existingUser))

/**
* Sets [Builder.existingUser] to an arbitrary JSON value.
*
* You should usually call [Builder.existingUser] with a well-typed [Boolean] value
* instead. This method is primarily for setting the field to an undocumented or not yet
* supported value.
*/
fun existingUser(existingUser: JsonField<Boolean>) = apply {
this.existingUser = existingUser
}

/**
* The public IP v4 or v6 address of the end-user's device. You should collect this from
* your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
Expand Down Expand Up @@ -3428,6 +3477,7 @@ private constructor(
deviceId,
deviceModel,
devicePlatform,
existingUser,
ip,
isTrustedUser,
ja4Fingerprint,
Expand Down Expand Up @@ -3457,6 +3507,7 @@ private constructor(
deviceId()
deviceModel()
devicePlatform().ifPresent { it.validate() }
existingUser()
ip()
isTrustedUser()
ja4Fingerprint()
Expand Down Expand Up @@ -3485,6 +3536,7 @@ private constructor(
(if (deviceId.asKnown().isPresent) 1 else 0) +
(if (deviceModel.asKnown().isPresent) 1 else 0) +
(devicePlatform.asKnown().getOrNull()?.validity() ?: 0) +
(if (existingUser.asKnown().isPresent) 1 else 0) +
(if (ip.asKnown().isPresent) 1 else 0) +
(if (isTrustedUser.asKnown().isPresent) 1 else 0) +
(if (ja4Fingerprint.asKnown().isPresent) 1 else 0) +
Expand Down Expand Up @@ -3662,6 +3714,7 @@ private constructor(
deviceId == other.deviceId &&
deviceModel == other.deviceModel &&
devicePlatform == other.devicePlatform &&
existingUser == other.existingUser &&
ip == other.ip &&
isTrustedUser == other.isTrustedUser &&
ja4Fingerprint == other.ja4Fingerprint &&
Expand All @@ -3676,6 +3729,7 @@ private constructor(
deviceId,
deviceModel,
devicePlatform,
existingUser,
ip,
isTrustedUser,
ja4Fingerprint,
Expand All @@ -3688,7 +3742,7 @@ private constructor(
override fun hashCode(): Int = hashCode

override fun toString() =
"Signals{appVersion=$appVersion, deviceId=$deviceId, deviceModel=$deviceModel, devicePlatform=$devicePlatform, ip=$ip, isTrustedUser=$isTrustedUser, ja4Fingerprint=$ja4Fingerprint, osVersion=$osVersion, userAgent=$userAgent, additionalProperties=$additionalProperties}"
"Signals{appVersion=$appVersion, deviceId=$deviceId, deviceModel=$deviceModel, devicePlatform=$devicePlatform, existingUser=$existingUser, ip=$ip, isTrustedUser=$isTrustedUser, ja4Fingerprint=$ja4Fingerprint, osVersion=$osVersion, userAgent=$userAgent, additionalProperties=$additionalProperties}"
}

override fun equals(other: Any?): Boolean {
Expand Down
Loading
Loading