/* * 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 { ClosedEnum } from "../../types/enums.js"; import { EntitlementEntityType, EntitlementEntityType$outboundSchema, } from "./entitlement-entity-type.js"; import { FeatureType, FeatureType$outboundSchema } from "./feature-type.js"; import { FilterCondition, FilterCondition$Outbound, FilterCondition$outboundSchema, } from "./filter-condition.js"; import { SortCondition, SortCondition$Outbound, SortCondition$outboundSchema, } from "./sort-condition.js"; import { Status, Status$outboundSchema } from "./status.js"; export const EntitlementFilterOrder = { Asc: "asc", Desc: "desc", } as const; export type EntitlementFilterOrder = ClosedEnum; export type EntitlementFilter = { endTime?: Date | undefined; entityIds?: Array | undefined; entityType?: EntitlementEntityType | undefined; expand?: string | undefined; featureIds?: Array | undefined; featureType?: FeatureType | undefined; /** * Specific filters for entitlements */ filters?: Array | undefined; /** * HasGrantConfig filters on grant-config presence (grant_quota set or not). */ hasGrantConfig?: boolean | undefined; isEnabled?: boolean | undefined; limit?: number | undefined; offset?: number | undefined; order?: EntitlementFilterOrder | undefined; planIds?: Array | undefined; sort?: Array | undefined; startTime?: Date | undefined; status?: Status | undefined; }; /** @internal */ export const EntitlementFilterOrder$outboundSchema: z.ZodMiniEnum< typeof EntitlementFilterOrder > = z.enum(EntitlementFilterOrder); /** @internal */ export type EntitlementFilter$Outbound = { end_time?: string | undefined; entity_ids?: Array | undefined; entity_type?: string | undefined; expand?: string | undefined; feature_ids?: Array | undefined; feature_type?: string | undefined; filters?: Array | undefined; has_grant_config?: boolean | undefined; is_enabled?: boolean | undefined; limit?: number | undefined; offset?: number | undefined; order?: string | undefined; plan_ids?: Array | undefined; sort?: Array | undefined; start_time?: string | undefined; status?: string | undefined; }; /** @internal */ export const EntitlementFilter$outboundSchema: z.ZodMiniType< EntitlementFilter$Outbound, EntitlementFilter > = z.pipe( z.object({ endTime: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), entityIds: z.optional(z.array(z.string())), entityType: z.optional(EntitlementEntityType$outboundSchema), expand: z.optional(z.string()), featureIds: z.optional(z.array(z.string())), featureType: z.optional(FeatureType$outboundSchema), filters: z.optional(z.array(FilterCondition$outboundSchema)), hasGrantConfig: z.optional(z.boolean()), isEnabled: z.optional(z.boolean()), limit: z.optional(z.int()), offset: z.optional(z.int()), order: z.optional(EntitlementFilterOrder$outboundSchema), planIds: z.optional(z.array(z.string())), sort: z.optional(z.array(SortCondition$outboundSchema)), startTime: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), status: z.optional(Status$outboundSchema), }), z.transform((v) => { return remap$(v, { endTime: "end_time", entityIds: "entity_ids", entityType: "entity_type", featureIds: "feature_ids", featureType: "feature_type", hasGrantConfig: "has_grant_config", isEnabled: "is_enabled", planIds: "plan_ids", startTime: "start_time", }); }), ); export function entitlementFilterToJSON( entitlementFilter: EntitlementFilter, ): string { return JSON.stringify( EntitlementFilter$outboundSchema.parse(entitlementFilter), ); }