/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { CardIssuingNetwork, CardIssuingNetwork$inboundSchema, CardIssuingNetwork$outboundSchema, } from "./cardissuingnetwork.js"; import { IssuingAuthorizationStatus, IssuingAuthorizationStatus$inboundSchema, IssuingAuthorizationStatus$outboundSchema, } from "./issuingauthorizationstatus.js"; import { IssuingMerchantData, IssuingMerchantData$inboundSchema, IssuingMerchantData$Outbound, IssuingMerchantData$outboundSchema, } from "./issuingmerchantdata.js"; export type IssuedCardAuthorization = { authorizationID: string; issuedCardID: string; fundingWalletID: string; /** * The name of the network a card transaction is routed through. */ network: CardIssuingNetwork; /** * A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99. */ authorizedAmount: string; /** * Status of a card issuing authorization. */ status: IssuingAuthorizationStatus; merchantData: IssuingMerchantData; createdOn: Date; /** * List of card transaction IDs associated with this authorization. */ cardTransactions?: Array | undefined; }; /** @internal */ export const IssuedCardAuthorization$inboundSchema: z.ZodType< IssuedCardAuthorization, z.ZodTypeDef, unknown > = z.object({ authorizationID: z.string(), issuedCardID: z.string(), fundingWalletID: z.string(), network: CardIssuingNetwork$inboundSchema, authorizedAmount: z.string(), status: IssuingAuthorizationStatus$inboundSchema, merchantData: IssuingMerchantData$inboundSchema, createdOn: z.string().datetime({ offset: true }).transform(v => new Date(v)), cardTransactions: z.array(z.string()).optional(), }); /** @internal */ export type IssuedCardAuthorization$Outbound = { authorizationID: string; issuedCardID: string; fundingWalletID: string; network: string; authorizedAmount: string; status: string; merchantData: IssuingMerchantData$Outbound; createdOn: string; cardTransactions?: Array | undefined; }; /** @internal */ export const IssuedCardAuthorization$outboundSchema: z.ZodType< IssuedCardAuthorization$Outbound, z.ZodTypeDef, IssuedCardAuthorization > = z.object({ authorizationID: z.string(), issuedCardID: z.string(), fundingWalletID: z.string(), network: CardIssuingNetwork$outboundSchema, authorizedAmount: z.string(), status: IssuingAuthorizationStatus$outboundSchema, merchantData: IssuingMerchantData$outboundSchema, createdOn: z.date().transform(v => v.toISOString()), cardTransactions: z.array(z.string()).optional(), }); export function issuedCardAuthorizationToJSON( issuedCardAuthorization: IssuedCardAuthorization, ): string { return JSON.stringify( IssuedCardAuthorization$outboundSchema.parse(issuedCardAuthorization), ); } export function issuedCardAuthorizationFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => IssuedCardAuthorization$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'IssuedCardAuthorization' from JSON`, ); }