/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ContributionConstraintsContributionTypeInfo, ContributionConstraintsContributionTypeInfo$inboundSchema, ContributionConstraintsContributionTypeInfo$Outbound, ContributionConstraintsContributionTypeInfo$outboundSchema, } from "./contributionconstraintscontributiontypeinfo.js"; import { DistributionConstraintsDistributionTypeInfo, DistributionConstraintsDistributionTypeInfo$inboundSchema, DistributionConstraintsDistributionTypeInfo$Outbound, DistributionConstraintsDistributionTypeInfo$outboundSchema, } from "./distributionconstraintsdistributiontypeinfo.js"; /** * Contribution constraints for the destination account */ export type CashJournalConstraintsContributionConstraints = { /** * Deprecated: please refer to the `valid_types.previous_year_deadline` field instead This value is determined based on the current date relative to the tax deadline. It will be inaccurate in cases where the previous year contribution deadline is not the tax deadline (e.g. `RECHARACTERIZATION`). * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ onlyAllowCurrentYear?: boolean | undefined; /** * Valid contribution types */ validTypes?: Array | undefined; }; /** * Distribution constraints for the source account */ export type CashJournalConstraintsDistributionConstraints = { /** * Whether a full distribution withdrawal is allowed */ fullDistributionAllowed?: boolean | undefined; /** * Valid distribution types */ validTypes?: Array | undefined; }; /** * Retirement constraints for cash journal transfers */ export type CashJournalConstraints = { /** * Contribution constraints for the destination account */ contributionConstraints?: | CashJournalConstraintsContributionConstraints | null | undefined; /** * Distribution constraints for the source account */ distributionConstraints?: | CashJournalConstraintsDistributionConstraints | null | undefined; }; /** @internal */ export const CashJournalConstraintsContributionConstraints$inboundSchema: z.ZodType< CashJournalConstraintsContributionConstraints, z.ZodTypeDef, unknown > = z.object({ only_allow_current_year: z.boolean().optional(), valid_types: z.array( ContributionConstraintsContributionTypeInfo$inboundSchema, ).optional(), }).transform((v) => { return remap$(v, { "only_allow_current_year": "onlyAllowCurrentYear", "valid_types": "validTypes", }); }); /** @internal */ export type CashJournalConstraintsContributionConstraints$Outbound = { only_allow_current_year?: boolean | undefined; valid_types?: | Array | undefined; }; /** @internal */ export const CashJournalConstraintsContributionConstraints$outboundSchema: z.ZodType< CashJournalConstraintsContributionConstraints$Outbound, z.ZodTypeDef, CashJournalConstraintsContributionConstraints > = z.object({ onlyAllowCurrentYear: z.boolean().optional(), validTypes: z.array( ContributionConstraintsContributionTypeInfo$outboundSchema, ).optional(), }).transform((v) => { return remap$(v, { onlyAllowCurrentYear: "only_allow_current_year", validTypes: "valid_types", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CashJournalConstraintsContributionConstraints$ { /** @deprecated use `CashJournalConstraintsContributionConstraints$inboundSchema` instead. */ export const inboundSchema = CashJournalConstraintsContributionConstraints$inboundSchema; /** @deprecated use `CashJournalConstraintsContributionConstraints$outboundSchema` instead. */ export const outboundSchema = CashJournalConstraintsContributionConstraints$outboundSchema; /** @deprecated use `CashJournalConstraintsContributionConstraints$Outbound` instead. */ export type Outbound = CashJournalConstraintsContributionConstraints$Outbound; } export function cashJournalConstraintsContributionConstraintsToJSON( cashJournalConstraintsContributionConstraints: CashJournalConstraintsContributionConstraints, ): string { return JSON.stringify( CashJournalConstraintsContributionConstraints$outboundSchema.parse( cashJournalConstraintsContributionConstraints, ), ); } export function cashJournalConstraintsContributionConstraintsFromJSON( jsonString: string, ): SafeParseResult< CashJournalConstraintsContributionConstraints, SDKValidationError > { return safeParse( jsonString, (x) => CashJournalConstraintsContributionConstraints$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'CashJournalConstraintsContributionConstraints' from JSON`, ); } /** @internal */ export const CashJournalConstraintsDistributionConstraints$inboundSchema: z.ZodType< CashJournalConstraintsDistributionConstraints, z.ZodTypeDef, unknown > = z.object({ full_distribution_allowed: z.boolean().optional(), valid_types: z.array( DistributionConstraintsDistributionTypeInfo$inboundSchema, ).optional(), }).transform((v) => { return remap$(v, { "full_distribution_allowed": "fullDistributionAllowed", "valid_types": "validTypes", }); }); /** @internal */ export type CashJournalConstraintsDistributionConstraints$Outbound = { full_distribution_allowed?: boolean | undefined; valid_types?: | Array | undefined; }; /** @internal */ export const CashJournalConstraintsDistributionConstraints$outboundSchema: z.ZodType< CashJournalConstraintsDistributionConstraints$Outbound, z.ZodTypeDef, CashJournalConstraintsDistributionConstraints > = z.object({ fullDistributionAllowed: z.boolean().optional(), validTypes: z.array( DistributionConstraintsDistributionTypeInfo$outboundSchema, ).optional(), }).transform((v) => { return remap$(v, { fullDistributionAllowed: "full_distribution_allowed", validTypes: "valid_types", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CashJournalConstraintsDistributionConstraints$ { /** @deprecated use `CashJournalConstraintsDistributionConstraints$inboundSchema` instead. */ export const inboundSchema = CashJournalConstraintsDistributionConstraints$inboundSchema; /** @deprecated use `CashJournalConstraintsDistributionConstraints$outboundSchema` instead. */ export const outboundSchema = CashJournalConstraintsDistributionConstraints$outboundSchema; /** @deprecated use `CashJournalConstraintsDistributionConstraints$Outbound` instead. */ export type Outbound = CashJournalConstraintsDistributionConstraints$Outbound; } export function cashJournalConstraintsDistributionConstraintsToJSON( cashJournalConstraintsDistributionConstraints: CashJournalConstraintsDistributionConstraints, ): string { return JSON.stringify( CashJournalConstraintsDistributionConstraints$outboundSchema.parse( cashJournalConstraintsDistributionConstraints, ), ); } export function cashJournalConstraintsDistributionConstraintsFromJSON( jsonString: string, ): SafeParseResult< CashJournalConstraintsDistributionConstraints, SDKValidationError > { return safeParse( jsonString, (x) => CashJournalConstraintsDistributionConstraints$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'CashJournalConstraintsDistributionConstraints' from JSON`, ); } /** @internal */ export const CashJournalConstraints$inboundSchema: z.ZodType< CashJournalConstraints, z.ZodTypeDef, unknown > = z.object({ contribution_constraints: z.nullable( z.lazy(() => CashJournalConstraintsContributionConstraints$inboundSchema), ).optional(), distribution_constraints: z.nullable( z.lazy(() => CashJournalConstraintsDistributionConstraints$inboundSchema), ).optional(), }).transform((v) => { return remap$(v, { "contribution_constraints": "contributionConstraints", "distribution_constraints": "distributionConstraints", }); }); /** @internal */ export type CashJournalConstraints$Outbound = { contribution_constraints?: | CashJournalConstraintsContributionConstraints$Outbound | null | undefined; distribution_constraints?: | CashJournalConstraintsDistributionConstraints$Outbound | null | undefined; }; /** @internal */ export const CashJournalConstraints$outboundSchema: z.ZodType< CashJournalConstraints$Outbound, z.ZodTypeDef, CashJournalConstraints > = z.object({ contributionConstraints: z.nullable( z.lazy(() => CashJournalConstraintsContributionConstraints$outboundSchema), ).optional(), distributionConstraints: z.nullable( z.lazy(() => CashJournalConstraintsDistributionConstraints$outboundSchema), ).optional(), }).transform((v) => { return remap$(v, { contributionConstraints: "contribution_constraints", distributionConstraints: "distribution_constraints", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CashJournalConstraints$ { /** @deprecated use `CashJournalConstraints$inboundSchema` instead. */ export const inboundSchema = CashJournalConstraints$inboundSchema; /** @deprecated use `CashJournalConstraints$outboundSchema` instead. */ export const outboundSchema = CashJournalConstraints$outboundSchema; /** @deprecated use `CashJournalConstraints$Outbound` instead. */ export type Outbound = CashJournalConstraints$Outbound; } export function cashJournalConstraintsToJSON( cashJournalConstraints: CashJournalConstraints, ): string { return JSON.stringify( CashJournalConstraints$outboundSchema.parse(cashJournalConstraints), ); } export function cashJournalConstraintsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CashJournalConstraints$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CashJournalConstraints' from JSON`, ); }