/* * 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 { Form, Form$inboundSchema } from "../components/form.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 PutV1EmployeeFormSignHeaderXGustoAPIVersion = { 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 PutV1EmployeeFormSignHeaderXGustoAPIVersion = ClosedEnum< typeof PutV1EmployeeFormSignHeaderXGustoAPIVersion >; export type PutV1EmployeeFormSignRequestBody = { /** * The signature */ signatureText: string; /** * Whether you agree to sign electronically */ agree: boolean; /** * The IP address of the signatory who signed the form. Both IPv4 AND IPv6 are supported. You must provide the IP address with either this parameter OR you can leave out this parameter and set the IP address in the request header using the `x-gusto-client-ip` header instead. */ signedByIpAddress?: string | undefined; /** * Whether there is a preparer */ preparer?: boolean | undefined; preparerFirstName?: string | undefined; preparerLastName?: string | undefined; preparerStreet1?: string | undefined; preparerStreet2?: string | undefined; preparerCity?: string | undefined; preparerState?: string | undefined; preparerZip?: string | undefined; /** * Whether preparer agrees to sign electronically */ preparerAgree?: string | undefined; /** * Whether there is a 2nd preparer */ preparer2?: boolean | undefined; preparer2FirstName?: string | undefined; preparer2LastName?: string | undefined; preparer2Street1?: string | undefined; preparer2Street2?: string | undefined; preparer2City?: string | undefined; preparer2State?: string | undefined; preparer2Zip?: string | undefined; /** * Whether 2nd preparer agrees to sign electronically */ preparer2Agree?: string | undefined; /** * Whether there is a 3rd preparer */ preparer3?: boolean | undefined; preparer3FirstName?: string | undefined; preparer3LastName?: string | undefined; preparer3Street1?: string | undefined; preparer3Street2?: string | undefined; preparer3City?: string | undefined; preparer3State?: string | undefined; preparer3Zip?: string | undefined; /** * Whether 3rd preparer agrees to sign electronically */ preparer3Agree?: string | undefined; /** * Whether there is a 4th preparer */ preparer4?: boolean | undefined; preparer4FirstName?: string | undefined; preparer4LastName?: string | undefined; preparer4Street1?: string | undefined; preparer4Street2?: string | undefined; preparer4City?: string | undefined; preparer4State?: string | undefined; preparer4Zip?: string | undefined; /** * Whether 4th preparer agrees to sign electronically */ preparer4Agree?: string | undefined; }; export type PutV1EmployeeFormSignRequest = { /** * 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?: PutV1EmployeeFormSignHeaderXGustoAPIVersion | undefined; /** * The UUID of the employee */ employeeId: string; /** * The UUID of the form */ formId: string; /** * Optional header to supply the IP address. This can be used to supply the IP address for signature endpoints instead of the signed_by_ip_address parameter. */ xGustoClientIp?: string | undefined; requestBody: PutV1EmployeeFormSignRequestBody; }; export type PutV1EmployeeFormSignResponse = { httpMeta: HTTPMetadata; /** * Success */ form?: Form | undefined; }; /** @internal */ export const PutV1EmployeeFormSignHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum = z .nativeEnum(PutV1EmployeeFormSignHeaderXGustoAPIVersion); /** @internal */ export type PutV1EmployeeFormSignRequestBody$Outbound = { signature_text: string; agree: boolean; signed_by_ip_address?: string | undefined; preparer?: boolean | undefined; preparer_first_name?: string | undefined; preparer_last_name?: string | undefined; preparer_street_1?: string | undefined; preparer_street_2?: string | undefined; preparer_city?: string | undefined; preparer_state?: string | undefined; preparer_zip?: string | undefined; preparer_agree?: string | undefined; preparer2?: boolean | undefined; preparer2_first_name?: string | undefined; preparer2_last_name?: string | undefined; preparer2_street_1?: string | undefined; preparer2_street_2?: string | undefined; preparer2_city?: string | undefined; preparer2_state?: string | undefined; preparer2_zip?: string | undefined; preparer2_agree?: string | undefined; preparer3?: boolean | undefined; preparer3_first_name?: string | undefined; preparer3_last_name?: string | undefined; preparer3_street_1?: string | undefined; preparer3_street_2?: string | undefined; preparer3_city?: string | undefined; preparer3_state?: string | undefined; preparer3_zip?: string | undefined; preparer3_agree?: string | undefined; preparer4?: boolean | undefined; preparer4_first_name?: string | undefined; preparer4_last_name?: string | undefined; preparer4_street_1?: string | undefined; preparer4_street_2?: string | undefined; preparer4_city?: string | undefined; preparer4_state?: string | undefined; preparer4_zip?: string | undefined; preparer4_agree?: string | undefined; }; /** @internal */ export const PutV1EmployeeFormSignRequestBody$outboundSchema: z.ZodType< PutV1EmployeeFormSignRequestBody$Outbound, z.ZodTypeDef, PutV1EmployeeFormSignRequestBody > = z.object({ signatureText: z.string(), agree: z.boolean(), signedByIpAddress: z.string().optional(), preparer: z.boolean().optional(), preparerFirstName: z.string().optional(), preparerLastName: z.string().optional(), preparerStreet1: z.string().optional(), preparerStreet2: z.string().optional(), preparerCity: z.string().optional(), preparerState: z.string().optional(), preparerZip: z.string().optional(), preparerAgree: z.string().optional(), preparer2: z.boolean().optional(), preparer2FirstName: z.string().optional(), preparer2LastName: z.string().optional(), preparer2Street1: z.string().optional(), preparer2Street2: z.string().optional(), preparer2City: z.string().optional(), preparer2State: z.string().optional(), preparer2Zip: z.string().optional(), preparer2Agree: z.string().optional(), preparer3: z.boolean().optional(), preparer3FirstName: z.string().optional(), preparer3LastName: z.string().optional(), preparer3Street1: z.string().optional(), preparer3Street2: z.string().optional(), preparer3City: z.string().optional(), preparer3State: z.string().optional(), preparer3Zip: z.string().optional(), preparer3Agree: z.string().optional(), preparer4: z.boolean().optional(), preparer4FirstName: z.string().optional(), preparer4LastName: z.string().optional(), preparer4Street1: z.string().optional(), preparer4Street2: z.string().optional(), preparer4City: z.string().optional(), preparer4State: z.string().optional(), preparer4Zip: z.string().optional(), preparer4Agree: z.string().optional(), }).transform((v) => { return remap$(v, { signatureText: "signature_text", signedByIpAddress: "signed_by_ip_address", preparerFirstName: "preparer_first_name", preparerLastName: "preparer_last_name", preparerStreet1: "preparer_street_1", preparerStreet2: "preparer_street_2", preparerCity: "preparer_city", preparerState: "preparer_state", preparerZip: "preparer_zip", preparerAgree: "preparer_agree", preparer2FirstName: "preparer2_first_name", preparer2LastName: "preparer2_last_name", preparer2Street1: "preparer2_street_1", preparer2Street2: "preparer2_street_2", preparer2City: "preparer2_city", preparer2State: "preparer2_state", preparer2Zip: "preparer2_zip", preparer2Agree: "preparer2_agree", preparer3FirstName: "preparer3_first_name", preparer3LastName: "preparer3_last_name", preparer3Street1: "preparer3_street_1", preparer3Street2: "preparer3_street_2", preparer3City: "preparer3_city", preparer3State: "preparer3_state", preparer3Zip: "preparer3_zip", preparer3Agree: "preparer3_agree", preparer4FirstName: "preparer4_first_name", preparer4LastName: "preparer4_last_name", preparer4Street1: "preparer4_street_1", preparer4Street2: "preparer4_street_2", preparer4City: "preparer4_city", preparer4State: "preparer4_state", preparer4Zip: "preparer4_zip", preparer4Agree: "preparer4_agree", }); }); export function putV1EmployeeFormSignRequestBodyToJSON( putV1EmployeeFormSignRequestBody: PutV1EmployeeFormSignRequestBody, ): string { return JSON.stringify( PutV1EmployeeFormSignRequestBody$outboundSchema.parse( putV1EmployeeFormSignRequestBody, ), ); } /** @internal */ export type PutV1EmployeeFormSignRequest$Outbound = { "X-Gusto-API-Version": string; employee_id: string; form_id: string; "x-gusto-client-ip"?: string | undefined; RequestBody: PutV1EmployeeFormSignRequestBody$Outbound; }; /** @internal */ export const PutV1EmployeeFormSignRequest$outboundSchema: z.ZodType< PutV1EmployeeFormSignRequest$Outbound, z.ZodTypeDef, PutV1EmployeeFormSignRequest > = z.object({ xGustoAPIVersion: PutV1EmployeeFormSignHeaderXGustoAPIVersion$outboundSchema .default("2025-06-15"), employeeId: z.string(), formId: z.string(), xGustoClientIp: z.string().optional(), requestBody: z.lazy(() => PutV1EmployeeFormSignRequestBody$outboundSchema), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", employeeId: "employee_id", formId: "form_id", xGustoClientIp: "x-gusto-client-ip", requestBody: "RequestBody", }); }); export function putV1EmployeeFormSignRequestToJSON( putV1EmployeeFormSignRequest: PutV1EmployeeFormSignRequest, ): string { return JSON.stringify( PutV1EmployeeFormSignRequest$outboundSchema.parse( putV1EmployeeFormSignRequest, ), ); } /** @internal */ export const PutV1EmployeeFormSignResponse$inboundSchema: z.ZodType< PutV1EmployeeFormSignResponse, z.ZodTypeDef, unknown > = z.object({ HttpMeta: HTTPMetadata$inboundSchema, Form: Form$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "HttpMeta": "httpMeta", "Form": "form", }); }); export function putV1EmployeeFormSignResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PutV1EmployeeFormSignResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PutV1EmployeeFormSignResponse' from JSON`, ); }