/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi, PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi$inboundSchema, } from "./payrollcreditblockerunblockoptionrespondtohighriskfraudrfi.js"; import { PayrollCreditBlockerUnblockOptionSubmitBankScreenshot, PayrollCreditBlockerUnblockOptionSubmitBankScreenshot$inboundSchema, } from "./payrollcreditblockerunblockoptionsubmitbankscreenshot.js"; import { PayrollCreditBlockerUnblockOptionSubmitWire, PayrollCreditBlockerUnblockOptionSubmitWire$inboundSchema, } from "./payrollcreditblockerunblockoptionsubmitwire.js"; import { PayrollCreditBlockerUnblockOptionWaitForReverseWire, PayrollCreditBlockerUnblockOptionWaitForReverseWire$inboundSchema, } from "./payrollcreditblockerunblockoptionwaitforreversewire.js"; export type PayrollCreditBlockerTypeUnblockOptions = | PayrollCreditBlockerUnblockOptionSubmitWire | PayrollCreditBlockerUnblockOptionSubmitBankScreenshot | PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi | PayrollCreditBlockerUnblockOptionWaitForReverseWire; /** * The status of the credit blocker */ export const PayrollCreditBlockerTypeStatus = { Unresolved: "unresolved", PendingReview: "pending_review", Resolved: "resolved", Failed: "failed", } as const; /** * The status of the credit blocker */ export type PayrollCreditBlockerTypeStatus = ClosedEnum< typeof PayrollCreditBlockerTypeStatus >; /** * A blocker that prevents payment crediting. */ export type PayrollCreditBlockerType = { /** * The type of blocker that's blocking the payment from being credited. */ blockerType?: string | undefined; /** * The name of the credit blocker. */ blockerName?: string | undefined; /** * The available options to unblock a credit blocker. */ unblockOptions?: | Array< | PayrollCreditBlockerUnblockOptionSubmitWire | PayrollCreditBlockerUnblockOptionSubmitBankScreenshot | PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi | PayrollCreditBlockerUnblockOptionWaitForReverseWire > | undefined; /** * The unblock option that's been selected to resolve the credit blocker. */ selectedOption?: string | null | undefined; /** * The status of the credit blocker */ status?: PayrollCreditBlockerTypeStatus | undefined; }; /** @internal */ export const PayrollCreditBlockerTypeUnblockOptions$inboundSchema: z.ZodType< PayrollCreditBlockerTypeUnblockOptions, z.ZodTypeDef, unknown > = z.union([ PayrollCreditBlockerUnblockOptionSubmitWire$inboundSchema, PayrollCreditBlockerUnblockOptionSubmitBankScreenshot$inboundSchema, PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi$inboundSchema, PayrollCreditBlockerUnblockOptionWaitForReverseWire$inboundSchema, ]); export function payrollCreditBlockerTypeUnblockOptionsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PayrollCreditBlockerTypeUnblockOptions$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PayrollCreditBlockerTypeUnblockOptions' from JSON`, ); } /** @internal */ export const PayrollCreditBlockerTypeStatus$inboundSchema: z.ZodNativeEnum< typeof PayrollCreditBlockerTypeStatus > = z.nativeEnum(PayrollCreditBlockerTypeStatus); /** @internal */ export const PayrollCreditBlockerType$inboundSchema: z.ZodType< PayrollCreditBlockerType, z.ZodTypeDef, unknown > = z.object({ blocker_type: z.string().optional(), blocker_name: z.string().optional(), unblock_options: z.array( z.union([ PayrollCreditBlockerUnblockOptionSubmitWire$inboundSchema, PayrollCreditBlockerUnblockOptionSubmitBankScreenshot$inboundSchema, PayrollCreditBlockerUnblockOptionRespondToHighRiskFraudRfi$inboundSchema, PayrollCreditBlockerUnblockOptionWaitForReverseWire$inboundSchema, ]), ).optional(), selected_option: z.nullable(z.string()).optional(), status: PayrollCreditBlockerTypeStatus$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "blocker_type": "blockerType", "blocker_name": "blockerName", "unblock_options": "unblockOptions", "selected_option": "selectedOption", }); }); export function payrollCreditBlockerTypeFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PayrollCreditBlockerType$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PayrollCreditBlockerType' from JSON`, ); }