diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 4942d18ad..eb7cbd88c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.322.0" + ".": "0.323.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 7efaaa57e..d9b2e1485 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 217 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-94d559b14c3611637885b103aa75adb26dff816369b1fdb758440e288d1ea83b.yml -openapi_spec_hash: 4e257b20b410526bc54fd6ced9db3a5d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-0099e03e7fa522327e05de8b00e0d0f8873c9267bbb39a29d22b2aa6bb571d16.yml +openapi_spec_hash: 8691ea0b11ed2570986fadb52e6b87db config_hash: e1885b38eded054b77308a024c5d80cc diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8bc7f43..48c5bf756 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.323.0 (2025-09-12) + +Full Changelog: [v0.322.0...v0.323.0](https://github.com/Increase/increase-java/compare/v0.322.0...v0.323.0) + +### Features + +* **api:** api update ([4b4e509](https://github.com/Increase/increase-java/commit/4b4e509262a90aa293c098189a60944be5f27e55)) + + +### Chores + +* improve formatter performance ([6ee849d](https://github.com/Increase/increase-java/commit/6ee849da8b64059c6cbd4d71e26d89fa6ce85dab)) +* **internal:** codegen related update ([8ba61fe](https://github.com/Increase/increase-java/commit/8ba61fe8960287361d1c908bba4a7ac751248c2f)) +* **internal:** codegen related update ([7ff261c](https://github.com/Increase/increase-java/commit/7ff261c0d3060a89c9a7e5820328ac1eec3db69b)) + ## 0.322.0 (2025-09-09) Full Changelog: [v0.321.0...v0.322.0](https://github.com/Increase/increase-java/compare/v0.321.0...v0.322.0) diff --git a/README.md b/README.md index 7edaefd38..a2b2ed5e4 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.322.0) -[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.322.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.322.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.323.0) +[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.323.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.323.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.322.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.323.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.322.0") +implementation("com.increase.api:increase-java:0.323.0") ``` ### Maven @@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.322.0") com.increase.api increase-java - 0.322.0 + 0.323.0 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 360a6583d..a21bc853d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ repositories { allprojects { group = "com.increase.api" - version = "0.322.0" // x-release-please-version + version = "0.323.0" // x-release-please-version } subprojects { diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransaction.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransaction.kt index 1e1e6d511..cdecb9c2b 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransaction.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransaction.kt @@ -1155,6 +1155,7 @@ private constructor( private val category: JsonField, private val checkDepositInstruction: JsonField, private val checkTransferInstruction: JsonField, + private val fedNowTransferInstruction: JsonField, private val inboundFundsHold: JsonField, private val inboundWireTransferReversal: JsonField, private val other: JsonValue, @@ -1189,6 +1190,9 @@ private constructor( @JsonProperty("check_transfer_instruction") @ExcludeMissing checkTransferInstruction: JsonField = JsonMissing.of(), + @JsonProperty("fed_now_transfer_instruction") + @ExcludeMissing + fedNowTransferInstruction: JsonField = JsonMissing.of(), @JsonProperty("inbound_funds_hold") @ExcludeMissing inboundFundsHold: JsonField = JsonMissing.of(), @@ -1217,6 +1221,7 @@ private constructor( category, checkDepositInstruction, checkTransferInstruction, + fedNowTransferInstruction, inboundFundsHold, inboundWireTransferReversal, other, @@ -1297,6 +1302,16 @@ private constructor( fun checkTransferInstruction(): Optional = checkTransferInstruction.getOptional("check_transfer_instruction") + /** + * A FedNow Transfer Instruction object. This field will be present in the JSON response if + * and only if `category` is equal to `fed_now_transfer_instruction`. + * + * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if + * the server responded with an unexpected value). + */ + fun fedNowTransferInstruction(): Optional = + fedNowTransferInstruction.getOptional("fed_now_transfer_instruction") + /** * An Inbound Funds Hold object. This field will be present in the JSON response if and only * if `category` is equal to `inbound_funds_hold`. We hold funds for certain transaction @@ -1438,6 +1453,17 @@ private constructor( fun _checkTransferInstruction(): JsonField = checkTransferInstruction + /** + * Returns the raw JSON value of [fedNowTransferInstruction]. + * + * Unlike [fedNowTransferInstruction], this method doesn't throw if the JSON field has an + * unexpected type. + */ + @JsonProperty("fed_now_transfer_instruction") + @ExcludeMissing + fun _fedNowTransferInstruction(): JsonField = + fedNowTransferInstruction + /** * Returns the raw JSON value of [inboundFundsHold]. * @@ -1517,6 +1543,7 @@ private constructor( * .category() * .checkDepositInstruction() * .checkTransferInstruction() + * .fedNowTransferInstruction() * .inboundFundsHold() * .inboundWireTransferReversal() * .other() @@ -1539,6 +1566,7 @@ private constructor( private var category: JsonField? = null private var checkDepositInstruction: JsonField? = null private var checkTransferInstruction: JsonField? = null + private var fedNowTransferInstruction: JsonField? = null private var inboundFundsHold: JsonField? = null private var inboundWireTransferReversal: JsonField? = null private var other: JsonValue? = null @@ -1559,6 +1587,7 @@ private constructor( category = source.category checkDepositInstruction = source.checkDepositInstruction checkTransferInstruction = source.checkTransferInstruction + fedNowTransferInstruction = source.fedNowTransferInstruction inboundFundsHold = source.inboundFundsHold inboundWireTransferReversal = source.inboundWireTransferReversal other = source.other @@ -1742,6 +1771,32 @@ private constructor( checkTransferInstruction: JsonField ) = apply { this.checkTransferInstruction = checkTransferInstruction } + /** + * A FedNow Transfer Instruction object. This field will be present in the JSON response + * if and only if `category` is equal to `fed_now_transfer_instruction`. + */ + fun fedNowTransferInstruction(fedNowTransferInstruction: FedNowTransferInstruction?) = + fedNowTransferInstruction(JsonField.ofNullable(fedNowTransferInstruction)) + + /** + * Alias for calling [Builder.fedNowTransferInstruction] with + * `fedNowTransferInstruction.orElse(null)`. + */ + fun fedNowTransferInstruction( + fedNowTransferInstruction: Optional + ) = fedNowTransferInstruction(fedNowTransferInstruction.getOrNull()) + + /** + * Sets [Builder.fedNowTransferInstruction] to an arbitrary JSON value. + * + * You should usually call [Builder.fedNowTransferInstruction] with a well-typed + * [FedNowTransferInstruction] value instead. This method is primarily for setting the + * field to an undocumented or not yet supported value. + */ + fun fedNowTransferInstruction( + fedNowTransferInstruction: JsonField + ) = apply { this.fedNowTransferInstruction = fedNowTransferInstruction } + /** * An Inbound Funds Hold object. This field will be present in the JSON response if and * only if `category` is equal to `inbound_funds_hold`. We hold funds for certain @@ -1930,6 +1985,7 @@ private constructor( * .category() * .checkDepositInstruction() * .checkTransferInstruction() + * .fedNowTransferInstruction() * .inboundFundsHold() * .inboundWireTransferReversal() * .other() @@ -1950,6 +2006,7 @@ private constructor( checkRequired("category", category), checkRequired("checkDepositInstruction", checkDepositInstruction), checkRequired("checkTransferInstruction", checkTransferInstruction), + checkRequired("fedNowTransferInstruction", fedNowTransferInstruction), checkRequired("inboundFundsHold", inboundFundsHold), checkRequired("inboundWireTransferReversal", inboundWireTransferReversal), checkRequired("other", other), @@ -1978,6 +2035,7 @@ private constructor( category().validate() checkDepositInstruction().ifPresent { it.validate() } checkTransferInstruction().ifPresent { it.validate() } + fedNowTransferInstruction().ifPresent { it.validate() } inboundFundsHold().ifPresent { it.validate() } inboundWireTransferReversal().ifPresent { it.validate() } realTimePaymentsTransferInstruction().ifPresent { it.validate() } @@ -2009,6 +2067,7 @@ private constructor( (category.asKnown().getOrNull()?.validity() ?: 0) + (checkDepositInstruction.asKnown().getOrNull()?.validity() ?: 0) + (checkTransferInstruction.asKnown().getOrNull()?.validity() ?: 0) + + (fedNowTransferInstruction.asKnown().getOrNull()?.validity() ?: 0) + (inboundFundsHold.asKnown().getOrNull()?.validity() ?: 0) + (inboundWireTransferReversal.asKnown().getOrNull()?.validity() ?: 0) + (realTimePaymentsTransferInstruction.asKnown().getOrNull()?.validity() ?: 0) + @@ -10952,6 +11011,12 @@ private constructor( */ @JvmField val CHECK_TRANSFER_INSTRUCTION = of("check_transfer_instruction") + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + @JvmField val FED_NOW_TRANSFER_INSTRUCTION = of("fed_now_transfer_instruction") + /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ @JvmField val INBOUND_FUNDS_HOLD = of("inbound_funds_hold") @@ -11020,6 +11085,11 @@ private constructor( * `check_transfer_instruction` object. */ CHECK_TRANSFER_INSTRUCTION, + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + FED_NOW_TRANSFER_INSTRUCTION, /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ INBOUND_FUNDS_HOLD, /** User Initiated Hold: details will be under the `user_initiated_hold` object. */ @@ -11085,6 +11155,11 @@ private constructor( * `check_transfer_instruction` object. */ CHECK_TRANSFER_INSTRUCTION, + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + FED_NOW_TRANSFER_INSTRUCTION, /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ INBOUND_FUNDS_HOLD, /** User Initiated Hold: details will be under the `user_initiated_hold` object. */ @@ -11136,6 +11211,7 @@ private constructor( CARD_AUTHORIZATION -> Value.CARD_AUTHORIZATION CHECK_DEPOSIT_INSTRUCTION -> Value.CHECK_DEPOSIT_INSTRUCTION CHECK_TRANSFER_INSTRUCTION -> Value.CHECK_TRANSFER_INSTRUCTION + FED_NOW_TRANSFER_INSTRUCTION -> Value.FED_NOW_TRANSFER_INSTRUCTION INBOUND_FUNDS_HOLD -> Value.INBOUND_FUNDS_HOLD USER_INITIATED_HOLD -> Value.USER_INITIATED_HOLD REAL_TIME_PAYMENTS_TRANSFER_INSTRUCTION -> @@ -11164,6 +11240,7 @@ private constructor( CARD_AUTHORIZATION -> Known.CARD_AUTHORIZATION CHECK_DEPOSIT_INSTRUCTION -> Known.CHECK_DEPOSIT_INSTRUCTION CHECK_TRANSFER_INSTRUCTION -> Known.CHECK_TRANSFER_INSTRUCTION + FED_NOW_TRANSFER_INSTRUCTION -> Known.FED_NOW_TRANSFER_INSTRUCTION INBOUND_FUNDS_HOLD -> Known.INBOUND_FUNDS_HOLD USER_INITIATED_HOLD -> Known.USER_INITIATED_HOLD REAL_TIME_PAYMENTS_TRANSFER_INSTRUCTION -> @@ -12236,6 +12313,182 @@ private constructor( "CheckTransferInstruction{amount=$amount, currency=$currency, transferId=$transferId, additionalProperties=$additionalProperties}" } + /** + * A FedNow Transfer Instruction object. This field will be present in the JSON response if + * and only if `category` is equal to `fed_now_transfer_instruction`. + */ + class FedNowTransferInstruction + private constructor( + private val transferId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("transfer_id") + @ExcludeMissing + transferId: JsonField = JsonMissing.of() + ) : this(transferId, mutableMapOf()) + + /** + * The identifier of the FedNow Transfer that led to this Pending Transaction. + * + * @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 transferId(): String = transferId.getRequired("transfer_id") + + /** + * Returns the raw JSON value of [transferId]. + * + * Unlike [transferId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("transfer_id") + @ExcludeMissing + fun _transferId(): JsonField = transferId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [FedNowTransferInstruction]. + * + * The following fields are required: + * ```java + * .transferId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [FedNowTransferInstruction]. */ + class Builder internal constructor() { + + private var transferId: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(fedNowTransferInstruction: FedNowTransferInstruction) = apply { + transferId = fedNowTransferInstruction.transferId + additionalProperties = + fedNowTransferInstruction.additionalProperties.toMutableMap() + } + + /** The identifier of the FedNow Transfer that led to this Pending Transaction. */ + fun transferId(transferId: String) = transferId(JsonField.of(transferId)) + + /** + * Sets [Builder.transferId] to an arbitrary JSON value. + * + * You should usually call [Builder.transferId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun transferId(transferId: JsonField) = apply { + this.transferId = transferId + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [FedNowTransferInstruction]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .transferId() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): FedNowTransferInstruction = + FedNowTransferInstruction( + checkRequired("transferId", transferId), + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): FedNowTransferInstruction = apply { + if (validated) { + return@apply + } + + transferId() + 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 (transferId.asKnown().isPresent) 1 else 0) + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return other is FedNowTransferInstruction && + transferId == other.transferId && + additionalProperties == other.additionalProperties + } + + private val hashCode: Int by lazy { Objects.hash(transferId, additionalProperties) } + + override fun hashCode(): Int = hashCode + + override fun toString() = + "FedNowTransferInstruction{transferId=$transferId, additionalProperties=$additionalProperties}" + } + /** * An Inbound Funds Hold object. This field will be present in the JSON response if and only * if `category` is equal to `inbound_funds_hold`. We hold funds for certain transaction @@ -14229,6 +14482,7 @@ private constructor( category == other.category && checkDepositInstruction == other.checkDepositInstruction && checkTransferInstruction == other.checkTransferInstruction && + fedNowTransferInstruction == other.fedNowTransferInstruction && inboundFundsHold == other.inboundFundsHold && inboundWireTransferReversal == other.inboundWireTransferReversal && this.other == other.other && @@ -14248,6 +14502,7 @@ private constructor( category, checkDepositInstruction, checkTransferInstruction, + fedNowTransferInstruction, inboundFundsHold, inboundWireTransferReversal, other, @@ -14262,7 +14517,7 @@ private constructor( override fun hashCode(): Int = hashCode override fun toString() = - "Source{accountTransferInstruction=$accountTransferInstruction, achTransferInstruction=$achTransferInstruction, cardAuthorization=$cardAuthorization, cardPushTransferInstruction=$cardPushTransferInstruction, category=$category, checkDepositInstruction=$checkDepositInstruction, checkTransferInstruction=$checkTransferInstruction, inboundFundsHold=$inboundFundsHold, inboundWireTransferReversal=$inboundWireTransferReversal, other=$other, realTimePaymentsTransferInstruction=$realTimePaymentsTransferInstruction, swiftTransferInstruction=$swiftTransferInstruction, userInitiatedHold=$userInitiatedHold, wireTransferInstruction=$wireTransferInstruction, additionalProperties=$additionalProperties}" + "Source{accountTransferInstruction=$accountTransferInstruction, achTransferInstruction=$achTransferInstruction, cardAuthorization=$cardAuthorization, cardPushTransferInstruction=$cardPushTransferInstruction, category=$category, checkDepositInstruction=$checkDepositInstruction, checkTransferInstruction=$checkTransferInstruction, fedNowTransferInstruction=$fedNowTransferInstruction, inboundFundsHold=$inboundFundsHold, inboundWireTransferReversal=$inboundWireTransferReversal, other=$other, realTimePaymentsTransferInstruction=$realTimePaymentsTransferInstruction, swiftTransferInstruction=$swiftTransferInstruction, userInitiatedHold=$userInitiatedHold, wireTransferInstruction=$wireTransferInstruction, additionalProperties=$additionalProperties}" } /** Whether the Pending Transaction has been confirmed and has an associated Transaction. */ diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListParams.kt index 04ab4bde8..8b342f35f 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListParams.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListParams.kt @@ -461,6 +461,12 @@ private constructor( */ @JvmField val CHECK_TRANSFER_INSTRUCTION = of("check_transfer_instruction") + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + @JvmField val FED_NOW_TRANSFER_INSTRUCTION = of("fed_now_transfer_instruction") + /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ @JvmField val INBOUND_FUNDS_HOLD = of("inbound_funds_hold") @@ -529,6 +535,11 @@ private constructor( * `check_transfer_instruction` object. */ CHECK_TRANSFER_INSTRUCTION, + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + FED_NOW_TRANSFER_INSTRUCTION, /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ INBOUND_FUNDS_HOLD, /** User Initiated Hold: details will be under the `user_initiated_hold` object. */ @@ -594,6 +605,11 @@ private constructor( * `check_transfer_instruction` object. */ CHECK_TRANSFER_INSTRUCTION, + /** + * FedNow Transfer Instruction: details will be under the + * `fed_now_transfer_instruction` object. + */ + FED_NOW_TRANSFER_INSTRUCTION, /** Inbound Funds Hold: details will be under the `inbound_funds_hold` object. */ INBOUND_FUNDS_HOLD, /** User Initiated Hold: details will be under the `user_initiated_hold` object. */ @@ -643,6 +659,7 @@ private constructor( CARD_AUTHORIZATION -> Value.CARD_AUTHORIZATION CHECK_DEPOSIT_INSTRUCTION -> Value.CHECK_DEPOSIT_INSTRUCTION CHECK_TRANSFER_INSTRUCTION -> Value.CHECK_TRANSFER_INSTRUCTION + FED_NOW_TRANSFER_INSTRUCTION -> Value.FED_NOW_TRANSFER_INSTRUCTION INBOUND_FUNDS_HOLD -> Value.INBOUND_FUNDS_HOLD USER_INITIATED_HOLD -> Value.USER_INITIATED_HOLD REAL_TIME_PAYMENTS_TRANSFER_INSTRUCTION -> @@ -671,6 +688,7 @@ private constructor( CARD_AUTHORIZATION -> Known.CARD_AUTHORIZATION CHECK_DEPOSIT_INSTRUCTION -> Known.CHECK_DEPOSIT_INSTRUCTION CHECK_TRANSFER_INSTRUCTION -> Known.CHECK_TRANSFER_INSTRUCTION + FED_NOW_TRANSFER_INSTRUCTION -> Known.FED_NOW_TRANSFER_INSTRUCTION INBOUND_FUNDS_HOLD -> Known.INBOUND_FUNDS_HOLD USER_INITIATED_HOLD -> Known.USER_INITIATED_HOLD REAL_TIME_PAYMENTS_TRANSFER_INSTRUCTION -> diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/Transaction.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/Transaction.kt index 87202a6f5..47ec2352c 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/Transaction.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/Transaction.kt @@ -885,6 +885,7 @@ private constructor( private val checkDepositAcceptance: JsonField, private val checkDepositReturn: JsonField, private val checkTransferDeposit: JsonField, + private val fedNowTransferAcknowledgement: JsonField, private val feePayment: JsonField, private val inboundAchTransfer: JsonField, private val inboundAchTransferReturnIntention: JsonField, @@ -961,6 +962,10 @@ private constructor( @JsonProperty("check_transfer_deposit") @ExcludeMissing checkTransferDeposit: JsonField = JsonMissing.of(), + @JsonProperty("fed_now_transfer_acknowledgement") + @ExcludeMissing + fedNowTransferAcknowledgement: JsonField = + JsonMissing.of(), @JsonProperty("fee_payment") @ExcludeMissing feePayment: JsonField = JsonMissing.of(), @@ -1034,6 +1039,7 @@ private constructor( checkDepositAcceptance, checkDepositReturn, checkTransferDeposit, + fedNowTransferAcknowledgement, feePayment, inboundAchTransfer, inboundAchTransferReturnIntention, @@ -1253,6 +1259,18 @@ private constructor( fun checkTransferDeposit(): Optional = checkTransferDeposit.getOptional("check_transfer_deposit") + /** + * A FedNow Transfer Acknowledgement object. This field will be present in the JSON response + * if and only if `category` is equal to `fed_now_transfer_acknowledgement`. A FedNow + * Transfer Acknowledgement is created when a FedNow Transfer sent from Increase is + * acknowledged by the receiving bank. + * + * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if + * the server responded with an unexpected value). + */ + fun fedNowTransferAcknowledgement(): Optional = + fedNowTransferAcknowledgement.getOptional("fed_now_transfer_acknowledgement") + /** * A Fee Payment object. This field will be present in the JSON response if and only if * `category` is equal to `fee_payment`. A Fee Payment represents a payment made to @@ -1618,6 +1636,17 @@ private constructor( @ExcludeMissing fun _checkTransferDeposit(): JsonField = checkTransferDeposit + /** + * Returns the raw JSON value of [fedNowTransferAcknowledgement]. + * + * Unlike [fedNowTransferAcknowledgement], this method doesn't throw if the JSON field has + * an unexpected type. + */ + @JsonProperty("fed_now_transfer_acknowledgement") + @ExcludeMissing + fun _fedNowTransferAcknowledgement(): JsonField = + fedNowTransferAcknowledgement + /** * Returns the raw JSON value of [feePayment]. * @@ -1819,6 +1848,7 @@ private constructor( * .checkDepositAcceptance() * .checkDepositReturn() * .checkTransferDeposit() + * .fedNowTransferAcknowledgement() * .feePayment() * .inboundAchTransfer() * .inboundAchTransferReturnIntention() @@ -1861,6 +1891,8 @@ private constructor( private var checkDepositAcceptance: JsonField? = null private var checkDepositReturn: JsonField? = null private var checkTransferDeposit: JsonField? = null + private var fedNowTransferAcknowledgement: JsonField? = + null private var feePayment: JsonField? = null private var inboundAchTransfer: JsonField? = null private var inboundAchTransferReturnIntention: @@ -1907,6 +1939,7 @@ private constructor( checkDepositAcceptance = source.checkDepositAcceptance checkDepositReturn = source.checkDepositReturn checkTransferDeposit = source.checkTransferDeposit + fedNowTransferAcknowledgement = source.fedNowTransferAcknowledgement feePayment = source.feePayment inboundAchTransfer = source.inboundAchTransfer inboundAchTransferReturnIntention = source.inboundAchTransferReturnIntention @@ -2372,6 +2405,35 @@ private constructor( this.checkTransferDeposit = checkTransferDeposit } + /** + * A FedNow Transfer Acknowledgement object. This field will be present in the JSON + * response if and only if `category` is equal to `fed_now_transfer_acknowledgement`. A + * FedNow Transfer Acknowledgement is created when a FedNow Transfer sent from Increase + * is acknowledged by the receiving bank. + */ + fun fedNowTransferAcknowledgement( + fedNowTransferAcknowledgement: FedNowTransferAcknowledgement? + ) = fedNowTransferAcknowledgement(JsonField.ofNullable(fedNowTransferAcknowledgement)) + + /** + * Alias for calling [Builder.fedNowTransferAcknowledgement] with + * `fedNowTransferAcknowledgement.orElse(null)`. + */ + fun fedNowTransferAcknowledgement( + fedNowTransferAcknowledgement: Optional + ) = fedNowTransferAcknowledgement(fedNowTransferAcknowledgement.getOrNull()) + + /** + * Sets [Builder.fedNowTransferAcknowledgement] to an arbitrary JSON value. + * + * You should usually call [Builder.fedNowTransferAcknowledgement] with a well-typed + * [FedNowTransferAcknowledgement] value instead. This method is primarily for setting + * the field to an undocumented or not yet supported value. + */ + fun fedNowTransferAcknowledgement( + fedNowTransferAcknowledgement: JsonField + ) = apply { this.fedNowTransferAcknowledgement = fedNowTransferAcknowledgement } + /** * A Fee Payment object. This field will be present in the JSON response if and only if * `category` is equal to `fee_payment`. A Fee Payment represents a payment made to @@ -2880,6 +2942,7 @@ private constructor( * .checkDepositAcceptance() * .checkDepositReturn() * .checkTransferDeposit() + * .fedNowTransferAcknowledgement() * .feePayment() * .inboundAchTransfer() * .inboundAchTransferReturnIntention() @@ -2920,6 +2983,7 @@ private constructor( checkRequired("checkDepositAcceptance", checkDepositAcceptance), checkRequired("checkDepositReturn", checkDepositReturn), checkRequired("checkTransferDeposit", checkTransferDeposit), + checkRequired("fedNowTransferAcknowledgement", fedNowTransferAcknowledgement), checkRequired("feePayment", feePayment), checkRequired("inboundAchTransfer", inboundAchTransfer), checkRequired( @@ -2977,6 +3041,7 @@ private constructor( checkDepositAcceptance().ifPresent { it.validate() } checkDepositReturn().ifPresent { it.validate() } checkTransferDeposit().ifPresent { it.validate() } + fedNowTransferAcknowledgement().ifPresent { it.validate() } feePayment().ifPresent { it.validate() } inboundAchTransfer().ifPresent { it.validate() } inboundAchTransferReturnIntention().ifPresent { it.validate() } @@ -3029,6 +3094,7 @@ private constructor( (checkDepositAcceptance.asKnown().getOrNull()?.validity() ?: 0) + (checkDepositReturn.asKnown().getOrNull()?.validity() ?: 0) + (checkTransferDeposit.asKnown().getOrNull()?.validity() ?: 0) + + (fedNowTransferAcknowledgement.asKnown().getOrNull()?.validity() ?: 0) + (feePayment.asKnown().getOrNull()?.validity() ?: 0) + (inboundAchTransfer.asKnown().getOrNull()?.validity() ?: 0) + (inboundAchTransferReturnIntention.asKnown().getOrNull()?.validity() ?: 0) + @@ -28395,6 +28461,13 @@ private constructor( */ @JvmField val CHECK_DEPOSIT_RETURN = of("check_deposit_return") + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + @JvmField + val FED_NOW_TRANSFER_ACKNOWLEDGEMENT = of("fed_now_transfer_acknowledgement") + /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -28559,6 +28632,11 @@ private constructor( * Check Deposit Return: details will be under the `check_deposit_return` object. */ CHECK_DEPOSIT_RETURN, + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + FED_NOW_TRANSFER_ACKNOWLEDGEMENT, /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -28702,6 +28780,11 @@ private constructor( * Check Deposit Return: details will be under the `check_deposit_return` object. */ CHECK_DEPOSIT_RETURN, + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + FED_NOW_TRANSFER_ACKNOWLEDGEMENT, /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -28813,6 +28896,7 @@ private constructor( CARD_REVENUE_PAYMENT -> Value.CARD_REVENUE_PAYMENT CHECK_DEPOSIT_ACCEPTANCE -> Value.CHECK_DEPOSIT_ACCEPTANCE CHECK_DEPOSIT_RETURN -> Value.CHECK_DEPOSIT_RETURN + FED_NOW_TRANSFER_ACKNOWLEDGEMENT -> Value.FED_NOW_TRANSFER_ACKNOWLEDGEMENT CHECK_TRANSFER_DEPOSIT -> Value.CHECK_TRANSFER_DEPOSIT FEE_PAYMENT -> Value.FEE_PAYMENT INBOUND_ACH_TRANSFER -> Value.INBOUND_ACH_TRANSFER @@ -28864,6 +28948,7 @@ private constructor( CARD_REVENUE_PAYMENT -> Known.CARD_REVENUE_PAYMENT CHECK_DEPOSIT_ACCEPTANCE -> Known.CHECK_DEPOSIT_ACCEPTANCE CHECK_DEPOSIT_RETURN -> Known.CHECK_DEPOSIT_RETURN + FED_NOW_TRANSFER_ACKNOWLEDGEMENT -> Known.FED_NOW_TRANSFER_ACKNOWLEDGEMENT CHECK_TRANSFER_DEPOSIT -> Known.CHECK_TRANSFER_DEPOSIT FEE_PAYMENT -> Known.FEE_PAYMENT INBOUND_ACH_TRANSFER -> Known.INBOUND_ACH_TRANSFER @@ -31327,6 +31412,185 @@ private constructor( "CheckTransferDeposit{backImageFileId=$backImageFileId, bankOfFirstDepositRoutingNumber=$bankOfFirstDepositRoutingNumber, depositedAt=$depositedAt, frontImageFileId=$frontImageFileId, inboundCheckDepositId=$inboundCheckDepositId, transactionId=$transactionId, transferId=$transferId, type=$type, additionalProperties=$additionalProperties}" } + /** + * A FedNow Transfer Acknowledgement object. This field will be present in the JSON response + * if and only if `category` is equal to `fed_now_transfer_acknowledgement`. A FedNow + * Transfer Acknowledgement is created when a FedNow Transfer sent from Increase is + * acknowledged by the receiving bank. + */ + class FedNowTransferAcknowledgement + private constructor( + private val transferId: JsonField, + private val additionalProperties: MutableMap, + ) { + + @JsonCreator + private constructor( + @JsonProperty("transfer_id") + @ExcludeMissing + transferId: JsonField = JsonMissing.of() + ) : this(transferId, mutableMapOf()) + + /** + * The identifier of the FedNow Transfer that led to this Transaction. + * + * @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 transferId(): String = transferId.getRequired("transfer_id") + + /** + * Returns the raw JSON value of [transferId]. + * + * Unlike [transferId], this method doesn't throw if the JSON field has an unexpected + * type. + */ + @JsonProperty("transfer_id") + @ExcludeMissing + fun _transferId(): JsonField = transferId + + @JsonAnySetter + private fun putAdditionalProperty(key: String, value: JsonValue) { + additionalProperties.put(key, value) + } + + @JsonAnyGetter + @ExcludeMissing + fun _additionalProperties(): Map = + Collections.unmodifiableMap(additionalProperties) + + fun toBuilder() = Builder().from(this) + + companion object { + + /** + * Returns a mutable builder for constructing an instance of + * [FedNowTransferAcknowledgement]. + * + * The following fields are required: + * ```java + * .transferId() + * ``` + */ + @JvmStatic fun builder() = Builder() + } + + /** A builder for [FedNowTransferAcknowledgement]. */ + class Builder internal constructor() { + + private var transferId: JsonField? = null + private var additionalProperties: MutableMap = mutableMapOf() + + @JvmSynthetic + internal fun from(fedNowTransferAcknowledgement: FedNowTransferAcknowledgement) = + apply { + transferId = fedNowTransferAcknowledgement.transferId + additionalProperties = + fedNowTransferAcknowledgement.additionalProperties.toMutableMap() + } + + /** The identifier of the FedNow Transfer that led to this Transaction. */ + fun transferId(transferId: String) = transferId(JsonField.of(transferId)) + + /** + * Sets [Builder.transferId] to an arbitrary JSON value. + * + * You should usually call [Builder.transferId] with a well-typed [String] value + * instead. This method is primarily for setting the field to an undocumented or not + * yet supported value. + */ + fun transferId(transferId: JsonField) = apply { + this.transferId = transferId + } + + fun additionalProperties(additionalProperties: Map) = apply { + this.additionalProperties.clear() + putAllAdditionalProperties(additionalProperties) + } + + fun putAdditionalProperty(key: String, value: JsonValue) = apply { + additionalProperties.put(key, value) + } + + fun putAllAdditionalProperties(additionalProperties: Map) = + apply { + this.additionalProperties.putAll(additionalProperties) + } + + fun removeAdditionalProperty(key: String) = apply { + additionalProperties.remove(key) + } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + + /** + * Returns an immutable instance of [FedNowTransferAcknowledgement]. + * + * Further updates to this [Builder] will not mutate the returned instance. + * + * The following fields are required: + * ```java + * .transferId() + * ``` + * + * @throws IllegalStateException if any required field is unset. + */ + fun build(): FedNowTransferAcknowledgement = + FedNowTransferAcknowledgement( + checkRequired("transferId", transferId), + additionalProperties.toMutableMap(), + ) + } + + private var validated: Boolean = false + + fun validate(): FedNowTransferAcknowledgement = apply { + if (validated) { + return@apply + } + + transferId() + 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 (transferId.asKnown().isPresent) 1 else 0) + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return other is FedNowTransferAcknowledgement && + transferId == other.transferId && + additionalProperties == other.additionalProperties + } + + private val hashCode: Int by lazy { Objects.hash(transferId, additionalProperties) } + + override fun hashCode(): Int = hashCode + + override fun toString() = + "FedNowTransferAcknowledgement{transferId=$transferId, additionalProperties=$additionalProperties}" + } + /** * A Fee Payment object. This field will be present in the JSON response if and only if * `category` is equal to `fee_payment`. A Fee Payment represents a payment made to @@ -39612,6 +39876,7 @@ private constructor( checkDepositAcceptance == other.checkDepositAcceptance && checkDepositReturn == other.checkDepositReturn && checkTransferDeposit == other.checkTransferDeposit && + fedNowTransferAcknowledgement == other.fedNowTransferAcknowledgement && feePayment == other.feePayment && inboundAchTransfer == other.inboundAchTransfer && inboundAchTransferReturnIntention == other.inboundAchTransferReturnIntention && @@ -39653,6 +39918,7 @@ private constructor( checkDepositAcceptance, checkDepositReturn, checkTransferDeposit, + fedNowTransferAcknowledgement, feePayment, inboundAchTransfer, inboundAchTransferReturnIntention, @@ -39677,7 +39943,7 @@ private constructor( override fun hashCode(): Int = hashCode override fun toString() = - "Source{accountRevenuePayment=$accountRevenuePayment, accountTransferIntention=$accountTransferIntention, achTransferIntention=$achTransferIntention, achTransferRejection=$achTransferRejection, achTransferReturn=$achTransferReturn, cardDisputeAcceptance=$cardDisputeAcceptance, cardDisputeFinancial=$cardDisputeFinancial, cardDisputeLoss=$cardDisputeLoss, cardPushTransferAcceptance=$cardPushTransferAcceptance, cardRefund=$cardRefund, cardRevenuePayment=$cardRevenuePayment, cardSettlement=$cardSettlement, cashbackPayment=$cashbackPayment, category=$category, checkDepositAcceptance=$checkDepositAcceptance, checkDepositReturn=$checkDepositReturn, checkTransferDeposit=$checkTransferDeposit, feePayment=$feePayment, inboundAchTransfer=$inboundAchTransfer, inboundAchTransferReturnIntention=$inboundAchTransferReturnIntention, inboundCheckAdjustment=$inboundCheckAdjustment, inboundCheckDepositReturnIntention=$inboundCheckDepositReturnIntention, inboundRealTimePaymentsTransferConfirmation=$inboundRealTimePaymentsTransferConfirmation, inboundWireReversal=$inboundWireReversal, inboundWireTransfer=$inboundWireTransfer, inboundWireTransferReversal=$inboundWireTransferReversal, interestPayment=$interestPayment, internalSource=$internalSource, other=$other, realTimePaymentsTransferAcknowledgement=$realTimePaymentsTransferAcknowledgement, sampleFunds=$sampleFunds, swiftTransferIntention=$swiftTransferIntention, swiftTransferReturn=$swiftTransferReturn, wireTransferIntention=$wireTransferIntention, additionalProperties=$additionalProperties}" + "Source{accountRevenuePayment=$accountRevenuePayment, accountTransferIntention=$accountTransferIntention, achTransferIntention=$achTransferIntention, achTransferRejection=$achTransferRejection, achTransferReturn=$achTransferReturn, cardDisputeAcceptance=$cardDisputeAcceptance, cardDisputeFinancial=$cardDisputeFinancial, cardDisputeLoss=$cardDisputeLoss, cardPushTransferAcceptance=$cardPushTransferAcceptance, cardRefund=$cardRefund, cardRevenuePayment=$cardRevenuePayment, cardSettlement=$cardSettlement, cashbackPayment=$cashbackPayment, category=$category, checkDepositAcceptance=$checkDepositAcceptance, checkDepositReturn=$checkDepositReturn, checkTransferDeposit=$checkTransferDeposit, fedNowTransferAcknowledgement=$fedNowTransferAcknowledgement, feePayment=$feePayment, inboundAchTransfer=$inboundAchTransfer, inboundAchTransferReturnIntention=$inboundAchTransferReturnIntention, inboundCheckAdjustment=$inboundCheckAdjustment, inboundCheckDepositReturnIntention=$inboundCheckDepositReturnIntention, inboundRealTimePaymentsTransferConfirmation=$inboundRealTimePaymentsTransferConfirmation, inboundWireReversal=$inboundWireReversal, inboundWireTransfer=$inboundWireTransfer, inboundWireTransferReversal=$inboundWireTransferReversal, interestPayment=$interestPayment, internalSource=$internalSource, other=$other, realTimePaymentsTransferAcknowledgement=$realTimePaymentsTransferAcknowledgement, sampleFunds=$sampleFunds, swiftTransferIntention=$swiftTransferIntention, swiftTransferReturn=$swiftTransferReturn, wireTransferIntention=$wireTransferIntention, additionalProperties=$additionalProperties}" } /** diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/TransactionListParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/TransactionListParams.kt index 920afe2f2..89d87c916 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/TransactionListParams.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/transactions/TransactionListParams.kt @@ -480,6 +480,13 @@ private constructor( */ @JvmField val CHECK_DEPOSIT_RETURN = of("check_deposit_return") + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + @JvmField + val FED_NOW_TRANSFER_ACKNOWLEDGEMENT = of("fed_now_transfer_acknowledgement") + /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -644,6 +651,11 @@ private constructor( * Check Deposit Return: details will be under the `check_deposit_return` object. */ CHECK_DEPOSIT_RETURN, + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + FED_NOW_TRANSFER_ACKNOWLEDGEMENT, /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -787,6 +799,11 @@ private constructor( * Check Deposit Return: details will be under the `check_deposit_return` object. */ CHECK_DEPOSIT_RETURN, + /** + * FedNow Transfer Acknowledgement: details will be under the + * `fed_now_transfer_acknowledgement` object. + */ + FED_NOW_TRANSFER_ACKNOWLEDGEMENT, /** * Check Transfer Deposit: details will be under the `check_transfer_deposit` * object. @@ -896,6 +913,7 @@ private constructor( CARD_REVENUE_PAYMENT -> Value.CARD_REVENUE_PAYMENT CHECK_DEPOSIT_ACCEPTANCE -> Value.CHECK_DEPOSIT_ACCEPTANCE CHECK_DEPOSIT_RETURN -> Value.CHECK_DEPOSIT_RETURN + FED_NOW_TRANSFER_ACKNOWLEDGEMENT -> Value.FED_NOW_TRANSFER_ACKNOWLEDGEMENT CHECK_TRANSFER_DEPOSIT -> Value.CHECK_TRANSFER_DEPOSIT FEE_PAYMENT -> Value.FEE_PAYMENT INBOUND_ACH_TRANSFER -> Value.INBOUND_ACH_TRANSFER @@ -947,6 +965,7 @@ private constructor( CARD_REVENUE_PAYMENT -> Known.CARD_REVENUE_PAYMENT CHECK_DEPOSIT_ACCEPTANCE -> Known.CHECK_DEPOSIT_ACCEPTANCE CHECK_DEPOSIT_RETURN -> Known.CHECK_DEPOSIT_RETURN + FED_NOW_TRANSFER_ACKNOWLEDGEMENT -> Known.FED_NOW_TRANSFER_ACKNOWLEDGEMENT CHECK_TRANSFER_DEPOSIT -> Known.CHECK_TRANSFER_DEPOSIT FEE_PAYMENT -> Known.FEE_PAYMENT INBOUND_ACH_TRANSFER -> Known.INBOUND_ACH_TRANSFER diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListPageResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListPageResponseTest.kt index 21a944748..eb8a0e5af 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListPageResponseTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionListPageResponseTest.kt @@ -295,6 +295,11 @@ internal class PendingTransactionListPageResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -630,6 +635,11 @@ internal class PendingTransactionListPageResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -976,6 +986,11 @@ internal class PendingTransactionListPageResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionTest.kt index 133f9b780..f952b6e0c 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/pendingtransactions/PendingTransactionTest.kt @@ -270,6 +270,11 @@ internal class PendingTransactionTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -571,6 +576,11 @@ internal class PendingTransactionTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -879,6 +889,11 @@ internal class PendingTransactionTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/cardauthorizations/CardAuthorizationCreateResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/cardauthorizations/CardAuthorizationCreateResponseTest.kt index d3738ff48..931627ca6 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/cardauthorizations/CardAuthorizationCreateResponseTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/cardauthorizations/CardAuthorizationCreateResponseTest.kt @@ -623,6 +623,11 @@ internal class CardAuthorizationCreateResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -1279,6 +1284,11 @@ internal class CardAuthorizationCreateResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) @@ -1954,6 +1964,11 @@ internal class CardAuthorizationCreateResponseTest { .transferId("check_transfer_30b43acfu9vw8fyc4f5") .build() ) + .fedNowTransferInstruction( + PendingTransaction.Source.FedNowTransferInstruction.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .inboundFundsHold( PendingTransaction.Source.InboundFundsHold.builder() .amount(100L) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionListPageResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionListPageResponseTest.kt index f8adbfb58..a4b2efab6 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionListPageResponseTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionListPageResponseTest.kt @@ -704,6 +704,11 @@ internal class TransactionListPageResponseTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) @@ -1559,6 +1564,11 @@ internal class TransactionListPageResponseTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) @@ -2451,6 +2461,11 @@ internal class TransactionListPageResponseTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionTest.kt index 7b2775442..e4ba8b3c2 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/transactions/TransactionTest.kt @@ -635,6 +635,11 @@ internal class TransactionTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) @@ -1399,6 +1404,11 @@ internal class TransactionTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) @@ -2200,6 +2210,11 @@ internal class TransactionTest { ) .build() ) + .fedNowTransferAcknowledgement( + Transaction.Source.FedNowTransferAcknowledgement.builder() + .transferId("fed_now_transfer_nb1hjm6cgsdf3or5u2fh") + .build() + ) .feePayment( Transaction.Source.FeePayment.builder() .amount(100L) diff --git a/scripts/fast-format b/scripts/fast-format new file mode 100755 index 000000000..e16bfc56f --- /dev/null +++ b/scripts/fast-format @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -euo pipefail + +cd "$(dirname "$0")/.." + +if [ $# -eq 0 ]; then + echo "Usage: $0 [additional-formatter-args...]" + echo "The file should contain one file path per line" + exit 1 +fi + +FILE_LIST="$1" + +if [ ! -f "$FILE_LIST" ]; then + echo "Error: File '$FILE_LIST' not found" + exit 1 +fi + +if ! command -v ktfmt-fast-format &> /dev/null; then + echo "Error: ktfmt-fast-format not found" + exit 1 +fi + +# Process Kotlin files +kt_files=$(grep -E '\.kt$' "$FILE_LIST" | grep -v './buildSrc/build/') +kt_files=$(grep -E '\.kt$' "$FILE_LIST" | grep -v './buildSrc/build/') +echo "==> Found $(echo "$kt_files" | wc -l) Kotlin files:" + +if [[ -n "$kt_files" ]]; then + echo "==> will format Kotlin files" + echo "$kt_files" | tr '\n' '\0' | xargs -0 ktfmt-fast-format --kotlinlang-style "$@" +else + echo "No Kotlin files to format -- expected outcome during incremental formatting" +fi + +# TODO(mbudayr): support palantir-java-format +# Process Java files +# grep -E '\.java$' "$FILE_LIST" | grep -v './buildSrc/build/' | tr '\n' '\0' | xargs -0 -r palantir-java-format --palantir --replace "$@"