/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type CreateTransferGlobals = { /** * Specify an API version. * * @remarks * * API versioning follows the format `vYYYY.QQ.BB`, where * - `YYYY` is the year * - `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10) * - `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter. * - For example, `v2024.01.00` is the initial release of the first quarter of 2024. * * The `latest` version represents the most recent development state. It may include breaking changes and should be treated as a beta release. * When no version is specified, the API defaults to `v2024.01.00`. */ xMoovVersion?: string | undefined; }; export type CreateTransferRequest = { /** * Identifies a unique request to create a transfer. * * @remarks * In order to avoid creating duplicate transfers, the same idempotency key should be reused when retrying a request. */ xIdempotencyKey: string; /** * Optional header that indicates whether to return a synchronous response that includes full transfer and rail-specific details or an * * @remarks * asynchronous response indicating the transfer was created (this is the default response if the header is omitted). A timeout will occur after 15 seconds. */ xWaitFor?: components.TransferWaitFor | undefined; /** * Your Moov account ID. */ accountID: string; createTransfer: components.CreateTransfer; }; export type CreateTransferResponseResult = | components.Transfer | components.CreatedTransfer | components.AsyncTransfer; export type CreateTransferResponse = { headers: { [k: string]: Array }; result: | components.Transfer | components.CreatedTransfer | components.AsyncTransfer; }; /** @internal */ export const CreateTransferGlobals$inboundSchema: z.ZodType< CreateTransferGlobals, z.ZodTypeDef, unknown > = z.object({ "X-Moov-Version": z.string().optional(), }).transform((v) => { return remap$(v, { "X-Moov-Version": "xMoovVersion", }); }); /** @internal */ export type CreateTransferGlobals$Outbound = { "X-Moov-Version"?: string | undefined; }; /** @internal */ export const CreateTransferGlobals$outboundSchema: z.ZodType< CreateTransferGlobals$Outbound, z.ZodTypeDef, CreateTransferGlobals > = z.object({ xMoovVersion: z.string().optional(), }).transform((v) => { return remap$(v, { xMoovVersion: "X-Moov-Version", }); }); export function createTransferGlobalsToJSON( createTransferGlobals: CreateTransferGlobals, ): string { return JSON.stringify( CreateTransferGlobals$outboundSchema.parse(createTransferGlobals), ); } export function createTransferGlobalsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateTransferGlobals$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateTransferGlobals' from JSON`, ); } /** @internal */ export const CreateTransferRequest$inboundSchema: z.ZodType< CreateTransferRequest, z.ZodTypeDef, unknown > = z.object({ "x-idempotency-key": z.string(), "x-wait-for": components.TransferWaitFor$inboundSchema.optional(), accountID: z.string(), CreateTransfer: components.CreateTransfer$inboundSchema, }).transform((v) => { return remap$(v, { "x-idempotency-key": "xIdempotencyKey", "x-wait-for": "xWaitFor", "CreateTransfer": "createTransfer", }); }); /** @internal */ export type CreateTransferRequest$Outbound = { "x-idempotency-key": string; "x-wait-for"?: string | undefined; accountID: string; CreateTransfer: components.CreateTransfer$Outbound; }; /** @internal */ export const CreateTransferRequest$outboundSchema: z.ZodType< CreateTransferRequest$Outbound, z.ZodTypeDef, CreateTransferRequest > = z.object({ xIdempotencyKey: z.string(), xWaitFor: components.TransferWaitFor$outboundSchema.optional(), accountID: z.string(), createTransfer: components.CreateTransfer$outboundSchema, }).transform((v) => { return remap$(v, { xIdempotencyKey: "x-idempotency-key", xWaitFor: "x-wait-for", createTransfer: "CreateTransfer", }); }); export function createTransferRequestToJSON( createTransferRequest: CreateTransferRequest, ): string { return JSON.stringify( CreateTransferRequest$outboundSchema.parse(createTransferRequest), ); } export function createTransferRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateTransferRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateTransferRequest' from JSON`, ); } /** @internal */ export const CreateTransferResponseResult$inboundSchema: z.ZodType< CreateTransferResponseResult, z.ZodTypeDef, unknown > = z.union([ components.Transfer$inboundSchema, components.CreatedTransfer$inboundSchema, components.AsyncTransfer$inboundSchema, ]); /** @internal */ export type CreateTransferResponseResult$Outbound = | components.Transfer$Outbound | components.CreatedTransfer$Outbound | components.AsyncTransfer$Outbound; /** @internal */ export const CreateTransferResponseResult$outboundSchema: z.ZodType< CreateTransferResponseResult$Outbound, z.ZodTypeDef, CreateTransferResponseResult > = z.union([ components.Transfer$outboundSchema, components.CreatedTransfer$outboundSchema, components.AsyncTransfer$outboundSchema, ]); export function createTransferResponseResultToJSON( createTransferResponseResult: CreateTransferResponseResult, ): string { return JSON.stringify( CreateTransferResponseResult$outboundSchema.parse( createTransferResponseResult, ), ); } export function createTransferResponseResultFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateTransferResponseResult$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateTransferResponseResult' from JSON`, ); } /** @internal */ export const CreateTransferResponse$inboundSchema: z.ZodType< CreateTransferResponse, z.ZodTypeDef, unknown > = z.object({ Headers: z.record(z.array(z.string())).default({}), Result: z.union([ components.Transfer$inboundSchema, components.CreatedTransfer$inboundSchema, components.AsyncTransfer$inboundSchema, ]), }).transform((v) => { return remap$(v, { "Headers": "headers", "Result": "result", }); }); /** @internal */ export type CreateTransferResponse$Outbound = { Headers: { [k: string]: Array }; Result: | components.Transfer$Outbound | components.CreatedTransfer$Outbound | components.AsyncTransfer$Outbound; }; /** @internal */ export const CreateTransferResponse$outboundSchema: z.ZodType< CreateTransferResponse$Outbound, z.ZodTypeDef, CreateTransferResponse > = z.object({ headers: z.record(z.array(z.string())), result: z.union([ components.Transfer$outboundSchema, components.CreatedTransfer$outboundSchema, components.AsyncTransfer$outboundSchema, ]), }).transform((v) => { return remap$(v, { headers: "Headers", result: "Result", }); }); export function createTransferResponseToJSON( createTransferResponse: CreateTransferResponse, ): string { return JSON.stringify( CreateTransferResponse$outboundSchema.parse(createTransferResponse), ); } export function createTransferResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateTransferResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateTransferResponse' from JSON`, ); }