com.lithic.api.models.SettlementDetail.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lithic-java-core Show documentation
Show all versions of lithic-java-core Show documentation
The Lithic Developer API is designed to provide a predictable programmatic
interface for accessing your Lithic account through an API and transaction
webhooks. Note that your API key is a secret and should be treated as such.
Don't share it with anyone, including us. We will never ask you for it.
// File generated from our OpenAPI spec by Stainless.
package com.lithic.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.lithic.api.core.Enum
import com.lithic.api.core.ExcludeMissing
import com.lithic.api.core.JsonField
import com.lithic.api.core.JsonMissing
import com.lithic.api.core.JsonValue
import com.lithic.api.core.NoAutoDetect
import com.lithic.api.core.toUnmodifiable
import com.lithic.api.errors.LithicInvalidDataException
import java.time.OffsetDateTime
import java.util.Objects
import java.util.Optional
@JsonDeserialize(builder = SettlementDetail.Builder::class)
@NoAutoDetect
class SettlementDetail
private constructor(
private val accountToken: JsonField,
private val cardProgramToken: JsonField,
private val cardToken: JsonField,
private val created: JsonField,
private val currency: JsonField,
private val disputesGrossAmount: JsonField,
private val eventTokens: JsonField>,
private val institution: JsonField,
private val interchangeFeeExtendedPrecision: JsonField,
private val interchangeGrossAmount: JsonField,
private val network: JsonField,
private val otherFeesDetails: JsonField,
private val otherFeesGrossAmount: JsonField,
private val reportDate: JsonField,
private val settlementDate: JsonField,
private val token: JsonField,
private val transactionToken: JsonField,
private val transactionsGrossAmount: JsonField,
private val type: JsonField,
private val updated: JsonField,
private val additionalProperties: Map,
) {
private var validated: Boolean = false
/** The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa). */
fun accountToken(): String = accountToken.getRequired("account_token")
/**
* Globally unique identifier denoting the card program that the associated Transaction occurred
* on.
*/
fun cardProgramToken(): String = cardProgramToken.getRequired("card_program_token")
/** Globally unique identifier denoting the card that the associated Transaction occurred on. */
fun cardToken(): String = cardToken.getRequired("card_token")
/** Date and time when the transaction first occurred. UTC time zone. */
fun created(): OffsetDateTime = created.getRequired("created")
/** Three-digit alphabetic ISO 4217 code. */
fun currency(): String = currency.getRequired("currency")
/** The total gross amount of disputes settlements. */
fun disputesGrossAmount(): Long = disputesGrossAmount.getRequired("disputes_gross_amount")
/** Globally unique identifiers denoting the Events associated with this settlement. */
fun eventTokens(): List = eventTokens.getRequired("event_tokens")
/** The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa). */
fun institution(): String = institution.getRequired("institution")
/** The total amount of interchange in six-digit extended precision. */
fun interchangeFeeExtendedPrecision(): Long =
interchangeFeeExtendedPrecision.getRequired("interchange_fee_extended_precision")
/** The total amount of interchange. */
fun interchangeGrossAmount(): Long =
interchangeGrossAmount.getRequired("interchange_gross_amount")
/** Card network where the transaction took place. */
fun network(): Network = network.getRequired("network")
/** The total gross amount of other fees by type. */
fun otherFeesDetails(): OtherFeesDetails = otherFeesDetails.getRequired("other_fees_details")
/** Total amount of gross other fees outside of interchange. */
fun otherFeesGrossAmount(): Long = otherFeesGrossAmount.getRequired("other_fees_gross_amount")
/** Date of when the report was first generated. */
fun reportDate(): String = reportDate.getRequired("report_date")
/** Date of when money movement is triggered for the transaction. */
fun settlementDate(): String = settlementDate.getRequired("settlement_date")
/** Globally unique identifier denoting the Settlement Detail. */
fun token(): String = token.getRequired("token")
/** Globally unique identifier denoting the associated Transaction object. */
fun transactionToken(): String = transactionToken.getRequired("transaction_token")
/**
* The total amount of settlement impacting transactions (excluding interchange, fees, and
* disputes).
*/
fun transactionsGrossAmount(): Long =
transactionsGrossAmount.getRequired("transactions_gross_amount")
/** The type of settlement record. */
fun type(): Type = type.getRequired("type")
/** Date and time when the transaction first occurred. UTC time zone. */
fun updated(): OffsetDateTime = updated.getRequired("updated")
/** The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa). */
@JsonProperty("account_token") @ExcludeMissing fun _accountToken() = accountToken
/**
* Globally unique identifier denoting the card program that the associated Transaction occurred
* on.
*/
@JsonProperty("card_program_token") @ExcludeMissing fun _cardProgramToken() = cardProgramToken
/** Globally unique identifier denoting the card that the associated Transaction occurred on. */
@JsonProperty("card_token") @ExcludeMissing fun _cardToken() = cardToken
/** Date and time when the transaction first occurred. UTC time zone. */
@JsonProperty("created") @ExcludeMissing fun _created() = created
/** Three-digit alphabetic ISO 4217 code. */
@JsonProperty("currency") @ExcludeMissing fun _currency() = currency
/** The total gross amount of disputes settlements. */
@JsonProperty("disputes_gross_amount")
@ExcludeMissing
fun _disputesGrossAmount() = disputesGrossAmount
/** Globally unique identifiers denoting the Events associated with this settlement. */
@JsonProperty("event_tokens") @ExcludeMissing fun _eventTokens() = eventTokens
/** The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa). */
@JsonProperty("institution") @ExcludeMissing fun _institution() = institution
/** The total amount of interchange in six-digit extended precision. */
@JsonProperty("interchange_fee_extended_precision")
@ExcludeMissing
fun _interchangeFeeExtendedPrecision() = interchangeFeeExtendedPrecision
/** The total amount of interchange. */
@JsonProperty("interchange_gross_amount")
@ExcludeMissing
fun _interchangeGrossAmount() = interchangeGrossAmount
/** Card network where the transaction took place. */
@JsonProperty("network") @ExcludeMissing fun _network() = network
/** The total gross amount of other fees by type. */
@JsonProperty("other_fees_details") @ExcludeMissing fun _otherFeesDetails() = otherFeesDetails
/** Total amount of gross other fees outside of interchange. */
@JsonProperty("other_fees_gross_amount")
@ExcludeMissing
fun _otherFeesGrossAmount() = otherFeesGrossAmount
/** Date of when the report was first generated. */
@JsonProperty("report_date") @ExcludeMissing fun _reportDate() = reportDate
/** Date of when money movement is triggered for the transaction. */
@JsonProperty("settlement_date") @ExcludeMissing fun _settlementDate() = settlementDate
/** Globally unique identifier denoting the Settlement Detail. */
@JsonProperty("token") @ExcludeMissing fun _token() = token
/** Globally unique identifier denoting the associated Transaction object. */
@JsonProperty("transaction_token") @ExcludeMissing fun _transactionToken() = transactionToken
/**
* The total amount of settlement impacting transactions (excluding interchange, fees, and
* disputes).
*/
@JsonProperty("transactions_gross_amount")
@ExcludeMissing
fun _transactionsGrossAmount() = transactionsGrossAmount
/** The type of settlement record. */
@JsonProperty("type") @ExcludeMissing fun _type() = type
/** Date and time when the transaction first occurred. UTC time zone. */
@JsonProperty("updated") @ExcludeMissing fun _updated() = updated
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun validate(): SettlementDetail = apply {
if (!validated) {
accountToken()
cardProgramToken()
cardToken()
created()
currency()
disputesGrossAmount()
eventTokens()
institution()
interchangeFeeExtendedPrecision()
interchangeGrossAmount()
network()
otherFeesDetails().validate()
otherFeesGrossAmount()
reportDate()
settlementDate()
token()
transactionToken()
transactionsGrossAmount()
type()
updated()
validated = true
}
}
fun toBuilder() = Builder().from(this)
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var accountToken: JsonField = JsonMissing.of()
private var cardProgramToken: JsonField = JsonMissing.of()
private var cardToken: JsonField = JsonMissing.of()
private var created: JsonField = JsonMissing.of()
private var currency: JsonField = JsonMissing.of()
private var disputesGrossAmount: JsonField = JsonMissing.of()
private var eventTokens: JsonField> = JsonMissing.of()
private var institution: JsonField = JsonMissing.of()
private var interchangeFeeExtendedPrecision: JsonField = JsonMissing.of()
private var interchangeGrossAmount: JsonField = JsonMissing.of()
private var network: JsonField = JsonMissing.of()
private var otherFeesDetails: JsonField = JsonMissing.of()
private var otherFeesGrossAmount: JsonField = JsonMissing.of()
private var reportDate: JsonField = JsonMissing.of()
private var settlementDate: JsonField = JsonMissing.of()
private var token: JsonField = JsonMissing.of()
private var transactionToken: JsonField = JsonMissing.of()
private var transactionsGrossAmount: JsonField = JsonMissing.of()
private var type: JsonField = JsonMissing.of()
private var updated: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(settlementDetail: SettlementDetail) = apply {
this.accountToken = settlementDetail.accountToken
this.cardProgramToken = settlementDetail.cardProgramToken
this.cardToken = settlementDetail.cardToken
this.created = settlementDetail.created
this.currency = settlementDetail.currency
this.disputesGrossAmount = settlementDetail.disputesGrossAmount
this.eventTokens = settlementDetail.eventTokens
this.institution = settlementDetail.institution
this.interchangeFeeExtendedPrecision = settlementDetail.interchangeFeeExtendedPrecision
this.interchangeGrossAmount = settlementDetail.interchangeGrossAmount
this.network = settlementDetail.network
this.otherFeesDetails = settlementDetail.otherFeesDetails
this.otherFeesGrossAmount = settlementDetail.otherFeesGrossAmount
this.reportDate = settlementDetail.reportDate
this.settlementDate = settlementDetail.settlementDate
this.token = settlementDetail.token
this.transactionToken = settlementDetail.transactionToken
this.transactionsGrossAmount = settlementDetail.transactionsGrossAmount
this.type = settlementDetail.type
this.updated = settlementDetail.updated
additionalProperties(settlementDetail.additionalProperties)
}
/**
* The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
*/
fun accountToken(accountToken: String) = accountToken(JsonField.of(accountToken))
/**
* The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
*/
@JsonProperty("account_token")
@ExcludeMissing
fun accountToken(accountToken: JsonField) = apply {
this.accountToken = accountToken
}
/**
* Globally unique identifier denoting the card program that the associated Transaction
* occurred on.
*/
fun cardProgramToken(cardProgramToken: String) =
cardProgramToken(JsonField.of(cardProgramToken))
/**
* Globally unique identifier denoting the card program that the associated Transaction
* occurred on.
*/
@JsonProperty("card_program_token")
@ExcludeMissing
fun cardProgramToken(cardProgramToken: JsonField) = apply {
this.cardProgramToken = cardProgramToken
}
/**
* Globally unique identifier denoting the card that the associated Transaction occurred on.
*/
fun cardToken(cardToken: String) = cardToken(JsonField.of(cardToken))
/**
* Globally unique identifier denoting the card that the associated Transaction occurred on.
*/
@JsonProperty("card_token")
@ExcludeMissing
fun cardToken(cardToken: JsonField) = apply { this.cardToken = cardToken }
/** Date and time when the transaction first occurred. UTC time zone. */
fun created(created: OffsetDateTime) = created(JsonField.of(created))
/** Date and time when the transaction first occurred. UTC time zone. */
@JsonProperty("created")
@ExcludeMissing
fun created(created: JsonField) = apply { this.created = created }
/** Three-digit alphabetic ISO 4217 code. */
fun currency(currency: String) = currency(JsonField.of(currency))
/** Three-digit alphabetic ISO 4217 code. */
@JsonProperty("currency")
@ExcludeMissing
fun currency(currency: JsonField) = apply { this.currency = currency }
/** The total gross amount of disputes settlements. */
fun disputesGrossAmount(disputesGrossAmount: Long) =
disputesGrossAmount(JsonField.of(disputesGrossAmount))
/** The total gross amount of disputes settlements. */
@JsonProperty("disputes_gross_amount")
@ExcludeMissing
fun disputesGrossAmount(disputesGrossAmount: JsonField) = apply {
this.disputesGrossAmount = disputesGrossAmount
}
/** Globally unique identifiers denoting the Events associated with this settlement. */
fun eventTokens(eventTokens: List) = eventTokens(JsonField.of(eventTokens))
/** Globally unique identifiers denoting the Events associated with this settlement. */
@JsonProperty("event_tokens")
@ExcludeMissing
fun eventTokens(eventTokens: JsonField>) = apply {
this.eventTokens = eventTokens
}
/**
* The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
*/
fun institution(institution: String) = institution(JsonField.of(institution))
/**
* The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
*/
@JsonProperty("institution")
@ExcludeMissing
fun institution(institution: JsonField) = apply { this.institution = institution }
/** The total amount of interchange in six-digit extended precision. */
fun interchangeFeeExtendedPrecision(interchangeFeeExtendedPrecision: Long) =
interchangeFeeExtendedPrecision(JsonField.of(interchangeFeeExtendedPrecision))
/** The total amount of interchange in six-digit extended precision. */
@JsonProperty("interchange_fee_extended_precision")
@ExcludeMissing
fun interchangeFeeExtendedPrecision(interchangeFeeExtendedPrecision: JsonField) =
apply {
this.interchangeFeeExtendedPrecision = interchangeFeeExtendedPrecision
}
/** The total amount of interchange. */
fun interchangeGrossAmount(interchangeGrossAmount: Long) =
interchangeGrossAmount(JsonField.of(interchangeGrossAmount))
/** The total amount of interchange. */
@JsonProperty("interchange_gross_amount")
@ExcludeMissing
fun interchangeGrossAmount(interchangeGrossAmount: JsonField) = apply {
this.interchangeGrossAmount = interchangeGrossAmount
}
/** Card network where the transaction took place. */
fun network(network: Network) = network(JsonField.of(network))
/** Card network where the transaction took place. */
@JsonProperty("network")
@ExcludeMissing
fun network(network: JsonField) = apply { this.network = network }
/** The total gross amount of other fees by type. */
fun otherFeesDetails(otherFeesDetails: OtherFeesDetails) =
otherFeesDetails(JsonField.of(otherFeesDetails))
/** The total gross amount of other fees by type. */
@JsonProperty("other_fees_details")
@ExcludeMissing
fun otherFeesDetails(otherFeesDetails: JsonField) = apply {
this.otherFeesDetails = otherFeesDetails
}
/** Total amount of gross other fees outside of interchange. */
fun otherFeesGrossAmount(otherFeesGrossAmount: Long) =
otherFeesGrossAmount(JsonField.of(otherFeesGrossAmount))
/** Total amount of gross other fees outside of interchange. */
@JsonProperty("other_fees_gross_amount")
@ExcludeMissing
fun otherFeesGrossAmount(otherFeesGrossAmount: JsonField) = apply {
this.otherFeesGrossAmount = otherFeesGrossAmount
}
/** Date of when the report was first generated. */
fun reportDate(reportDate: String) = reportDate(JsonField.of(reportDate))
/** Date of when the report was first generated. */
@JsonProperty("report_date")
@ExcludeMissing
fun reportDate(reportDate: JsonField) = apply { this.reportDate = reportDate }
/** Date of when money movement is triggered for the transaction. */
fun settlementDate(settlementDate: String) = settlementDate(JsonField.of(settlementDate))
/** Date of when money movement is triggered for the transaction. */
@JsonProperty("settlement_date")
@ExcludeMissing
fun settlementDate(settlementDate: JsonField) = apply {
this.settlementDate = settlementDate
}
/** Globally unique identifier denoting the Settlement Detail. */
fun token(token: String) = token(JsonField.of(token))
/** Globally unique identifier denoting the Settlement Detail. */
@JsonProperty("token")
@ExcludeMissing
fun token(token: JsonField) = apply { this.token = token }
/** Globally unique identifier denoting the associated Transaction object. */
fun transactionToken(transactionToken: String) =
transactionToken(JsonField.of(transactionToken))
/** Globally unique identifier denoting the associated Transaction object. */
@JsonProperty("transaction_token")
@ExcludeMissing
fun transactionToken(transactionToken: JsonField) = apply {
this.transactionToken = transactionToken
}
/**
* The total amount of settlement impacting transactions (excluding interchange, fees, and
* disputes).
*/
fun transactionsGrossAmount(transactionsGrossAmount: Long) =
transactionsGrossAmount(JsonField.of(transactionsGrossAmount))
/**
* The total amount of settlement impacting transactions (excluding interchange, fees, and
* disputes).
*/
@JsonProperty("transactions_gross_amount")
@ExcludeMissing
fun transactionsGrossAmount(transactionsGrossAmount: JsonField) = apply {
this.transactionsGrossAmount = transactionsGrossAmount
}
/** The type of settlement record. */
fun type(type: Type) = type(JsonField.of(type))
/** The type of settlement record. */
@JsonProperty("type")
@ExcludeMissing
fun type(type: JsonField) = apply { this.type = type }
/** Date and time when the transaction first occurred. UTC time zone. */
fun updated(updated: OffsetDateTime) = updated(JsonField.of(updated))
/** Date and time when the transaction first occurred. UTC time zone. */
@JsonProperty("updated")
@ExcludeMissing
fun updated(updated: JsonField) = apply { this.updated = updated }
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(): SettlementDetail =
SettlementDetail(
accountToken,
cardProgramToken,
cardToken,
created,
currency,
disputesGrossAmount,
eventTokens.map { it.toUnmodifiable() },
institution,
interchangeFeeExtendedPrecision,
interchangeGrossAmount,
network,
otherFeesDetails,
otherFeesGrossAmount,
reportDate,
settlementDate,
token,
transactionToken,
transactionsGrossAmount,
type,
updated,
additionalProperties.toUnmodifiable(),
)
}
class Network
@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 Network && this.value == other.value
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
@JvmField val INTERLINK = Network(JsonField.of("INTERLINK"))
@JvmField val MAESTRO = Network(JsonField.of("MAESTRO"))
@JvmField val MASTERCARD = Network(JsonField.of("MASTERCARD"))
@JvmField val UNKNOWN = Network(JsonField.of("UNKNOWN"))
@JvmField val VISA = Network(JsonField.of("VISA"))
@JvmStatic fun of(value: String) = Network(JsonField.of(value))
}
enum class Known {
INTERLINK,
MAESTRO,
MASTERCARD,
UNKNOWN,
VISA,
}
enum class Value {
INTERLINK,
MAESTRO,
MASTERCARD,
UNKNOWN,
VISA,
_UNKNOWN,
}
fun value(): Value =
when (this) {
INTERLINK -> Value.INTERLINK
MAESTRO -> Value.MAESTRO
MASTERCARD -> Value.MASTERCARD
UNKNOWN -> Value.UNKNOWN
VISA -> Value.VISA
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
INTERLINK -> Known.INTERLINK
MAESTRO -> Known.MAESTRO
MASTERCARD -> Known.MASTERCARD
UNKNOWN -> Known.UNKNOWN
VISA -> Known.VISA
else -> throw LithicInvalidDataException("Unknown Network: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
/** The total gross amount of other fees by type. */
@JsonDeserialize(builder = OtherFeesDetails.Builder::class)
@NoAutoDetect
class OtherFeesDetails
private constructor(
private val isa: JsonField,
private val additionalProperties: Map,
) {
private var validated: Boolean = false
fun isa(): Optional = Optional.ofNullable(isa.getNullable("ISA"))
@JsonProperty("ISA") @ExcludeMissing fun _isa() = isa
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun validate(): OtherFeesDetails = apply {
if (!validated) {
isa()
validated = true
}
}
fun toBuilder() = Builder().from(this)
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var isa: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(otherFeesDetails: OtherFeesDetails) = apply {
this.isa = otherFeesDetails.isa
additionalProperties(otherFeesDetails.additionalProperties)
}
fun isa(isa: Long) = isa(JsonField.of(isa))
@JsonProperty("ISA")
@ExcludeMissing
fun isa(isa: JsonField) = apply { this.isa = isa }
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(): OtherFeesDetails =
OtherFeesDetails(isa, additionalProperties.toUnmodifiable())
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is OtherFeesDetails &&
this.isa == other.isa &&
this.additionalProperties == other.additionalProperties
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = Objects.hash(isa, additionalProperties)
}
return hashCode
}
override fun toString() =
"OtherFeesDetails{isa=$isa, additionalProperties=$additionalProperties}"
}
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 {
@JvmField val ADJUSTMENT = Type(JsonField.of("ADJUSTMENT"))
@JvmField val ARBITRATION = Type(JsonField.of("ARBITRATION"))
@JvmField val CHARGEBACK = Type(JsonField.of("CHARGEBACK"))
@JvmField val CLEARING = Type(JsonField.of("CLEARING"))
@JvmField val FEE = Type(JsonField.of("FEE"))
@JvmField val FINANCIAL = Type(JsonField.of("FINANCIAL"))
@JvmField val NON_FINANCIAL = Type(JsonField.of("NON-FINANCIAL"))
@JvmField val PREARBITRATION = Type(JsonField.of("PREARBITRATION"))
@JvmField val REPRESENTMENT = Type(JsonField.of("REPRESENTMENT"))
@JvmStatic fun of(value: String) = Type(JsonField.of(value))
}
enum class Known {
ADJUSTMENT,
ARBITRATION,
CHARGEBACK,
CLEARING,
FEE,
FINANCIAL,
NON_FINANCIAL,
PREARBITRATION,
REPRESENTMENT,
}
enum class Value {
ADJUSTMENT,
ARBITRATION,
CHARGEBACK,
CLEARING,
FEE,
FINANCIAL,
NON_FINANCIAL,
PREARBITRATION,
REPRESENTMENT,
_UNKNOWN,
}
fun value(): Value =
when (this) {
ADJUSTMENT -> Value.ADJUSTMENT
ARBITRATION -> Value.ARBITRATION
CHARGEBACK -> Value.CHARGEBACK
CLEARING -> Value.CLEARING
FEE -> Value.FEE
FINANCIAL -> Value.FINANCIAL
NON_FINANCIAL -> Value.NON_FINANCIAL
PREARBITRATION -> Value.PREARBITRATION
REPRESENTMENT -> Value.REPRESENTMENT
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
ADJUSTMENT -> Known.ADJUSTMENT
ARBITRATION -> Known.ARBITRATION
CHARGEBACK -> Known.CHARGEBACK
CLEARING -> Known.CLEARING
FEE -> Known.FEE
FINANCIAL -> Known.FINANCIAL
NON_FINANCIAL -> Known.NON_FINANCIAL
PREARBITRATION -> Known.PREARBITRATION
REPRESENTMENT -> Known.REPRESENTMENT
else -> throw LithicInvalidDataException("Unknown Type: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is SettlementDetail &&
this.accountToken == other.accountToken &&
this.cardProgramToken == other.cardProgramToken &&
this.cardToken == other.cardToken &&
this.created == other.created &&
this.currency == other.currency &&
this.disputesGrossAmount == other.disputesGrossAmount &&
this.eventTokens == other.eventTokens &&
this.institution == other.institution &&
this.interchangeFeeExtendedPrecision == other.interchangeFeeExtendedPrecision &&
this.interchangeGrossAmount == other.interchangeGrossAmount &&
this.network == other.network &&
this.otherFeesDetails == other.otherFeesDetails &&
this.otherFeesGrossAmount == other.otherFeesGrossAmount &&
this.reportDate == other.reportDate &&
this.settlementDate == other.settlementDate &&
this.token == other.token &&
this.transactionToken == other.transactionToken &&
this.transactionsGrossAmount == other.transactionsGrossAmount &&
this.type == other.type &&
this.updated == other.updated &&
this.additionalProperties == other.additionalProperties
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode =
Objects.hash(
accountToken,
cardProgramToken,
cardToken,
created,
currency,
disputesGrossAmount,
eventTokens,
institution,
interchangeFeeExtendedPrecision,
interchangeGrossAmount,
network,
otherFeesDetails,
otherFeesGrossAmount,
reportDate,
settlementDate,
token,
transactionToken,
transactionsGrossAmount,
type,
updated,
additionalProperties,
)
}
return hashCode
}
override fun toString() =
"SettlementDetail{accountToken=$accountToken, cardProgramToken=$cardProgramToken, cardToken=$cardToken, created=$created, currency=$currency, disputesGrossAmount=$disputesGrossAmount, eventTokens=$eventTokens, institution=$institution, interchangeFeeExtendedPrecision=$interchangeFeeExtendedPrecision, interchangeGrossAmount=$interchangeGrossAmount, network=$network, otherFeesDetails=$otherFeesDetails, otherFeesGrossAmount=$otherFeesGrossAmount, reportDate=$reportDate, settlementDate=$settlementDate, token=$token, transactionToken=$transactionToken, transactionsGrossAmount=$transactionsGrossAmount, type=$type, updated=$updated, additionalProperties=$additionalProperties}"
}