/* * 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 { EmbeddedTimeOffRequest, EmbeddedTimeOffRequest$inboundSchema, } from "../components/embeddedtimeoffrequest.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 PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion = { 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 PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion = ClosedEnum< typeof PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion >; export type PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody = { /** * The UUID of the employee */ employeeUuid: string; /** * The UUID of the time off policy */ policyUuid: string; /** * A note from the employer about the request */ employerNote?: string | undefined; /** * The UUID of the approving admin. Defaults to the primary payroll admin. */ approverUuid?: string | undefined; /** * 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 PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest = { /** * 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?: | PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion | undefined; /** * The UUID of the company */ companyUuid: string; requestBody: PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody; }; export type PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse = { httpMeta: HTTPMetadata; /** * created */ embeddedTimeOffRequest?: EmbeddedTimeOffRequest | undefined; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum< typeof PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion > = z.nativeEnum( PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion, ); /** @internal */ export type PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$Outbound = { employee_uuid: string; policy_uuid: string; employer_note?: string | undefined; approver_uuid?: string | undefined; start_date: string; end_date: string; days: { [k: string]: string }; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$outboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$Outbound, z.ZodTypeDef, PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody > = z.object({ employeeUuid: z.string(), policyUuid: z.string(), employerNote: z.string().optional(), approverUuid: z.string().optional(), startDate: z.string(), endDate: z.string(), days: z.record(z.string()), }).transform((v) => { return remap$(v, { employeeUuid: "employee_uuid", policyUuid: "policy_uuid", employerNote: "employer_note", approverUuid: "approver_uuid", startDate: "start_date", endDate: "end_date", }); }); export function postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBodyToJSON( postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody: PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody, ): string { return JSON.stringify( PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$outboundSchema .parse(postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody), ); } /** @internal */ export type PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest$Outbound = { "X-Gusto-API-Version": string; company_uuid: string; RequestBody: PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$Outbound; }; /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest$outboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest$Outbound, z.ZodTypeDef, PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest > = z.object({ xGustoAPIVersion: PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsHeaderXGustoAPIVersion$outboundSchema .default("2025-06-15"), companyUuid: z.string(), requestBody: z.lazy(() => PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", companyUuid: "company_uuid", requestBody: "RequestBody", }); }); export function postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequestToJSON( postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest: PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest, ): string { return JSON.stringify( PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest$outboundSchema .parse(postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsRequest), ); } /** @internal */ export const PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse$inboundSchema: z.ZodType< PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse, z.ZodTypeDef, unknown > = z.object({ HttpMeta: HTTPMetadata$inboundSchema, "Embedded-Time-Off-Request": EmbeddedTimeOffRequest$inboundSchema .optional(), }).transform((v) => { return remap$(v, { "HttpMeta": "httpMeta", "Embedded-Time-Off-Request": "embeddedTimeOffRequest", }); }); export function postV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponseFromJSON( jsonString: string, ): SafeParseResult< PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse, SDKValidationError > { return safeParse( jsonString, (x) => PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse$inboundSchema .parse(JSON.parse(x)), `Failed to parse 'PostV1CompaniesCompanyUuidTimeOffAdminApprovedRequestsResponse' from JSON`, ); }