/** * Represents the status of bank account tokenization. */ export enum BankAccountTokenizationStatus { /** Bank account tokenization was successful */ SUCCESSFUL = 'SUCCESSFUL', /** Bank account tokenization is pending approval */ PENDING_APPROVAL = 'PENDING_APPROVAL', /** Bank account tokenization failed */ FAILED = 'FAILED', } /** * Creates a BankAccountTokenizationStatus from a string value * @param statusString The status string to convert * @returns The corresponding BankAccountTokenizationStatus, or undefined if no match found */ export function bankAccountTokenizationStatusFromString( statusString: string ): BankAccountTokenizationStatus | undefined { const upperStatus = statusString.toUpperCase(); return Object.values(BankAccountTokenizationStatus).find( (status) => status === upperStatus ); } /** * Converts a BankAccountTokenizationStatus to its JSON representation * @param status The status to convert * @returns The status string value */ export function bankAccountTokenizationStatusToJson( status: BankAccountTokenizationStatus ): string { return status; } /** * Creates a BankAccountTokenizationStatus from JSON * @param json The JSON string to parse * @returns The parsed BankAccountTokenizationStatus */ export function bankAccountTokenizationStatusFromJson( json: any ): BankAccountTokenizationStatus { if (typeof json === 'string') { const status = bankAccountTokenizationStatusFromString(json); if (status) { return status; } } throw new Error(`Invalid BankAccountTokenizationStatus: ${json}`); }