/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { EvalScheduleOverlapPolicy, EvalScheduleOverlapPolicy$inboundSchema, EvalScheduleOverlapPolicy$outboundSchema, } from "./evalscheduleoverlappolicy.js"; import { EvalScheduleRunConfig, EvalScheduleRunConfig$inboundSchema, EvalScheduleRunConfig$Outbound, EvalScheduleRunConfig$outboundSchema, } from "./evalschedulerunconfig.js"; export type CreateEvalScheduleRequest = { name: string; description?: string | undefined; suiteId: string; /** * Pin a suite version. Omit to resolve the active version on each fire. */ suiteVersion?: number | undefined; /** * 5-field cron expression. Provide exactly one of cron or interval_seconds. */ cron?: string | undefined; /** * Fixed interval between fires, in seconds. Provide exactly one of cron or interval_seconds. */ intervalSeconds?: number | undefined; /** * IANA timezone applied to cron expressions, for example US/Pacific. */ timezone?: string | undefined; overlapPolicy?: EvalScheduleOverlapPolicy | undefined; /** * When false, the schedule is created paused. */ enabled?: boolean | undefined; /** * HTTPS endpoint notified of run status transitions. */ webhookUrl?: string | undefined; /** * Secret used to HMAC-SHA256 sign webhook payloads. */ webhookSecret?: string | undefined; run: EvalScheduleRunConfig; metadata?: { [k: string]: string } | undefined; }; /** @internal */ export const CreateEvalScheduleRequest$inboundSchema: z.ZodType< CreateEvalScheduleRequest, z.ZodTypeDef, unknown > = z.object({ name: z.string(), description: z.string().optional(), suite_id: z.string(), suite_version: z.number().int().optional(), cron: z.string().optional(), interval_seconds: z.number().int().optional(), timezone: z.string().default("UTC"), overlap_policy: EvalScheduleOverlapPolicy$inboundSchema.optional(), enabled: z.boolean().default(true), webhook_url: z.string().optional(), webhook_secret: z.string().optional(), run: EvalScheduleRunConfig$inboundSchema, metadata: z.record(z.string()).optional(), }).transform((v) => { return remap$(v, { "suite_id": "suiteId", "suite_version": "suiteVersion", "interval_seconds": "intervalSeconds", "overlap_policy": "overlapPolicy", "webhook_url": "webhookUrl", "webhook_secret": "webhookSecret", }); }); /** @internal */ export type CreateEvalScheduleRequest$Outbound = { name: string; description?: string | undefined; suite_id: string; suite_version?: number | undefined; cron?: string | undefined; interval_seconds?: number | undefined; timezone: string; overlap_policy?: string | undefined; enabled: boolean; webhook_url?: string | undefined; webhook_secret?: string | undefined; run: EvalScheduleRunConfig$Outbound; metadata?: { [k: string]: string } | undefined; }; /** @internal */ export const CreateEvalScheduleRequest$outboundSchema: z.ZodType< CreateEvalScheduleRequest$Outbound, z.ZodTypeDef, CreateEvalScheduleRequest > = z.object({ name: z.string(), description: z.string().optional(), suiteId: z.string(), suiteVersion: z.number().int().optional(), cron: z.string().optional(), intervalSeconds: z.number().int().optional(), timezone: z.string().default("UTC"), overlapPolicy: EvalScheduleOverlapPolicy$outboundSchema.optional(), enabled: z.boolean().default(true), webhookUrl: z.string().optional(), webhookSecret: z.string().optional(), run: EvalScheduleRunConfig$outboundSchema, metadata: z.record(z.string()).optional(), }).transform((v) => { return remap$(v, { suiteId: "suite_id", suiteVersion: "suite_version", intervalSeconds: "interval_seconds", overlapPolicy: "overlap_policy", webhookUrl: "webhook_url", webhookSecret: "webhook_secret", }); }); export function createEvalScheduleRequestToJSON( createEvalScheduleRequest: CreateEvalScheduleRequest, ): string { return JSON.stringify( CreateEvalScheduleRequest$outboundSchema.parse(createEvalScheduleRequest), ); } export function createEvalScheduleRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateEvalScheduleRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateEvalScheduleRequest' from JSON`, ); }