/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod"; 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 { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Employment status to filter on */ export const EmployeesFilterEmploymentStatus = { Active: "active", Inactive: "inactive", Terminated: "terminated", Other: "other", } as const; /** * Employment status to filter on */ export type EmployeesFilterEmploymentStatus = ClosedEnum< typeof EmployeesFilterEmploymentStatus >; export type EmployeesFilter = { /** * Company ID to filter on */ companyId?: string | undefined; /** * Email to filter on */ email?: string | undefined; /** * First Name to filter on */ firstName?: string | undefined; /** * Job title to filter on */ title?: string | undefined; /** * Last Name to filter on */ lastName?: string | undefined; /** * Manager id to filter on */ managerId?: string | undefined; /** * Employment status to filter on */ employmentStatus?: EmployeesFilterEmploymentStatus | undefined; /** * Employee number to filter on */ employeeNumber?: string | undefined; /** * ID of the department to filter on */ departmentId?: string | undefined; }; /** @internal */ export const EmployeesFilterEmploymentStatus$inboundSchema: z.ZodNativeEnum< typeof EmployeesFilterEmploymentStatus > = z.nativeEnum(EmployeesFilterEmploymentStatus); /** @internal */ export const EmployeesFilterEmploymentStatus$outboundSchema: z.ZodNativeEnum< typeof EmployeesFilterEmploymentStatus > = EmployeesFilterEmploymentStatus$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace EmployeesFilterEmploymentStatus$ { /** @deprecated use `EmployeesFilterEmploymentStatus$inboundSchema` instead. */ export const inboundSchema = EmployeesFilterEmploymentStatus$inboundSchema; /** @deprecated use `EmployeesFilterEmploymentStatus$outboundSchema` instead. */ export const outboundSchema = EmployeesFilterEmploymentStatus$outboundSchema; } /** @internal */ export const EmployeesFilter$inboundSchema: z.ZodType< EmployeesFilter, z.ZodTypeDef, unknown > = z.object({ company_id: z.string().optional(), email: z.string().optional(), first_name: z.string().optional(), title: z.string().optional(), last_name: z.string().optional(), manager_id: z.string().optional(), employment_status: EmployeesFilterEmploymentStatus$inboundSchema.optional(), employee_number: z.string().optional(), department_id: z.string().optional(), }).transform((v) => { return remap$(v, { "company_id": "companyId", "first_name": "firstName", "last_name": "lastName", "manager_id": "managerId", "employment_status": "employmentStatus", "employee_number": "employeeNumber", "department_id": "departmentId", }); }); /** @internal */ export type EmployeesFilter$Outbound = { company_id?: string | undefined; email?: string | undefined; first_name?: string | undefined; title?: string | undefined; last_name?: string | undefined; manager_id?: string | undefined; employment_status?: string | undefined; employee_number?: string | undefined; department_id?: string | undefined; }; /** @internal */ export const EmployeesFilter$outboundSchema: z.ZodType< EmployeesFilter$Outbound, z.ZodTypeDef, EmployeesFilter > = z.object({ companyId: z.string().optional(), email: z.string().optional(), firstName: z.string().optional(), title: z.string().optional(), lastName: z.string().optional(), managerId: z.string().optional(), employmentStatus: EmployeesFilterEmploymentStatus$outboundSchema.optional(), employeeNumber: z.string().optional(), departmentId: z.string().optional(), }).transform((v) => { return remap$(v, { companyId: "company_id", firstName: "first_name", lastName: "last_name", managerId: "manager_id", employmentStatus: "employment_status", employeeNumber: "employee_number", departmentId: "department_id", }); }); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export namespace EmployeesFilter$ { /** @deprecated use `EmployeesFilter$inboundSchema` instead. */ export const inboundSchema = EmployeesFilter$inboundSchema; /** @deprecated use `EmployeesFilter$outboundSchema` instead. */ export const outboundSchema = EmployeesFilter$outboundSchema; /** @deprecated use `EmployeesFilter$Outbound` instead. */ export type Outbound = EmployeesFilter$Outbound; } export function employeesFilterToJSON( employeesFilter: EmployeesFilter, ): string { return JSON.stringify(EmployeesFilter$outboundSchema.parse(employeesFilter)); } export function employeesFilterFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => EmployeesFilter$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'EmployeesFilter' from JSON`, ); }