/* * 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 { InvoiceData, InvoiceData$inboundSchema, } from "../components/invoicedata.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type GetInvoicesInvoicePeriodSecurity = { systemAccessAuth: string; }; /** * 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 GetInvoicesInvoicePeriodHeaderXGustoAPIVersion = { 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 GetInvoicesInvoicePeriodHeaderXGustoAPIVersion = ClosedEnum< typeof GetInvoicesInvoicePeriodHeaderXGustoAPIVersion >; export type GetInvoicesInvoicePeriodRequest = { /** * 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?: GetInvoicesInvoicePeriodHeaderXGustoAPIVersion | undefined; /** * The month we are calculating the invoice for. Must be in YYYY-MM format */ invoicePeriod: string; /** * The page that is requested. When unspecified, will load all objects unless endpoint forces pagination. */ page?: number | undefined; /** * Number of objects per page. For majority of endpoints will default to 25 */ per?: number | undefined; /** * Filter companies returned in the active_companies response, will return an error if company not active during provided invoice period. i.e. `?company_uuids=781922d8-e780-4b6b-bf74-ee303166d022,bbbca930-7322-491c-ba7f-98707a52a9c5` */ companyUuids?: string | undefined; }; export type GetInvoicesInvoicePeriodResponse = { httpMeta: HTTPMetadata; /** * OK */ invoiceData?: InvoiceData | undefined; }; /** @internal */ export type GetInvoicesInvoicePeriodSecurity$Outbound = { SystemAccessAuth: string; }; /** @internal */ export const GetInvoicesInvoicePeriodSecurity$outboundSchema: z.ZodType< GetInvoicesInvoicePeriodSecurity$Outbound, z.ZodTypeDef, GetInvoicesInvoicePeriodSecurity > = z.object({ systemAccessAuth: z.string(), }).transform((v) => { return remap$(v, { systemAccessAuth: "SystemAccessAuth", }); }); export function getInvoicesInvoicePeriodSecurityToJSON( getInvoicesInvoicePeriodSecurity: GetInvoicesInvoicePeriodSecurity, ): string { return JSON.stringify( GetInvoicesInvoicePeriodSecurity$outboundSchema.parse( getInvoicesInvoicePeriodSecurity, ), ); } /** @internal */ export const GetInvoicesInvoicePeriodHeaderXGustoAPIVersion$outboundSchema: z.ZodNativeEnum = z .nativeEnum(GetInvoicesInvoicePeriodHeaderXGustoAPIVersion); /** @internal */ export type GetInvoicesInvoicePeriodRequest$Outbound = { "X-Gusto-API-Version": string; invoice_period: string; page?: number | undefined; per?: number | undefined; company_uuids?: string | undefined; }; /** @internal */ export const GetInvoicesInvoicePeriodRequest$outboundSchema: z.ZodType< GetInvoicesInvoicePeriodRequest$Outbound, z.ZodTypeDef, GetInvoicesInvoicePeriodRequest > = z.object({ xGustoAPIVersion: GetInvoicesInvoicePeriodHeaderXGustoAPIVersion$outboundSchema.default( "2025-06-15", ), invoicePeriod: z.string(), page: z.number().int().optional(), per: z.number().int().optional(), companyUuids: z.string().optional(), }).transform((v) => { return remap$(v, { xGustoAPIVersion: "X-Gusto-API-Version", invoicePeriod: "invoice_period", companyUuids: "company_uuids", }); }); export function getInvoicesInvoicePeriodRequestToJSON( getInvoicesInvoicePeriodRequest: GetInvoicesInvoicePeriodRequest, ): string { return JSON.stringify( GetInvoicesInvoicePeriodRequest$outboundSchema.parse( getInvoicesInvoicePeriodRequest, ), ); } /** @internal */ export const GetInvoicesInvoicePeriodResponse$inboundSchema: z.ZodType< GetInvoicesInvoicePeriodResponse, z.ZodTypeDef, unknown > = z.object({ HttpMeta: HTTPMetadata$inboundSchema, "Invoice-Data": InvoiceData$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "HttpMeta": "httpMeta", "Invoice-Data": "invoiceData", }); }); export function getInvoicesInvoicePeriodResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetInvoicesInvoicePeriodResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetInvoicesInvoicePeriodResponse' from JSON`, ); }