com.increase.api.models.EntityCreateBeneficialOwnerParams.kt Maven / Gradle / Ivy
// 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.http.Headers
import com.increase.api.core.http.QueryParams
import com.increase.api.core.toImmutable
import com.increase.api.errors.IncreaseInvalidDataException
import com.increase.api.models.*
import java.time.LocalDate
import java.util.Objects
class EntityCreateBeneficialOwnerParams
constructor(
private val entityId: String,
private val beneficialOwner: BeneficialOwner,
private val additionalHeaders: Headers,
private val additionalQueryParams: QueryParams,
private val additionalBodyProperties: Map,
) {
fun entityId(): String = entityId
fun beneficialOwner(): BeneficialOwner = beneficialOwner
internal fun getBody(): EntityCreateBeneficialOwnerBody {
return EntityCreateBeneficialOwnerBody(beneficialOwner, additionalBodyProperties)
}
internal fun getHeaders(): Headers = additionalHeaders
internal fun getQueryParams(): QueryParams = additionalQueryParams
fun getPathParam(index: Int): String {
return when (index) {
0 -> entityId
else -> ""
}
}
@JsonDeserialize(builder = EntityCreateBeneficialOwnerBody.Builder::class)
@NoAutoDetect
class EntityCreateBeneficialOwnerBody
internal constructor(
private val beneficialOwner: BeneficialOwner?,
private val additionalProperties: Map,
) {
/**
* The identifying details of anyone controlling or owning 25% or more of the corporation.
*/
@JsonProperty("beneficial_owner") fun beneficialOwner(): BeneficialOwner? = beneficialOwner
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var beneficialOwner: BeneficialOwner? = null
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(entityCreateBeneficialOwnerBody: EntityCreateBeneficialOwnerBody) =
apply {
this.beneficialOwner = entityCreateBeneficialOwnerBody.beneficialOwner
additionalProperties(entityCreateBeneficialOwnerBody.additionalProperties)
}
/**
* The identifying details of anyone controlling or owning 25% or more of the
* corporation.
*/
@JsonProperty("beneficial_owner")
fun beneficialOwner(beneficialOwner: BeneficialOwner) = apply {
this.beneficialOwner = beneficialOwner
}
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(): EntityCreateBeneficialOwnerBody =
EntityCreateBeneficialOwnerBody(
checkNotNull(beneficialOwner) {
"`beneficialOwner` is required but was not set"
},
additionalProperties.toImmutable()
)
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is EntityCreateBeneficialOwnerBody && this.beneficialOwner == other.beneficialOwner && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(beneficialOwner, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"EntityCreateBeneficialOwnerBody{beneficialOwner=$beneficialOwner, additionalProperties=$additionalProperties}"
}
fun _additionalHeaders(): Headers = additionalHeaders
fun _additionalQueryParams(): QueryParams = additionalQueryParams
fun _additionalBodyProperties(): Map = additionalBodyProperties
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is EntityCreateBeneficialOwnerParams && this.entityId == other.entityId && this.beneficialOwner == other.beneficialOwner && this.additionalHeaders == other.additionalHeaders && this.additionalQueryParams == other.additionalQueryParams && this.additionalBodyProperties == other.additionalBodyProperties /* spotless:on */
}
override fun hashCode(): Int {
return /* spotless:off */ Objects.hash(entityId, beneficialOwner, additionalHeaders, additionalQueryParams, additionalBodyProperties) /* spotless:on */
}
override fun toString() =
"EntityCreateBeneficialOwnerParams{entityId=$entityId, beneficialOwner=$beneficialOwner, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams, additionalBodyProperties=$additionalBodyProperties}"
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
@NoAutoDetect
class Builder {
private var entityId: String? = null
private var beneficialOwner: BeneficialOwner? = null
private var additionalHeaders: Headers.Builder = Headers.builder()
private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
private var additionalBodyProperties: MutableMap = mutableMapOf()
internal fun from(entityCreateBeneficialOwnerParams: EntityCreateBeneficialOwnerParams) =
apply {
this.entityId = entityCreateBeneficialOwnerParams.entityId
this.beneficialOwner = entityCreateBeneficialOwnerParams.beneficialOwner
additionalHeaders(entityCreateBeneficialOwnerParams.additionalHeaders)
additionalQueryParams(entityCreateBeneficialOwnerParams.additionalQueryParams)
additionalBodyProperties(entityCreateBeneficialOwnerParams.additionalBodyProperties)
}
/** The identifier of the Entity to associate with the new Beneficial Owner. */
fun entityId(entityId: String) = apply { this.entityId = entityId }
/**
* The identifying details of anyone controlling or owning 25% or more of the corporation.
*/
fun beneficialOwner(beneficialOwner: BeneficialOwner) = apply {
this.beneficialOwner = beneficialOwner
}
fun additionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.clear()
putAllAdditionalHeaders(additionalHeaders)
}
fun additionalHeaders(additionalHeaders: Map>) = apply {
this.additionalHeaders.clear()
putAllAdditionalHeaders(additionalHeaders)
}
fun putAdditionalHeader(name: String, value: String) = apply {
additionalHeaders.put(name, value)
}
fun putAdditionalHeaders(name: String, values: Iterable) = apply {
additionalHeaders.put(name, values)
}
fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.putAll(additionalHeaders)
}
fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply {
this.additionalHeaders.putAll(additionalHeaders)
}
fun replaceAdditionalHeaders(name: String, value: String) = apply {
additionalHeaders.replace(name, value)
}
fun replaceAdditionalHeaders(name: String, values: Iterable) = apply {
additionalHeaders.replace(name, values)
}
fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.replaceAll(additionalHeaders)
}
fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply {
this.additionalHeaders.replaceAll(additionalHeaders)
}
fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }
fun removeAllAdditionalHeaders(names: Set) = apply {
additionalHeaders.removeAll(names)
}
fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.clear()
putAllAdditionalQueryParams(additionalQueryParams)
}
fun additionalQueryParams(additionalQueryParams: Map>) = apply {
this.additionalQueryParams.clear()
putAllAdditionalQueryParams(additionalQueryParams)
}
fun putAdditionalQueryParam(key: String, value: String) = apply {
additionalQueryParams.put(key, value)
}
fun putAdditionalQueryParams(key: String, values: Iterable) = apply {
additionalQueryParams.put(key, values)
}
fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.putAll(additionalQueryParams)
}
fun putAllAdditionalQueryParams(additionalQueryParams: Map>) =
apply {
this.additionalQueryParams.putAll(additionalQueryParams)
}
fun replaceAdditionalQueryParams(key: String, value: String) = apply {
additionalQueryParams.replace(key, value)
}
fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply {
additionalQueryParams.replace(key, values)
}
fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.replaceAll(additionalQueryParams)
}
fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) =
apply {
this.additionalQueryParams.replaceAll(additionalQueryParams)
}
fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }
fun removeAllAdditionalQueryParams(keys: Set) = apply {
additionalQueryParams.removeAll(keys)
}
fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
this.additionalBodyProperties.clear()
putAllAdditionalBodyProperties(additionalBodyProperties)
}
fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
additionalBodyProperties.put(key, value)
}
fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
apply {
this.additionalBodyProperties.putAll(additionalBodyProperties)
}
fun removeAdditionalBodyProperty(key: String) = apply {
additionalBodyProperties.remove(key)
}
fun removeAllAdditionalBodyProperties(keys: Set) = apply {
keys.forEach(::removeAdditionalBodyProperty)
}
fun build(): EntityCreateBeneficialOwnerParams =
EntityCreateBeneficialOwnerParams(
checkNotNull(entityId) { "`entityId` is required but was not set" },
checkNotNull(beneficialOwner) { "`beneficialOwner` is required but was not set" },
additionalHeaders.build(),
additionalQueryParams.build(),
additionalBodyProperties.toImmutable(),
)
}
/** The identifying details of anyone controlling or owning 25% or more of the corporation. */
@JsonDeserialize(builder = BeneficialOwner.Builder::class)
@NoAutoDetect
class BeneficialOwner
private constructor(
private val companyTitle: String?,
private val individual: Individual?,
private val prongs: List?,
private val additionalProperties: Map,
) {
/** This person's role or title within the entity. */
@JsonProperty("company_title") fun companyTitle(): String? = companyTitle
/** Personal details for the beneficial owner. */
@JsonProperty("individual") fun individual(): Individual? = individual
/**
* Why this person is considered a beneficial owner of the entity. At least one option is
* required, if a person is both a control person and owner, submit an array containing
* both.
*/
@JsonProperty("prongs") fun prongs(): List? = prongs
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var companyTitle: String? = null
private var individual: Individual? = null
private var prongs: List? = null
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(beneficialOwner: BeneficialOwner) = apply {
this.companyTitle = beneficialOwner.companyTitle
this.individual = beneficialOwner.individual
this.prongs = beneficialOwner.prongs
additionalProperties(beneficialOwner.additionalProperties)
}
/** This person's role or title within the entity. */
@JsonProperty("company_title")
fun companyTitle(companyTitle: String) = apply { this.companyTitle = companyTitle }
/** Personal details for the beneficial owner. */
@JsonProperty("individual")
fun individual(individual: Individual) = apply { this.individual = individual }
/**
* Why this person is considered a beneficial owner of the entity. At least one option
* is required, if a person is both a control person and owner, submit an array
* containing both.
*/
@JsonProperty("prongs") fun prongs(prongs: List) = apply { this.prongs = prongs }
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(): BeneficialOwner =
BeneficialOwner(
companyTitle,
checkNotNull(individual) { "`individual` is required but was not set" },
checkNotNull(prongs) { "`prongs` is required but was not set" }.toImmutable(),
additionalProperties.toImmutable(),
)
}
/** Personal details for the beneficial owner. */
@JsonDeserialize(builder = Individual.Builder::class)
@NoAutoDetect
class Individual
private constructor(
private val address: Address?,
private val confirmedNoUsTaxId: Boolean?,
private val dateOfBirth: LocalDate?,
private val identification: Identification?,
private val name: String?,
private val additionalProperties: Map,
) {
/**
* The individual's physical address. Mail receiving locations like PO Boxes and PMB's
* are disallowed.
*/
@JsonProperty("address") fun address(): Address? = address
/**
* The identification method for an individual can only be a passport, driver's license,
* or other document if you've confirmed the individual does not have a US tax id
* (either a Social Security Number or Individual Taxpayer Identification Number).
*/
@JsonProperty("confirmed_no_us_tax_id")
fun confirmedNoUsTaxId(): Boolean? = confirmedNoUsTaxId
/** The person's date of birth in YYYY-MM-DD format. */
@JsonProperty("date_of_birth") fun dateOfBirth(): LocalDate? = dateOfBirth
/** A means of verifying the person's identity. */
@JsonProperty("identification") fun identification(): Identification? = identification
/** The person's legal name. */
@JsonProperty("name") fun name(): String? = name
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var address: Address? = null
private var confirmedNoUsTaxId: Boolean? = null
private var dateOfBirth: LocalDate? = null
private var identification: Identification? = null
private var name: String? = null
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(individual: Individual) = apply {
this.address = individual.address
this.confirmedNoUsTaxId = individual.confirmedNoUsTaxId
this.dateOfBirth = individual.dateOfBirth
this.identification = individual.identification
this.name = individual.name
additionalProperties(individual.additionalProperties)
}
/**
* The individual's physical address. Mail receiving locations like PO Boxes and
* PMB's are disallowed.
*/
@JsonProperty("address")
fun address(address: Address) = apply { this.address = address }
/**
* The identification method for an individual can only be a passport, driver's
* license, or other document if you've confirmed the individual does not have a US
* tax id (either a Social Security Number or Individual Taxpayer Identification
* Number).
*/
@JsonProperty("confirmed_no_us_tax_id")
fun confirmedNoUsTaxId(confirmedNoUsTaxId: Boolean) = apply {
this.confirmedNoUsTaxId = confirmedNoUsTaxId
}
/** The person's date of birth in YYYY-MM-DD format. */
@JsonProperty("date_of_birth")
fun dateOfBirth(dateOfBirth: LocalDate) = apply { this.dateOfBirth = dateOfBirth }
/** A means of verifying the person's identity. */
@JsonProperty("identification")
fun identification(identification: Identification) = apply {
this.identification = identification
}
/** The person's legal name. */
@JsonProperty("name") fun name(name: String) = apply { this.name = name }
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(): Individual =
Individual(
checkNotNull(address) { "`address` is required but was not set" },
confirmedNoUsTaxId,
checkNotNull(dateOfBirth) { "`dateOfBirth` is required but was not set" },
checkNotNull(identification) {
"`identification` is required but was not set"
},
checkNotNull(name) { "`name` is required but was not set" },
additionalProperties.toImmutable(),
)
}
/**
* The individual's physical address. Mail receiving locations like PO Boxes and PMB's
* are disallowed.
*/
@JsonDeserialize(builder = Address.Builder::class)
@NoAutoDetect
class Address
private constructor(
private val city: String?,
private val line1: String?,
private val line2: String?,
private val state: String?,
private val zip: String?,
private val additionalProperties: Map,
) {
/** The city of the address. */
@JsonProperty("city") fun city(): String? = city
/** The first line of the address. This is usually the street number and street. */
@JsonProperty("line1") fun line1(): String? = line1
/** The second line of the address. This might be the floor or room number. */
@JsonProperty("line2") fun line2(): String? = line2
/**
* The two-letter United States Postal Service (USPS) abbreviation for the state of
* the address.
*/
@JsonProperty("state") fun state(): String? = state
/** The ZIP code of the address. */
@JsonProperty("zip") fun zip(): String? = zip
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var city: String? = null
private var line1: String? = null
private var line2: String? = null
private var state: String? = null
private var zip: String? = null
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(address: Address) = apply {
this.city = address.city
this.line1 = address.line1
this.line2 = address.line2
this.state = address.state
this.zip = address.zip
additionalProperties(address.additionalProperties)
}
/** The city of the address. */
@JsonProperty("city") fun city(city: String) = apply { this.city = city }
/**
* The first line of the address. This is usually the street number and street.
*/
@JsonProperty("line1") fun line1(line1: String) = apply { this.line1 = line1 }
/** The second line of the address. This might be the floor or room number. */
@JsonProperty("line2") fun line2(line2: String) = apply { this.line2 = line2 }
/**
* The two-letter United States Postal Service (USPS) abbreviation for the state
* of the address.
*/
@JsonProperty("state") fun state(state: String) = apply { this.state = state }
/** The ZIP code of the address. */
@JsonProperty("zip") fun zip(zip: String) = apply { this.zip = zip }
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(): Address =
Address(
checkNotNull(city) { "`city` is required but was not set" },
checkNotNull(line1) { "`line1` is required but was not set" },
line2,
checkNotNull(state) { "`state` is required but was not set" },
checkNotNull(zip) { "`zip` is required but was not set" },
additionalProperties.toImmutable(),
)
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is Address && this.city == other.city && this.line1 == other.line1 && this.line2 == other.line2 && this.state == other.state && this.zip == other.zip && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(city, line1, line2, state, zip, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"Address{city=$city, line1=$line1, line2=$line2, state=$state, zip=$zip, additionalProperties=$additionalProperties}"
}
/** A means of verifying the person's identity. */
@JsonDeserialize(builder = Identification.Builder::class)
@NoAutoDetect
class Identification
private constructor(
private val driversLicense: DriversLicense?,
private val method: Method?,
private val number: String?,
private val other: Other?,
private val passport: Passport?,
private val additionalProperties: Map,
) {
/**
* Information about the United States driver's license used for identification.
* Required if `method` is equal to `drivers_license`.
*/
@JsonProperty("drivers_license")
fun driversLicense(): DriversLicense? = driversLicense
/** A method that can be used to verify the individual's identity. */
@JsonProperty("method") fun method(): Method? = method
/**
* An identification number that can be used to verify the individual's identity,
* such as a social security number.
*/
@JsonProperty("number") fun number(): String? = number
/**
* Information about the identification document provided. Required if `method` is
* equal to `other`.
*/
@JsonProperty("other") fun other(): Other? = other
/**
* Information about the passport used for identification. Required if `method` is
* equal to `passport`.
*/
@JsonProperty("passport") fun passport(): Passport? = passport
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var driversLicense: DriversLicense? = null
private var method: Method? = null
private var number: String? = null
private var other: Other? = null
private var passport: Passport? = null
private var additionalProperties: MutableMap = mutableMapOf()
internal fun from(identification: Identification) = apply {
this.driversLicense = identification.driversLicense
this.method = identification.method
this.number = identification.number
this.other = identification.other
this.passport = identification.passport
additionalProperties(identification.additionalProperties)
}
/**
* Information about the United States driver's license used for identification.
* Required if `method` is equal to `drivers_license`.
*/
@JsonProperty("drivers_license")
fun driversLicense(driversLicense: DriversLicense) = apply {
this.driversLicense = driversLicense
}
/** A method that can be used to verify the individual's identity. */
@JsonProperty("method")
fun method(method: Method) = apply { this.method = method }
/**
* An identification number that can be used to verify the individual's
* identity, such as a social security number.
*/
@JsonProperty("number")
fun number(number: String) = apply { this.number = number }
/**
* Information about the identification document provided. Required if `method`
* is equal to `other`.
*/
@JsonProperty("other") fun other(other: Other) = apply { this.other = other }
/**
* Information about the passport used for identification. Required if `method`
* is equal to `passport`.
*/
@JsonProperty("passport")
fun passport(passport: Passport) = apply { this.passport = passport }
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(): Identification =
Identification(
driversLicense,
checkNotNull(method) { "`method` is required but was not set" },
checkNotNull(number) { "`number` is required but was not set" },
other,
passport,
additionalProperties.toImmutable(),
)
}
class Method
@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 /* spotless:off */ other is Method && this.value == other.value /* spotless:on */
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
val SOCIAL_SECURITY_NUMBER = Method(JsonField.of("social_security_number"))
val INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER =
Method(JsonField.of("individual_taxpayer_identification_number"))
val PASSPORT = Method(JsonField.of("passport"))
val DRIVERS_LICENSE = Method(JsonField.of("drivers_license"))
val OTHER = Method(JsonField.of("other"))
fun of(value: String) = Method(JsonField.of(value))
}
enum class Known {
SOCIAL_SECURITY_NUMBER,
INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER,
PASSPORT,
DRIVERS_LICENSE,
OTHER,
}
enum class Value {
SOCIAL_SECURITY_NUMBER,
INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER,
PASSPORT,
DRIVERS_LICENSE,
OTHER,
_UNKNOWN,
}
fun value(): Value =
when (this) {
SOCIAL_SECURITY_NUMBER -> Value.SOCIAL_SECURITY_NUMBER
INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER ->
Value.INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
PASSPORT -> Value.PASSPORT
DRIVERS_LICENSE -> Value.DRIVERS_LICENSE
OTHER -> Value.OTHER
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
SOCIAL_SECURITY_NUMBER -> Known.SOCIAL_SECURITY_NUMBER
INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER ->
Known.INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
PASSPORT -> Known.PASSPORT
DRIVERS_LICENSE -> Known.DRIVERS_LICENSE
OTHER -> Known.OTHER
else -> throw IncreaseInvalidDataException("Unknown Method: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
/**
* Information about the United States driver's license used for identification.
* Required if `method` is equal to `drivers_license`.
*/
@JsonDeserialize(builder = DriversLicense.Builder::class)
@NoAutoDetect
class DriversLicense
private constructor(
private val backFileId: String?,
private val expirationDate: LocalDate?,
private val fileId: String?,
private val state: String?,
private val additionalProperties: Map,
) {
/** The identifier of the File containing the back of the driver's license. */
@JsonProperty("back_file_id") fun backFileId(): String? = backFileId
/** The driver's license's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(): LocalDate? = expirationDate
/** The identifier of the File containing the front of the driver's license. */
@JsonProperty("file_id") fun fileId(): String? = fileId
/** The state that issued the provided driver's license. */
@JsonProperty("state") fun state(): String? = state
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var backFileId: String? = null
private var expirationDate: LocalDate? = null
private var fileId: String? = null
private var state: String? = null
private var additionalProperties: MutableMap =
mutableMapOf()
internal fun from(driversLicense: DriversLicense) = apply {
this.backFileId = driversLicense.backFileId
this.expirationDate = driversLicense.expirationDate
this.fileId = driversLicense.fileId
this.state = driversLicense.state
additionalProperties(driversLicense.additionalProperties)
}
/**
* The identifier of the File containing the back of the driver's license.
*/
@JsonProperty("back_file_id")
fun backFileId(backFileId: String) = apply { this.backFileId = backFileId }
/** The driver's license's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(expirationDate: LocalDate) = apply {
this.expirationDate = expirationDate
}
/**
* The identifier of the File containing the front of the driver's license.
*/
@JsonProperty("file_id")
fun fileId(fileId: String) = apply { this.fileId = fileId }
/** The state that issued the provided driver's license. */
@JsonProperty("state")
fun state(state: String) = apply { this.state = state }
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(): DriversLicense =
DriversLicense(
backFileId,
checkNotNull(expirationDate) {
"`expirationDate` is required but was not set"
},
checkNotNull(fileId) { "`fileId` is required but was not set" },
checkNotNull(state) { "`state` is required but was not set" },
additionalProperties.toImmutable(),
)
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is DriversLicense && this.backFileId == other.backFileId && this.expirationDate == other.expirationDate && this.fileId == other.fileId && this.state == other.state && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(backFileId, expirationDate, fileId, state, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"DriversLicense{backFileId=$backFileId, expirationDate=$expirationDate, fileId=$fileId, state=$state, additionalProperties=$additionalProperties}"
}
/**
* Information about the identification document provided. Required if `method` is
* equal to `other`.
*/
@JsonDeserialize(builder = Other.Builder::class)
@NoAutoDetect
class Other
private constructor(
private val backFileId: String?,
private val country: String?,
private val description: String?,
private val expirationDate: LocalDate?,
private val fileId: String?,
private val additionalProperties: Map,
) {
/**
* The identifier of the File containing the back of the document. Not every
* document has a reverse side.
*/
@JsonProperty("back_file_id") fun backFileId(): String? = backFileId
/**
* The two-character ISO 3166-1 code representing the country that issued the
* document.
*/
@JsonProperty("country") fun country(): String? = country
/** A description of the document submitted. */
@JsonProperty("description") fun description(): String? = description
/** The document's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(): LocalDate? = expirationDate
/** The identifier of the File containing the front of the document. */
@JsonProperty("file_id") fun fileId(): String? = fileId
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var backFileId: String? = null
private var country: String? = null
private var description: String? = null
private var expirationDate: LocalDate? = null
private var fileId: String? = null
private var additionalProperties: MutableMap =
mutableMapOf()
internal fun from(other: Other) = apply {
this.backFileId = other.backFileId
this.country = other.country
this.description = other.description
this.expirationDate = other.expirationDate
this.fileId = other.fileId
additionalProperties(other.additionalProperties)
}
/**
* The identifier of the File containing the back of the document. Not every
* document has a reverse side.
*/
@JsonProperty("back_file_id")
fun backFileId(backFileId: String) = apply { this.backFileId = backFileId }
/**
* The two-character ISO 3166-1 code representing the country that issued
* the document.
*/
@JsonProperty("country")
fun country(country: String) = apply { this.country = country }
/** A description of the document submitted. */
@JsonProperty("description")
fun description(description: String) = apply {
this.description = description
}
/** The document's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(expirationDate: LocalDate) = apply {
this.expirationDate = expirationDate
}
/** The identifier of the File containing the front of the document. */
@JsonProperty("file_id")
fun fileId(fileId: String) = apply { this.fileId = fileId }
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(): Other =
Other(
backFileId,
checkNotNull(country) { "`country` is required but was not set" },
checkNotNull(description) {
"`description` is required but was not set"
},
expirationDate,
checkNotNull(fileId) { "`fileId` is required but was not set" },
additionalProperties.toImmutable(),
)
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is Other && this.backFileId == other.backFileId && this.country == other.country && this.description == other.description && this.expirationDate == other.expirationDate && this.fileId == other.fileId && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(backFileId, country, description, expirationDate, fileId, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"Other{backFileId=$backFileId, country=$country, description=$description, expirationDate=$expirationDate, fileId=$fileId, additionalProperties=$additionalProperties}"
}
/**
* Information about the passport used for identification. Required if `method` is
* equal to `passport`.
*/
@JsonDeserialize(builder = Passport.Builder::class)
@NoAutoDetect
class Passport
private constructor(
private val country: String?,
private val expirationDate: LocalDate?,
private val fileId: String?,
private val additionalProperties: Map,
) {
/** The country that issued the passport. */
@JsonProperty("country") fun country(): String? = country
/** The passport's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(): LocalDate? = expirationDate
/** The identifier of the File containing the passport. */
@JsonProperty("file_id") fun fileId(): String? = fileId
@JsonAnyGetter
@ExcludeMissing
fun _additionalProperties(): Map = additionalProperties
fun toBuilder() = Builder().from(this)
companion object {
fun builder() = Builder()
}
class Builder {
private var country: String? = null
private var expirationDate: LocalDate? = null
private var fileId: String? = null
private var additionalProperties: MutableMap =
mutableMapOf()
internal fun from(passport: Passport) = apply {
this.country = passport.country
this.expirationDate = passport.expirationDate
this.fileId = passport.fileId
additionalProperties(passport.additionalProperties)
}
/** The country that issued the passport. */
@JsonProperty("country")
fun country(country: String) = apply { this.country = country }
/** The passport's expiration date in YYYY-MM-DD format. */
@JsonProperty("expiration_date")
fun expirationDate(expirationDate: LocalDate) = apply {
this.expirationDate = expirationDate
}
/** The identifier of the File containing the passport. */
@JsonProperty("file_id")
fun fileId(fileId: String) = apply { this.fileId = fileId }
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(): Passport =
Passport(
checkNotNull(country) { "`country` is required but was not set" },
checkNotNull(expirationDate) {
"`expirationDate` is required but was not set"
},
checkNotNull(fileId) { "`fileId` is required but was not set" },
additionalProperties.toImmutable(),
)
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is Passport && this.country == other.country && this.expirationDate == other.expirationDate && this.fileId == other.fileId && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(country, expirationDate, fileId, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"Passport{country=$country, expirationDate=$expirationDate, fileId=$fileId, additionalProperties=$additionalProperties}"
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is Identification && this.driversLicense == other.driversLicense && this.method == other.method && this.number == other.number && this.other == other.other && this.passport == other.passport && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(driversLicense, method, number, other, passport, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"Identification{driversLicense=$driversLicense, method=$method, number=$number, other=$other, passport=$passport, additionalProperties=$additionalProperties}"
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is Individual && this.address == other.address && this.confirmedNoUsTaxId == other.confirmedNoUsTaxId && this.dateOfBirth == other.dateOfBirth && this.identification == other.identification && this.name == other.name && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(address, confirmedNoUsTaxId, dateOfBirth, identification, name, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"Individual{address=$address, confirmedNoUsTaxId=$confirmedNoUsTaxId, dateOfBirth=$dateOfBirth, identification=$identification, name=$name, additionalProperties=$additionalProperties}"
}
class Prong
@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 /* spotless:off */ other is Prong && this.value == other.value /* spotless:on */
}
override fun hashCode() = value.hashCode()
override fun toString() = value.toString()
companion object {
val OWNERSHIP = Prong(JsonField.of("ownership"))
val CONTROL = Prong(JsonField.of("control"))
fun of(value: String) = Prong(JsonField.of(value))
}
enum class Known {
OWNERSHIP,
CONTROL,
}
enum class Value {
OWNERSHIP,
CONTROL,
_UNKNOWN,
}
fun value(): Value =
when (this) {
OWNERSHIP -> Value.OWNERSHIP
CONTROL -> Value.CONTROL
else -> Value._UNKNOWN
}
fun known(): Known =
when (this) {
OWNERSHIP -> Known.OWNERSHIP
CONTROL -> Known.CONTROL
else -> throw IncreaseInvalidDataException("Unknown Prong: $value")
}
fun asString(): String = _value().asStringOrThrow()
}
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
return /* spotless:off */ other is BeneficialOwner && this.companyTitle == other.companyTitle && this.individual == other.individual && this.prongs == other.prongs && this.additionalProperties == other.additionalProperties /* spotless:on */
}
private var hashCode: Int = 0
override fun hashCode(): Int {
if (hashCode == 0) {
hashCode = /* spotless:off */ Objects.hash(companyTitle, individual, prongs, additionalProperties) /* spotless:on */
}
return hashCode
}
override fun toString() =
"BeneficialOwner{companyTitle=$companyTitle, individual=$individual, prongs=$prongs, additionalProperties=$additionalProperties}"
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy