com.increase.api.models.RealTimeDecisionActionParams.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of increase-java-core Show documentation
Show all versions of increase-java-core Show documentation
An SDK library for increase
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.JsonValue
import com.increase.api.core.NoAutoDetect
import com.increase.api.core.toUnmodifiable
import com.increase.api.errors.IncreaseInvalidDataException
import com.increase.api.models.*
import java.util.Objects
import java.util.Optional
class RealTimeDecisionActionParams
constructor(
private val realTimeDecisionId: String,
private val cardAuthorization: CardAuthorization?,
private val digitalWalletAuthentication: DigitalWalletAuthentication?,
private val digitalWalletToken: DigitalWalletToken?,
private val additionalQueryParams: Map>,
private val additionalHeaders: Map>,
private val additionalBodyProperties: Map,
) {
fun realTimeDecisionId(): String = realTimeDecisionId
fun cardAuthorization(): Optional = Optional.ofNullable(cardAuthorization)
fun digitalWalletAuthentication(): Optional =
Optional.ofNullable(digitalWalletAuthentication)
fun digitalWalletToken(): Optional = Optional.ofNullable(digitalWalletToken)
@JvmSynthetic
internal fun getBody(): RealTimeDecisionActionBody {
return RealTimeDecisionActionBody(
cardAuthorization,
digitalWalletAuthentication,
digitalWalletToken,
additionalBodyProperties,
)
}
@JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams
@JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders
fun getPathParam(index: Int): String {
return when (index) {
0 -> realTimeDecisionId
else -> ""
}
}
@JsonDeserialize(builder = RealTimeDecisionActionBody.Builder::class)
@NoAutoDetect
class RealTimeDecisionActionBody
internal constructor(
private val cardAuthorization: CardAuthorization?,
private val digitalWalletAuthentication: DigitalWalletAuthentication?,
private val digitalWalletToken: DigitalWalletToken?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/**
* If the Real-Time Decision relates to a card authorization attempt, this object contains
* your response to the authorization.
*/
@JsonProperty("card_authorization")
fun cardAuthorization(): CardAuthorization? = cardAuthorization
/**
* If the Real-Time Decision relates to a digital wallet authentication attempt, this object
* contains your response to the authentication.
*/
@JsonProperty("digital_wallet_authentication")
fun digitalWalletAuthentication(): DigitalWalletAuthentication? =
digitalWalletAuthentication
/**
* If the Real-Time Decision relates to a digital wallet token provisioning attempt, this
* object contains your response to the attempt.
*/
@JsonProperty("digital_wallet_token")
fun digitalWalletToken(): DigitalWalletToken? = digitalWalletToken
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is RealTimeDecisionActionBody &&
this.cardAuthorization == other.cardAuthorization &&
this.digitalWalletAuthentication == other.digitalWalletAuthentication &&
this.digitalWalletToken == other.digitalWalletToken &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode =
Objects.hash(
cardAuthorization,
digitalWalletAuthentication,
digitalWalletToken,
additionalProperties,
)
}
return hashCode
}
override fun toString() =
"RealTimeDecisionActionBody{cardAuthorization=$cardAuthorization, digitalWalletAuthentication=$digitalWalletAuthentication, digitalWalletToken=$digitalWalletToken, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var cardAuthorization: CardAuthorization? = null
private var digitalWalletAuthentication: DigitalWalletAuthentication? = null
private var digitalWalletToken: DigitalWalletToken? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(realTimeDecisionActionBody: RealTimeDecisionActionBody) = apply {
this.cardAuthorization = realTimeDecisionActionBody.cardAuthorization
this.digitalWalletAuthentication =
realTimeDecisionActionBody.digitalWalletAuthentication
this.digitalWalletToken = realTimeDecisionActionBody.digitalWalletToken
additionalProperties(realTimeDecisionActionBody.additionalProperties)
}
/**
* If the Real-Time Decision relates to a card authorization attempt, this object
* contains your response to the authorization.
*/
@JsonProperty("card_authorization")
fun cardAuthorization(cardAuthorization: CardAuthorization) = apply {
this.cardAuthorization = cardAuthorization
}
/**
* If the Real-Time Decision relates to a digital wallet authentication attempt, this
* object contains your response to the authentication.
*/
@JsonProperty("digital_wallet_authentication")
fun digitalWalletAuthentication(
digitalWalletAuthentication: DigitalWalletAuthentication
) = apply { this.digitalWalletAuthentication = digitalWalletAuthentication }
/**
* If the Real-Time Decision relates to a digital wallet token provisioning attempt,
* this object contains your response to the attempt.
*/
@JsonProperty("digital_wallet_token")
fun digitalWalletToken(digitalWalletToken: DigitalWalletToken) = apply {
this.digitalWalletToken = digitalWalletToken
}
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(): RealTimeDecisionActionBody =
RealTimeDecisionActionBody(
cardAuthorization,
digitalWalletAuthentication,
digitalWalletToken,
additionalProperties.toUnmodifiable(),
)
}
}
fun _additionalQueryParams(): Map> = additionalQueryParams
fun _additionalHeaders(): Map> = additionalHeaders
fun _additionalBodyProperties(): Map = additionalBodyProperties
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is RealTimeDecisionActionParams &&
this.realTimeDecisionId == other.realTimeDecisionId &&
this.cardAuthorization == other.cardAuthorization &&
this.digitalWalletAuthentication == other.digitalWalletAuthentication &&
this.digitalWalletToken == other.digitalWalletToken &&
this.additionalQueryParams == other.additionalQueryParams &&
this.additionalHeaders == other.additionalHeaders &&
this.additionalBodyProperties == other.additionalBodyProperties
}
override fun hashCode(): Int {
return Objects.hash(
realTimeDecisionId,
cardAuthorization,
digitalWalletAuthentication,
digitalWalletToken,
additionalQueryParams,
additionalHeaders,
additionalBodyProperties,
)
}
override fun toString() =
"RealTimeDecisionActionParams{realTimeDecisionId=$realTimeDecisionId, cardAuthorization=$cardAuthorization, digitalWalletAuthentication=$digitalWalletAuthentication, digitalWalletToken=$digitalWalletToken, additionalQueryParams=$additionalQueryParams, additionalHeaders=$additionalHeaders, additionalBodyProperties=$additionalBodyProperties}"
fun toBuilder() = Builder().from(this)
companion object {
@JvmStatic fun builder() = Builder()
}
@NoAutoDetect
class Builder {
private var realTimeDecisionId: String? = null
private var cardAuthorization: CardAuthorization? = null
private var digitalWalletAuthentication: DigitalWalletAuthentication? = null
private var digitalWalletToken: DigitalWalletToken? = null
private var additionalQueryParams: MutableMap> = mutableMapOf()
private var additionalHeaders: MutableMap> = mutableMapOf()
private var additionalBodyProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(realTimeDecisionActionParams: RealTimeDecisionActionParams) = apply {
this.realTimeDecisionId = realTimeDecisionActionParams.realTimeDecisionId
this.cardAuthorization = realTimeDecisionActionParams.cardAuthorization
this.digitalWalletAuthentication =
realTimeDecisionActionParams.digitalWalletAuthentication
this.digitalWalletToken = realTimeDecisionActionParams.digitalWalletToken
additionalQueryParams(realTimeDecisionActionParams.additionalQueryParams)
additionalHeaders(realTimeDecisionActionParams.additionalHeaders)
additionalBodyProperties(realTimeDecisionActionParams.additionalBodyProperties)
}
/** The identifier of the Real-Time Decision. */
fun realTimeDecisionId(realTimeDecisionId: String) = apply {
this.realTimeDecisionId = realTimeDecisionId
}
/**
* If the Real-Time Decision relates to a card authorization attempt, this object contains
* your response to the authorization.
*/
fun cardAuthorization(cardAuthorization: CardAuthorization) = apply {
this.cardAuthorization = cardAuthorization
}
/**
* If the Real-Time Decision relates to a digital wallet authentication attempt, this object
* contains your response to the authentication.
*/
fun digitalWalletAuthentication(digitalWalletAuthentication: DigitalWalletAuthentication) =
apply {
this.digitalWalletAuthentication = digitalWalletAuthentication
}
/**
* If the Real-Time Decision relates to a digital wallet token provisioning attempt, this
* object contains your response to the attempt.
*/
fun digitalWalletToken(digitalWalletToken: DigitalWalletToken) = apply {
this.digitalWalletToken = digitalWalletToken
}
fun additionalQueryParams(additionalQueryParams: Map>) = apply {
this.additionalQueryParams.clear()
putAllQueryParams(additionalQueryParams)
}
fun putQueryParam(name: String, value: String) = apply {
this.additionalQueryParams.getOrPut(name) { mutableListOf() }.add(value)
}
fun putQueryParams(name: String, values: Iterable) = apply {
this.additionalQueryParams.getOrPut(name) { mutableListOf() }.addAll(values)
}
fun putAllQueryParams(additionalQueryParams: Map>) = apply {
additionalQueryParams.forEach(this::putQueryParams)
}
fun removeQueryParam(name: String) = apply {
this.additionalQueryParams.put(name, mutableListOf())
}
fun additionalHeaders(additionalHeaders: Map>) = apply {
this.additionalHeaders.clear()
putAllHeaders(additionalHeaders)
}
fun putHeader(name: String, value: String) = apply {
this.additionalHeaders.getOrPut(name) { mutableListOf() }.add(value)
}
fun putHeaders(name: String, values: Iterable) = apply {
this.additionalHeaders.getOrPut(name) { mutableListOf() }.addAll(values)
}
fun putAllHeaders(additionalHeaders: Map>) = apply {
additionalHeaders.forEach(this::putHeaders)
}
fun removeHeader(name: String) = apply { this.additionalHeaders.put(name, mutableListOf()) }
fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
this.additionalBodyProperties.clear()
this.additionalBodyProperties.putAll(additionalBodyProperties)
}
fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
this.additionalBodyProperties.put(key, value)
}
fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
apply {
this.additionalBodyProperties.putAll(additionalBodyProperties)
}
fun build(): RealTimeDecisionActionParams =
RealTimeDecisionActionParams(
checkNotNull(realTimeDecisionId) {
"`realTimeDecisionId` is required but was not set"
},
cardAuthorization,
digitalWalletAuthentication,
digitalWalletToken,
additionalQueryParams.mapValues { it.value.toUnmodifiable() }.toUnmodifiable(),
additionalHeaders.mapValues { it.value.toUnmodifiable() }.toUnmodifiable(),
additionalBodyProperties.toUnmodifiable(),
)
}
/**
* If the Real-Time Decision relates to a card authorization attempt, this object contains your
* response to the authorization.
*/
@JsonDeserialize(builder = CardAuthorization.Builder::class)
@NoAutoDetect
class CardAuthorization
private constructor(
private val decision: Decision?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/** Whether the card authorization should be approved or declined. */
@JsonProperty("decision") fun decision(): Decision? = decision
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is CardAuthorization &&
this.decision == other.decision &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = Objects.hash(decision, additionalProperties)
}
return hashCode
}
override fun toString() =
"CardAuthorization{decision=$decision, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var decision: Decision? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(cardAuthorization: CardAuthorization) = apply {
this.decision = cardAuthorization.decision
additionalProperties(cardAuthorization.additionalProperties)
}
/** Whether the card authorization should be approved or declined. */
@JsonProperty("decision")
fun decision(decision: Decision) = apply { this.decision = decision }
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(): CardAuthorization =
CardAuthorization(
checkNotNull(decision) { "`decision` is required but was not set" },
additionalProperties.toUnmodifiable()
)
}
class Decision
@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 Decision && this.value == other.value
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
@JvmField val APPROVE = Decision(JsonField.of("approve"))
@JvmField val DECLINE = Decision(JsonField.of("decline"))
@JvmStatic fun of(value: String) = Decision(JsonField.of(value))
}
enum class Known {
APPROVE,
DECLINE,
}
enum class Value {
APPROVE,
DECLINE,
_UNKNOWN,
}
fun value(): Value =
when (this) {
APPROVE -> Value.APPROVE
DECLINE -> Value.DECLINE
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
APPROVE -> Known.APPROVE
DECLINE -> Known.DECLINE
else -> throw IncreaseInvalidDataException("Unknown Decision: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
}
/**
* If the Real-Time Decision relates to a digital wallet authentication attempt, this object
* contains your response to the authentication.
*/
@JsonDeserialize(builder = DigitalWalletAuthentication.Builder::class)
@NoAutoDetect
class DigitalWalletAuthentication
private constructor(
private val result: Result?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/** Whether your application was able to deliver the one-time passcode. */
@JsonProperty("result") fun result(): Result? = result
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is DigitalWalletAuthentication &&
this.result == other.result &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = Objects.hash(result, additionalProperties)
}
return hashCode
}
override fun toString() =
"DigitalWalletAuthentication{result=$result, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var result: Result? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(digitalWalletAuthentication: DigitalWalletAuthentication) = apply {
this.result = digitalWalletAuthentication.result
additionalProperties(digitalWalletAuthentication.additionalProperties)
}
/** Whether your application was able to deliver the one-time passcode. */
@JsonProperty("result") fun result(result: Result) = apply { this.result = result }
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(): DigitalWalletAuthentication =
DigitalWalletAuthentication(
checkNotNull(result) { "`result` is required but was not set" },
additionalProperties.toUnmodifiable()
)
}
class Result
@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 Result && this.value == other.value
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
@JvmField val SUCCESS = Result(JsonField.of("success"))
@JvmField val FAILURE = Result(JsonField.of("failure"))
@JvmStatic fun of(value: String) = Result(JsonField.of(value))
}
enum class Known {
SUCCESS,
FAILURE,
}
enum class Value {
SUCCESS,
FAILURE,
_UNKNOWN,
}
fun value(): Value =
when (this) {
SUCCESS -> Value.SUCCESS
FAILURE -> Value.FAILURE
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
SUCCESS -> Known.SUCCESS
FAILURE -> Known.FAILURE
else -> throw IncreaseInvalidDataException("Unknown Result: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
}
/**
* If the Real-Time Decision relates to a digital wallet token provisioning attempt, this object
* contains your response to the attempt.
*/
@JsonDeserialize(builder = DigitalWalletToken.Builder::class)
@NoAutoDetect
class DigitalWalletToken
private constructor(
private val approval: Approval?,
private val decline: Decline?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/**
* If your application approves the provisioning attempt, this contains metadata about the
* digital wallet token that will be generated.
*/
@JsonProperty("approval") fun approval(): Approval? = approval
/**
* If your application declines the provisioning attempt, this contains details about the
* decline.
*/
@JsonProperty("decline") fun decline(): Decline? = decline
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is DigitalWalletToken &&
this.approval == other.approval &&
this.decline == other.decline &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode =
Objects.hash(
approval,
decline,
additionalProperties,
)
}
return hashCode
}
override fun toString() =
"DigitalWalletToken{approval=$approval, decline=$decline, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var approval: Approval? = null
private var decline: Decline? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(digitalWalletToken: DigitalWalletToken) = apply {
this.approval = digitalWalletToken.approval
this.decline = digitalWalletToken.decline
additionalProperties(digitalWalletToken.additionalProperties)
}
/**
* If your application approves the provisioning attempt, this contains metadata about
* the digital wallet token that will be generated.
*/
@JsonProperty("approval")
fun approval(approval: Approval) = apply { this.approval = approval }
/**
* If your application declines the provisioning attempt, this contains details about
* the decline.
*/
@JsonProperty("decline")
fun decline(decline: Decline) = apply { this.decline = decline }
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(): DigitalWalletToken =
DigitalWalletToken(
approval,
decline,
additionalProperties.toUnmodifiable(),
)
}
/**
* If your application approves the provisioning attempt, this contains metadata about the
* digital wallet token that will be generated.
*/
@JsonDeserialize(builder = Approval.Builder::class)
@NoAutoDetect
class Approval
private constructor(
private val email: String?,
private val phone: String?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/** An email address that can be used to verify the cardholder via one-time passcode. */
@JsonProperty("email") fun email(): String? = email
/**
* A phone number that can be used to verify the cardholder via one-time passcode over
* SMS.
*/
@JsonProperty("phone") fun phone(): String? = phone
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is Approval &&
this.email == other.email &&
this.phone == other.phone &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode =
Objects.hash(
email,
phone,
additionalProperties,
)
}
return hashCode
}
override fun toString() =
"Approval{email=$email, phone=$phone, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var email: String? = null
private var phone: String? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(approval: Approval) = apply {
this.email = approval.email
this.phone = approval.phone
additionalProperties(approval.additionalProperties)
}
/**
* An email address that can be used to verify the cardholder via one-time passcode.
*/
@JsonProperty("email") fun email(email: String) = apply { this.email = email }
/**
* A phone number that can be used to verify the cardholder via one-time passcode
* over SMS.
*/
@JsonProperty("phone") fun phone(phone: String) = apply { this.phone = phone }
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(): Approval =
Approval(
email,
phone,
additionalProperties.toUnmodifiable(),
)
}
}
/**
* If your application declines the provisioning attempt, this contains details about the
* decline.
*/
@JsonDeserialize(builder = Decline.Builder::class)
@NoAutoDetect
class Decline
private constructor(
private val reason: String?,
private val additionalProperties: Map,
) {
private var hashCode: Int = 0
/**
* Why the tokenization attempt was declined. This is for logging purposes only and is
* not displayed to the end-user.
*/
@JsonProperty("reason") fun reason(): String? = reason
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return other is Decline &&
this.reason == other.reason &&
this.additionalProperties == other.additionalProperties
}
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = Objects.hash(reason, additionalProperties)
}
return hashCode
}
override fun toString() =
"Decline{reason=$reason, additionalProperties=$additionalProperties}"
companion object {
@JvmStatic fun builder() = Builder()
}
class Builder {
private var reason: String? = null
private var additionalProperties: MutableMap = mutableMapOf()
@JvmSynthetic
internal fun from(decline: Decline) = apply {
this.reason = decline.reason
additionalProperties(decline.additionalProperties)
}
/**
* Why the tokenization attempt was declined. This is for logging purposes only and
* is not displayed to the end-user.
*/
@JsonProperty("reason") fun reason(reason: String) = apply { this.reason = reason }
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(): Decline = Decline(reason, additionalProperties.toUnmodifiable())
}
}
}
}