/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import * as z from "zod/v4-mini";
import {
  CustomFieldUpdateCheckbox,
  CustomFieldUpdateCheckbox$Outbound,
  CustomFieldUpdateCheckbox$outboundSchema,
} from "./customfieldupdatecheckbox.js";
import {
  CustomFieldUpdateDate,
  CustomFieldUpdateDate$Outbound,
  CustomFieldUpdateDate$outboundSchema,
} from "./customfieldupdatedate.js";
import {
  CustomFieldUpdateNumber,
  CustomFieldUpdateNumber$Outbound,
  CustomFieldUpdateNumber$outboundSchema,
} from "./customfieldupdatenumber.js";
import {
  CustomFieldUpdateSelect,
  CustomFieldUpdateSelect$Outbound,
  CustomFieldUpdateSelect$outboundSchema,
} from "./customfieldupdateselect.js";
import {
  CustomFieldUpdateText,
  CustomFieldUpdateText$Outbound,
  CustomFieldUpdateText$outboundSchema,
} from "./customfieldupdatetext.js";

export type CustomFieldUpdate =
  | CustomFieldUpdateCheckbox
  | CustomFieldUpdateDate
  | CustomFieldUpdateNumber
  | CustomFieldUpdateSelect
  | CustomFieldUpdateText;

/** @internal */
export type CustomFieldUpdate$Outbound =
  | CustomFieldUpdateCheckbox$Outbound
  | CustomFieldUpdateDate$Outbound
  | CustomFieldUpdateNumber$Outbound
  | CustomFieldUpdateSelect$Outbound
  | CustomFieldUpdateText$Outbound;

/** @internal */
export const CustomFieldUpdate$outboundSchema: z.ZodMiniType<
  CustomFieldUpdate$Outbound,
  CustomFieldUpdate
> = z.union([
  CustomFieldUpdateCheckbox$outboundSchema,
  CustomFieldUpdateDate$outboundSchema,
  CustomFieldUpdateNumber$outboundSchema,
  CustomFieldUpdateSelect$outboundSchema,
  CustomFieldUpdateText$outboundSchema,
]);

export function customFieldUpdateToJSON(
  customFieldUpdate: CustomFieldUpdate,
): string {
  return JSON.stringify(
    CustomFieldUpdate$outboundSchema.parse(customFieldUpdate),
  );
}
