/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { bankRelationshipsCancelBankRelationship } from "../funcs/bankRelationshipsCancelBankRelationship.js"; import { bankRelationshipsCreateBankRelationship } from "../funcs/bankRelationshipsCreateBankRelationship.js"; import { bankRelationshipsGetBankRelationship } from "../funcs/bankRelationshipsGetBankRelationship.js"; import { bankRelationshipsListBankRelationships } from "../funcs/bankRelationshipsListBankRelationships.js"; import { bankRelationshipsReissueMicroDeposits } from "../funcs/bankRelationshipsReissueMicroDeposits.js"; import { bankRelationshipsReuseBankRelationship } from "../funcs/bankRelationshipsReuseBankRelationship.js"; import { bankRelationshipsUpdateBankRelationship } from "../funcs/bankRelationshipsUpdateBankRelationship.js"; import { bankRelationshipsVerifyMicroDeposits } from "../funcs/bankRelationshipsVerifyMicroDeposits.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export class BankRelationships extends ClientSDK { /** * Create Bank Relationship * * @remarks * Creates a bank relationship. */ async createBankRelationship( bankRelationshipCreate: components.BankRelationshipCreate, accountId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsCreateBankRelationship( this, bankRelationshipCreate, accountId, options, )); } /** * List Bank Relationships * * @remarks * Lists bank relationships for an account. */ async listBankRelationships( accountId: string, pageSize?: number | undefined, pageToken?: string | undefined, state?: operations.State | undefined, options?: RequestOptions, ): Promise< PageIterator< operations.BankRelationshipsListBankRelationshipsResponse, { cursor: string } > > { return unwrapResultIterator(bankRelationshipsListBankRelationships( this, accountId, pageSize, pageToken, state, options, )); } /** * Get Bank Relationship * * @remarks * Gets an existing bank relationship. */ async getBankRelationship( accountId: string, bankRelationshipId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsGetBankRelationship( this, accountId, bankRelationshipId, options, )); } /** * Update Bank Relationship * * @remarks * Updates an existing bank relationship. */ async updateBankRelationship( bankRelationshipUpdate: components.BankRelationshipUpdate, accountId: string, bankRelationshipId: string, updateMask?: string | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsUpdateBankRelationship( this, bankRelationshipUpdate, accountId, bankRelationshipId, updateMask, options, )); } /** * Cancel Bank Relationship * * @remarks * Cancels an existing bank relationship. */ async cancelBankRelationship( cancelBankRelationshipRequestCreate: components.CancelBankRelationshipRequestCreate, accountId: string, bankRelationshipId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsCancelBankRelationship( this, cancelBankRelationshipRequestCreate, accountId, bankRelationshipId, options, )); } /** * Verify Micro Deposits * * @remarks * Verifies a pending bank relationship with the `MICRO_DEPOSIT` verification method. Successful verification of the micro deposit amounts will result in the relationship moving to the `APPROVED` state. The micro deposits will be taken back from the bank account. */ async verifyMicroDeposits( verifyMicroDepositsRequestCreate: components.VerifyMicroDepositsRequestCreate, accountId: string, bankRelationshipId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsVerifyMicroDeposits( this, verifyMicroDepositsRequestCreate, accountId, bankRelationshipId, options, )); } /** * Reissue Micro Deposits * * @remarks * Reissues micro deposits after micro deposit verification has failed. The user should have received a message that new micro deposits should be reissued. */ async reissueMicroDeposits( reissueMicroDepositsRequestCreate: components.ReissueMicroDepositsRequestCreate, accountId: string, bankRelationshipId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsReissueMicroDeposits( this, reissueMicroDepositsRequestCreate, accountId, bankRelationshipId, options, )); } /** * Reuse Bank Relationship * * @remarks * Reuses an existing bank relationship for a new account. The source bank relationship must be approved. The new account must be related to the parent account of the `source_bank_relationship`. The new relationship will be created with the `USE_EXISTING` verification method in place of the source bank relationship's verification method. */ async reuseBankRelationship( reuseBankRelationshipRequestCreate: components.ReuseBankRelationshipRequestCreate, accountId: string, options?: RequestOptions, ): Promise { return unwrapAsync(bankRelationshipsReuseBankRelationship( this, reuseBankRelationshipRequestCreate, accountId, options, )); } }