/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AddressReferenceExplicit, AddressReferenceExplicit$inboundSchema, AddressReferenceExplicit$Outbound, AddressReferenceExplicit$outboundSchema, AddressReferenceExplicitTag, } from "./addressreferenceexplicit.js"; import { AddressReferenceId, AddressReferenceId$inboundSchema, AddressReferenceId$Outbound, AddressReferenceId$outboundSchema, AddressReferenceIdTag, } from "./addressreferenceid.js"; export type AddressReference = | (AddressReferenceId & { dotTag: AddressReferenceIdTag.Id }) | (AddressReferenceExplicit & { dotTag: AddressReferenceExplicitTag.Explicit; }); /** @internal */ export const AddressReference$inboundSchema: z.ZodType< AddressReference, z.ZodTypeDef, unknown > = z.union([ AddressReferenceId$inboundSchema.and( z.object({ ".tag": z.literal(AddressReferenceIdTag.Id) }).transform(( v, ) => ({ dotTag: v[".tag"] })), ), AddressReferenceExplicit$inboundSchema.and( z.object({ ".tag": z.literal(AddressReferenceExplicitTag.Explicit) }) .transform((v) => ({ dotTag: v[".tag"] })), ), ]); /** @internal */ export type AddressReference$Outbound = | (AddressReferenceId$Outbound & { ".tag": AddressReferenceIdTag.Id }) | (AddressReferenceExplicit$Outbound & { ".tag": AddressReferenceExplicitTag.Explicit; }); /** @internal */ export const AddressReference$outboundSchema: z.ZodType< AddressReference$Outbound, z.ZodTypeDef, AddressReference > = z.union([ AddressReferenceId$outboundSchema.and( z.object({ dotTag: z.literal(AddressReferenceIdTag.Id) }).transform(( v, ) => ({ ".tag": v.dotTag })), ), AddressReferenceExplicit$outboundSchema.and( z.object({ dotTag: z.literal(AddressReferenceExplicitTag.Explicit) }) .transform((v) => ({ ".tag": v.dotTag })), ), ]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace AddressReference$ { /** @deprecated use `AddressReference$inboundSchema` instead. */ export const inboundSchema = AddressReference$inboundSchema; /** @deprecated use `AddressReference$outboundSchema` instead. */ export const outboundSchema = AddressReference$outboundSchema; /** @deprecated use `AddressReference$Outbound` instead. */ export type Outbound = AddressReference$Outbound; } export function addressReferenceToJSON( addressReference: AddressReference, ): string { return JSON.stringify( AddressReference$outboundSchema.parse(addressReference), ); } export function addressReferenceFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => AddressReference$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'AddressReference' from JSON`, ); }