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

import * as z from "zod/v4-mini";
import {
  CustomFieldCreateCheckbox,
  CustomFieldCreateCheckbox$Outbound,
  CustomFieldCreateCheckbox$outboundSchema,
} from "./customfieldcreatecheckbox.js";
import {
  CustomFieldCreateDate,
  CustomFieldCreateDate$Outbound,
  CustomFieldCreateDate$outboundSchema,
} from "./customfieldcreatedate.js";
import {
  CustomFieldCreateNumber,
  CustomFieldCreateNumber$Outbound,
  CustomFieldCreateNumber$outboundSchema,
} from "./customfieldcreatenumber.js";
import {
  CustomFieldCreateSelect,
  CustomFieldCreateSelect$Outbound,
  CustomFieldCreateSelect$outboundSchema,
} from "./customfieldcreateselect.js";
import {
  CustomFieldCreateText,
  CustomFieldCreateText$Outbound,
  CustomFieldCreateText$outboundSchema,
} from "./customfieldcreatetext.js";

export type CustomFieldCreate =
  | CustomFieldCreateCheckbox
  | CustomFieldCreateDate
  | CustomFieldCreateNumber
  | CustomFieldCreateSelect
  | CustomFieldCreateText;

/** @internal */
export type CustomFieldCreate$Outbound =
  | CustomFieldCreateCheckbox$Outbound
  | CustomFieldCreateDate$Outbound
  | CustomFieldCreateNumber$Outbound
  | CustomFieldCreateSelect$Outbound
  | CustomFieldCreateText$Outbound;

/** @internal */
export const CustomFieldCreate$outboundSchema: z.ZodMiniType<
  CustomFieldCreate$Outbound,
  CustomFieldCreate
> = z.union([
  CustomFieldCreateCheckbox$outboundSchema,
  CustomFieldCreateDate$outboundSchema,
  CustomFieldCreateNumber$outboundSchema,
  CustomFieldCreateSelect$outboundSchema,
  CustomFieldCreateText$outboundSchema,
]);

export function customFieldCreateToJSON(
  customFieldCreate: CustomFieldCreate,
): string {
  return JSON.stringify(
    CustomFieldCreate$outboundSchema.parse(customFieldCreate),
  );
}
