/* * 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"; import { BookingFee, BookingFee$inboundSchema, BookingFee$Outbound, BookingFee$outboundSchema, } from "./bookingfee.js"; import { BookingLot, BookingLot$inboundSchema, BookingLot$Outbound, BookingLot$outboundSchema, } from "./bookinglot.js"; import { Execution, Execution$inboundSchema, Execution$Outbound, Execution$outboundSchema, } from "./execution.js"; /** * Type of the asset being traded. */ export enum CompleteTradeResponseAssetType { AssetTypeUnspecified = "ASSET_TYPE_UNSPECIFIED", Equity = "EQUITY", FixedIncome = "FIXED_INCOME", } /** * Type of the asset being traded. */ export type CompleteTradeResponseAssetTypeOpen = OpenEnum< typeof CompleteTradeResponseAssetType >; /** * Broker capacity for the trade. */ export enum CompleteTradeResponseBrokerCapacity { CapacityUnspecified = "CAPACITY_UNSPECIFIED", Agency = "AGENCY", Principal = "PRINCIPAL", Mixed = "MIXED", } /** * Broker capacity for the trade. */ export type CompleteTradeResponseBrokerCapacityOpen = OpenEnum< typeof CompleteTradeResponseBrokerCapacity >; /** * Identifier type for the asset being traded. */ export enum CompleteTradeResponseIdentifierType { IdentifierTypeUnspecified = "IDENTIFIER_TYPE_UNSPECIFIED", AssetId = "ASSET_ID", Symbol = "SYMBOL", Cusip = "CUSIP", Isin = "ISIN", } /** * Identifier type for the asset being traded. */ export type CompleteTradeResponseIdentifierTypeOpen = OpenEnum< typeof CompleteTradeResponseIdentifierType >; /** * Date field to support extended trading hours. */ export type CompleteTradeResponseLocalMarketTradeDate = { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day?: number | undefined; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month?: number | undefined; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year?: number | undefined; }; /** * Route type for the trade. */ export enum CompleteTradeResponseRouteType { RouteTypeUnspecified = "ROUTE_TYPE_UNSPECIFIED", Dma = "DMA", Mngd = "MNGD", Quik = "QUIK", Algo = "ALGO", Away = "AWAY", Corr = "CORR", Boats = "BOATS", } /** * Route type for the trade. */ export type CompleteTradeResponseRouteTypeOpen = OpenEnum< typeof CompleteTradeResponseRouteType >; /** * Defaults to T+1 for equities if this is not provided. Calculated by the execution's execution_time field in Eastern Time. */ export type CompleteTradeResponseSettlementDate = { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day?: number | undefined; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month?: number | undefined; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year?: number | undefined; }; /** * Denotes if the trade is a SELL or a BUY. */ export enum CompleteTradeResponseSide { SideUnspecified = "SIDE_UNSPECIFIED", Buy = "BUY", Sell = "SELL", } /** * Denotes if the trade is a SELL or a BUY. */ export type CompleteTradeResponseSideOpen = OpenEnum< typeof CompleteTradeResponseSide >; /** * Side modifier for the trade. */ export enum CompleteTradeResponseSideModifier { SideModifierUnspecified = "SIDE_MODIFIER_UNSPECIFIED", Short = "SHORT", ShortExempt = "SHORT_EXEMPT", ShortCover = "SHORT_COVER", Open = "OPEN", Close = "CLOSE", } /** * Side modifier for the trade. */ export type CompleteTradeResponseSideModifierOpen = OpenEnum< typeof CompleteTradeResponseSideModifier >; export enum CompleteTradeResponseSpecialInstructions { SpecialInstructionsUnspecified = "SPECIAL_INSTRUCTIONS_UNSPECIFIED", Rule144 = "RULE_144", WithDividend = "WITH_DIVIDEND", WithRights = "WITH_RIGHTS", CloseContract = "CLOSE_CONTRACT", CoverShort = "COVER_SHORT", CrossTrade = "CROSS_TRADE", OpenContractCovered = "OPEN_CONTRACT_COVERED", DiscretionExercised = "DISCRETION_EXERCISED", DiscretionNotExercised = "DISCRETION_NOT_EXERCISED", OptionAssignment = "OPTION_ASSIGNMENT", EmployeeStockOption = "EMPLOYEE_STOCK_OPTION", InvestmentBanking = "INVESTMENT_BANKING", BrokerDealerOrder = "BROKER_DEALER_ORDER", MakeMarketInSecurity = "MAKE_MARKET_IN_SECURITY", MakeMarketSolicited = "MAKE_MARKET_SOLICITED", MakeMarketUnsolicited = "MAKE_MARKET_UNSOLICITED", CustomerDirected = "CUSTOMER_DIRECTED", FullyRegistered = "FULLY_REGISTERED", OpenContract = "OPEN_CONTRACT", OddlotDiffOnRequest = "ODDLOT_DIFF_ON_REQUEST", ProspectusEnclosed = "PROSPECTUS_ENCLOSED", ProspectusSeparateMail = "PROSPECTUS_SEPARATE_MAIL", Solicited = "SOLICITED", Unsolicited = "UNSOLICITED", XDividend = "X_DIVIDEND", ActingAsPrincipal = "ACTING_AS_PRINCIPAL", AveragePrice = "AVERAGE_PRICE", BrokerLiquidation = "BROKER_LIQUIDATION", CouponBooks = "COUPON_BOOKS", HasPostageFee = "HAS_POSTAGE_FEE", InternetOrder = "INTERNET_ORDER", MarginSellout = "MARGIN_SELLOUT", MarketMakersAsPrincipal = "MARKET_MAKERS_AS_PRINCIPAL", NegativeNetProceed = "NEGATIVE_NET_PROCEED", PreFigIndicator = "PRE_FIG_INDICATOR", RisklessPrincipalInstruction = "RISKLESS_PRINCIPAL_INSTRUCTION", ShortInstruction = "SHORT_INSTRUCTION", ThirdMarket = "THIRD_MARKET", SuppressMsrbTransmission = "SUPPRESS_MSRB_TRANSMISSION", SuppressTraceReporting = "SUPPRESS_TRACE_REPORTING", SuppressEmailNotification = "SUPPRESS_EMAIL_NOTIFICATION", StockReward = "STOCK_REWARD", SuppressRegFees = "SUPPRESS_REG_FEES", SuppressSecFee = "SUPPRESS_SEC_FEE", SuppressTafFee = "SUPPRESS_TAF_FEE", DividendReinvestment = "DIVIDEND_REINVESTMENT", } export type CompleteTradeResponseSpecialInstructionsOpen = OpenEnum< typeof CompleteTradeResponseSpecialInstructions >; /** * Exchange venue */ export enum CompleteTradeResponseVenue { ExchangeVenueUnspecified = "EXCHANGE_VENUE_UNSPECIFIED", Amex = "AMEX", Arca = "ARCA", Bats = "BATS", BatsByx = "BATS_BYX", Boston = "BOSTON", Box = "BOX", Bzx = "BZX", C2 = "C2", Cboe = "CBOE", Chicago = "CHICAGO", Cincinnati = "CINCINNATI", Edga = "EDGA", Edgx = "EDGX", Exclearing = "EXCLEARING", Iex = "IEX", Ise = "ISE", IseGemini = "ISE_GEMINI", Miax = "MIAX", Nasdaq = "NASDAQ", NasdaqOmxBx = "NASDAQ_OMX_BX", Nyse = "NYSE", Phlx = "PHLX", Otc = "OTC", Qsr = "QSR", } /** * Exchange venue */ export type CompleteTradeResponseVenueOpen = OpenEnum< typeof CompleteTradeResponseVenue >; /** * Denotes that this trade was either when_issued or when_distributed. */ export enum CompleteTradeResponseWhenIssued { WhenIssuedTypeUnspecified = "WHEN_ISSUED_TYPE_UNSPECIFIED", WhenIssued = "WHEN_ISSUED", WhenDistributed = "WHEN_DISTRIBUTED", } /** * Denotes that this trade was either when_issued or when_distributed. */ export type CompleteTradeResponseWhenIssuedOpen = OpenEnum< typeof CompleteTradeResponseWhenIssued >; /** * The completed trade. */ export type Trade = { /** * A globally unique identifier referencing a single account. */ accountId?: string | undefined; /** * The current activity_id of this trade in the Ledger. */ activityId?: string | undefined; /** * Free form instructions that can be used to provide additional instructions (that are not captured by existing special instructions) and will be put on the trade confirm. */ additionalInstructions?: string | undefined; /** * Fractional support for market-makers' internal order ids. */ alternateOrderId?: string | undefined; /** * Type of the asset being traded. */ assetType?: CompleteTradeResponseAssetTypeOpen | undefined; /** * Broker capacity for the trade. */ brokerCapacity?: CompleteTradeResponseBrokerCapacityOpen | undefined; /** * The unique identifier that is associated with an order. Must be unique by date per trade per client. */ clientOrderId?: string | undefined; /** * Executing broker of the trade. */ executingBroker?: string | undefined; /** * The executions (sometimes referred to as partial-fills) that comprise the trade. */ executions?: Array | undefined; /** * Any client calculated fees associated with the trade. Only allowed if trade.open = false. Regulatory fees will be calculated automatically if they are not explicitly overwritten or suppressed. */ fees?: Array | undefined; /** * Identifier (of the type specified in `identifier_type`). Responses will supply the originally requested identifier. */ identifier?: string | undefined; /** * Identifier type for the asset being traded. */ identifierType?: CompleteTradeResponseIdentifierTypeOpen | undefined; /** * Unicode CLDR region code. Issuing Region Code is required for some `identifier_type`s, especially CUSIP. */ issuingRegionCode?: string | undefined; /** * Date field to support extended trading hours. */ localMarketTradeDate?: | CompleteTradeResponseLocalMarketTradeDate | null | undefined; /** * One or many lot matching instructions for the trade. */ lotMatchingInstructions?: Array | undefined; /** * Market Identifier Code */ micCode?: string | undefined; /** * The resource name of the trade. */ name?: string | undefined; /** * State of this trade's completeness in filling. True: trade is not done filling and can append more executions onto the trade False: trade is done filling and cannot append more executions onto the trade By default, trades are closed when they are created. An open trade can later be closed by calling the CompleteTrade endpoint. Additional executions can be appended to an open trade by calling the CreateExecution endpoint. Trades that are left open will be automatically closed nightly before Ledger's EOD. */ open?: boolean | undefined; /** * Street-level order id, unique by day per broker. */ orderId?: string | undefined; /** * Route type for the trade. */ routeType?: CompleteTradeResponseRouteTypeOpen | undefined; /** * Defaults to T+1 for equities if this is not provided. Calculated by the execution's execution_time field in Eastern Time. */ settlementDate?: CompleteTradeResponseSettlementDate | null | undefined; /** * Denotes if the trade is a SELL or a BUY. */ side?: CompleteTradeResponseSideOpen | undefined; /** * Side modifier for the trade. */ sideModifier?: CompleteTradeResponseSideModifierOpen | undefined; /** * The source of the submission. */ sourceApplication?: string | undefined; /** * An enumerated list of values used to indicate certain attributes about a trade (E.g. DISCRETION_EXERCISED, BROKER_LIQUIDATION) and/or trigger downstream processing rules (e.g. SUPPRESS_TRACE_REPORTING) */ specialInstructions?: | Array | undefined; /** * A ULID to uniquely identify the trade globally. */ tradeId?: string | undefined; /** * Exchange venue */ venue?: CompleteTradeResponseVenueOpen | undefined; /** * Denotes that this trade was either when_issued or when_distributed. */ whenIssued?: CompleteTradeResponseWhenIssuedOpen | undefined; }; /** * A response to the complete trade method. */ export type CompleteTradeResponse = { /** * The completed trade. */ trade?: Trade | null | undefined; }; /** @internal */ export const CompleteTradeResponseAssetType$inboundSchema: z.ZodType< CompleteTradeResponseAssetTypeOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseAssetType), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseAssetType$outboundSchema: z.ZodType< CompleteTradeResponseAssetTypeOpen, z.ZodTypeDef, CompleteTradeResponseAssetTypeOpen > = z.union([ z.nativeEnum(CompleteTradeResponseAssetType), 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 CompleteTradeResponseAssetType$ { /** @deprecated use `CompleteTradeResponseAssetType$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseAssetType$inboundSchema; /** @deprecated use `CompleteTradeResponseAssetType$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseAssetType$outboundSchema; } /** @internal */ export const CompleteTradeResponseBrokerCapacity$inboundSchema: z.ZodType< CompleteTradeResponseBrokerCapacityOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseBrokerCapacity), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseBrokerCapacity$outboundSchema: z.ZodType< CompleteTradeResponseBrokerCapacityOpen, z.ZodTypeDef, CompleteTradeResponseBrokerCapacityOpen > = z.union([ z.nativeEnum(CompleteTradeResponseBrokerCapacity), 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 CompleteTradeResponseBrokerCapacity$ { /** @deprecated use `CompleteTradeResponseBrokerCapacity$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseBrokerCapacity$inboundSchema; /** @deprecated use `CompleteTradeResponseBrokerCapacity$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseBrokerCapacity$outboundSchema; } /** @internal */ export const CompleteTradeResponseIdentifierType$inboundSchema: z.ZodType< CompleteTradeResponseIdentifierTypeOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseIdentifierType), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseIdentifierType$outboundSchema: z.ZodType< CompleteTradeResponseIdentifierTypeOpen, z.ZodTypeDef, CompleteTradeResponseIdentifierTypeOpen > = z.union([ z.nativeEnum(CompleteTradeResponseIdentifierType), 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 CompleteTradeResponseIdentifierType$ { /** @deprecated use `CompleteTradeResponseIdentifierType$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseIdentifierType$inboundSchema; /** @deprecated use `CompleteTradeResponseIdentifierType$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseIdentifierType$outboundSchema; } /** @internal */ export const CompleteTradeResponseLocalMarketTradeDate$inboundSchema: z.ZodType< CompleteTradeResponseLocalMarketTradeDate, z.ZodTypeDef, unknown > = z.object({ day: z.number().int().optional(), month: z.number().int().optional(), year: z.number().int().optional(), }); /** @internal */ export type CompleteTradeResponseLocalMarketTradeDate$Outbound = { day?: number | undefined; month?: number | undefined; year?: number | undefined; }; /** @internal */ export const CompleteTradeResponseLocalMarketTradeDate$outboundSchema: z.ZodType< CompleteTradeResponseLocalMarketTradeDate$Outbound, z.ZodTypeDef, CompleteTradeResponseLocalMarketTradeDate > = z.object({ day: z.number().int().optional(), month: z.number().int().optional(), year: z.number().int().optional(), }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CompleteTradeResponseLocalMarketTradeDate$ { /** @deprecated use `CompleteTradeResponseLocalMarketTradeDate$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseLocalMarketTradeDate$inboundSchema; /** @deprecated use `CompleteTradeResponseLocalMarketTradeDate$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseLocalMarketTradeDate$outboundSchema; /** @deprecated use `CompleteTradeResponseLocalMarketTradeDate$Outbound` instead. */ export type Outbound = CompleteTradeResponseLocalMarketTradeDate$Outbound; } export function completeTradeResponseLocalMarketTradeDateToJSON( completeTradeResponseLocalMarketTradeDate: CompleteTradeResponseLocalMarketTradeDate, ): string { return JSON.stringify( CompleteTradeResponseLocalMarketTradeDate$outboundSchema.parse( completeTradeResponseLocalMarketTradeDate, ), ); } export function completeTradeResponseLocalMarketTradeDateFromJSON( jsonString: string, ): SafeParseResult< CompleteTradeResponseLocalMarketTradeDate, SDKValidationError > { return safeParse( jsonString, (x) => CompleteTradeResponseLocalMarketTradeDate$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'CompleteTradeResponseLocalMarketTradeDate' from JSON`, ); } /** @internal */ export const CompleteTradeResponseRouteType$inboundSchema: z.ZodType< CompleteTradeResponseRouteTypeOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseRouteType), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseRouteType$outboundSchema: z.ZodType< CompleteTradeResponseRouteTypeOpen, z.ZodTypeDef, CompleteTradeResponseRouteTypeOpen > = z.union([ z.nativeEnum(CompleteTradeResponseRouteType), 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 CompleteTradeResponseRouteType$ { /** @deprecated use `CompleteTradeResponseRouteType$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseRouteType$inboundSchema; /** @deprecated use `CompleteTradeResponseRouteType$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseRouteType$outboundSchema; } /** @internal */ export const CompleteTradeResponseSettlementDate$inboundSchema: z.ZodType< CompleteTradeResponseSettlementDate, z.ZodTypeDef, unknown > = z.object({ day: z.number().int().optional(), month: z.number().int().optional(), year: z.number().int().optional(), }); /** @internal */ export type CompleteTradeResponseSettlementDate$Outbound = { day?: number | undefined; month?: number | undefined; year?: number | undefined; }; /** @internal */ export const CompleteTradeResponseSettlementDate$outboundSchema: z.ZodType< CompleteTradeResponseSettlementDate$Outbound, z.ZodTypeDef, CompleteTradeResponseSettlementDate > = z.object({ day: z.number().int().optional(), month: z.number().int().optional(), year: z.number().int().optional(), }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CompleteTradeResponseSettlementDate$ { /** @deprecated use `CompleteTradeResponseSettlementDate$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseSettlementDate$inboundSchema; /** @deprecated use `CompleteTradeResponseSettlementDate$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseSettlementDate$outboundSchema; /** @deprecated use `CompleteTradeResponseSettlementDate$Outbound` instead. */ export type Outbound = CompleteTradeResponseSettlementDate$Outbound; } export function completeTradeResponseSettlementDateToJSON( completeTradeResponseSettlementDate: CompleteTradeResponseSettlementDate, ): string { return JSON.stringify( CompleteTradeResponseSettlementDate$outboundSchema.parse( completeTradeResponseSettlementDate, ), ); } export function completeTradeResponseSettlementDateFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CompleteTradeResponseSettlementDate$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CompleteTradeResponseSettlementDate' from JSON`, ); } /** @internal */ export const CompleteTradeResponseSide$inboundSchema: z.ZodType< CompleteTradeResponseSideOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseSide), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseSide$outboundSchema: z.ZodType< CompleteTradeResponseSideOpen, z.ZodTypeDef, CompleteTradeResponseSideOpen > = z.union([ z.nativeEnum(CompleteTradeResponseSide), 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 CompleteTradeResponseSide$ { /** @deprecated use `CompleteTradeResponseSide$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseSide$inboundSchema; /** @deprecated use `CompleteTradeResponseSide$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseSide$outboundSchema; } /** @internal */ export const CompleteTradeResponseSideModifier$inboundSchema: z.ZodType< CompleteTradeResponseSideModifierOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseSideModifier), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseSideModifier$outboundSchema: z.ZodType< CompleteTradeResponseSideModifierOpen, z.ZodTypeDef, CompleteTradeResponseSideModifierOpen > = z.union([ z.nativeEnum(CompleteTradeResponseSideModifier), 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 CompleteTradeResponseSideModifier$ { /** @deprecated use `CompleteTradeResponseSideModifier$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseSideModifier$inboundSchema; /** @deprecated use `CompleteTradeResponseSideModifier$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseSideModifier$outboundSchema; } /** @internal */ export const CompleteTradeResponseSpecialInstructions$inboundSchema: z.ZodType< CompleteTradeResponseSpecialInstructionsOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseSpecialInstructions), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseSpecialInstructions$outboundSchema: z.ZodType< CompleteTradeResponseSpecialInstructionsOpen, z.ZodTypeDef, CompleteTradeResponseSpecialInstructionsOpen > = z.union([ z.nativeEnum(CompleteTradeResponseSpecialInstructions), 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 CompleteTradeResponseSpecialInstructions$ { /** @deprecated use `CompleteTradeResponseSpecialInstructions$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseSpecialInstructions$inboundSchema; /** @deprecated use `CompleteTradeResponseSpecialInstructions$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseSpecialInstructions$outboundSchema; } /** @internal */ export const CompleteTradeResponseVenue$inboundSchema: z.ZodType< CompleteTradeResponseVenueOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseVenue), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseVenue$outboundSchema: z.ZodType< CompleteTradeResponseVenueOpen, z.ZodTypeDef, CompleteTradeResponseVenueOpen > = z.union([ z.nativeEnum(CompleteTradeResponseVenue), 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 CompleteTradeResponseVenue$ { /** @deprecated use `CompleteTradeResponseVenue$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseVenue$inboundSchema; /** @deprecated use `CompleteTradeResponseVenue$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseVenue$outboundSchema; } /** @internal */ export const CompleteTradeResponseWhenIssued$inboundSchema: z.ZodType< CompleteTradeResponseWhenIssuedOpen, z.ZodTypeDef, unknown > = z .union([ z.nativeEnum(CompleteTradeResponseWhenIssued), z.string().transform(catchUnrecognizedEnum), ]); /** @internal */ export const CompleteTradeResponseWhenIssued$outboundSchema: z.ZodType< CompleteTradeResponseWhenIssuedOpen, z.ZodTypeDef, CompleteTradeResponseWhenIssuedOpen > = z.union([ z.nativeEnum(CompleteTradeResponseWhenIssued), 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 CompleteTradeResponseWhenIssued$ { /** @deprecated use `CompleteTradeResponseWhenIssued$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponseWhenIssued$inboundSchema; /** @deprecated use `CompleteTradeResponseWhenIssued$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponseWhenIssued$outboundSchema; } /** @internal */ export const Trade$inboundSchema: z.ZodType = z .object({ account_id: z.string().optional(), activity_id: z.string().optional(), additional_instructions: z.string().optional(), alternate_order_id: z.string().optional(), asset_type: CompleteTradeResponseAssetType$inboundSchema.optional(), broker_capacity: CompleteTradeResponseBrokerCapacity$inboundSchema .optional(), client_order_id: z.string().optional(), executing_broker: z.string().optional(), executions: z.array(Execution$inboundSchema).optional(), fees: z.array(BookingFee$inboundSchema).optional(), identifier: z.string().optional(), identifier_type: CompleteTradeResponseIdentifierType$inboundSchema .optional(), issuing_region_code: z.string().optional(), local_market_trade_date: z.nullable( z.lazy(() => CompleteTradeResponseLocalMarketTradeDate$inboundSchema), ).optional(), lot_matching_instructions: z.array(BookingLot$inboundSchema).optional(), mic_code: z.string().optional(), name: z.string().optional(), open: z.boolean().optional(), order_id: z.string().optional(), route_type: CompleteTradeResponseRouteType$inboundSchema.optional(), settlement_date: z.nullable( z.lazy(() => CompleteTradeResponseSettlementDate$inboundSchema), ).optional(), side: CompleteTradeResponseSide$inboundSchema.optional(), side_modifier: CompleteTradeResponseSideModifier$inboundSchema.optional(), source_application: z.string().optional(), special_instructions: z.array( CompleteTradeResponseSpecialInstructions$inboundSchema, ).optional(), trade_id: z.string().optional(), venue: CompleteTradeResponseVenue$inboundSchema.optional(), when_issued: CompleteTradeResponseWhenIssued$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "account_id": "accountId", "activity_id": "activityId", "additional_instructions": "additionalInstructions", "alternate_order_id": "alternateOrderId", "asset_type": "assetType", "broker_capacity": "brokerCapacity", "client_order_id": "clientOrderId", "executing_broker": "executingBroker", "identifier_type": "identifierType", "issuing_region_code": "issuingRegionCode", "local_market_trade_date": "localMarketTradeDate", "lot_matching_instructions": "lotMatchingInstructions", "mic_code": "micCode", "order_id": "orderId", "route_type": "routeType", "settlement_date": "settlementDate", "side_modifier": "sideModifier", "source_application": "sourceApplication", "special_instructions": "specialInstructions", "trade_id": "tradeId", "when_issued": "whenIssued", }); }); /** @internal */ export type Trade$Outbound = { account_id?: string | undefined; activity_id?: string | undefined; additional_instructions?: string | undefined; alternate_order_id?: string | undefined; asset_type?: string | undefined; broker_capacity?: string | undefined; client_order_id?: string | undefined; executing_broker?: string | undefined; executions?: Array | undefined; fees?: Array | undefined; identifier?: string | undefined; identifier_type?: string | undefined; issuing_region_code?: string | undefined; local_market_trade_date?: | CompleteTradeResponseLocalMarketTradeDate$Outbound | null | undefined; lot_matching_instructions?: Array | undefined; mic_code?: string | undefined; name?: string | undefined; open?: boolean | undefined; order_id?: string | undefined; route_type?: string | undefined; settlement_date?: | CompleteTradeResponseSettlementDate$Outbound | null | undefined; side?: string | undefined; side_modifier?: string | undefined; source_application?: string | undefined; special_instructions?: Array | undefined; trade_id?: string | undefined; venue?: string | undefined; when_issued?: string | undefined; }; /** @internal */ export const Trade$outboundSchema: z.ZodType< Trade$Outbound, z.ZodTypeDef, Trade > = z.object({ accountId: z.string().optional(), activityId: z.string().optional(), additionalInstructions: z.string().optional(), alternateOrderId: z.string().optional(), assetType: CompleteTradeResponseAssetType$outboundSchema.optional(), brokerCapacity: CompleteTradeResponseBrokerCapacity$outboundSchema.optional(), clientOrderId: z.string().optional(), executingBroker: z.string().optional(), executions: z.array(Execution$outboundSchema).optional(), fees: z.array(BookingFee$outboundSchema).optional(), identifier: z.string().optional(), identifierType: CompleteTradeResponseIdentifierType$outboundSchema.optional(), issuingRegionCode: z.string().optional(), localMarketTradeDate: z.nullable( z.lazy(() => CompleteTradeResponseLocalMarketTradeDate$outboundSchema), ).optional(), lotMatchingInstructions: z.array(BookingLot$outboundSchema).optional(), micCode: z.string().optional(), name: z.string().optional(), open: z.boolean().optional(), orderId: z.string().optional(), routeType: CompleteTradeResponseRouteType$outboundSchema.optional(), settlementDate: z.nullable( z.lazy(() => CompleteTradeResponseSettlementDate$outboundSchema), ).optional(), side: CompleteTradeResponseSide$outboundSchema.optional(), sideModifier: CompleteTradeResponseSideModifier$outboundSchema.optional(), sourceApplication: z.string().optional(), specialInstructions: z.array( CompleteTradeResponseSpecialInstructions$outboundSchema, ).optional(), tradeId: z.string().optional(), venue: CompleteTradeResponseVenue$outboundSchema.optional(), whenIssued: CompleteTradeResponseWhenIssued$outboundSchema.optional(), }).transform((v) => { return remap$(v, { accountId: "account_id", activityId: "activity_id", additionalInstructions: "additional_instructions", alternateOrderId: "alternate_order_id", assetType: "asset_type", brokerCapacity: "broker_capacity", clientOrderId: "client_order_id", executingBroker: "executing_broker", identifierType: "identifier_type", issuingRegionCode: "issuing_region_code", localMarketTradeDate: "local_market_trade_date", lotMatchingInstructions: "lot_matching_instructions", micCode: "mic_code", orderId: "order_id", routeType: "route_type", settlementDate: "settlement_date", sideModifier: "side_modifier", sourceApplication: "source_application", specialInstructions: "special_instructions", tradeId: "trade_id", whenIssued: "when_issued", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace Trade$ { /** @deprecated use `Trade$inboundSchema` instead. */ export const inboundSchema = Trade$inboundSchema; /** @deprecated use `Trade$outboundSchema` instead. */ export const outboundSchema = Trade$outboundSchema; /** @deprecated use `Trade$Outbound` instead. */ export type Outbound = Trade$Outbound; } export function tradeToJSON(trade: Trade): string { return JSON.stringify(Trade$outboundSchema.parse(trade)); } export function tradeFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Trade$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Trade' from JSON`, ); } /** @internal */ export const CompleteTradeResponse$inboundSchema: z.ZodType< CompleteTradeResponse, z.ZodTypeDef, unknown > = z.object({ trade: z.nullable(z.lazy(() => Trade$inboundSchema)).optional(), }); /** @internal */ export type CompleteTradeResponse$Outbound = { trade?: Trade$Outbound | null | undefined; }; /** @internal */ export const CompleteTradeResponse$outboundSchema: z.ZodType< CompleteTradeResponse$Outbound, z.ZodTypeDef, CompleteTradeResponse > = z.object({ trade: z.nullable(z.lazy(() => Trade$outboundSchema)).optional(), }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace CompleteTradeResponse$ { /** @deprecated use `CompleteTradeResponse$inboundSchema` instead. */ export const inboundSchema = CompleteTradeResponse$inboundSchema; /** @deprecated use `CompleteTradeResponse$outboundSchema` instead. */ export const outboundSchema = CompleteTradeResponse$outboundSchema; /** @deprecated use `CompleteTradeResponse$Outbound` instead. */ export type Outbound = CompleteTradeResponse$Outbound; } export function completeTradeResponseToJSON( completeTradeResponse: CompleteTradeResponse, ): string { return JSON.stringify( CompleteTradeResponse$outboundSchema.parse(completeTradeResponse), ); } export function completeTradeResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CompleteTradeResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CompleteTradeResponse' from JSON`, ); }