/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as types from "../../types/primitives.js"; import { SDKValidationError } from "./sdk-validation-error.js"; export type ReportingUnit = { /** * Multiplier: reporting_unit_value = unit_value * conversion_rate; must be > 0 */ conversionRate?: number | undefined; /** * Display unit label, plural (e.g. "seconds") */ unitPlural?: string | undefined; /** * Display unit label, singular (e.g. "second") */ unitSingular?: string | undefined; }; /** @internal */ export const ReportingUnit$inboundSchema: z.ZodMiniType< ReportingUnit, unknown > = z.pipe( z.object({ conversion_rate: types.optional(types.number()), unit_plural: types.optional(types.string()), unit_singular: types.optional(types.string()), }), z.transform((v) => { return remap$(v, { "conversion_rate": "conversionRate", "unit_plural": "unitPlural", "unit_singular": "unitSingular", }); }), ); /** @internal */ export type ReportingUnit$Outbound = { conversion_rate?: number | undefined; unit_plural?: string | undefined; unit_singular?: string | undefined; }; /** @internal */ export const ReportingUnit$outboundSchema: z.ZodMiniType< ReportingUnit$Outbound, ReportingUnit > = z.pipe( z.object({ conversionRate: z.optional(z.number()), unitPlural: z.optional(z.string()), unitSingular: z.optional(z.string()), }), z.transform((v) => { return remap$(v, { conversionRate: "conversion_rate", unitPlural: "unit_plural", unitSingular: "unit_singular", }); }), ); export function reportingUnitToJSON(reportingUnit: ReportingUnit): string { return JSON.stringify(ReportingUnit$outboundSchema.parse(reportingUnit)); } export function reportingUnitFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ReportingUnit$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ReportingUnit' from JSON`, ); }