Skip to content

Commit 6f4c098

Browse files
feat(api): add setVerificationMethod method to external_bank_accounts
1 parent 37662bd commit 6f4c098

9 files changed

Lines changed: 1083 additions & 2 deletions

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 190
1+
configured_endpoints: 191
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-28c9b43d3182bf0e1c9635f6100e4995a744724db1edd635cfd3fc7702ced68c.yml
33
openapi_spec_hash: aba00a65f877c5095499d9d1a66b5e5f
4-
config_hash: 5eca052bb23d273fa970eac3127dd919
4+
config_hash: ac8326134e692f3f3bdec82396bbec80

lithic-java-core/src/main/kotlin/com/lithic/api/models/ExternalBankAccountSetVerificationMethodParams.kt

Lines changed: 714 additions & 0 deletions
Large diffs are not rendered by default.

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/ExternalBankAccountServiceAsync.kt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.lithic.api.models.ExternalBankAccountRetrieveResponse
1515
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams
1616
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse
1717
import com.lithic.api.models.ExternalBankAccountRetryPrenoteParams
18+
import com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams
1819
import com.lithic.api.models.ExternalBankAccountUnpauseParams
1920
import com.lithic.api.models.ExternalBankAccountUpdateParams
2021
import com.lithic.api.models.ExternalBankAccountUpdateResponse
@@ -313,6 +314,38 @@ interface ExternalBankAccountServiceAsync {
313314
requestOptions,
314315
)
315316

317+
/**
318+
* Update the verification method for an external bank account. Verification method can only be
319+
* updated if the `verification_state` is `PENDING`.
320+
*/
321+
fun setVerificationMethod(
322+
externalBankAccountToken: String,
323+
params: ExternalBankAccountSetVerificationMethodParams,
324+
): CompletableFuture<ExternalBankAccount> =
325+
setVerificationMethod(externalBankAccountToken, params, RequestOptions.none())
326+
327+
/** @see setVerificationMethod */
328+
fun setVerificationMethod(
329+
externalBankAccountToken: String,
330+
params: ExternalBankAccountSetVerificationMethodParams,
331+
requestOptions: RequestOptions = RequestOptions.none(),
332+
): CompletableFuture<ExternalBankAccount> =
333+
setVerificationMethod(
334+
params.toBuilder().externalBankAccountToken(externalBankAccountToken).build(),
335+
requestOptions,
336+
)
337+
338+
/** @see setVerificationMethod */
339+
fun setVerificationMethod(
340+
params: ExternalBankAccountSetVerificationMethodParams
341+
): CompletableFuture<ExternalBankAccount> = setVerificationMethod(params, RequestOptions.none())
342+
343+
/** @see setVerificationMethod */
344+
fun setVerificationMethod(
345+
params: ExternalBankAccountSetVerificationMethodParams,
346+
requestOptions: RequestOptions = RequestOptions.none(),
347+
): CompletableFuture<ExternalBankAccount>
348+
316349
/** Unpause an external bank account */
317350
fun unpause(externalBankAccountToken: String): CompletableFuture<ExternalBankAccount> =
318351
unpause(externalBankAccountToken, ExternalBankAccountUnpauseParams.none())
@@ -680,6 +713,40 @@ interface ExternalBankAccountServiceAsync {
680713
requestOptions,
681714
)
682715

716+
/**
717+
* Returns a raw HTTP response for `post
718+
* /v1/external_bank_accounts/{external_bank_account_token}/set_verification_method`, but is
719+
* otherwise the same as [ExternalBankAccountServiceAsync.setVerificationMethod].
720+
*/
721+
fun setVerificationMethod(
722+
externalBankAccountToken: String,
723+
params: ExternalBankAccountSetVerificationMethodParams,
724+
): CompletableFuture<HttpResponseFor<ExternalBankAccount>> =
725+
setVerificationMethod(externalBankAccountToken, params, RequestOptions.none())
726+
727+
/** @see setVerificationMethod */
728+
fun setVerificationMethod(
729+
externalBankAccountToken: String,
730+
params: ExternalBankAccountSetVerificationMethodParams,
731+
requestOptions: RequestOptions = RequestOptions.none(),
732+
): CompletableFuture<HttpResponseFor<ExternalBankAccount>> =
733+
setVerificationMethod(
734+
params.toBuilder().externalBankAccountToken(externalBankAccountToken).build(),
735+
requestOptions,
736+
)
737+
738+
/** @see setVerificationMethod */
739+
fun setVerificationMethod(
740+
params: ExternalBankAccountSetVerificationMethodParams
741+
): CompletableFuture<HttpResponseFor<ExternalBankAccount>> =
742+
setVerificationMethod(params, RequestOptions.none())
743+
744+
/** @see setVerificationMethod */
745+
fun setVerificationMethod(
746+
params: ExternalBankAccountSetVerificationMethodParams,
747+
requestOptions: RequestOptions = RequestOptions.none(),
748+
): CompletableFuture<HttpResponseFor<ExternalBankAccount>>
749+
683750
/**
684751
* Returns a raw HTTP response for `post
685752
* /v1/external_bank_accounts/{external_bank_account_token}/unpause`, but is otherwise the

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/ExternalBankAccountServiceAsyncImpl.kt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.lithic.api.models.ExternalBankAccountRetrieveResponse
2727
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams
2828
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse
2929
import com.lithic.api.models.ExternalBankAccountRetryPrenoteParams
30+
import com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams
3031
import com.lithic.api.models.ExternalBankAccountUnpauseParams
3132
import com.lithic.api.models.ExternalBankAccountUpdateParams
3233
import com.lithic.api.models.ExternalBankAccountUpdateResponse
@@ -101,6 +102,13 @@ internal constructor(private val clientOptions: ClientOptions) : ExternalBankAcc
101102
// post /v1/external_bank_accounts/{external_bank_account_token}/retry_prenote
102103
withRawResponse().retryPrenote(params, requestOptions).thenApply { it.parse() }
103104

105+
override fun setVerificationMethod(
106+
params: ExternalBankAccountSetVerificationMethodParams,
107+
requestOptions: RequestOptions,
108+
): CompletableFuture<ExternalBankAccount> =
109+
// post /v1/external_bank_accounts/{external_bank_account_token}/set_verification_method
110+
withRawResponse().setVerificationMethod(params, requestOptions).thenApply { it.parse() }
111+
104112
override fun unpause(
105113
params: ExternalBankAccountUnpauseParams,
106114
requestOptions: RequestOptions,
@@ -342,6 +350,45 @@ internal constructor(private val clientOptions: ClientOptions) : ExternalBankAcc
342350
}
343351
}
344352

353+
private val setVerificationMethodHandler: Handler<ExternalBankAccount> =
354+
jsonHandler<ExternalBankAccount>(clientOptions.jsonMapper)
355+
356+
override fun setVerificationMethod(
357+
params: ExternalBankAccountSetVerificationMethodParams,
358+
requestOptions: RequestOptions,
359+
): CompletableFuture<HttpResponseFor<ExternalBankAccount>> {
360+
// We check here instead of in the params builder because this can be specified
361+
// positionally or in the params class.
362+
checkRequired("externalBankAccountToken", params.externalBankAccountToken().getOrNull())
363+
val request =
364+
HttpRequest.builder()
365+
.method(HttpMethod.POST)
366+
.baseUrl(clientOptions.baseUrl())
367+
.addPathSegments(
368+
"v1",
369+
"external_bank_accounts",
370+
params._pathParam(0),
371+
"set_verification_method",
372+
)
373+
.body(json(clientOptions.jsonMapper, params._body()))
374+
.build()
375+
.prepareAsync(clientOptions, params)
376+
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
377+
return request
378+
.thenComposeAsync { clientOptions.httpClient.executeAsync(it, requestOptions) }
379+
.thenApply { response ->
380+
errorHandler.handle(response).parseable {
381+
response
382+
.use { setVerificationMethodHandler.handle(it) }
383+
.also {
384+
if (requestOptions.responseValidation!!) {
385+
it.validate()
386+
}
387+
}
388+
}
389+
}
390+
}
391+
345392
private val unpauseHandler: Handler<ExternalBankAccount> =
346393
jsonHandler<ExternalBankAccount>(clientOptions.jsonMapper)
347394

lithic-java-core/src/main/kotlin/com/lithic/api/services/blocking/ExternalBankAccountService.kt

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.lithic.api.models.ExternalBankAccountRetrieveResponse
1616
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams
1717
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse
1818
import com.lithic.api.models.ExternalBankAccountRetryPrenoteParams
19+
import com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams
1920
import com.lithic.api.models.ExternalBankAccountUnpauseParams
2021
import com.lithic.api.models.ExternalBankAccountUpdateParams
2122
import com.lithic.api.models.ExternalBankAccountUpdateResponse
@@ -299,6 +300,38 @@ interface ExternalBankAccountService {
299300
requestOptions,
300301
)
301302

303+
/**
304+
* Update the verification method for an external bank account. Verification method can only be
305+
* updated if the `verification_state` is `PENDING`.
306+
*/
307+
fun setVerificationMethod(
308+
externalBankAccountToken: String,
309+
params: ExternalBankAccountSetVerificationMethodParams,
310+
): ExternalBankAccount =
311+
setVerificationMethod(externalBankAccountToken, params, RequestOptions.none())
312+
313+
/** @see setVerificationMethod */
314+
fun setVerificationMethod(
315+
externalBankAccountToken: String,
316+
params: ExternalBankAccountSetVerificationMethodParams,
317+
requestOptions: RequestOptions = RequestOptions.none(),
318+
): ExternalBankAccount =
319+
setVerificationMethod(
320+
params.toBuilder().externalBankAccountToken(externalBankAccountToken).build(),
321+
requestOptions,
322+
)
323+
324+
/** @see setVerificationMethod */
325+
fun setVerificationMethod(
326+
params: ExternalBankAccountSetVerificationMethodParams
327+
): ExternalBankAccount = setVerificationMethod(params, RequestOptions.none())
328+
329+
/** @see setVerificationMethod */
330+
fun setVerificationMethod(
331+
params: ExternalBankAccountSetVerificationMethodParams,
332+
requestOptions: RequestOptions = RequestOptions.none(),
333+
): ExternalBankAccount
334+
302335
/** Unpause an external bank account */
303336
fun unpause(externalBankAccountToken: String): ExternalBankAccount =
304337
unpause(externalBankAccountToken, ExternalBankAccountUnpauseParams.none())
@@ -696,6 +729,44 @@ interface ExternalBankAccountService {
696729
requestOptions,
697730
)
698731

732+
/**
733+
* Returns a raw HTTP response for `post
734+
* /v1/external_bank_accounts/{external_bank_account_token}/set_verification_method`, but is
735+
* otherwise the same as [ExternalBankAccountService.setVerificationMethod].
736+
*/
737+
@MustBeClosed
738+
fun setVerificationMethod(
739+
externalBankAccountToken: String,
740+
params: ExternalBankAccountSetVerificationMethodParams,
741+
): HttpResponseFor<ExternalBankAccount> =
742+
setVerificationMethod(externalBankAccountToken, params, RequestOptions.none())
743+
744+
/** @see setVerificationMethod */
745+
@MustBeClosed
746+
fun setVerificationMethod(
747+
externalBankAccountToken: String,
748+
params: ExternalBankAccountSetVerificationMethodParams,
749+
requestOptions: RequestOptions = RequestOptions.none(),
750+
): HttpResponseFor<ExternalBankAccount> =
751+
setVerificationMethod(
752+
params.toBuilder().externalBankAccountToken(externalBankAccountToken).build(),
753+
requestOptions,
754+
)
755+
756+
/** @see setVerificationMethod */
757+
@MustBeClosed
758+
fun setVerificationMethod(
759+
params: ExternalBankAccountSetVerificationMethodParams
760+
): HttpResponseFor<ExternalBankAccount> =
761+
setVerificationMethod(params, RequestOptions.none())
762+
763+
/** @see setVerificationMethod */
764+
@MustBeClosed
765+
fun setVerificationMethod(
766+
params: ExternalBankAccountSetVerificationMethodParams,
767+
requestOptions: RequestOptions = RequestOptions.none(),
768+
): HttpResponseFor<ExternalBankAccount>
769+
699770
/**
700771
* Returns a raw HTTP response for `post
701772
* /v1/external_bank_accounts/{external_bank_account_token}/unpause`, but is otherwise the

lithic-java-core/src/main/kotlin/com/lithic/api/services/blocking/ExternalBankAccountServiceImpl.kt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.lithic.api.models.ExternalBankAccountRetrieveResponse
2727
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams
2828
import com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse
2929
import com.lithic.api.models.ExternalBankAccountRetryPrenoteParams
30+
import com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams
3031
import com.lithic.api.models.ExternalBankAccountUnpauseParams
3132
import com.lithic.api.models.ExternalBankAccountUpdateParams
3233
import com.lithic.api.models.ExternalBankAccountUpdateResponse
@@ -97,6 +98,13 @@ internal constructor(private val clientOptions: ClientOptions) : ExternalBankAcc
9798
// post /v1/external_bank_accounts/{external_bank_account_token}/retry_prenote
9899
withRawResponse().retryPrenote(params, requestOptions).parse()
99100

101+
override fun setVerificationMethod(
102+
params: ExternalBankAccountSetVerificationMethodParams,
103+
requestOptions: RequestOptions,
104+
): ExternalBankAccount =
105+
// post /v1/external_bank_accounts/{external_bank_account_token}/set_verification_method
106+
withRawResponse().setVerificationMethod(params, requestOptions).parse()
107+
100108
override fun unpause(
101109
params: ExternalBankAccountUnpauseParams,
102110
requestOptions: RequestOptions,
@@ -319,6 +327,42 @@ internal constructor(private val clientOptions: ClientOptions) : ExternalBankAcc
319327
}
320328
}
321329

330+
private val setVerificationMethodHandler: Handler<ExternalBankAccount> =
331+
jsonHandler<ExternalBankAccount>(clientOptions.jsonMapper)
332+
333+
override fun setVerificationMethod(
334+
params: ExternalBankAccountSetVerificationMethodParams,
335+
requestOptions: RequestOptions,
336+
): HttpResponseFor<ExternalBankAccount> {
337+
// We check here instead of in the params builder because this can be specified
338+
// positionally or in the params class.
339+
checkRequired("externalBankAccountToken", params.externalBankAccountToken().getOrNull())
340+
val request =
341+
HttpRequest.builder()
342+
.method(HttpMethod.POST)
343+
.baseUrl(clientOptions.baseUrl())
344+
.addPathSegments(
345+
"v1",
346+
"external_bank_accounts",
347+
params._pathParam(0),
348+
"set_verification_method",
349+
)
350+
.body(json(clientOptions.jsonMapper, params._body()))
351+
.build()
352+
.prepare(clientOptions, params)
353+
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
354+
val response = clientOptions.httpClient.execute(request, requestOptions)
355+
return errorHandler.handle(response).parseable {
356+
response
357+
.use { setVerificationMethodHandler.handle(it) }
358+
.also {
359+
if (requestOptions.responseValidation!!) {
360+
it.validate()
361+
}
362+
}
363+
}
364+
}
365+
322366
private val unpauseHandler: Handler<ExternalBankAccount> =
323367
jsonHandler<ExternalBankAccount>(clientOptions.jsonMapper)
324368

0 commit comments

Comments
 (0)