/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { FilePurpose, FilePurpose$inboundSchema, FilePurpose$outboundSchema, } from "./filepurpose.js"; import { FileStatus, FileStatus$inboundSchema, FileStatus$outboundSchema, } from "./filestatus.js"; /** * Describes a file linked to a Moov account. */ export type FileDetails = { fileID: string; fileName: string; accountID: string; /** * The file's purpose. */ filePurpose: FilePurpose; /** * The file's status. */ fileStatus: FileStatus; metadata: string; decisionReason?: string | undefined; fileSizeBytes: number; createdOn: Date; updatedOn: Date; }; /** @internal */ export const FileDetails$inboundSchema: z.ZodType< FileDetails, z.ZodTypeDef, unknown > = z.object({ fileID: z.string(), fileName: z.string(), accountID: z.string(), filePurpose: FilePurpose$inboundSchema, fileStatus: FileStatus$inboundSchema, metadata: z.string(), decisionReason: z.string().optional(), fileSizeBytes: z.number().int(), createdOn: z.string().datetime({ offset: true }).transform(v => new Date(v)), updatedOn: z.string().datetime({ offset: true }).transform(v => new Date(v)), }); /** @internal */ export type FileDetails$Outbound = { fileID: string; fileName: string; accountID: string; filePurpose: string; fileStatus: string; metadata: string; decisionReason?: string | undefined; fileSizeBytes: number; createdOn: string; updatedOn: string; }; /** @internal */ export const FileDetails$outboundSchema: z.ZodType< FileDetails$Outbound, z.ZodTypeDef, FileDetails > = z.object({ fileID: z.string(), fileName: z.string(), accountID: z.string(), filePurpose: FilePurpose$outboundSchema, fileStatus: FileStatus$outboundSchema, metadata: z.string(), decisionReason: z.string().optional(), fileSizeBytes: z.number().int(), createdOn: z.date().transform(v => v.toISOString()), updatedOn: z.date().transform(v => v.toISOString()), }); export function fileDetailsToJSON(fileDetails: FileDetails): string { return JSON.stringify(FileDetails$outboundSchema.parse(fileDetails)); } export function fileDetailsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileDetails$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileDetails' from JSON`, ); }