/* * 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 PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion = { 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 PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion = ClosedEnum< typeof PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion >; export type PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody = { /** * Note explaining why the request was declined */ employerNote: string; /** * The UUID of the admin declining the request. Defaults to the company's primary payroll admin. */ approverUuid?: string | undefined; }; export type PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest = { /** * 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?: | PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion | undefined; /** * The UUID of the time off request */ timeOffRequestUuid: string; requestBody: PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody; }; export type PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse = { httpMeta: HTTPMetadata; /** * successful */ embeddedTimeOffRequest?: EmbeddedTimeOffRequest | undefined; }; /** @internal */ export const PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum< typeof PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion > = z.nativeEnum( PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion, ); /** @internal */ export type PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$Outbound = { employer_note: string; approver_uuid?: string | undefined; }; /** @internal */ export const PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$outboundSchema: z.ZodType< PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$Outbound, z.ZodTypeDef, PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody > = z.object({ employerNote: z.string(), approverUuid: z.string().optional(), }).transform((v) => { return remap$(v, { employerNote: "employer_note", approverUuid: "approver_uuid", }); }); export function putV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBodyToJSON( putV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody: PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody, ): string { return JSON.stringify( PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$outboundSchema .parse(putV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody), ); } /** @internal */ export type PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest$Outbound = { "X-Gusto-API-Version": string; time_off_request_uuid: string; RequestBody: PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$Outbound; }; /** @internal */ export const PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest$outboundSchema: z.ZodType< PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest$Outbound, z.ZodTypeDef, PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest > = z.object({ xGustoAPIVersion: PutV1TimeOffRequestsTimeOffRequestUuidDeclineHeaderXGustoAPIVersion$outboundSchema .default("2025-06-15"), timeOffRequestUuid: z.string(), requestBody: z.lazy(() => PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", timeOffRequestUuid: "time_off_request_uuid", requestBody: "RequestBody", }); }); export function putV1TimeOffRequestsTimeOffRequestUuidDeclineRequestToJSON( putV1TimeOffRequestsTimeOffRequestUuidDeclineRequest: PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest, ): string { return JSON.stringify( PutV1TimeOffRequestsTimeOffRequestUuidDeclineRequest$outboundSchema.parse( putV1TimeOffRequestsTimeOffRequestUuidDeclineRequest, ), ); } /** @internal */ export const PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse$inboundSchema: z.ZodType< PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse, 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 putV1TimeOffRequestsTimeOffRequestUuidDeclineResponseFromJSON( jsonString: string, ): SafeParseResult< PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse, SDKValidationError > { return safeParse( jsonString, (x) => PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PutV1TimeOffRequestsTimeOffRequestUuidDeclineResponse' from JSON`, ); }