/* * 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 { EmbeddedTimeOffRequestPreview, EmbeddedTimeOffRequestPreview$inboundSchema, } from "../components/embeddedtimeoffrequestpreview.js"; import { HTTPMetadata, HTTPMetadata$inboundSchema, } from "../components/httpmetadata.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used. */ export const PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion = { TwoThousandAndTwentyFiveMinus06Minus15: "2025-06-15", } as const; /** * Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used. */ export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion = ClosedEnum< typeof PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion >; export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody = { /** * The UUID of an existing time off request to preview changes for */ requestUuid?: string | undefined; /** * The UUID of the employee */ employeeUuid: string; /** * The UUID of the time off policy */ policyUuid: string; /** * The start date of the time off request (YYYY-MM-DD) */ startDate: string; /** * The end date of the time off request (YYYY-MM-DD) */ endDate: string; /** * An object where keys are dates in YYYY-MM-DD format and values are hours as string decimals (e.g. {"2025-01-20": "8.000"}) */ days: { [k: string]: string }; }; export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest = { /** * Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used. */ xGustoAPIVersion?: | PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion | undefined; /** * The UUID of the company */ companyUuid: string; requestBody: PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody; }; export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse = { httpMeta: HTTPMetadata; /** * successful */ embeddedTimeOffRequestPreview?: EmbeddedTimeOffRequestPreview | undefined; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum< typeof PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion > = z.nativeEnum( PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion, ); /** @internal */ export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$Outbound = { request_uuid?: string | undefined; employee_uuid: string; policy_uuid: string; start_date: string; end_date: string; days: { [k: string]: string }; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$outboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$Outbound, z.ZodTypeDef, PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody > = z.object({ requestUuid: z.string().optional(), employeeUuid: z.string(), policyUuid: z.string(), startDate: z.string(), endDate: z.string(), days: z.record(z.string()), }).transform((v) => { return remap$(v, { requestUuid: "request_uuid", employeeUuid: "employee_uuid", policyUuid: "policy_uuid", startDate: "start_date", endDate: "end_date", }); }); export function postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBodyToJSON( postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody: PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody, ): string { return JSON.stringify( PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$outboundSchema .parse(postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody), ); } /** @internal */ export type PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest$Outbound = { "X-Gusto-API-Version": string; company_uuid: string; RequestBody: PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$Outbound; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest$outboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest$Outbound, z.ZodTypeDef, PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest > = z.object({ xGustoAPIVersion: PostV1CompaniesCompanyUuidTimeOffRequestsPreviewHeaderXGustoAPIVersion$outboundSchema .default("2025-06-15"), companyUuid: z.string(), requestBody: z.lazy(() => PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", companyUuid: "company_uuid", requestBody: "RequestBody", }); }); export function postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequestToJSON( postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest: PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest, ): string { return JSON.stringify( PostV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest$outboundSchema .parse(postV1CompaniesCompanyUuidTimeOffRequestsPreviewRequest), ); } /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse$inboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse, z.ZodTypeDef, unknown > = z.object({ HttpMeta: HTTPMetadata$inboundSchema, "Embedded-Time-Off-Request-Preview": EmbeddedTimeOffRequestPreview$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "HttpMeta": "httpMeta", "Embedded-Time-Off-Request-Preview": "embeddedTimeOffRequestPreview", }); }); export function postV1CompaniesCompanyUuidTimeOffRequestsPreviewResponseFromJSON( jsonString: string, ): SafeParseResult< PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse, SDKValidationError > { return safeParse( jsonString, (x) => PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse$inboundSchema .parse(JSON.parse(x)), `Failed to parse 'PostV1CompaniesCompanyUuidTimeOffRequestsPreviewResponse' from JSON`, ); }