/* * 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"; /** * The yield percentage at which the transaction was effected */ export type YieldPercent = { /** * The decimal value, as a string; Refer to [Google’s Decimal type protocol buffer](https://github.com/googleapis/googleapis/blob/40203ca1880849480bbff7b8715491060bbccdf1/google/type/decimal.proto#L33) for details */ value?: string | undefined; }; /** * Characterization of a yield percentage */ export enum YieldRecordYieldType { YieldTypeUnspecified = "YIELD_TYPE_UNSPECIFIED", YieldToCall = "YIELD_TO_CALL", YieldToMaturity = "YIELD_TO_MATURITY", YieldToPut = "YIELD_TO_PUT", YieldToWorst = "YIELD_TO_WORST", } /** * Characterization of a yield percentage */ export type YieldRecordYieldTypeOpen = OpenEnum; /** * Contains details about the yields associated with a trade in fixed income instruments */ export type YieldRecord = { /** * The yield percentage at which the transaction was effected */ yieldPercent?: YieldPercent | null | undefined; /** * Characterization of a yield percentage */ yieldType?: YieldRecordYieldTypeOpen | undefined; }; /** @internal */ export const YieldPercent$inboundSchema: z.ZodType< YieldPercent, z.ZodTypeDef, unknown > = z.object({ value: z.string().optional(), }); /** @internal */ export type YieldPercent$Outbound = { value?: string | undefined; }; /** @internal */ export const YieldPercent$outboundSchema: z.ZodType< YieldPercent$Outbound, z.ZodTypeDef, YieldPercent > = z.object({ value: z.string().optional(), }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace YieldPercent$ { /** @deprecated use `YieldPercent$inboundSchema` instead. */ export const inboundSchema = YieldPercent$inboundSchema; /** @deprecated use `YieldPercent$outboundSchema` instead. */ export const outboundSchema = YieldPercent$outboundSchema; /** @deprecated use `YieldPercent$Outbound` instead. */ export type Outbound = YieldPercent$Outbound; } export function yieldPercentToJSON(yieldPercent: YieldPercent): string { return JSON.stringify(YieldPercent$outboundSchema.parse(yieldPercent)); } export function yieldPercentFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => YieldPercent$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'YieldPercent' from JSON`, ); } /** @internal */ export const YieldRecordYieldType$inboundSchema: z.ZodType< YieldRecordYieldTypeOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(YieldRecordYieldType), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const YieldRecordYieldType$outboundSchema: z.ZodType< YieldRecordYieldTypeOpen, z.ZodTypeDef, YieldRecordYieldTypeOpen > = z.union([ z.nativeEnum(YieldRecordYieldType), 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 YieldRecordYieldType$ { /** @deprecated use `YieldRecordYieldType$inboundSchema` instead. */ export const inboundSchema = YieldRecordYieldType$inboundSchema; /** @deprecated use `YieldRecordYieldType$outboundSchema` instead. */ export const outboundSchema = YieldRecordYieldType$outboundSchema; } /** @internal */ export const YieldRecord$inboundSchema: z.ZodType< YieldRecord, z.ZodTypeDef, unknown > = z.object({ yield_percent: z.nullable(z.lazy(() => YieldPercent$inboundSchema)) .optional(), yield_type: YieldRecordYieldType$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "yield_percent": "yieldPercent", "yield_type": "yieldType", }); }); /** @internal */ export type YieldRecord$Outbound = { yield_percent?: YieldPercent$Outbound | null | undefined; yield_type?: string | undefined; }; /** @internal */ export const YieldRecord$outboundSchema: z.ZodType< YieldRecord$Outbound, z.ZodTypeDef, YieldRecord > = z.object({ yieldPercent: z.nullable(z.lazy(() => YieldPercent$outboundSchema)) .optional(), yieldType: YieldRecordYieldType$outboundSchema.optional(), }).transform((v) => { return remap$(v, { yieldPercent: "yield_percent", yieldType: "yield_type", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace YieldRecord$ { /** @deprecated use `YieldRecord$inboundSchema` instead. */ export const inboundSchema = YieldRecord$inboundSchema; /** @deprecated use `YieldRecord$outboundSchema` instead. */ export const outboundSchema = YieldRecord$outboundSchema; /** @deprecated use `YieldRecord$Outbound` instead. */ export type Outbound = YieldRecord$Outbound; } export function yieldRecordToJSON(yieldRecord: YieldRecord): string { return JSON.stringify(YieldRecord$outboundSchema.parse(yieldRecord)); } export function yieldRecordFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => YieldRecord$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'YieldRecord' from JSON`, ); }