From 1fa18e6398201a2e10b6dde1e44370d29544996c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 22:59:28 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 6 +- ...ams.kt => EntityUpdateValidationParams.kt} | 270 +++--------------- .../async/simulations/EntityServiceAsync.kt | 67 +++-- .../simulations/EntityServiceAsyncImpl.kt | 25 +- .../blocking/simulations/EntityService.kt | 63 ++-- .../blocking/simulations/EntityServiceImpl.kt | 25 +- ...kt => EntityUpdateValidationParamsTest.kt} | 28 +- .../simulations/EntityServiceAsyncTest.kt | 15 +- .../blocking/simulations/EntityServiceTest.kt | 15 +- 9 files changed, 164 insertions(+), 350 deletions(-) rename increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/{EntityValidationParams.kt => EntityUpdateValidationParams.kt} (75%) rename increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/{EntityValidationParamsTest.kt => EntityUpdateValidationParamsTest.kt} (51%) diff --git a/.stats.yml b/.stats.yml index af3454a51..73e838e27 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 238 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase/increase-6464f57d01144d16836903f5a060d86c8ea97b940c6093767fefde262291fa57.yml -openapi_spec_hash: 037ce7b3c2ddbd80f9d420e519ed924c -config_hash: 060e036e1db198f2e908364c9df7096e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase/increase-5753cd7d30cb546d3e2ff7408c24febe5f251f4a50017960a21746a50c9b7f67.yml +openapi_spec_hash: 0efa1759effd642f1f39107a0de6b5e7 +config_hash: 20a19f4f8eba684f97ba7cdc0007f818 diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityValidationParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParams.kt similarity index 75% rename from increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityValidationParams.kt rename to increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParams.kt index d5a047e2b..b128cc315 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityValidationParams.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParams.kt @@ -24,13 +24,13 @@ import java.util.Optional import kotlin.jvm.optionals.getOrNull /** - * Set the status for an + * Simulate updates to an * [Entity's validation](/documentation/api/entities#entity-object.validation). In production, Know - * Your Customer validations - * [run automatically](/documentation/entity-validation#entity-validation). While developing, it can - * be helpful to override the behavior in Sandbox. + * Your Customer validations [run automatically](/documentation/entity-validation#entity-validation) + * for eligible programs. While developing, use this API to simulate issues with information + * submissions. */ -class EntityValidationParams +class EntityUpdateValidationParams private constructor( private val entityId: String?, private val body: Body, @@ -42,21 +42,14 @@ private constructor( fun entityId(): Optional = Optional.ofNullable(entityId) /** - * The validation issues to attach. Only allowed when `status` is `invalid`. + * The validation issues to attach. If no issues are provided, the validation status will be set + * to `valid`. * * @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 issues(): List = body.issues() - /** - * The validation status to set on the Entity. - * - * @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 status(): Status = body.status() - /** * Returns the raw JSON value of [issues]. * @@ -64,13 +57,6 @@ private constructor( */ fun _issues(): JsonField> = body._issues() - /** - * Returns the raw JSON value of [status]. - * - * Unlike [status], this method doesn't throw if the JSON field has an unexpected type. - */ - fun _status(): JsonField = body._status() - fun _additionalBodyProperties(): Map = body._additionalProperties() /** Additional headers to send with the request. */ @@ -84,18 +70,17 @@ private constructor( companion object { /** - * Returns a mutable builder for constructing an instance of [EntityValidationParams]. + * Returns a mutable builder for constructing an instance of [EntityUpdateValidationParams]. * * The following fields are required: * ```java * .issues() - * .status() * ``` */ @JvmStatic fun builder() = Builder() } - /** A builder for [EntityValidationParams]. */ + /** A builder for [EntityUpdateValidationParams]. */ class Builder internal constructor() { private var entityId: String? = null @@ -104,11 +89,11 @@ private constructor( private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic - internal fun from(entityValidationParams: EntityValidationParams) = apply { - entityId = entityValidationParams.entityId - body = entityValidationParams.body.toBuilder() - additionalHeaders = entityValidationParams.additionalHeaders.toBuilder() - additionalQueryParams = entityValidationParams.additionalQueryParams.toBuilder() + internal fun from(entityUpdateValidationParams: EntityUpdateValidationParams) = apply { + entityId = entityUpdateValidationParams.entityId + body = entityUpdateValidationParams.body.toBuilder() + additionalHeaders = entityUpdateValidationParams.additionalHeaders.toBuilder() + additionalQueryParams = entityUpdateValidationParams.additionalQueryParams.toBuilder() } /** The identifier of the Entity whose validation status to update. */ @@ -123,11 +108,13 @@ private constructor( * 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: * - [issues] - * - [status] */ fun body(body: Body) = apply { this.body = body.toBuilder() } - /** The validation issues to attach. Only allowed when `status` is `invalid`. */ + /** + * The validation issues to attach. If no issues are provided, the validation status will be + * set to `valid`. + */ fun issues(issues: List) = apply { body.issues(issues) } /** @@ -146,17 +133,6 @@ private constructor( */ fun addIssue(issue: Issue) = apply { body.addIssue(issue) } - /** The validation status to set on the Entity. */ - fun status(status: Status) = apply { body.status(status) } - - /** - * Sets [Builder.status] to an arbitrary JSON value. - * - * You should usually call [Builder.status] with a well-typed [Status] value instead. This - * method is primarily for setting the field to an undocumented or not yet supported value. - */ - fun status(status: JsonField) = apply { body.status(status) } - fun additionalBodyProperties(additionalBodyProperties: Map) = apply { body.additionalProperties(additionalBodyProperties) } @@ -275,20 +251,19 @@ private constructor( } /** - * Returns an immutable instance of [EntityValidationParams]. + * Returns an immutable instance of [EntityUpdateValidationParams]. * * Further updates to this [Builder] will not mutate the returned instance. * * The following fields are required: * ```java * .issues() - * .status() * ``` * * @throws IllegalStateException if any required field is unset. */ - fun build(): EntityValidationParams = - EntityValidationParams( + fun build(): EntityUpdateValidationParams = + EntityUpdateValidationParams( entityId, body.build(), additionalHeaders.build(), @@ -312,7 +287,6 @@ private constructor( @JsonCreator(mode = JsonCreator.Mode.DISABLED) private constructor( private val issues: JsonField>, - private val status: JsonField, private val additionalProperties: MutableMap, ) { @@ -320,26 +294,18 @@ private constructor( private constructor( @JsonProperty("issues") @ExcludeMissing - issues: JsonField> = JsonMissing.of(), - @JsonProperty("status") @ExcludeMissing status: JsonField = JsonMissing.of(), - ) : this(issues, status, mutableMapOf()) + issues: JsonField> = JsonMissing.of() + ) : this(issues, mutableMapOf()) /** - * The validation issues to attach. Only allowed when `status` is `invalid`. + * The validation issues to attach. If no issues are provided, the validation status will be + * set to `valid`. * * @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 issues(): List = issues.getRequired("issues") - /** - * The validation status to set on the Entity. - * - * @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 status(): Status = status.getRequired("status") - /** * Returns the raw JSON value of [issues]. * @@ -347,13 +313,6 @@ private constructor( */ @JsonProperty("issues") @ExcludeMissing fun _issues(): JsonField> = issues - /** - * Returns the raw JSON value of [status]. - * - * Unlike [status], this method doesn't throw if the JSON field has an unexpected type. - */ - @JsonProperty("status") @ExcludeMissing fun _status(): JsonField = status - @JsonAnySetter private fun putAdditionalProperty(key: String, value: JsonValue) { additionalProperties.put(key, value) @@ -374,7 +333,6 @@ private constructor( * The following fields are required: * ```java * .issues() - * .status() * ``` */ @JvmStatic fun builder() = Builder() @@ -384,17 +342,18 @@ private constructor( class Builder internal constructor() { private var issues: JsonField>? = null - private var status: JsonField? = null private var additionalProperties: MutableMap = mutableMapOf() @JvmSynthetic internal fun from(body: Body) = apply { issues = body.issues.map { it.toMutableList() } - status = body.status additionalProperties = body.additionalProperties.toMutableMap() } - /** The validation issues to attach. Only allowed when `status` is `invalid`. */ + /** + * The validation issues to attach. If no issues are provided, the validation status + * will be set to `valid`. + */ fun issues(issues: List) = issues(JsonField.of(issues)) /** @@ -420,18 +379,6 @@ private constructor( } } - /** The validation status to set on the Entity. */ - fun status(status: Status) = status(JsonField.of(status)) - - /** - * Sets [Builder.status] to an arbitrary JSON value. - * - * You should usually call [Builder.status] with a well-typed [Status] value instead. - * This method is primarily for setting the field to an undocumented or not yet - * supported value. - */ - fun status(status: JsonField) = apply { this.status = status } - fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() putAllAdditionalProperties(additionalProperties) @@ -459,7 +406,6 @@ private constructor( * The following fields are required: * ```java * .issues() - * .status() * ``` * * @throws IllegalStateException if any required field is unset. @@ -467,7 +413,6 @@ private constructor( fun build(): Body = Body( checkRequired("issues", issues).map { it.toImmutable() }, - checkRequired("status", status), additionalProperties.toMutableMap(), ) } @@ -480,7 +425,6 @@ private constructor( } issues().forEach { it.validate() } - status().validate() validated = true } @@ -500,8 +444,7 @@ private constructor( */ @JvmSynthetic internal fun validity(): Int = - (issues.asKnown().getOrNull()?.sumOf { it.validity().toInt() } ?: 0) + - (status.asKnown().getOrNull()?.validity() ?: 0) + (issues.asKnown().getOrNull()?.sumOf { it.validity().toInt() } ?: 0) override fun equals(other: Any?): Boolean { if (this === other) { @@ -510,16 +453,14 @@ private constructor( return other is Body && issues == other.issues && - status == other.status && additionalProperties == other.additionalProperties } - private val hashCode: Int by lazy { Objects.hash(issues, status, additionalProperties) } + private val hashCode: Int by lazy { Objects.hash(issues, additionalProperties) } override fun hashCode(): Int = hashCode - override fun toString() = - "Body{issues=$issues, status=$status, additionalProperties=$additionalProperties}" + override fun toString() = "Body{issues=$issues, additionalProperties=$additionalProperties}" } class Issue @@ -875,155 +816,12 @@ private constructor( "Issue{category=$category, additionalProperties=$additionalProperties}" } - /** The validation status to set on the Entity. */ - class Status @JsonCreator private constructor(private val value: JsonField) : Enum { - - /** - * Returns this class instance's raw value. - * - * This is usually only useful if this instance was deserialized from data that doesn't - * match any known member, and you want to know that value. For example, if the SDK is on an - * older version than the API, then the API may respond with new members that the SDK is - * unaware of. - */ - @com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value - - companion object { - - /** The submitted data is valid. */ - @JvmField val VALID = of("valid") - - /** Additional information is required to validate the data. */ - @JvmField val INVALID = of("invalid") - - /** The submitted data is being validated. */ - @JvmField val PENDING = of("pending") - - @JvmStatic fun of(value: String) = Status(JsonField.of(value)) - } - - /** An enum containing [Status]'s known values. */ - enum class Known { - /** The submitted data is valid. */ - VALID, - /** Additional information is required to validate the data. */ - INVALID, - /** The submitted data is being validated. */ - PENDING, - } - - /** - * An enum containing [Status]'s known values, as well as an [_UNKNOWN] member. - * - * An instance of [Status] can contain an unknown value in a couple of cases: - * - It was deserialized from data that doesn't match any known member. For example, if the - * SDK is on an older version than the API, then the API may respond with new members that - * the SDK is unaware of. - * - It was constructed with an arbitrary value using the [of] method. - */ - enum class Value { - /** The submitted data is valid. */ - VALID, - /** Additional information is required to validate the data. */ - INVALID, - /** The submitted data is being validated. */ - PENDING, - /** An enum member indicating that [Status] was instantiated with an unknown value. */ - _UNKNOWN, - } - - /** - * Returns an enum member corresponding to this class instance's value, or [Value._UNKNOWN] - * if the class was instantiated with an unknown value. - * - * Use the [known] method instead if you're certain the value is always known or if you want - * to throw for the unknown case. - */ - fun value(): Value = - when (this) { - VALID -> Value.VALID - INVALID -> Value.INVALID - PENDING -> Value.PENDING - else -> Value._UNKNOWN - } - - /** - * Returns an enum member corresponding to this class instance's value. - * - * Use the [value] method instead if you're uncertain the value is always known and don't - * want to throw for the unknown case. - * - * @throws IncreaseInvalidDataException if this class instance's value is a not a known - * member. - */ - fun known(): Known = - when (this) { - VALID -> Known.VALID - INVALID -> Known.INVALID - PENDING -> Known.PENDING - else -> throw IncreaseInvalidDataException("Unknown Status: $value") - } - - /** - * Returns this class instance's primitive wire representation. - * - * This differs from the [toString] method because that method is primarily for debugging - * and generally doesn't throw. - * - * @throws IncreaseInvalidDataException if this class instance's value does not have the - * expected primitive type. - */ - fun asString(): String = - _value().asString().orElseThrow { - IncreaseInvalidDataException("Value is not a String") - } - - private var validated: Boolean = false - - fun validate(): Status = apply { - if (validated) { - return@apply - } - - known() - 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 (value() == Value._UNKNOWN) 0 else 1 - - override fun equals(other: Any?): Boolean { - if (this === other) { - return true - } - - return other is Status && value == other.value - } - - override fun hashCode() = value.hashCode() - - override fun toString() = value.toString() - } - override fun equals(other: Any?): Boolean { if (this === other) { return true } - return other is EntityValidationParams && + return other is EntityUpdateValidationParams && entityId == other.entityId && body == other.body && additionalHeaders == other.additionalHeaders && @@ -1034,5 +832,5 @@ private constructor( Objects.hash(entityId, body, additionalHeaders, additionalQueryParams) override fun toString() = - "EntityValidationParams{entityId=$entityId, body=$body, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}" + "EntityUpdateValidationParams{entityId=$entityId, body=$body, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}" } diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsync.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsync.kt index 1d417dcaa..b8b4c5798 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsync.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsync.kt @@ -6,7 +6,7 @@ import com.increase.api.core.ClientOptions import com.increase.api.core.RequestOptions import com.increase.api.core.http.HttpResponseFor import com.increase.api.models.entities.Entity -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import java.util.concurrent.CompletableFuture import java.util.function.Consumer @@ -25,30 +25,32 @@ interface EntityServiceAsync { fun withOptions(modifier: Consumer): EntityServiceAsync /** - * Set the status for an + * Simulate updates to an * [Entity's validation](/documentation/api/entities#entity-object.validation). In production, * Know Your Customer validations - * [run automatically](/documentation/entity-validation#entity-validation). While developing, it - * can be helpful to override the behavior in Sandbox. + * [run automatically](/documentation/entity-validation#entity-validation) for eligible + * programs. While developing, use this API to simulate issues with information submissions. */ - fun validation(entityId: String, params: EntityValidationParams): CompletableFuture = - validation(entityId, params, RequestOptions.none()) + fun updateValidation( + entityId: String, + params: EntityUpdateValidationParams, + ): CompletableFuture = updateValidation(entityId, params, RequestOptions.none()) - /** @see validation */ - fun validation( + /** @see updateValidation */ + fun updateValidation( entityId: String, - params: EntityValidationParams, + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): CompletableFuture = - validation(params.toBuilder().entityId(entityId).build(), requestOptions) + updateValidation(params.toBuilder().entityId(entityId).build(), requestOptions) - /** @see validation */ - fun validation(params: EntityValidationParams): CompletableFuture = - validation(params, RequestOptions.none()) + /** @see updateValidation */ + fun updateValidation(params: EntityUpdateValidationParams): CompletableFuture = + updateValidation(params, RequestOptions.none()) - /** @see validation */ - fun validation( - params: EntityValidationParams, + /** @see updateValidation */ + fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): CompletableFuture @@ -67,30 +69,33 @@ interface EntityServiceAsync { ): EntityServiceAsync.WithRawResponse /** - * Returns a raw HTTP response for `post /simulations/entities/{entity_id}/validation`, but - * is otherwise the same as [EntityServiceAsync.validation]. + * Returns a raw HTTP response for `post + * /simulations/entities/{entity_id}/update_validation`, but is otherwise the same as + * [EntityServiceAsync.updateValidation]. */ - fun validation( + fun updateValidation( entityId: String, - params: EntityValidationParams, + params: EntityUpdateValidationParams, ): CompletableFuture> = - validation(entityId, params, RequestOptions.none()) + updateValidation(entityId, params, RequestOptions.none()) - /** @see validation */ - fun validation( + /** @see updateValidation */ + fun updateValidation( entityId: String, - params: EntityValidationParams, + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): CompletableFuture> = - validation(params.toBuilder().entityId(entityId).build(), requestOptions) + updateValidation(params.toBuilder().entityId(entityId).build(), requestOptions) - /** @see validation */ - fun validation(params: EntityValidationParams): CompletableFuture> = - validation(params, RequestOptions.none()) + /** @see updateValidation */ + fun updateValidation( + params: EntityUpdateValidationParams + ): CompletableFuture> = + updateValidation(params, RequestOptions.none()) - /** @see validation */ - fun validation( - params: EntityValidationParams, + /** @see updateValidation */ + fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): CompletableFuture> } diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncImpl.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncImpl.kt index 149ea3bf1..2157ae19c 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncImpl.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncImpl.kt @@ -17,7 +17,7 @@ import com.increase.api.core.http.json import com.increase.api.core.http.parseable import com.increase.api.core.prepareAsync import com.increase.api.models.entities.Entity -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import java.util.concurrent.CompletableFuture import java.util.function.Consumer import kotlin.jvm.optionals.getOrNull @@ -34,12 +34,12 @@ class EntityServiceAsyncImpl internal constructor(private val clientOptions: Cli override fun withOptions(modifier: Consumer): EntityServiceAsync = EntityServiceAsyncImpl(clientOptions.toBuilder().apply(modifier::accept).build()) - override fun validation( - params: EntityValidationParams, + override fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions, ): CompletableFuture = - // post /simulations/entities/{entity_id}/validation - withRawResponse().validation(params, requestOptions).thenApply { it.parse() } + // post /simulations/entities/{entity_id}/update_validation + withRawResponse().updateValidation(params, requestOptions).thenApply { it.parse() } class WithRawResponseImpl internal constructor(private val clientOptions: ClientOptions) : EntityServiceAsync.WithRawResponse { @@ -54,11 +54,11 @@ class EntityServiceAsyncImpl internal constructor(private val clientOptions: Cli clientOptions.toBuilder().apply(modifier::accept).build() ) - private val validationHandler: Handler = + private val updateValidationHandler: Handler = jsonHandler(clientOptions.jsonMapper) - override fun validation( - params: EntityValidationParams, + override fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions, ): CompletableFuture> { // We check here instead of in the params builder because this can be specified @@ -68,7 +68,12 @@ class EntityServiceAsyncImpl internal constructor(private val clientOptions: Cli HttpRequest.builder() .method(HttpMethod.POST) .baseUrl(clientOptions.baseUrl()) - .addPathSegments("simulations", "entities", params._pathParam(0), "validation") + .addPathSegments( + "simulations", + "entities", + params._pathParam(0), + "update_validation", + ) .body(json(clientOptions.jsonMapper, params._body())) .build() .prepareAsync(clientOptions, params) @@ -78,7 +83,7 @@ class EntityServiceAsyncImpl internal constructor(private val clientOptions: Cli .thenApply { response -> errorHandler.handle(response).parseable { response - .use { validationHandler.handle(it) } + .use { updateValidationHandler.handle(it) } .also { if (requestOptions.responseValidation!!) { it.validate() diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityService.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityService.kt index cf0b91670..9b15c070d 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityService.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityService.kt @@ -7,7 +7,7 @@ import com.increase.api.core.ClientOptions import com.increase.api.core.RequestOptions import com.increase.api.core.http.HttpResponseFor import com.increase.api.models.entities.Entity -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import java.util.function.Consumer interface EntityService { @@ -25,29 +25,29 @@ interface EntityService { fun withOptions(modifier: Consumer): EntityService /** - * Set the status for an + * Simulate updates to an * [Entity's validation](/documentation/api/entities#entity-object.validation). In production, * Know Your Customer validations - * [run automatically](/documentation/entity-validation#entity-validation). While developing, it - * can be helpful to override the behavior in Sandbox. + * [run automatically](/documentation/entity-validation#entity-validation) for eligible + * programs. While developing, use this API to simulate issues with information submissions. */ - fun validation(entityId: String, params: EntityValidationParams): Entity = - validation(entityId, params, RequestOptions.none()) + fun updateValidation(entityId: String, params: EntityUpdateValidationParams): Entity = + updateValidation(entityId, params, RequestOptions.none()) - /** @see validation */ - fun validation( + /** @see updateValidation */ + fun updateValidation( entityId: String, - params: EntityValidationParams, + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), - ): Entity = validation(params.toBuilder().entityId(entityId).build(), requestOptions) + ): Entity = updateValidation(params.toBuilder().entityId(entityId).build(), requestOptions) - /** @see validation */ - fun validation(params: EntityValidationParams): Entity = - validation(params, RequestOptions.none()) + /** @see updateValidation */ + fun updateValidation(params: EntityUpdateValidationParams): Entity = + updateValidation(params, RequestOptions.none()) - /** @see validation */ - fun validation( - params: EntityValidationParams, + /** @see updateValidation */ + fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): Entity @@ -62,31 +62,34 @@ interface EntityService { fun withOptions(modifier: Consumer): EntityService.WithRawResponse /** - * Returns a raw HTTP response for `post /simulations/entities/{entity_id}/validation`, but - * is otherwise the same as [EntityService.validation]. + * Returns a raw HTTP response for `post + * /simulations/entities/{entity_id}/update_validation`, but is otherwise the same as + * [EntityService.updateValidation]. */ @MustBeClosed - fun validation(entityId: String, params: EntityValidationParams): HttpResponseFor = - validation(entityId, params, RequestOptions.none()) + fun updateValidation( + entityId: String, + params: EntityUpdateValidationParams, + ): HttpResponseFor = updateValidation(entityId, params, RequestOptions.none()) - /** @see validation */ + /** @see updateValidation */ @MustBeClosed - fun validation( + fun updateValidation( entityId: String, - params: EntityValidationParams, + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): HttpResponseFor = - validation(params.toBuilder().entityId(entityId).build(), requestOptions) + updateValidation(params.toBuilder().entityId(entityId).build(), requestOptions) - /** @see validation */ + /** @see updateValidation */ @MustBeClosed - fun validation(params: EntityValidationParams): HttpResponseFor = - validation(params, RequestOptions.none()) + fun updateValidation(params: EntityUpdateValidationParams): HttpResponseFor = + updateValidation(params, RequestOptions.none()) - /** @see validation */ + /** @see updateValidation */ @MustBeClosed - fun validation( - params: EntityValidationParams, + fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions = RequestOptions.none(), ): HttpResponseFor } diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityServiceImpl.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityServiceImpl.kt index c22448266..a17b6a3b3 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityServiceImpl.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/EntityServiceImpl.kt @@ -17,7 +17,7 @@ import com.increase.api.core.http.json import com.increase.api.core.http.parseable import com.increase.api.core.prepare import com.increase.api.models.entities.Entity -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import java.util.function.Consumer import kotlin.jvm.optionals.getOrNull @@ -33,12 +33,12 @@ class EntityServiceImpl internal constructor(private val clientOptions: ClientOp override fun withOptions(modifier: Consumer): EntityService = EntityServiceImpl(clientOptions.toBuilder().apply(modifier::accept).build()) - override fun validation( - params: EntityValidationParams, + override fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions, ): Entity = - // post /simulations/entities/{entity_id}/validation - withRawResponse().validation(params, requestOptions).parse() + // post /simulations/entities/{entity_id}/update_validation + withRawResponse().updateValidation(params, requestOptions).parse() class WithRawResponseImpl internal constructor(private val clientOptions: ClientOptions) : EntityService.WithRawResponse { @@ -53,11 +53,11 @@ class EntityServiceImpl internal constructor(private val clientOptions: ClientOp clientOptions.toBuilder().apply(modifier::accept).build() ) - private val validationHandler: Handler = + private val updateValidationHandler: Handler = jsonHandler(clientOptions.jsonMapper) - override fun validation( - params: EntityValidationParams, + override fun updateValidation( + params: EntityUpdateValidationParams, requestOptions: RequestOptions, ): HttpResponseFor { // We check here instead of in the params builder because this can be specified @@ -67,7 +67,12 @@ class EntityServiceImpl internal constructor(private val clientOptions: ClientOp HttpRequest.builder() .method(HttpMethod.POST) .baseUrl(clientOptions.baseUrl()) - .addPathSegments("simulations", "entities", params._pathParam(0), "validation") + .addPathSegments( + "simulations", + "entities", + params._pathParam(0), + "update_validation", + ) .body(json(clientOptions.jsonMapper, params._body())) .build() .prepare(clientOptions, params) @@ -75,7 +80,7 @@ class EntityServiceImpl internal constructor(private val clientOptions: ClientOp val response = clientOptions.httpClient.execute(request, requestOptions) return errorHandler.handle(response).parseable { response - .use { validationHandler.handle(it) } + .use { updateValidationHandler.handle(it) } .also { if (requestOptions.responseValidation!!) { it.validate() diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityValidationParamsTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParamsTest.kt similarity index 51% rename from increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityValidationParamsTest.kt rename to increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParamsTest.kt index ca6e44bd4..fa359fd5c 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityValidationParamsTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/entities/EntityUpdateValidationParamsTest.kt @@ -5,32 +5,30 @@ package com.increase.api.models.simulations.entities import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test -internal class EntityValidationParamsTest { +internal class EntityUpdateValidationParamsTest { @Test fun create() { - EntityValidationParams.builder() + EntityUpdateValidationParams.builder() .entityId("entity_n8y8tnk2p9339ti393yi") .addIssue( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category(EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) .build() ) - .status(EntityValidationParams.Status.INVALID) .build() } @Test fun pathParams() { val params = - EntityValidationParams.builder() + EntityUpdateValidationParams.builder() .entityId("entity_n8y8tnk2p9339ti393yi") .addIssue( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category(EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) .build() ) - .status(EntityValidationParams.Status.INVALID) .build() assertThat(params._pathParam(0)).isEqualTo("entity_n8y8tnk2p9339ti393yi") @@ -41,24 +39,22 @@ internal class EntityValidationParamsTest { @Test fun body() { val params = - EntityValidationParams.builder() + EntityUpdateValidationParams.builder() .entityId("entity_n8y8tnk2p9339ti393yi") .addIssue( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category(EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) .build() ) - .status(EntityValidationParams.Status.INVALID) .build() val body = params._body() assertThat(body.issues()) .containsExactly( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category(EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) .build() ) - assertThat(body.status()).isEqualTo(EntityValidationParams.Status.INVALID) } } diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncTest.kt index 8f2fa0a76..140f6ef5a 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/EntityServiceAsyncTest.kt @@ -4,7 +4,7 @@ package com.increase.api.services.async.simulations import com.increase.api.TestServerExtension import com.increase.api.client.okhttp.IncreaseOkHttpClientAsync -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -12,7 +12,7 @@ import org.junit.jupiter.api.extension.ExtendWith internal class EntityServiceAsyncTest { @Test - fun validation() { + fun updateValidation() { val client = IncreaseOkHttpClientAsync.builder() .baseUrl(TestServerExtension.BASE_URL) @@ -21,15 +21,16 @@ internal class EntityServiceAsyncTest { val entityServiceAsync = client.simulations().entities() val entityFuture = - entityServiceAsync.validation( - EntityValidationParams.builder() + entityServiceAsync.updateValidation( + EntityUpdateValidationParams.builder() .entityId("entity_n8y8tnk2p9339ti393yi") .addIssue( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category( + EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER + ) .build() ) - .status(EntityValidationParams.Status.INVALID) .build() ) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/EntityServiceTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/EntityServiceTest.kt index 07e0b67c6..541db4b87 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/EntityServiceTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/EntityServiceTest.kt @@ -4,7 +4,7 @@ package com.increase.api.services.blocking.simulations import com.increase.api.TestServerExtension import com.increase.api.client.okhttp.IncreaseOkHttpClient -import com.increase.api.models.simulations.entities.EntityValidationParams +import com.increase.api.models.simulations.entities.EntityUpdateValidationParams import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -12,7 +12,7 @@ import org.junit.jupiter.api.extension.ExtendWith internal class EntityServiceTest { @Test - fun validation() { + fun updateValidation() { val client = IncreaseOkHttpClient.builder() .baseUrl(TestServerExtension.BASE_URL) @@ -21,15 +21,16 @@ internal class EntityServiceTest { val entityService = client.simulations().entities() val entity = - entityService.validation( - EntityValidationParams.builder() + entityService.updateValidation( + EntityUpdateValidationParams.builder() .entityId("entity_n8y8tnk2p9339ti393yi") .addIssue( - EntityValidationParams.Issue.builder() - .category(EntityValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER) + EntityUpdateValidationParams.Issue.builder() + .category( + EntityUpdateValidationParams.Issue.Category.ENTITY_TAX_IDENTIFIER + ) .build() ) - .status(EntityValidationParams.Status.INVALID) .build() ) From 90d40becdc87325b0a78d3819653ec901739b115 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 23:00:09 +0000 Subject: [PATCH 2/2] release: 0.538.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ README.md | 10 +++++----- build.gradle.kts | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 11843cb66..a2487af7f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.537.0" + ".": "0.538.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e1b8582..b5a259bbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.538.0 (2026-05-01) + +Full Changelog: [v0.537.0...v0.538.0](https://github.com/Increase/increase-java/compare/v0.537.0...v0.538.0) + +### Features + +* **api:** api update ([1fa18e6](https://github.com/Increase/increase-java/commit/1fa18e6398201a2e10b6dde1e44370d29544996c)) + ## 0.537.0 (2026-05-01) Full Changelog: [v0.536.0...v0.537.0](https://github.com/Increase/increase-java/compare/v0.536.0...v0.537.0) diff --git a/README.md b/README.md index af6769873..4ebe67496 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ -[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.537.0) -[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.537.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.537.0) +[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.538.0) +[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.538.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.538.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.537.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.538.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.537.0") +implementation("com.increase.api:increase-java:0.538.0") ``` ### Maven @@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.537.0") com.increase.api increase-java - 0.537.0 + 0.538.0 ``` diff --git a/build.gradle.kts b/build.gradle.kts index be69d2cfc..c8477686e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ repositories { allprojects { group = "com.increase.api" - version = "0.537.0" // x-release-please-version + version = "0.538.0" // x-release-please-version } subprojects {