From ae139526da8158c7801ea7c6473b76dd9becd31e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 02:48:23 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 4 +- .../RoutingNumberListResponse.kt | 186 +++++++++++++++++- .../RoutingNumberListPageResponseTest.kt | 3 + .../RoutingNumberListResponseTest.kt | 4 + 4 files changed, 194 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index f6bbc76b8..5d419a59b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 213 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-fc17d091731928c882b2272ea5de831cafcbf237a7887652a5f133c29cb1bbc4.yml -openapi_spec_hash: aad429d087b7557be4103d1309cd81a0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-61d42e1f44023df8161e3b35d6154011e638f78b3b232379396ea8980d6257b5.yml +openapi_spec_hash: 8831b733d617f5c7ee39db3cb62da20c config_hash: e1e8bc2138a13f290956ae6687f099cd diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt index fe310c6c0..b6a834991 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt @@ -21,6 +21,7 @@ import kotlin.jvm.optionals.getOrNull class RoutingNumberListResponse private constructor( private val achTransfers: JsonField, + private val fednowTransfers: JsonField, private val name: JsonField, private val realTimePaymentsTransfers: JsonField, private val routingNumber: JsonField, @@ -34,6 +35,9 @@ private constructor( @JsonProperty("ach_transfers") @ExcludeMissing achTransfers: JsonField = JsonMissing.of(), + @JsonProperty("fednow_transfers") + @ExcludeMissing + fednowTransfers: JsonField = JsonMissing.of(), @JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(), @JsonProperty("real_time_payments_transfers") @ExcludeMissing @@ -47,6 +51,7 @@ private constructor( wireTransfers: JsonField = JsonMissing.of(), ) : this( achTransfers, + fednowTransfers, name, realTimePaymentsTransfers, routingNumber, @@ -63,6 +68,14 @@ private constructor( */ fun achTransfers(): AchTransfers = achTransfers.getRequired("ach_transfers") + /** + * This routing number's support for FedNow Transfers. + * + * @throws IncreaseInvalidDataException if the JSON field has an unexpected type or is + * unexpectedly missing or null (e.g. if the server responded with an unexpected value). + */ + fun fednowTransfers(): FednowTransfers = fednowTransfers.getRequired("fednow_transfers") + /** * The name of the financial institution belonging to a routing number. * @@ -114,6 +127,15 @@ private constructor( @ExcludeMissing fun _achTransfers(): JsonField = achTransfers + /** + * Returns the raw JSON value of [fednowTransfers]. + * + * Unlike [fednowTransfers], this method doesn't throw if the JSON field has an unexpected type. + */ + @JsonProperty("fednow_transfers") + @ExcludeMissing + fun _fednowTransfers(): JsonField = fednowTransfers + /** * Returns the raw JSON value of [name]. * @@ -177,6 +199,7 @@ private constructor( * The following fields are required: * ```java * .achTransfers() + * .fednowTransfers() * .name() * .realTimePaymentsTransfers() * .routingNumber() @@ -191,6 +214,7 @@ private constructor( class Builder internal constructor() { private var achTransfers: JsonField? = null + private var fednowTransfers: JsonField? = null private var name: JsonField? = null private var realTimePaymentsTransfers: JsonField? = null private var routingNumber: JsonField? = null @@ -201,6 +225,7 @@ private constructor( @JvmSynthetic internal fun from(routingNumberListResponse: RoutingNumberListResponse) = apply { achTransfers = routingNumberListResponse.achTransfers + fednowTransfers = routingNumberListResponse.fednowTransfers name = routingNumberListResponse.name realTimePaymentsTransfers = routingNumberListResponse.realTimePaymentsTransfers routingNumber = routingNumberListResponse.routingNumber @@ -223,6 +248,21 @@ private constructor( this.achTransfers = achTransfers } + /** This routing number's support for FedNow Transfers. */ + fun fednowTransfers(fednowTransfers: FednowTransfers) = + fednowTransfers(JsonField.of(fednowTransfers)) + + /** + * Sets [Builder.fednowTransfers] to an arbitrary JSON value. + * + * You should usually call [Builder.fednowTransfers] with a well-typed [FednowTransfers] + * value instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun fednowTransfers(fednowTransfers: JsonField) = apply { + this.fednowTransfers = fednowTransfers + } + /** The name of the financial institution belonging to a routing number. */ fun name(name: String) = name(JsonField.of(name)) @@ -318,6 +358,7 @@ private constructor( * The following fields are required: * ```java * .achTransfers() + * .fednowTransfers() * .name() * .realTimePaymentsTransfers() * .routingNumber() @@ -330,6 +371,7 @@ private constructor( fun build(): RoutingNumberListResponse = RoutingNumberListResponse( checkRequired("achTransfers", achTransfers), + checkRequired("fednowTransfers", fednowTransfers), checkRequired("name", name), checkRequired("realTimePaymentsTransfers", realTimePaymentsTransfers), checkRequired("routingNumber", routingNumber), @@ -347,6 +389,7 @@ private constructor( } achTransfers().validate() + fednowTransfers().validate() name() realTimePaymentsTransfers().validate() routingNumber() @@ -371,6 +414,7 @@ private constructor( @JvmSynthetic internal fun validity(): Int = (achTransfers.asKnown().getOrNull()?.validity() ?: 0) + + (fednowTransfers.asKnown().getOrNull()?.validity() ?: 0) + (if (name.asKnown().isPresent) 1 else 0) + (realTimePaymentsTransfers.asKnown().getOrNull()?.validity() ?: 0) + (if (routingNumber.asKnown().isPresent) 1 else 0) + @@ -514,6 +558,144 @@ private constructor( override fun toString() = value.toString() } + /** This routing number's support for FedNow Transfers. */ + class FednowTransfers @JsonCreator private constructor(private val value: JsonField) : + Enum { + + /** + * Returns this class instance's raw value. + * + * This is usually only useful if this instance was deserialized from data that doesn't + * match any known member, and you want to know that value. For example, if the SDK is on an + * older version than the API, then the API may respond with new members that the SDK is + * unaware of. + */ + @com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value + + companion object { + + /** The routing number can receive this transfer type. */ + @JvmField val SUPPORTED = of("supported") + + /** The routing number cannot receive this transfer type. */ + @JvmField val NOT_SUPPORTED = of("not_supported") + + @JvmStatic fun of(value: String) = FednowTransfers(JsonField.of(value)) + } + + /** An enum containing [FednowTransfers]'s known values. */ + enum class Known { + /** The routing number can receive this transfer type. */ + SUPPORTED, + /** The routing number cannot receive this transfer type. */ + NOT_SUPPORTED, + } + + /** + * An enum containing [FednowTransfers]'s known values, as well as an [_UNKNOWN] member. + * + * An instance of [FednowTransfers] can contain an unknown value in a couple of cases: + * - It was deserialized from data that doesn't match any known member. For example, if the + * SDK is on an older version than the API, then the API may respond with new members that + * the SDK is unaware of. + * - It was constructed with an arbitrary value using the [of] method. + */ + enum class Value { + /** The routing number can receive this transfer type. */ + SUPPORTED, + /** The routing number cannot receive this transfer type. */ + NOT_SUPPORTED, + /** + * An enum member indicating that [FednowTransfers] was instantiated with an unknown + * value. + */ + _UNKNOWN, + } + + /** + * Returns an enum member corresponding to this class instance's value, or [Value._UNKNOWN] + * if the class was instantiated with an unknown value. + * + * Use the [known] method instead if you're certain the value is always known or if you want + * to throw for the unknown case. + */ + fun value(): Value = + when (this) { + SUPPORTED -> Value.SUPPORTED + NOT_SUPPORTED -> Value.NOT_SUPPORTED + else -> Value._UNKNOWN + } + + /** + * Returns an enum member corresponding to this class instance's value. + * + * Use the [value] method instead if you're uncertain the value is always known and don't + * want to throw for the unknown case. + * + * @throws IncreaseInvalidDataException if this class instance's value is a not a known + * member. + */ + fun known(): Known = + when (this) { + SUPPORTED -> Known.SUPPORTED + NOT_SUPPORTED -> Known.NOT_SUPPORTED + else -> throw IncreaseInvalidDataException("Unknown FednowTransfers: $value") + } + + /** + * Returns this class instance's primitive wire representation. + * + * This differs from the [toString] method because that method is primarily for debugging + * and generally doesn't throw. + * + * @throws IncreaseInvalidDataException if this class instance's value does not have the + * expected primitive type. + */ + fun asString(): String = + _value().asString().orElseThrow { + IncreaseInvalidDataException("Value is not a String") + } + + private var validated: Boolean = false + + fun validate(): FednowTransfers = apply { + if (validated) { + return@apply + } + + known() + validated = true + } + + fun isValid(): Boolean = + try { + validate() + true + } catch (e: IncreaseInvalidDataException) { + false + } + + /** + * Returns a score indicating how many valid values are contained in this object + * recursively. + * + * Used for best match union deserialization. + */ + @JvmSynthetic internal fun validity(): Int = if (value() == Value._UNKNOWN) 0 else 1 + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return other is FednowTransfers && value == other.value + } + + override fun hashCode() = value.hashCode() + + override fun toString() = value.toString() + } + /** This routing number's support for Real-Time Payments Transfers. */ class RealTimePaymentsTransfers @JsonCreator @@ -926,6 +1108,7 @@ private constructor( return other is RoutingNumberListResponse && achTransfers == other.achTransfers && + fednowTransfers == other.fednowTransfers && name == other.name && realTimePaymentsTransfers == other.realTimePaymentsTransfers && routingNumber == other.routingNumber && @@ -937,6 +1120,7 @@ private constructor( private val hashCode: Int by lazy { Objects.hash( achTransfers, + fednowTransfers, name, realTimePaymentsTransfers, routingNumber, @@ -949,5 +1133,5 @@ private constructor( override fun hashCode(): Int = hashCode override fun toString() = - "RoutingNumberListResponse{achTransfers=$achTransfers, name=$name, realTimePaymentsTransfers=$realTimePaymentsTransfers, routingNumber=$routingNumber, type=$type, wireTransfers=$wireTransfers, additionalProperties=$additionalProperties}" + "RoutingNumberListResponse{achTransfers=$achTransfers, fednowTransfers=$fednowTransfers, name=$name, realTimePaymentsTransfers=$realTimePaymentsTransfers, routingNumber=$routingNumber, type=$type, wireTransfers=$wireTransfers, additionalProperties=$additionalProperties}" } diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt index d35c29c32..22f3d3bd3 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt @@ -16,6 +16,7 @@ internal class RoutingNumberListPageResponseTest { .addData( RoutingNumberListResponse.builder() .achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED) + .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED) .name("First Bank of the United States") .realTimePaymentsTransfers( RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED @@ -32,6 +33,7 @@ internal class RoutingNumberListPageResponseTest { .containsExactly( RoutingNumberListResponse.builder() .achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED) + .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED) .name("First Bank of the United States") .realTimePaymentsTransfers( RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED @@ -52,6 +54,7 @@ internal class RoutingNumberListPageResponseTest { .addData( RoutingNumberListResponse.builder() .achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED) + .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED) .name("First Bank of the United States") .realTimePaymentsTransfers( RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt index 5ec1bcb99..154ff33ff 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt @@ -14,6 +14,7 @@ internal class RoutingNumberListResponseTest { val routingNumberListResponse = RoutingNumberListResponse.builder() .achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED) + .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED) .name("First Bank of the United States") .realTimePaymentsTransfers( RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED @@ -25,6 +26,8 @@ internal class RoutingNumberListResponseTest { assertThat(routingNumberListResponse.achTransfers()) .isEqualTo(RoutingNumberListResponse.AchTransfers.SUPPORTED) + assertThat(routingNumberListResponse.fednowTransfers()) + .isEqualTo(RoutingNumberListResponse.FednowTransfers.SUPPORTED) assertThat(routingNumberListResponse.name()).isEqualTo("First Bank of the United States") assertThat(routingNumberListResponse.realTimePaymentsTransfers()) .isEqualTo(RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED) @@ -41,6 +44,7 @@ internal class RoutingNumberListResponseTest { val routingNumberListResponse = RoutingNumberListResponse.builder() .achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED) + .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED) .name("First Bank of the United States") .realTimePaymentsTransfers( RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED From ba0bdd60dcfa8ab112b44869f53020b04d11b65f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 02:48:47 +0000 Subject: [PATCH 2/2] release: 0.330.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ README.md | 10 +++++----- build.gradle.kts | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 09eb6e203..7f9560adf 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.329.0" + ".": "0.330.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e937fc0ef..a7cd8bc6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.330.0 (2025-09-18) + +Full Changelog: [v0.329.0...v0.330.0](https://github.com/Increase/increase-java/compare/v0.329.0...v0.330.0) + +### Features + +* **api:** api update ([ae13952](https://github.com/Increase/increase-java/commit/ae139526da8158c7801ea7c6473b76dd9becd31e)) + ## 0.329.0 (2025-09-17) Full Changelog: [v0.328.0...v0.329.0](https://github.com/Increase/increase-java/compare/v0.328.0...v0.329.0) diff --git a/README.md b/README.md index 026159446..5221cde9b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ -[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.329.0) -[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.329.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.329.0) +[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.330.0) +[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.330.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.330.0) @@ -13,7 +13,7 @@ The Increase Java SDK is similar to the Increase Kotlin SDK but with minor diffe -The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.329.0). +The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.330.0). @@ -24,7 +24,7 @@ The REST API documentation can be found on [increase.com](https://increase.com/d ### Gradle ```kotlin -implementation("com.increase.api:increase-java:0.329.0") +implementation("com.increase.api:increase-java:0.330.0") ``` ### Maven @@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.329.0") com.increase.api increase-java - 0.329.0 + 0.330.0 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 081f65a96..69fd300a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ repositories { allprojects { group = "com.increase.api" - version = "0.329.0" // x-release-please-version + version = "0.330.0" // x-release-please-version } subprojects {