diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 3c933c245..2e06584a9 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.438.0"
+ ".": "0.439.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 8a9805b70..464498e14 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 232
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-fc32a84f69e813f34ad70b65dba1ac56957f3c69361935f50df26caadaae3fce.yml
-openapi_spec_hash: 40b5bd3cc33a7002c1a6f36fe97377ef
-config_hash: b881baa4e0bc537d0caf02152712bd28
+configured_endpoints: 235
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-e9d1e51ce8416b747bc7ee664bb2c2e2095e2c5e49bad9e3a9c9657f3fed5994.yml
+openapi_spec_hash: db0318b3db534a5982ab89666b2e0117
+config_hash: 463c5cf7a7f13cf7db270b287814b56c
diff --git a/CHANGELOG.md b/CHANGELOG.md
index def42c7c5..7b68f39c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.439.0 (2026-03-02)
+
+Full Changelog: [v0.438.0...v0.439.0](https://github.com/Increase/increase-java/compare/v0.438.0...v0.439.0)
+
+### Features
+
+* **api:** api update ([421c44a](https://github.com/Increase/increase-java/commit/421c44a12d3fbd141ae1f197cdd55eb95431582d))
+
## 0.438.0 (2026-03-02)
Full Changelog: [v0.437.0...v0.438.0](https://github.com/Increase/increase-java/compare/v0.437.0...v0.438.0)
diff --git a/README.md b/README.md
index b2fcf73c5..6b0081830 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.438.0)
-[](https://javadoc.io/doc/com.increase.api/increase-java/0.438.0)
+[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.439.0)
+[](https://javadoc.io/doc/com.increase.api/increase-java/0.439.0)
@@ -13,7 +13,7 @@ The Increase Java SDK is similar to the Increase Kotlin SDK but with minor diffe
-The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.438.0).
+The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.439.0).
@@ -24,7 +24,7 @@ The REST API documentation can be found on [increase.com](https://increase.com/d
### Gradle
```kotlin
-implementation("com.increase.api:increase-java:0.438.0")
+implementation("com.increase.api:increase-java:0.439.0")
```
### Maven
@@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.438.0")
com.increase.api
increase-java
- 0.438.0
+ 0.439.0
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 1bb7b2a25..b40615c24 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.increase.api"
- version = "0.438.0" // x-release-please-version
+ version = "0.439.0" // x-release-please-version
}
subprojects {
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengeAttemptsParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengeAttemptsParams.kt
new file mode 100644
index 000000000..703f35513
--- /dev/null
+++ b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengeAttemptsParams.kt
@@ -0,0 +1,455 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.increase.api.models.simulations.cardauthentications
+
+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.increase.api.core.ExcludeMissing
+import com.increase.api.core.JsonField
+import com.increase.api.core.JsonMissing
+import com.increase.api.core.JsonValue
+import com.increase.api.core.Params
+import com.increase.api.core.checkRequired
+import com.increase.api.core.http.Headers
+import com.increase.api.core.http.QueryParams
+import com.increase.api.errors.IncreaseInvalidDataException
+import java.util.Collections
+import java.util.Objects
+import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
+
+/**
+ * Simulates an attempt at a Card Authentication Challenge. This updates the `card_authentications`
+ * object under the [Card Payment](#card_payments). You can also attempt the challenge by navigating
+ * to https://dashboard.increase.com/card_authentication_simulation/:card_payment_id.
+ */
+class CardAuthenticationChallengeAttemptsParams
+private constructor(
+ private val cardPaymentId: String?,
+ private val body: Body,
+ private val additionalHeaders: Headers,
+ private val additionalQueryParams: QueryParams,
+) : Params {
+
+ /** The identifier of the Card Payment to be challenged. */
+ fun cardPaymentId(): Optional = Optional.ofNullable(cardPaymentId)
+
+ /**
+ * The one-time code to be validated.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type or is
+ * unexpectedly missing or null (e.g. if the server responded with an unexpected value).
+ */
+ fun oneTimeCode(): String = body.oneTimeCode()
+
+ /**
+ * Returns the raw JSON value of [oneTimeCode].
+ *
+ * Unlike [oneTimeCode], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ fun _oneTimeCode(): JsonField = body._oneTimeCode()
+
+ fun _additionalBodyProperties(): Map = body._additionalProperties()
+
+ /** Additional headers to send with the request. */
+ fun _additionalHeaders(): Headers = additionalHeaders
+
+ /** Additional query param to send with the request. */
+ fun _additionalQueryParams(): QueryParams = additionalQueryParams
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /**
+ * Returns a mutable builder for constructing an instance of
+ * [CardAuthenticationChallengeAttemptsParams].
+ *
+ * The following fields are required:
+ * ```java
+ * .oneTimeCode()
+ * ```
+ */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [CardAuthenticationChallengeAttemptsParams]. */
+ class Builder internal constructor() {
+
+ private var cardPaymentId: String? = null
+ private var body: Body.Builder = Body.builder()
+ private var additionalHeaders: Headers.Builder = Headers.builder()
+ private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
+
+ @JvmSynthetic
+ internal fun from(
+ cardAuthenticationChallengeAttemptsParams: CardAuthenticationChallengeAttemptsParams
+ ) = apply {
+ cardPaymentId = cardAuthenticationChallengeAttemptsParams.cardPaymentId
+ body = cardAuthenticationChallengeAttemptsParams.body.toBuilder()
+ additionalHeaders =
+ cardAuthenticationChallengeAttemptsParams.additionalHeaders.toBuilder()
+ additionalQueryParams =
+ cardAuthenticationChallengeAttemptsParams.additionalQueryParams.toBuilder()
+ }
+
+ /** The identifier of the Card Payment to be challenged. */
+ fun cardPaymentId(cardPaymentId: String?) = apply { this.cardPaymentId = cardPaymentId }
+
+ /** Alias for calling [Builder.cardPaymentId] with `cardPaymentId.orElse(null)`. */
+ fun cardPaymentId(cardPaymentId: Optional) =
+ cardPaymentId(cardPaymentId.getOrNull())
+
+ /**
+ * Sets the entire request body.
+ *
+ * This is generally only useful if you are already constructing the body separately.
+ * Otherwise, it's more convenient to use the top-level setters instead:
+ * - [oneTimeCode]
+ */
+ fun body(body: Body) = apply { this.body = body.toBuilder() }
+
+ /** The one-time code to be validated. */
+ fun oneTimeCode(oneTimeCode: String) = apply { body.oneTimeCode(oneTimeCode) }
+
+ /**
+ * Sets [Builder.oneTimeCode] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.oneTimeCode] with a well-typed [String] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun oneTimeCode(oneTimeCode: JsonField) = apply { body.oneTimeCode(oneTimeCode) }
+
+ fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
+ body.additionalProperties(additionalBodyProperties)
+ }
+
+ fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
+ body.putAdditionalProperty(key, value)
+ }
+
+ fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
+ apply {
+ body.putAllAdditionalProperties(additionalBodyProperties)
+ }
+
+ fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) }
+
+ fun removeAllAdditionalBodyProperties(keys: Set) = apply {
+ body.removeAllAdditionalProperties(keys)
+ }
+
+ 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)
+ }
+
+ /**
+ * Returns an immutable instance of [CardAuthenticationChallengeAttemptsParams].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ *
+ * The following fields are required:
+ * ```java
+ * .oneTimeCode()
+ * ```
+ *
+ * @throws IllegalStateException if any required field is unset.
+ */
+ fun build(): CardAuthenticationChallengeAttemptsParams =
+ CardAuthenticationChallengeAttemptsParams(
+ cardPaymentId,
+ body.build(),
+ additionalHeaders.build(),
+ additionalQueryParams.build(),
+ )
+ }
+
+ fun _body(): Body = body
+
+ fun _pathParam(index: Int): String =
+ when (index) {
+ 0 -> cardPaymentId ?: ""
+ else -> ""
+ }
+
+ override fun _headers(): Headers = additionalHeaders
+
+ override fun _queryParams(): QueryParams = additionalQueryParams
+
+ class Body
+ @JsonCreator(mode = JsonCreator.Mode.DISABLED)
+ private constructor(
+ private val oneTimeCode: JsonField,
+ private val additionalProperties: MutableMap,
+ ) {
+
+ @JsonCreator
+ private constructor(
+ @JsonProperty("one_time_code")
+ @ExcludeMissing
+ oneTimeCode: JsonField = JsonMissing.of()
+ ) : this(oneTimeCode, mutableMapOf())
+
+ /**
+ * The one-time code to be validated.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type or is
+ * unexpectedly missing or null (e.g. if the server responded with an unexpected value).
+ */
+ fun oneTimeCode(): String = oneTimeCode.getRequired("one_time_code")
+
+ /**
+ * Returns the raw JSON value of [oneTimeCode].
+ *
+ * Unlike [oneTimeCode], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("one_time_code")
+ @ExcludeMissing
+ fun _oneTimeCode(): JsonField = oneTimeCode
+
+ @JsonAnySetter
+ private fun putAdditionalProperty(key: String, value: JsonValue) {
+ additionalProperties.put(key, value)
+ }
+
+ @JsonAnyGetter
+ @ExcludeMissing
+ fun _additionalProperties(): Map =
+ Collections.unmodifiableMap(additionalProperties)
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /**
+ * Returns a mutable builder for constructing an instance of [Body].
+ *
+ * The following fields are required:
+ * ```java
+ * .oneTimeCode()
+ * ```
+ */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [Body]. */
+ class Builder internal constructor() {
+
+ private var oneTimeCode: JsonField? = null
+ private var additionalProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(body: Body) = apply {
+ oneTimeCode = body.oneTimeCode
+ additionalProperties = body.additionalProperties.toMutableMap()
+ }
+
+ /** The one-time code to be validated. */
+ fun oneTimeCode(oneTimeCode: String) = oneTimeCode(JsonField.of(oneTimeCode))
+
+ /**
+ * Sets [Builder.oneTimeCode] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.oneTimeCode] with a well-typed [String] value
+ * instead. This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun oneTimeCode(oneTimeCode: JsonField) = apply {
+ this.oneTimeCode = oneTimeCode
+ }
+
+ fun additionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.clear()
+ putAllAdditionalProperties(additionalProperties)
+ }
+
+ fun putAdditionalProperty(key: String, value: JsonValue) = apply {
+ additionalProperties.put(key, value)
+ }
+
+ fun putAllAdditionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.putAll(additionalProperties)
+ }
+
+ fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
+
+ fun removeAllAdditionalProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [Body].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ *
+ * The following fields are required:
+ * ```java
+ * .oneTimeCode()
+ * ```
+ *
+ * @throws IllegalStateException if any required field is unset.
+ */
+ fun build(): Body =
+ Body(checkRequired("oneTimeCode", oneTimeCode), additionalProperties.toMutableMap())
+ }
+
+ private var validated: Boolean = false
+
+ fun validate(): Body = apply {
+ if (validated) {
+ return@apply
+ }
+
+ oneTimeCode()
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: IncreaseInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic internal fun validity(): Int = (if (oneTimeCode.asKnown().isPresent) 1 else 0)
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Body &&
+ oneTimeCode == other.oneTimeCode &&
+ additionalProperties == other.additionalProperties
+ }
+
+ private val hashCode: Int by lazy { Objects.hash(oneTimeCode, additionalProperties) }
+
+ override fun hashCode(): Int = hashCode
+
+ override fun toString() =
+ "Body{oneTimeCode=$oneTimeCode, additionalProperties=$additionalProperties}"
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is CardAuthenticationChallengeAttemptsParams &&
+ cardPaymentId == other.cardPaymentId &&
+ body == other.body &&
+ additionalHeaders == other.additionalHeaders &&
+ additionalQueryParams == other.additionalQueryParams
+ }
+
+ override fun hashCode(): Int =
+ Objects.hash(cardPaymentId, body, additionalHeaders, additionalQueryParams)
+
+ override fun toString() =
+ "CardAuthenticationChallengeAttemptsParams{cardPaymentId=$cardPaymentId, body=$body, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
+}
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengesParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengesParams.kt
new file mode 100644
index 000000000..42fcf99fc
--- /dev/null
+++ b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/cardauthentications/CardAuthenticationChallengesParams.kt
@@ -0,0 +1,249 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.increase.api.models.simulations.cardauthentications
+
+import com.increase.api.core.JsonValue
+import com.increase.api.core.Params
+import com.increase.api.core.http.Headers
+import com.increase.api.core.http.QueryParams
+import com.increase.api.core.toImmutable
+import java.util.Objects
+import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
+
+/**
+ * Simulates starting a Card Authentication Challenge for an existing Card Authentication. This
+ * updates the `card_authentications` object under the [Card Payment](#card_payments). To attempt
+ * the challenge, use the `/simulations/card_authentications/:card_payment_id/challenge_attempts`
+ * endpoint or navigate to
+ * https://dashboard.increase.com/card_authentication_simulation/:card_payment_id.
+ */
+class CardAuthenticationChallengesParams
+private constructor(
+ private val cardPaymentId: String?,
+ private val additionalHeaders: Headers,
+ private val additionalQueryParams: QueryParams,
+ private val additionalBodyProperties: Map,
+) : Params {
+
+ /** The identifier of the Card Payment to be challenged. */
+ fun cardPaymentId(): Optional = Optional.ofNullable(cardPaymentId)
+
+ /** Additional body properties to send with the request. */
+ fun _additionalBodyProperties(): Map = additionalBodyProperties
+
+ /** Additional headers to send with the request. */
+ fun _additionalHeaders(): Headers = additionalHeaders
+
+ /** Additional query param to send with the request. */
+ fun _additionalQueryParams(): QueryParams = additionalQueryParams
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ @JvmStatic fun none(): CardAuthenticationChallengesParams = builder().build()
+
+ /**
+ * Returns a mutable builder for constructing an instance of
+ * [CardAuthenticationChallengesParams].
+ */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [CardAuthenticationChallengesParams]. */
+ class Builder internal constructor() {
+
+ private var cardPaymentId: String? = null
+ private var additionalHeaders: Headers.Builder = Headers.builder()
+ private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
+ private var additionalBodyProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(cardAuthenticationChallengesParams: CardAuthenticationChallengesParams) =
+ apply {
+ cardPaymentId = cardAuthenticationChallengesParams.cardPaymentId
+ additionalHeaders = cardAuthenticationChallengesParams.additionalHeaders.toBuilder()
+ additionalQueryParams =
+ cardAuthenticationChallengesParams.additionalQueryParams.toBuilder()
+ additionalBodyProperties =
+ cardAuthenticationChallengesParams.additionalBodyProperties.toMutableMap()
+ }
+
+ /** The identifier of the Card Payment to be challenged. */
+ fun cardPaymentId(cardPaymentId: String?) = apply { this.cardPaymentId = cardPaymentId }
+
+ /** Alias for calling [Builder.cardPaymentId] with `cardPaymentId.orElse(null)`. */
+ fun cardPaymentId(cardPaymentId: Optional) =
+ cardPaymentId(cardPaymentId.getOrNull())
+
+ 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)
+ }
+
+ /**
+ * Returns an immutable instance of [CardAuthenticationChallengesParams].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): CardAuthenticationChallengesParams =
+ CardAuthenticationChallengesParams(
+ cardPaymentId,
+ additionalHeaders.build(),
+ additionalQueryParams.build(),
+ additionalBodyProperties.toImmutable(),
+ )
+ }
+
+ fun _body(): Optional