/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { catchUnrecognizedEnum, OpenEnum, Unrecognized, } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export enum NonCitizenResidencyUpdateResidencyStatus { ResidencyStatusUnspecified = "RESIDENCY_STATUS_UNSPECIFIED", UsPermanentResident = "US_PERMANENT_RESIDENT", UsTemporaryResident = "US_TEMPORARY_RESIDENT", UsNonResident = "US_NON_RESIDENT", } export type NonCitizenResidencyUpdateResidencyStatusOpen = OpenEnum< typeof NonCitizenResidencyUpdateResidencyStatus >; /** * Non Citizenship Residency to facilitate non-Citizen lawful US residents to open domestic accounts. */ export type NonCitizenResidencyUpdate = { residencyStatus?: NonCitizenResidencyUpdateResidencyStatusOpen | undefined; }; /** @internal */ export const NonCitizenResidencyUpdateResidencyStatus$inboundSchema: z.ZodType< NonCitizenResidencyUpdateResidencyStatusOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(NonCitizenResidencyUpdateResidencyStatus), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const NonCitizenResidencyUpdateResidencyStatus$outboundSchema: z.ZodType< NonCitizenResidencyUpdateResidencyStatusOpen, z.ZodTypeDef, NonCitizenResidencyUpdateResidencyStatusOpen > = z.union([ z.nativeEnum(NonCitizenResidencyUpdateResidencyStatus), z.string().and(z.custom>()), ]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace NonCitizenResidencyUpdateResidencyStatus$ { /** @deprecated use `NonCitizenResidencyUpdateResidencyStatus$inboundSchema` instead. */ export const inboundSchema = NonCitizenResidencyUpdateResidencyStatus$inboundSchema; /** @deprecated use `NonCitizenResidencyUpdateResidencyStatus$outboundSchema` instead. */ export const outboundSchema = NonCitizenResidencyUpdateResidencyStatus$outboundSchema; } /** @internal */ export const NonCitizenResidencyUpdate$inboundSchema: z.ZodType< NonCitizenResidencyUpdate, z.ZodTypeDef, unknown > = z.object({ residency_status: NonCitizenResidencyUpdateResidencyStatus$inboundSchema .optional(), }).transform((v) => { return remap$(v, { "residency_status": "residencyStatus", }); }); /** @internal */ export type NonCitizenResidencyUpdate$Outbound = { residency_status?: string | undefined; }; /** @internal */ export const NonCitizenResidencyUpdate$outboundSchema: z.ZodType< NonCitizenResidencyUpdate$Outbound, z.ZodTypeDef, NonCitizenResidencyUpdate > = z.object({ residencyStatus: NonCitizenResidencyUpdateResidencyStatus$outboundSchema .optional(), }).transform((v) => { return remap$(v, { residencyStatus: "residency_status", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace NonCitizenResidencyUpdate$ { /** @deprecated use `NonCitizenResidencyUpdate$inboundSchema` instead. */ export const inboundSchema = NonCitizenResidencyUpdate$inboundSchema; /** @deprecated use `NonCitizenResidencyUpdate$outboundSchema` instead. */ export const outboundSchema = NonCitizenResidencyUpdate$outboundSchema; /** @deprecated use `NonCitizenResidencyUpdate$Outbound` instead. */ export type Outbound = NonCitizenResidencyUpdate$Outbound; } export function nonCitizenResidencyUpdateToJSON( nonCitizenResidencyUpdate: NonCitizenResidencyUpdate, ): string { return JSON.stringify( NonCitizenResidencyUpdate$outboundSchema.parse(nonCitizenResidencyUpdate), ); } export function nonCitizenResidencyUpdateFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => NonCitizenResidencyUpdate$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'NonCitizenResidencyUpdate' from JSON`, ); }