/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { smartUnion } from "../../types/smartUnion.js"; import { CustomFieldSortProperty, CustomFieldSortProperty$outboundSchema, } from "../components/customfieldsortproperty.js"; import { CustomFieldType, CustomFieldType$outboundSchema, } from "../components/customfieldtype.js"; import { ListResourceCustomField, ListResourceCustomField$inboundSchema, } from "../components/listresourcecustomfield.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Filter by organization ID. */ export type CustomFieldsListQueryParamOrganizationIDFilter = | string | Array; /** * Filter by custom field type. */ export type CustomFieldTypeFilter = CustomFieldType | Array; export type CustomFieldsListRequest = { /** * Filter by organization ID. */ organizationId?: string | Array | null | undefined; /** * Filter by custom field name or slug. */ query?: string | null | undefined; /** * Filter by custom field type. */ typeFilter?: CustomFieldType | Array | null | undefined; /** * Page number, defaults to 1. */ page?: number | undefined; /** * Size of a page, defaults to 10. Maximum is 100. */ limit?: number | undefined; /** * Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order. */ sorting?: Array | null | undefined; }; export type CustomFieldsListResponse = { result: ListResourceCustomField; }; /** @internal */ export type CustomFieldsListQueryParamOrganizationIDFilter$Outbound = | string | Array; /** @internal */ export const CustomFieldsListQueryParamOrganizationIDFilter$outboundSchema: z.ZodMiniType< CustomFieldsListQueryParamOrganizationIDFilter$Outbound, CustomFieldsListQueryParamOrganizationIDFilter > = smartUnion([z.string(), z.array(z.string())]); export function customFieldsListQueryParamOrganizationIDFilterToJSON( customFieldsListQueryParamOrganizationIDFilter: CustomFieldsListQueryParamOrganizationIDFilter, ): string { return JSON.stringify( CustomFieldsListQueryParamOrganizationIDFilter$outboundSchema.parse( customFieldsListQueryParamOrganizationIDFilter, ), ); } /** @internal */ export type CustomFieldTypeFilter$Outbound = string | Array; /** @internal */ export const CustomFieldTypeFilter$outboundSchema: z.ZodMiniType< CustomFieldTypeFilter$Outbound, CustomFieldTypeFilter > = smartUnion([ CustomFieldType$outboundSchema, z.array(CustomFieldType$outboundSchema), ]); export function customFieldTypeFilterToJSON( customFieldTypeFilter: CustomFieldTypeFilter, ): string { return JSON.stringify( CustomFieldTypeFilter$outboundSchema.parse(customFieldTypeFilter), ); } /** @internal */ export type CustomFieldsListRequest$Outbound = { organization_id?: string | Array | null | undefined; query?: string | null | undefined; type_filter?: string | Array | null | undefined; page: number; limit: number; sorting?: Array | null | undefined; }; /** @internal */ export const CustomFieldsListRequest$outboundSchema: z.ZodMiniType< CustomFieldsListRequest$Outbound, CustomFieldsListRequest > = z.pipe( z.object({ organizationId: z.optional( z.nullable(smartUnion([z.string(), z.array(z.string())])), ), query: z.optional(z.nullable(z.string())), typeFilter: z.optional( z.nullable( smartUnion([ CustomFieldType$outboundSchema, z.array(CustomFieldType$outboundSchema), ]), ), ), page: z._default(z.int(), 1), limit: z._default(z.int(), 10), sorting: z.optional( z.nullable(z.array(CustomFieldSortProperty$outboundSchema)), ), }), z.transform((v) => { return remap$(v, { organizationId: "organization_id", typeFilter: "type_filter", }); }), ); export function customFieldsListRequestToJSON( customFieldsListRequest: CustomFieldsListRequest, ): string { return JSON.stringify( CustomFieldsListRequest$outboundSchema.parse(customFieldsListRequest), ); } /** @internal */ export const CustomFieldsListResponse$inboundSchema: z.ZodMiniType< CustomFieldsListResponse, unknown > = z.pipe( z.object({ Result: ListResourceCustomField$inboundSchema, }), z.transform((v) => { return remap$(v, { "Result": "result", }); }), ); export function customFieldsListResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CustomFieldsListResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CustomFieldsListResponse' from JSON`, ); }