/* * 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 { InstitutionCreate, InstitutionCreate$inboundSchema, InstitutionCreate$Outbound, InstitutionCreate$outboundSchema, } from "./institutioncreate.js"; import { TravelRuleEntityPartyCreate, TravelRuleEntityPartyCreate$inboundSchema, TravelRuleEntityPartyCreate$Outbound, TravelRuleEntityPartyCreate$outboundSchema, } from "./travelruleentitypartycreate.js"; import { TravelRulePartyCreate, TravelRulePartyCreate$inboundSchema, TravelRulePartyCreate$Outbound, TravelRulePartyCreate$outboundSchema, } from "./travelrulepartycreate.js"; /** * The travel rules associated with an ICT deposit */ export type IctDepositTravelRuleCreate = { /** * Travel rule entity party */ entityOriginatingParty?: TravelRuleEntityPartyCreate | undefined; /** * Travel rule entity party */ entityRecipientParty?: TravelRuleEntityPartyCreate | undefined; /** * Travel rule party */ individualOriginatingParty?: TravelRulePartyCreate | undefined; /** * Travel rule party */ individualRecipientParty?: TravelRulePartyCreate | undefined; /** * Institution representing originator or recipient of funds from an Instant Cash Transfer */ originatingInstitution: InstitutionCreate; }; /** @internal */ export const IctDepositTravelRuleCreate$inboundSchema: z.ZodType< IctDepositTravelRuleCreate, z.ZodTypeDef, unknown > = z.object({ entity_originating_party: TravelRuleEntityPartyCreate$inboundSchema .optional(), entity_recipient_party: TravelRuleEntityPartyCreate$inboundSchema.optional(), individual_originating_party: TravelRulePartyCreate$inboundSchema.optional(), individual_recipient_party: TravelRulePartyCreate$inboundSchema.optional(), originating_institution: InstitutionCreate$inboundSchema, }).transform((v) => { return remap$(v, { "entity_originating_party": "entityOriginatingParty", "entity_recipient_party": "entityRecipientParty", "individual_originating_party": "individualOriginatingParty", "individual_recipient_party": "individualRecipientParty", "originating_institution": "originatingInstitution", }); }); /** @internal */ export type IctDepositTravelRuleCreate$Outbound = { entity_originating_party?: TravelRuleEntityPartyCreate$Outbound | undefined; entity_recipient_party?: TravelRuleEntityPartyCreate$Outbound | undefined; individual_originating_party?: TravelRulePartyCreate$Outbound | undefined; individual_recipient_party?: TravelRulePartyCreate$Outbound | undefined; originating_institution: InstitutionCreate$Outbound; }; /** @internal */ export const IctDepositTravelRuleCreate$outboundSchema: z.ZodType< IctDepositTravelRuleCreate$Outbound, z.ZodTypeDef, IctDepositTravelRuleCreate > = z.object({ entityOriginatingParty: TravelRuleEntityPartyCreate$outboundSchema.optional(), entityRecipientParty: TravelRuleEntityPartyCreate$outboundSchema.optional(), individualOriginatingParty: TravelRulePartyCreate$outboundSchema.optional(), individualRecipientParty: TravelRulePartyCreate$outboundSchema.optional(), originatingInstitution: InstitutionCreate$outboundSchema, }).transform((v) => { return remap$(v, { entityOriginatingParty: "entity_originating_party", entityRecipientParty: "entity_recipient_party", individualOriginatingParty: "individual_originating_party", individualRecipientParty: "individual_recipient_party", originatingInstitution: "originating_institution", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace IctDepositTravelRuleCreate$ { /** @deprecated use `IctDepositTravelRuleCreate$inboundSchema` instead. */ export const inboundSchema = IctDepositTravelRuleCreate$inboundSchema; /** @deprecated use `IctDepositTravelRuleCreate$outboundSchema` instead. */ export const outboundSchema = IctDepositTravelRuleCreate$outboundSchema; /** @deprecated use `IctDepositTravelRuleCreate$Outbound` instead. */ export type Outbound = IctDepositTravelRuleCreate$Outbound; } export function ictDepositTravelRuleCreateToJSON( ictDepositTravelRuleCreate: IctDepositTravelRuleCreate, ): string { return JSON.stringify( IctDepositTravelRuleCreate$outboundSchema.parse(ictDepositTravelRuleCreate), ); } export function ictDepositTravelRuleCreateFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => IctDepositTravelRuleCreate$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'IctDepositTravelRuleCreate' from JSON`, ); }