/* * 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 { AddressReferenceExplicitInput, AddressReferenceExplicitInput$inboundSchema, AddressReferenceExplicitInput$Outbound, AddressReferenceExplicitInput$outboundSchema, AddressReferenceExplicitTag, } from "./addressreferenceexplicit.js"; import { AddressReferenceId, AddressReferenceId$inboundSchema, AddressReferenceId$Outbound, AddressReferenceId$outboundSchema, AddressReferenceIdTag, } from "./addressreferenceid.js"; export type AddressReferenceInput = | (AddressReferenceId & { dotTag: AddressReferenceIdTag.Id }) | (AddressReferenceExplicitInput & { dotTag: AddressReferenceExplicitTag.Explicit; }); /** @internal */ export const AddressReferenceInput$inboundSchema: z.ZodType< AddressReferenceInput, z.ZodTypeDef, unknown > = z.union([ AddressReferenceId$inboundSchema.and( z.object({ ".tag": z.literal(AddressReferenceIdTag.Id) }).transform(( v, ) => ({ dotTag: v[".tag"] })), ), AddressReferenceExplicitInput$inboundSchema.and( z.object({ ".tag": z.literal(AddressReferenceExplicitTag.Explicit) }) .transform((v) => ({ dotTag: v[".tag"] })), ), ]); /** @internal */ export type AddressReferenceInput$Outbound = | (AddressReferenceId$Outbound & { ".tag": AddressReferenceIdTag.Id }) | (AddressReferenceExplicitInput$Outbound & { ".tag": AddressReferenceExplicitTag.Explicit; }); /** @internal */ export const AddressReferenceInput$outboundSchema: z.ZodType< AddressReferenceInput$Outbound, z.ZodTypeDef, AddressReferenceInput > = z.union([ AddressReferenceId$outboundSchema.and( z.object({ dotTag: z.literal(AddressReferenceIdTag.Id) }).transform(( v, ) => ({ ".tag": v.dotTag })), ), AddressReferenceExplicitInput$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 AddressReferenceInput$ { /** @deprecated use `AddressReferenceInput$inboundSchema` instead. */ export const inboundSchema = AddressReferenceInput$inboundSchema; /** @deprecated use `AddressReferenceInput$outboundSchema` instead. */ export const outboundSchema = AddressReferenceInput$outboundSchema; /** @deprecated use `AddressReferenceInput$Outbound` instead. */ export type Outbound = AddressReferenceInput$Outbound; } export function addressReferenceInputToJSON( addressReferenceInput: AddressReferenceInput, ): string { return JSON.stringify( AddressReferenceInput$outboundSchema.parse(addressReferenceInput), ); } export function addressReferenceInputFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => AddressReferenceInput$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'AddressReferenceInput' from JSON`, ); }