/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 * @generated-id: d73113114e08
 */
import * as z from "zod/v4";
import { remap as remap$ } from "../../lib/primitives.js";
import { ScheduleCalendar$outboundSchema, } from "./schedulecalendar.js";
import { ScheduleInterval$outboundSchema, } from "./scheduleinterval.js";
import { SchedulePolicy$outboundSchema, } from "./schedulepolicy.js";
/** @internal */
export const ScheduleDefinition$outboundSchema = z.object({
    input: z.any(),
    calendars: z.array(ScheduleCalendar$outboundSchema).optional(),
    intervals: z.array(ScheduleInterval$outboundSchema).optional(),
    cronExpressions: z.array(z.string()).optional(),
    skip: z.array(ScheduleCalendar$outboundSchema).optional(),
    startAt: z.nullable(z.date().transform(v => v.toISOString())).optional(),
    endAt: z.nullable(z.date().transform(v => v.toISOString())).optional(),
    jitter: z.nullable(z.string()).optional(),
    timeZoneName: z.nullable(z.string()).optional(),
    policy: SchedulePolicy$outboundSchema.optional(),
    maxExecutions: z.nullable(z.int()).optional(),
    scheduleId: z.nullable(z.string()).optional(),
}).transform((v) => {
    return remap$(v, {
        cronExpressions: "cron_expressions",
        startAt: "start_at",
        endAt: "end_at",
        timeZoneName: "time_zone_name",
        maxExecutions: "max_executions",
        scheduleId: "schedule_id",
    });
});
export function scheduleDefinitionToJSON(scheduleDefinition) {
    return JSON.stringify(ScheduleDefinition$outboundSchema.parse(scheduleDefinition));
}
//# sourceMappingURL=scheduledefinition.js.map