/* * 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 { 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 PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion = { 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 PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion = ClosedEnum; /** * Payroll type */ export const PayrollType = { Regular: "Regular", HiredEmployee: "Hired employee", DismissedEmployee: "Dismissed employee", TransitionFromOldPaySchedule: "Transition from old pay schedule", } as const; /** * Payroll type */ export type PayrollType = ClosedEnum; export type PostCompaniesPayrollSkipCompanyUuidRequestBody = { /** * Payroll type */ payrollType: PayrollType; /** * Pay period start date */ startDate?: string | undefined; /** * Pay period end date. If left empty, defaults to today's date. */ endDate?: string | undefined; /** * The UUID of the pay schedule */ payScheduleUuid?: string | undefined; /** * An array of employees. This field is only applicable to new hire payroll and termination payroll */ employeeUuids?: Array | null | undefined; }; export type PostCompaniesPayrollSkipCompanyUuidRequest = { /** * 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?: | PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion | undefined; /** * The UUID of the company */ companyUuid: string; requestBody: PostCompaniesPayrollSkipCompanyUuidRequestBody; }; export type PostCompaniesPayrollSkipCompanyUuidResponse = { httpMeta: HTTPMetadata; }; /** @internal */ export const PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum< typeof PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion > = z.nativeEnum(PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion); /** @internal */ export const PayrollType$outboundSchema: z.ZodNativeEnum = z .nativeEnum(PayrollType); /** @internal */ export type PostCompaniesPayrollSkipCompanyUuidRequestBody$Outbound = { payroll_type: string; start_date?: string | undefined; end_date?: string | undefined; pay_schedule_uuid?: string | undefined; employee_uuids?: Array | null | undefined; }; /** @internal */ export const PostCompaniesPayrollSkipCompanyUuidRequestBody$outboundSchema: z.ZodType< PostCompaniesPayrollSkipCompanyUuidRequestBody$Outbound, z.ZodTypeDef, PostCompaniesPayrollSkipCompanyUuidRequestBody > = z.object({ payrollType: PayrollType$outboundSchema, startDate: z.string().optional(), endDate: z.string().optional(), payScheduleUuid: z.string().optional(), employeeUuids: z.nullable(z.array(z.string())).optional(), }).transform((v) => { return remap$(v, { payrollType: "payroll_type", startDate: "start_date", endDate: "end_date", payScheduleUuid: "pay_schedule_uuid", employeeUuids: "employee_uuids", }); }); export function postCompaniesPayrollSkipCompanyUuidRequestBodyToJSON( postCompaniesPayrollSkipCompanyUuidRequestBody: PostCompaniesPayrollSkipCompanyUuidRequestBody, ): string { return JSON.stringify( PostCompaniesPayrollSkipCompanyUuidRequestBody$outboundSchema.parse( postCompaniesPayrollSkipCompanyUuidRequestBody, ), ); } /** @internal */ export type PostCompaniesPayrollSkipCompanyUuidRequest$Outbound = { "X-Gusto-API-Version": string; company_uuid: string; RequestBody: PostCompaniesPayrollSkipCompanyUuidRequestBody$Outbound; }; /** @internal */ export const PostCompaniesPayrollSkipCompanyUuidRequest$outboundSchema: z.ZodType< PostCompaniesPayrollSkipCompanyUuidRequest$Outbound, z.ZodTypeDef, PostCompaniesPayrollSkipCompanyUuidRequest > = z.object({ xGustoAPIVersion: PostCompaniesPayrollSkipCompanyUuidHeaderXGustoAPIVersion$outboundSchema .default("2025-06-15"), companyUuid: z.string(), requestBody: z.lazy(() => PostCompaniesPayrollSkipCompanyUuidRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", companyUuid: "company_uuid", requestBody: "RequestBody", }); }); export function postCompaniesPayrollSkipCompanyUuidRequestToJSON( postCompaniesPayrollSkipCompanyUuidRequest: PostCompaniesPayrollSkipCompanyUuidRequest, ): string { return JSON.stringify( PostCompaniesPayrollSkipCompanyUuidRequest$outboundSchema.parse( postCompaniesPayrollSkipCompanyUuidRequest, ), ); } /** @internal */ export const PostCompaniesPayrollSkipCompanyUuidResponse$inboundSchema: z.ZodType< PostCompaniesPayrollSkipCompanyUuidResponse, z.ZodTypeDef, unknown > = z.object({ HttpMeta: HTTPMetadata$inboundSchema, }).transform((v) => { return remap$(v, { "HttpMeta": "httpMeta", }); }); export function postCompaniesPayrollSkipCompanyUuidResponseFromJSON( jsonString: string, ): SafeParseResult< PostCompaniesPayrollSkipCompanyUuidResponse, SDKValidationError > { return safeParse( jsonString, (x) => PostCompaniesPayrollSkipCompanyUuidResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PostCompaniesPayrollSkipCompanyUuidResponse' from JSON`, ); }