com.increase.api.models.InboundWireDrawdownRequest.kt Maven / Gradle / Ivy
The newest version!
// File generated from our OpenAPI spec by Stainless.
package com.increase.api.models
import com.fasterxml.jackson.annotation.JsonAnyGetter
import com.fasterxml.jackson.annotation.JsonAnySetter
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.increase.api.core.Enum
import com.increase.api.core.ExcludeMissing
import com.increase.api.core.JsonField
import com.increase.api.core.JsonMissing
import com.increase.api.core.JsonValue
import com.increase.api.core.NoAutoDetect
import com.increase.api.core.toUnmodifiable
import com.increase.api.errors.IncreaseInvalidDataException
import java.time.OffsetDateTime
import java.util.Objects
/**
* Inbound wire drawdown requests are requests from someone else to send them a wire. This feature
* is in beta; reach out to [[email protected]](mailto:[email protected]) to learn more.
*/
@JsonDeserialize(builder = InboundWireDrawdownRequest.Builder::class)
@NoAutoDetect
class InboundWireDrawdownRequest
private constructor(
private val amount: JsonField,
private val beneficiaryAccountNumber: JsonField,
private val beneficiaryAddressLine1: JsonField,
private val beneficiaryAddressLine2: JsonField,
private val beneficiaryAddressLine3: JsonField,
private val beneficiaryName: JsonField,
private val beneficiaryRoutingNumber: JsonField,
private val createdAt: JsonField,
private val currency: JsonField,
private val id: JsonField,
private val messageToRecipient: JsonField,
private val originatorAccountNumber: JsonField,
private val originatorAddressLine1: JsonField,
private val originatorAddressLine2: JsonField,
private val originatorAddressLine3: JsonField,
private val originatorName: JsonField,
private val originatorRoutingNumber: JsonField,
private val originatorToBeneficiaryInformationLine1: JsonField,
private val originatorToBeneficiaryInformationLine2: JsonField,
private val originatorToBeneficiaryInformationLine3: JsonField,
private val originatorToBeneficiaryInformationLine4: JsonField,
private val recipientAccountNumberId: JsonField,
private val type: JsonField,
private val additionalProperties: Map,
) {
private var validated: Boolean = false
private var hashCode: Int = 0
/** The amount being requested in cents. */
fun amount(): Long = amount.getRequired("amount")
/** The drawdown request's beneficiary's account number. */
fun beneficiaryAccountNumber(): String =
beneficiaryAccountNumber.getRequired("beneficiary_account_number")
/** Line 1 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine1(): String? =
beneficiaryAddressLine1.getNullable("beneficiary_address_line1")
/** Line 2 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine2(): String? =
beneficiaryAddressLine2.getNullable("beneficiary_address_line2")
/** Line 3 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine3(): String? =
beneficiaryAddressLine3.getNullable("beneficiary_address_line3")
/** The drawdown request's beneficiary's name. */
fun beneficiaryName(): String? = beneficiaryName.getNullable("beneficiary_name")
/** The drawdown request's beneficiary's routing number. */
fun beneficiaryRoutingNumber(): String =
beneficiaryRoutingNumber.getRequired("beneficiary_routing_number")
/**
* The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the inbound
* wire drawdown requested was created.
*/
fun createdAt(): OffsetDateTime = createdAt.getRequired("created_at")
/**
* The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the amount being requested.
* Will always be "USD".
*/
fun currency(): String = currency.getRequired("currency")
/** The Wire drawdown request identifier. */
fun id(): String = id.getRequired("id")
/** A message from the drawdown request's originator. */
fun messageToRecipient(): String? = messageToRecipient.getNullable("message_to_recipient")
/** The drawdown request's originator's account number. */
fun originatorAccountNumber(): String =
originatorAccountNumber.getRequired("originator_account_number")
/** Line 1 of the drawdown request's originator's address. */
fun originatorAddressLine1(): String? =
originatorAddressLine1.getNullable("originator_address_line1")
/** Line 2 of the drawdown request's originator's address. */
fun originatorAddressLine2(): String? =
originatorAddressLine2.getNullable("originator_address_line2")
/** Line 3 of the drawdown request's originator's address. */
fun originatorAddressLine3(): String? =
originatorAddressLine3.getNullable("originator_address_line3")
/** The drawdown request's originator's name. */
fun originatorName(): String? = originatorName.getNullable("originator_name")
/** The drawdown request's originator's routing number. */
fun originatorRoutingNumber(): String =
originatorRoutingNumber.getRequired("originator_routing_number")
/** Line 1 of the information conveyed from the originator of the message to the beneficiary. */
fun originatorToBeneficiaryInformationLine1(): String? =
originatorToBeneficiaryInformationLine1.getNullable(
"originator_to_beneficiary_information_line1"
)
/** Line 2 of the information conveyed from the originator of the message to the beneficiary. */
fun originatorToBeneficiaryInformationLine2(): String? =
originatorToBeneficiaryInformationLine2.getNullable(
"originator_to_beneficiary_information_line2"
)
/** Line 3 of the information conveyed from the originator of the message to the beneficiary. */
fun originatorToBeneficiaryInformationLine3(): String? =
originatorToBeneficiaryInformationLine3.getNullable(
"originator_to_beneficiary_information_line3"
)
/** Line 4 of the information conveyed from the originator of the message to the beneficiary. */
fun originatorToBeneficiaryInformationLine4(): String? =
originatorToBeneficiaryInformationLine4.getNullable(
"originator_to_beneficiary_information_line4"
)
/**
* The Account Number from which the recipient of this request is being requested to send funds.
*/
fun recipientAccountNumberId(): String =
recipientAccountNumberId.getRequired("recipient_account_number_id")
/**
* A constant representing the object's type. For this resource it will always be
* `inbound_wire_drawdown_request`.
*/
fun type(): Type = type.getRequired("type")
/** The amount being requested in cents. */
@JsonProperty("amount") @ExcludeMissing fun _amount() = amount
/** The drawdown request's beneficiary's account number. */
@JsonProperty("beneficiary_account_number")
@ExcludeMissing
fun _beneficiaryAccountNumber() = beneficiaryAccountNumber
/** Line 1 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line1")
@ExcludeMissing
fun _beneficiaryAddressLine1() = beneficiaryAddressLine1
/** Line 2 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line2")
@ExcludeMissing
fun _beneficiaryAddressLine2() = beneficiaryAddressLine2
/** Line 3 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line3")
@ExcludeMissing
fun _beneficiaryAddressLine3() = beneficiaryAddressLine3
/** The drawdown request's beneficiary's name. */
@JsonProperty("beneficiary_name") @ExcludeMissing fun _beneficiaryName() = beneficiaryName
/** The drawdown request's beneficiary's routing number. */
@JsonProperty("beneficiary_routing_number")
@ExcludeMissing
fun _beneficiaryRoutingNumber() = beneficiaryRoutingNumber
/**
* The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the inbound
* wire drawdown requested was created.
*/
@JsonProperty("created_at") @ExcludeMissing fun _createdAt() = createdAt
/**
* The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the amount being requested.
* Will always be "USD".
*/
@JsonProperty("currency") @ExcludeMissing fun _currency() = currency
/** The Wire drawdown request identifier. */
@JsonProperty("id") @ExcludeMissing fun _id() = id
/** A message from the drawdown request's originator. */
@JsonProperty("message_to_recipient")
@ExcludeMissing
fun _messageToRecipient() = messageToRecipient
/** The drawdown request's originator's account number. */
@JsonProperty("originator_account_number")
@ExcludeMissing
fun _originatorAccountNumber() = originatorAccountNumber
/** Line 1 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line1")
@ExcludeMissing
fun _originatorAddressLine1() = originatorAddressLine1
/** Line 2 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line2")
@ExcludeMissing
fun _originatorAddressLine2() = originatorAddressLine2
/** Line 3 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line3")
@ExcludeMissing
fun _originatorAddressLine3() = originatorAddressLine3
/** The drawdown request's originator's name. */
@JsonProperty("originator_name") @ExcludeMissing fun _originatorName() = originatorName
/** The drawdown request's originator's routing number. */
@JsonProperty("originator_routing_number")
@ExcludeMissing
fun _originatorRoutingNumber() = originatorRoutingNumber
/** Line 1 of the information conveyed from the originator of the message to the beneficiary. */
@JsonProperty("originator_to_beneficiary_information_line1")
@ExcludeMissing
fun _originatorToBeneficiaryInformationLine1() = originatorToBeneficiaryInformationLine1
/** Line 2 of the information conveyed from the originator of the message to the beneficiary. */
@JsonProperty("originator_to_beneficiary_information_line2")
@ExcludeMissing
fun _originatorToBeneficiaryInformationLine2() = originatorToBeneficiaryInformationLine2
/** Line 3 of the information conveyed from the originator of the message to the beneficiary. */
@JsonProperty("originator_to_beneficiary_information_line3")
@ExcludeMissing
fun _originatorToBeneficiaryInformationLine3() = originatorToBeneficiaryInformationLine3
/** Line 4 of the information conveyed from the originator of the message to the beneficiary. */
@JsonProperty("originator_to_beneficiary_information_line4")
@ExcludeMissing
fun _originatorToBeneficiaryInformationLine4() = originatorToBeneficiaryInformationLine4
/**
* The Account Number from which the recipient of this request is being requested to send funds.
*/
@JsonProperty("recipient_account_number_id")
@ExcludeMissing
fun _recipientAccountNumberId() = recipientAccountNumberId
/**
* A constant representing the object's type. For this resource it will always be
* `inbound_wire_drawdown_request`.
*/
@JsonProperty("type") @ExcludeMissing fun _type() = type
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun validate(): InboundWireDrawdownRequest = apply {
if (!validated) {
amount()
beneficiaryAccountNumber()
beneficiaryAddressLine1()
beneficiaryAddressLine2()
beneficiaryAddressLine3()
beneficiaryName()
beneficiaryRoutingNumber()
createdAt()
currency()
id()
messageToRecipient()
originatorAccountNumber()
originatorAddressLine1()
originatorAddressLine2()
originatorAddressLine3()
originatorName()
originatorRoutingNumber()
originatorToBeneficiaryInformationLine1()
originatorToBeneficiaryInformationLine2()
originatorToBeneficiaryInformationLine3()
originatorToBeneficiaryInformationLine4()
recipientAccountNumberId()
type()
validated = true
}
}
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is InboundWireDrawdownRequest &&
this.amount == other.amount &&
this.beneficiaryAccountNumber == other.beneficiaryAccountNumber &&
this.beneficiaryAddressLine1 == other.beneficiaryAddressLine1 &&
this.beneficiaryAddressLine2 == other.beneficiaryAddressLine2 &&
this.beneficiaryAddressLine3 == other.beneficiaryAddressLine3 &&
this.beneficiaryName == other.beneficiaryName &&
this.beneficiaryRoutingNumber == other.beneficiaryRoutingNumber &&
this.createdAt == other.createdAt &&
this.currency == other.currency &&
this.id == other.id &&
this.messageToRecipient == other.messageToRecipient &&
this.originatorAccountNumber == other.originatorAccountNumber &&
this.originatorAddressLine1 == other.originatorAddressLine1 &&
this.originatorAddressLine2 == other.originatorAddressLine2 &&
this.originatorAddressLine3 == other.originatorAddressLine3 &&
this.originatorName == other.originatorName &&
this.originatorRoutingNumber == other.originatorRoutingNumber &&
this.originatorToBeneficiaryInformationLine1 ==
other.originatorToBeneficiaryInformationLine1 &&
this.originatorToBeneficiaryInformationLine2 ==
other.originatorToBeneficiaryInformationLine2 &&
this.originatorToBeneficiaryInformationLine3 ==
other.originatorToBeneficiaryInformationLine3 &&
this.originatorToBeneficiaryInformationLine4 ==
other.originatorToBeneficiaryInformationLine4 &&
this.recipientAccountNumberId == other.recipientAccountNumberId &&
this.type == other.type &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode =
Objects.hash(
amount,
beneficiaryAccountNumber,
beneficiaryAddressLine1,
beneficiaryAddressLine2,
beneficiaryAddressLine3,
beneficiaryName,
beneficiaryRoutingNumber,
createdAt,
currency,
id,
messageToRecipient,
originatorAccountNumber,
originatorAddressLine1,
originatorAddressLine2,
originatorAddressLine3,
originatorName,
originatorRoutingNumber,
originatorToBeneficiaryInformationLine1,
originatorToBeneficiaryInformationLine2,
originatorToBeneficiaryInformationLine3,
originatorToBeneficiaryInformationLine4,
recipientAccountNumberId,
type,
additionalProperties,
)
}
return hashCode
}
override fun toString() =
"InboundWireDrawdownRequest{amount=$amount, beneficiaryAccountNumber=$beneficiaryAccountNumber, beneficiaryAddressLine1=$beneficiaryAddressLine1, beneficiaryAddressLine2=$beneficiaryAddressLine2, beneficiaryAddressLine3=$beneficiaryAddressLine3, beneficiaryName=$beneficiaryName, beneficiaryRoutingNumber=$beneficiaryRoutingNumber, createdAt=$createdAt, currency=$currency, id=$id, messageToRecipient=$messageToRecipient, originatorAccountNumber=$originatorAccountNumber, originatorAddressLine1=$originatorAddressLine1, originatorAddressLine2=$originatorAddressLine2, originatorAddressLine3=$originatorAddressLine3, originatorName=$originatorName, originatorRoutingNumber=$originatorRoutingNumber, originatorToBeneficiaryInformationLine1=$originatorToBeneficiaryInformationLine1, originatorToBeneficiaryInformationLine2=$originatorToBeneficiaryInformationLine2, originatorToBeneficiaryInformationLine3=$originatorToBeneficiaryInformationLine3, originatorToBeneficiaryInformationLine4=$originatorToBeneficiaryInformationLine4, recipientAccountNumberId=$recipientAccountNumberId, type=$type, additionalProperties=$additionalProperties}"
companion object {
fun builder() = Builder()
}
class Builder {
private var amount: JsonField = JsonMissing.of()
private var beneficiaryAccountNumber: JsonField = JsonMissing.of()
private var beneficiaryAddressLine1: JsonField = JsonMissing.of()
private var beneficiaryAddressLine2: JsonField = JsonMissing.of()
private var beneficiaryAddressLine3: JsonField = JsonMissing.of()
private var beneficiaryName: JsonField = JsonMissing.of()
private var beneficiaryRoutingNumber: JsonField = JsonMissing.of()
private var createdAt: JsonField = JsonMissing.of()
private var currency: JsonField = JsonMissing.of()
private var id: JsonField = JsonMissing.of()
private var messageToRecipient: JsonField = JsonMissing.of()
private var originatorAccountNumber: JsonField = JsonMissing.of()
private var originatorAddressLine1: JsonField = JsonMissing.of()
private var originatorAddressLine2: JsonField = JsonMissing.of()
private var originatorAddressLine3: JsonField = JsonMissing.of()
private var originatorName: JsonField = JsonMissing.of()
private var originatorRoutingNumber: JsonField = JsonMissing.of()
private var originatorToBeneficiaryInformationLine1: JsonField = JsonMissing.of()
private var originatorToBeneficiaryInformationLine2: JsonField = JsonMissing.of()
private var originatorToBeneficiaryInformationLine3: JsonField = JsonMissing.of()
private var originatorToBeneficiaryInformationLine4: JsonField = JsonMissing.of()
private var recipientAccountNumberId: JsonField = JsonMissing.of()
private var type: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(inboundWireDrawdownRequest: InboundWireDrawdownRequest) = apply {
this.amount = inboundWireDrawdownRequest.amount
this.beneficiaryAccountNumber = inboundWireDrawdownRequest.beneficiaryAccountNumber
this.beneficiaryAddressLine1 = inboundWireDrawdownRequest.beneficiaryAddressLine1
this.beneficiaryAddressLine2 = inboundWireDrawdownRequest.beneficiaryAddressLine2
this.beneficiaryAddressLine3 = inboundWireDrawdownRequest.beneficiaryAddressLine3
this.beneficiaryName = inboundWireDrawdownRequest.beneficiaryName
this.beneficiaryRoutingNumber = inboundWireDrawdownRequest.beneficiaryRoutingNumber
this.createdAt = inboundWireDrawdownRequest.createdAt
this.currency = inboundWireDrawdownRequest.currency
this.id = inboundWireDrawdownRequest.id
this.messageToRecipient = inboundWireDrawdownRequest.messageToRecipient
this.originatorAccountNumber = inboundWireDrawdownRequest.originatorAccountNumber
this.originatorAddressLine1 = inboundWireDrawdownRequest.originatorAddressLine1
this.originatorAddressLine2 = inboundWireDrawdownRequest.originatorAddressLine2
this.originatorAddressLine3 = inboundWireDrawdownRequest.originatorAddressLine3
this.originatorName = inboundWireDrawdownRequest.originatorName
this.originatorRoutingNumber = inboundWireDrawdownRequest.originatorRoutingNumber
this.originatorToBeneficiaryInformationLine1 =
inboundWireDrawdownRequest.originatorToBeneficiaryInformationLine1
this.originatorToBeneficiaryInformationLine2 =
inboundWireDrawdownRequest.originatorToBeneficiaryInformationLine2
this.originatorToBeneficiaryInformationLine3 =
inboundWireDrawdownRequest.originatorToBeneficiaryInformationLine3
this.originatorToBeneficiaryInformationLine4 =
inboundWireDrawdownRequest.originatorToBeneficiaryInformationLine4
this.recipientAccountNumberId = inboundWireDrawdownRequest.recipientAccountNumberId
this.type = inboundWireDrawdownRequest.type
additionalProperties(inboundWireDrawdownRequest.additionalProperties)
}
/** The amount being requested in cents. */
fun amount(amount: Long) = amount(JsonField.of(amount))
/** The amount being requested in cents. */
@JsonProperty("amount")
@ExcludeMissing
fun amount(amount: JsonField) = apply { this.amount = amount }
/** The drawdown request's beneficiary's account number. */
fun beneficiaryAccountNumber(beneficiaryAccountNumber: String) =
beneficiaryAccountNumber(JsonField.of(beneficiaryAccountNumber))
/** The drawdown request's beneficiary's account number. */
@JsonProperty("beneficiary_account_number")
@ExcludeMissing
fun beneficiaryAccountNumber(beneficiaryAccountNumber: JsonField) = apply {
this.beneficiaryAccountNumber = beneficiaryAccountNumber
}
/** Line 1 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine1(beneficiaryAddressLine1: String) =
beneficiaryAddressLine1(JsonField.of(beneficiaryAddressLine1))
/** Line 1 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line1")
@ExcludeMissing
fun beneficiaryAddressLine1(beneficiaryAddressLine1: JsonField) = apply {
this.beneficiaryAddressLine1 = beneficiaryAddressLine1
}
/** Line 2 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine2(beneficiaryAddressLine2: String) =
beneficiaryAddressLine2(JsonField.of(beneficiaryAddressLine2))
/** Line 2 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line2")
@ExcludeMissing
fun beneficiaryAddressLine2(beneficiaryAddressLine2: JsonField) = apply {
this.beneficiaryAddressLine2 = beneficiaryAddressLine2
}
/** Line 3 of the drawdown request's beneficiary's address. */
fun beneficiaryAddressLine3(beneficiaryAddressLine3: String) =
beneficiaryAddressLine3(JsonField.of(beneficiaryAddressLine3))
/** Line 3 of the drawdown request's beneficiary's address. */
@JsonProperty("beneficiary_address_line3")
@ExcludeMissing
fun beneficiaryAddressLine3(beneficiaryAddressLine3: JsonField) = apply {
this.beneficiaryAddressLine3 = beneficiaryAddressLine3
}
/** The drawdown request's beneficiary's name. */
fun beneficiaryName(beneficiaryName: String) =
beneficiaryName(JsonField.of(beneficiaryName))
/** The drawdown request's beneficiary's name. */
@JsonProperty("beneficiary_name")
@ExcludeMissing
fun beneficiaryName(beneficiaryName: JsonField) = apply {
this.beneficiaryName = beneficiaryName
}
/** The drawdown request's beneficiary's routing number. */
fun beneficiaryRoutingNumber(beneficiaryRoutingNumber: String) =
beneficiaryRoutingNumber(JsonField.of(beneficiaryRoutingNumber))
/** The drawdown request's beneficiary's routing number. */
@JsonProperty("beneficiary_routing_number")
@ExcludeMissing
fun beneficiaryRoutingNumber(beneficiaryRoutingNumber: JsonField) = apply {
this.beneficiaryRoutingNumber = beneficiaryRoutingNumber
}
/**
* The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the inbound
* wire drawdown requested was created.
*/
fun createdAt(createdAt: OffsetDateTime) = createdAt(JsonField.of(createdAt))
/**
* The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the inbound
* wire drawdown requested was created.
*/
@JsonProperty("created_at")
@ExcludeMissing
fun createdAt(createdAt: JsonField) = apply { this.createdAt = createdAt }
/**
* The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the amount being
* requested. Will always be "USD".
*/
fun currency(currency: String) = currency(JsonField.of(currency))
/**
* The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the amount being
* requested. Will always be "USD".
*/
@JsonProperty("currency")
@ExcludeMissing
fun currency(currency: JsonField) = apply { this.currency = currency }
/** The Wire drawdown request identifier. */
fun id(id: String) = id(JsonField.of(id))
/** The Wire drawdown request identifier. */
@JsonProperty("id") @ExcludeMissing fun id(id: JsonField) = apply { this.id = id }
/** A message from the drawdown request's originator. */
fun messageToRecipient(messageToRecipient: String) =
messageToRecipient(JsonField.of(messageToRecipient))
/** A message from the drawdown request's originator. */
@JsonProperty("message_to_recipient")
@ExcludeMissing
fun messageToRecipient(messageToRecipient: JsonField) = apply {
this.messageToRecipient = messageToRecipient
}
/** The drawdown request's originator's account number. */
fun originatorAccountNumber(originatorAccountNumber: String) =
originatorAccountNumber(JsonField.of(originatorAccountNumber))
/** The drawdown request's originator's account number. */
@JsonProperty("originator_account_number")
@ExcludeMissing
fun originatorAccountNumber(originatorAccountNumber: JsonField) = apply {
this.originatorAccountNumber = originatorAccountNumber
}
/** Line 1 of the drawdown request's originator's address. */
fun originatorAddressLine1(originatorAddressLine1: String) =
originatorAddressLine1(JsonField.of(originatorAddressLine1))
/** Line 1 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line1")
@ExcludeMissing
fun originatorAddressLine1(originatorAddressLine1: JsonField) = apply {
this.originatorAddressLine1 = originatorAddressLine1
}
/** Line 2 of the drawdown request's originator's address. */
fun originatorAddressLine2(originatorAddressLine2: String) =
originatorAddressLine2(JsonField.of(originatorAddressLine2))
/** Line 2 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line2")
@ExcludeMissing
fun originatorAddressLine2(originatorAddressLine2: JsonField) = apply {
this.originatorAddressLine2 = originatorAddressLine2
}
/** Line 3 of the drawdown request's originator's address. */
fun originatorAddressLine3(originatorAddressLine3: String) =
originatorAddressLine3(JsonField.of(originatorAddressLine3))
/** Line 3 of the drawdown request's originator's address. */
@JsonProperty("originator_address_line3")
@ExcludeMissing
fun originatorAddressLine3(originatorAddressLine3: JsonField) = apply {
this.originatorAddressLine3 = originatorAddressLine3
}
/** The drawdown request's originator's name. */
fun originatorName(originatorName: String) = originatorName(JsonField.of(originatorName))
/** The drawdown request's originator's name. */
@JsonProperty("originator_name")
@ExcludeMissing
fun originatorName(originatorName: JsonField) = apply {
this.originatorName = originatorName
}
/** The drawdown request's originator's routing number. */
fun originatorRoutingNumber(originatorRoutingNumber: String) =
originatorRoutingNumber(JsonField.of(originatorRoutingNumber))
/** The drawdown request's originator's routing number. */
@JsonProperty("originator_routing_number")
@ExcludeMissing
fun originatorRoutingNumber(originatorRoutingNumber: JsonField) = apply {
this.originatorRoutingNumber = originatorRoutingNumber
}
/**
* Line 1 of the information conveyed from the originator of the message to the beneficiary.
*/
fun originatorToBeneficiaryInformationLine1(
originatorToBeneficiaryInformationLine1: String
) =
originatorToBeneficiaryInformationLine1(
JsonField.of(originatorToBeneficiaryInformationLine1)
)
/**
* Line 1 of the information conveyed from the originator of the message to the beneficiary.
*/
@JsonProperty("originator_to_beneficiary_information_line1")
@ExcludeMissing
fun originatorToBeneficiaryInformationLine1(
originatorToBeneficiaryInformationLine1: JsonField
) = apply {
this.originatorToBeneficiaryInformationLine1 = originatorToBeneficiaryInformationLine1
}
/**
* Line 2 of the information conveyed from the originator of the message to the beneficiary.
*/
fun originatorToBeneficiaryInformationLine2(
originatorToBeneficiaryInformationLine2: String
) =
originatorToBeneficiaryInformationLine2(
JsonField.of(originatorToBeneficiaryInformationLine2)
)
/**
* Line 2 of the information conveyed from the originator of the message to the beneficiary.
*/
@JsonProperty("originator_to_beneficiary_information_line2")
@ExcludeMissing
fun originatorToBeneficiaryInformationLine2(
originatorToBeneficiaryInformationLine2: JsonField
) = apply {
this.originatorToBeneficiaryInformationLine2 = originatorToBeneficiaryInformationLine2
}
/**
* Line 3 of the information conveyed from the originator of the message to the beneficiary.
*/
fun originatorToBeneficiaryInformationLine3(
originatorToBeneficiaryInformationLine3: String
) =
originatorToBeneficiaryInformationLine3(
JsonField.of(originatorToBeneficiaryInformationLine3)
)
/**
* Line 3 of the information conveyed from the originator of the message to the beneficiary.
*/
@JsonProperty("originator_to_beneficiary_information_line3")
@ExcludeMissing
fun originatorToBeneficiaryInformationLine3(
originatorToBeneficiaryInformationLine3: JsonField
) = apply {
this.originatorToBeneficiaryInformationLine3 = originatorToBeneficiaryInformationLine3
}
/**
* Line 4 of the information conveyed from the originator of the message to the beneficiary.
*/
fun originatorToBeneficiaryInformationLine4(
originatorToBeneficiaryInformationLine4: String
) =
originatorToBeneficiaryInformationLine4(
JsonField.of(originatorToBeneficiaryInformationLine4)
)
/**
* Line 4 of the information conveyed from the originator of the message to the beneficiary.
*/
@JsonProperty("originator_to_beneficiary_information_line4")
@ExcludeMissing
fun originatorToBeneficiaryInformationLine4(
originatorToBeneficiaryInformationLine4: JsonField
) = apply {
this.originatorToBeneficiaryInformationLine4 = originatorToBeneficiaryInformationLine4
}
/**
* The Account Number from which the recipient of this request is being requested to send
* funds.
*/
fun recipientAccountNumberId(recipientAccountNumberId: String) =
recipientAccountNumberId(JsonField.of(recipientAccountNumberId))
/**
* The Account Number from which the recipient of this request is being requested to send
* funds.
*/
@JsonProperty("recipient_account_number_id")
@ExcludeMissing
fun recipientAccountNumberId(recipientAccountNumberId: JsonField) = apply {
this.recipientAccountNumberId = recipientAccountNumberId
}
/**
* A constant representing the object's type. For this resource it will always be
* `inbound_wire_drawdown_request`.
*/
fun type(type: Type) = type(JsonField.of(type))
/**
* A constant representing the object's type. For this resource it will always be
* `inbound_wire_drawdown_request`.
*/
@JsonProperty("type")
@ExcludeMissing
fun type(type: JsonField) = apply { this.type = type }
fun additionalProperties(additionalProperties: Map) = apply {
this.additionalProperties.clear()
this.additionalProperties.putAll(additionalProperties)
}
@JsonAnySetter
fun putAdditionalProperty(key: String, value: JsonValue) = apply {
this.additionalProperties.put(key, value)
}
fun putAllAdditionalProperties(additionalProperties: Map) = apply {
this.additionalProperties.putAll(additionalProperties)
}
fun build(): InboundWireDrawdownRequest =
InboundWireDrawdownRequest(
amount,
beneficiaryAccountNumber,
beneficiaryAddressLine1,
beneficiaryAddressLine2,
beneficiaryAddressLine3,
beneficiaryName,
beneficiaryRoutingNumber,
createdAt,
currency,
id,
messageToRecipient,
originatorAccountNumber,
originatorAddressLine1,
originatorAddressLine2,
originatorAddressLine3,
originatorName,
originatorRoutingNumber,
originatorToBeneficiaryInformationLine1,
originatorToBeneficiaryInformationLine2,
originatorToBeneficiaryInformationLine3,
originatorToBeneficiaryInformationLine4,
recipientAccountNumberId,
type,
additionalProperties.toUnmodifiable(),
)
}
class Type
@JsonCreator
private constructor(
private val value: JsonField,
) : Enum {
@com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is Type && this.value == other.value
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
val INBOUND_WIRE_DRAWDOWN_REQUEST = Type(JsonField.of("inbound_wire_drawdown_request"))
fun of(value: String) = Type(JsonField.of(value))
}
enum class Known {
INBOUND_WIRE_DRAWDOWN_REQUEST,
}
enum class Value {
INBOUND_WIRE_DRAWDOWN_REQUEST,
_UNKNOWN,
}
fun value(): Value =
when (this) {
INBOUND_WIRE_DRAWDOWN_REQUEST -> Value.INBOUND_WIRE_DRAWDOWN_REQUEST
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
INBOUND_WIRE_DRAWDOWN_REQUEST -> Known.INBOUND_WIRE_DRAWDOWN_REQUEST
else -> throw IncreaseInvalidDataException("Unknown Type: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
}