/* * 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 { 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"; import { SubscriptionLineItemEntityType, SubscriptionLineItemEntityType$outboundSchema, } from "./subscription-line-item-entity-type.js"; export const SubscriptionLineItemFilterOrder = { Asc: "asc", Desc: "desc", } as const; export type SubscriptionLineItemFilterOrder = ClosedEnum< typeof SubscriptionLineItemFilterOrder >; export type SubscriptionLineItemFilter = { activeFilter?: boolean | undefined; addonAssociationIds?: Array | undefined; billingPeriods?: Array | undefined; currencies?: Array | undefined; currentPeriodStart?: Date | undefined; customerIds?: Array | undefined; endTime?: Date | undefined; entityIds?: Array | undefined; entityType?: SubscriptionLineItemEntityType | undefined; expand?: string | undefined; filters?: Array | undefined; limit?: number | undefined; meterIds?: Array | undefined; offset?: number | undefined; order?: SubscriptionLineItemFilterOrder | undefined; priceIds?: Array | undefined; sort?: Array | undefined; startTime?: Date | undefined; status?: Status | undefined; subscriptionIds?: Array | undefined; /** * Specific filters */ subscriptionLineItemIds?: Array | undefined; }; /** @internal */ export const SubscriptionLineItemFilterOrder$outboundSchema: z.ZodMiniEnum< typeof SubscriptionLineItemFilterOrder > = z.enum(SubscriptionLineItemFilterOrder); /** @internal */ export type SubscriptionLineItemFilter$Outbound = { active_filter: boolean; addon_association_ids?: Array | undefined; billing_periods?: Array | undefined; currencies?: Array | undefined; current_period_start?: string | undefined; customer_ids?: Array | undefined; end_time?: string | undefined; entity_ids?: Array | undefined; entity_type?: string | undefined; expand?: string | undefined; filters?: Array | undefined; limit?: number | undefined; meter_ids?: Array | undefined; offset?: number | undefined; order?: string | undefined; price_ids?: Array | undefined; sort?: Array | undefined; start_time?: string | undefined; status?: string | undefined; subscription_ids?: Array | undefined; subscription_line_item_ids?: Array | undefined; }; /** @internal */ export const SubscriptionLineItemFilter$outboundSchema: z.ZodMiniType< SubscriptionLineItemFilter$Outbound, SubscriptionLineItemFilter > = z.pipe( z.object({ activeFilter: z._default(z.boolean(), true), addonAssociationIds: z.optional(z.array(z.string())), billingPeriods: z.optional(z.array(z.string())), currencies: z.optional(z.array(z.string())), currentPeriodStart: z.optional( z.pipe(z.date(), z.transform(v => v.toISOString())), ), customerIds: z.optional(z.array(z.string())), endTime: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), entityIds: z.optional(z.array(z.string())), entityType: z.optional(SubscriptionLineItemEntityType$outboundSchema), expand: z.optional(z.string()), filters: z.optional(z.array(FilterCondition$outboundSchema)), limit: z.optional(z.int()), meterIds: z.optional(z.array(z.string())), offset: z.optional(z.int()), order: z.optional(SubscriptionLineItemFilterOrder$outboundSchema), priceIds: 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), subscriptionIds: z.optional(z.array(z.string())), subscriptionLineItemIds: z.optional(z.array(z.string())), }), z.transform((v) => { return remap$(v, { activeFilter: "active_filter", addonAssociationIds: "addon_association_ids", billingPeriods: "billing_periods", currentPeriodStart: "current_period_start", customerIds: "customer_ids", endTime: "end_time", entityIds: "entity_ids", entityType: "entity_type", meterIds: "meter_ids", priceIds: "price_ids", startTime: "start_time", subscriptionIds: "subscription_ids", subscriptionLineItemIds: "subscription_line_item_ids", }); }), ); export function subscriptionLineItemFilterToJSON( subscriptionLineItemFilter: SubscriptionLineItemFilter, ): string { return JSON.stringify( SubscriptionLineItemFilter$outboundSchema.parse(subscriptionLineItemFilter), ); }