436 lines
14 KiB
TypeScript
436 lines
14 KiB
TypeScript
// Generated by ts-to-zod
|
|
import { z } from "zod/v4";
|
|
|
|
export const previewUpdateGlobalsSchema = z.object({
|
|
xApiVersion: z.union([z.string(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateFeatureQuantityRequestSchema = z.object({
|
|
featureId: z.string(),
|
|
quantity: z.union([z.number(), z.undefined()]).optional(),
|
|
adjustable: z.union([z.boolean(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateToSchema = z.union([z.number(), z.string()]);
|
|
|
|
export const previewUpdateTierSchema = z.object({
|
|
to: z.union([z.number(), z.string()]),
|
|
amount: z.union([z.number(), z.undefined()]).optional(),
|
|
flatAmount: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateInvoiceModeSchema = z.object({
|
|
enabled: z.boolean(),
|
|
enablePlanImmediately: z.union([z.boolean(), z.undefined()]).optional(),
|
|
finalize: z.union([z.boolean(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateAttachDiscountSchema = z.object({
|
|
rewardId: z.union([z.string(), z.undefined()]).optional(),
|
|
promotionCode: z.union([z.string(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateRecalculateBalancesSchema = z.object({
|
|
enabled: z.boolean(),
|
|
});
|
|
|
|
export const previewUpdateDiscountSchema = z.object({
|
|
amountOff: z.number(),
|
|
percentOff: z.union([z.number(), z.undefined()]).optional(),
|
|
rewardId: z.union([z.string(), z.undefined()]).optional(),
|
|
rewardName: z.union([z.string(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateLineItemPeriodSchema = z.object({
|
|
start: z.number(),
|
|
end: z.number(),
|
|
});
|
|
|
|
export const previewUpdateLineItemSchema = z.object({
|
|
displayName: z.string(),
|
|
description: z.string(),
|
|
subtotal: z.number(),
|
|
total: z.number(),
|
|
discounts: z
|
|
.union([z.array(previewUpdateDiscountSchema), z.undefined()])
|
|
.optional(),
|
|
planId: z.string(),
|
|
featureId: z.string().nullable(),
|
|
period: z
|
|
.union([previewUpdateLineItemPeriodSchema, z.undefined()])
|
|
.optional(),
|
|
quantity: z.number(),
|
|
});
|
|
|
|
export const previewUpdateNextCycleDiscountSchema = z.object({
|
|
amountOff: z.number(),
|
|
percentOff: z.union([z.number(), z.undefined()]).optional(),
|
|
rewardId: z.union([z.string(), z.undefined()]).optional(),
|
|
rewardName: z.union([z.string(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateNextCycleLineItemPeriodSchema = z.object({
|
|
start: z.number(),
|
|
end: z.number(),
|
|
});
|
|
|
|
export const previewUpdateNextCycleLineItemSchema = z.object({
|
|
displayName: z.string(),
|
|
description: z.string(),
|
|
subtotal: z.number(),
|
|
total: z.number(),
|
|
discounts: z
|
|
.union([z.array(previewUpdateNextCycleDiscountSchema), z.undefined()])
|
|
.optional(),
|
|
planId: z.string(),
|
|
featureId: z.string().nullable(),
|
|
period: z
|
|
.union([previewUpdateNextCycleLineItemPeriodSchema, z.undefined()])
|
|
.optional(),
|
|
quantity: z.number(),
|
|
});
|
|
|
|
export const previewUpdateUsageLineItemPeriodSchema = z.object({
|
|
start: z.number(),
|
|
end: z.number(),
|
|
});
|
|
|
|
export const previewUpdateUsageLineItemSchema = z.object({
|
|
displayName: z.string(),
|
|
planId: z.string(),
|
|
featureId: z.string().nullable(),
|
|
period: z
|
|
.union([previewUpdateUsageLineItemPeriodSchema, z.undefined()])
|
|
.optional(),
|
|
});
|
|
|
|
export const previewUpdateNextCycleSchema = z.object({
|
|
startsAt: z.number(),
|
|
subtotal: z.number(),
|
|
total: z.number(),
|
|
lineItems: z.array(previewUpdateNextCycleLineItemSchema),
|
|
usageLineItems: z.array(previewUpdateUsageLineItemSchema),
|
|
});
|
|
|
|
export const previewUpdateIncomingFeatureQuantitySchema = z.object({
|
|
featureId: z.string(),
|
|
quantity: z.number(),
|
|
});
|
|
|
|
export const previewUpdateOutgoingFeatureQuantitySchema = z.object({
|
|
featureId: z.string(),
|
|
quantity: z.number(),
|
|
});
|
|
|
|
export const previewUpdateInvoiceCreditsSchema = z.object({
|
|
balance: z.number(),
|
|
currency: z.string(),
|
|
});
|
|
|
|
export const previewUpdateFeatureQuantityRequestOutboundSchema = z.object({
|
|
feature_id: z.string(),
|
|
quantity: z.union([z.number(), z.undefined()]).optional(),
|
|
adjustable: z.union([z.boolean(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateBasePriceOutboundSchema = z.object({
|
|
amount: z.number(),
|
|
interval: z.string(),
|
|
interval_count: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateResetOutboundSchema = z.object({
|
|
interval: z.string(),
|
|
interval_count: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateToOutboundSchema = z.union([z.number(), z.string()]);
|
|
|
|
export const previewUpdateTierOutboundSchema = z.object({
|
|
to: z.union([z.number(), z.string()]),
|
|
amount: z.union([z.number(), z.undefined()]).optional(),
|
|
flat_amount: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdatePriceOutboundSchema = z.object({
|
|
amount: z.union([z.number(), z.undefined()]).optional(),
|
|
tiers: z
|
|
.union([z.array(previewUpdateTierOutboundSchema), z.undefined()])
|
|
.optional(),
|
|
tier_behavior: z.union([z.string(), z.undefined()]).optional(),
|
|
interval: z.string(),
|
|
interval_count: z.number(),
|
|
billing_units: z.number(),
|
|
billing_method: z.string(),
|
|
max_purchase: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateProrationOutboundSchema = z.object({
|
|
on_increase: z.string(),
|
|
on_decrease: z.string(),
|
|
});
|
|
|
|
export const previewUpdateRolloverOutboundSchema = z.object({
|
|
max: z.union([z.number(), z.undefined()]).optional(),
|
|
max_percentage: z.union([z.number(), z.undefined()]).optional(),
|
|
expiry_duration_type: z.string(),
|
|
expiry_duration_length: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdatePlanItemOutboundSchema = z.object({
|
|
feature_id: z.string(),
|
|
included: z.union([z.number(), z.undefined()]).optional(),
|
|
unlimited: z.union([z.boolean(), z.undefined()]).optional(),
|
|
reset: z.union([previewUpdateResetOutboundSchema, z.undefined()]).optional(),
|
|
price: z.union([previewUpdatePriceOutboundSchema, z.undefined()]).optional(),
|
|
proration: z
|
|
.union([previewUpdateProrationOutboundSchema, z.undefined()])
|
|
.optional(),
|
|
rollover: z
|
|
.union([previewUpdateRolloverOutboundSchema, z.undefined()])
|
|
.optional(),
|
|
});
|
|
|
|
export const previewUpdateFreeTrialParamsOutboundSchema = z.object({
|
|
duration_length: z.number(),
|
|
duration_type: z.string(),
|
|
card_required: z.boolean(),
|
|
});
|
|
|
|
export const previewUpdateCustomizeOutboundSchema = z.object({
|
|
price: z
|
|
.union([previewUpdateBasePriceOutboundSchema, z.undefined()])
|
|
.optional()
|
|
.nullable(),
|
|
items: z
|
|
.union([z.array(previewUpdatePlanItemOutboundSchema), z.undefined()])
|
|
.optional(),
|
|
free_trial: z
|
|
.union([previewUpdateFreeTrialParamsOutboundSchema, z.undefined()])
|
|
.optional()
|
|
.nullable(),
|
|
});
|
|
|
|
export const previewUpdateInvoiceModeOutboundSchema = z.object({
|
|
enabled: z.boolean(),
|
|
enable_plan_immediately: z.boolean(),
|
|
finalize: z.boolean(),
|
|
});
|
|
|
|
export const previewUpdateAttachDiscountOutboundSchema = z.object({
|
|
reward_id: z.union([z.string(), z.undefined()]).optional(),
|
|
promotion_code: z.union([z.string(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateRecalculateBalancesOutboundSchema = z.object({
|
|
enabled: z.boolean(),
|
|
});
|
|
|
|
export const previewUpdateParamsOutboundSchema = z.object({
|
|
customer_id: z.string(),
|
|
entity_id: z.union([z.string(), z.undefined()]).optional(),
|
|
plan_id: z.union([z.string(), z.undefined()]).optional(),
|
|
feature_quantities: z
|
|
.union([
|
|
z.array(previewUpdateFeatureQuantityRequestOutboundSchema),
|
|
z.undefined(),
|
|
])
|
|
.optional(),
|
|
version: z.union([z.number(), z.undefined()]).optional(),
|
|
customize: z
|
|
.union([previewUpdateCustomizeOutboundSchema, z.undefined()])
|
|
.optional(),
|
|
invoice_mode: z
|
|
.union([previewUpdateInvoiceModeOutboundSchema, z.undefined()])
|
|
.optional(),
|
|
proration_behavior: z.union([z.string(), z.undefined()]).optional(),
|
|
redirect_mode: z.string(),
|
|
subscription_id: z.union([z.string(), z.undefined()]).optional(),
|
|
discounts: z
|
|
.union([z.array(previewUpdateAttachDiscountOutboundSchema), z.undefined()])
|
|
.optional(),
|
|
cancel_action: z.union([z.string(), z.undefined()]).optional(),
|
|
billing_cycle_anchor: z.union([z.literal("now"), z.undefined()]).optional(),
|
|
no_billing_changes: z.union([z.boolean(), z.undefined()]).optional(),
|
|
recalculate_balances: z
|
|
.union([previewUpdateRecalculateBalancesOutboundSchema, z.undefined()])
|
|
.optional(),
|
|
});
|
|
|
|
const closedEnumSchema = z.any();
|
|
|
|
const planSchema = z.any();
|
|
|
|
const openEnumSchema = z.any();
|
|
|
|
export const previewUpdatePriceIntervalSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateBasePriceSchema = z.object({
|
|
amount: z.number(),
|
|
interval: previewUpdatePriceIntervalSchema,
|
|
intervalCount: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateResetIntervalSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateResetSchema = z.object({
|
|
interval: previewUpdateResetIntervalSchema,
|
|
intervalCount: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateTierBehaviorSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateItemPriceIntervalSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateBillingMethodSchema = closedEnumSchema;
|
|
|
|
export const previewUpdatePriceSchema = z.object({
|
|
amount: z.union([z.number(), z.undefined()]).optional(),
|
|
tiers: z.union([z.array(previewUpdateTierSchema), z.undefined()]).optional(),
|
|
tierBehavior: z
|
|
.union([previewUpdateTierBehaviorSchema, z.undefined()])
|
|
.optional(),
|
|
interval: previewUpdateItemPriceIntervalSchema,
|
|
intervalCount: z.union([z.number(), z.undefined()]).optional(),
|
|
billingUnits: z.union([z.number(), z.undefined()]).optional(),
|
|
billingMethod: previewUpdateBillingMethodSchema,
|
|
maxPurchase: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateOnIncreaseSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateOnDecreaseSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateProrationSchema = z.object({
|
|
onIncrease: previewUpdateOnIncreaseSchema,
|
|
onDecrease: previewUpdateOnDecreaseSchema,
|
|
});
|
|
|
|
export const previewUpdateExpiryDurationTypeSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateRolloverSchema = z.object({
|
|
max: z.union([z.number(), z.undefined()]).optional(),
|
|
maxPercentage: z.union([z.number(), z.undefined()]).optional(),
|
|
expiryDurationType: previewUpdateExpiryDurationTypeSchema,
|
|
expiryDurationLength: z.union([z.number(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdatePlanItemSchema = z.object({
|
|
featureId: z.string(),
|
|
included: z.union([z.number(), z.undefined()]).optional(),
|
|
unlimited: z.union([z.boolean(), z.undefined()]).optional(),
|
|
reset: z.union([previewUpdateResetSchema, z.undefined()]).optional(),
|
|
price: z.union([previewUpdatePriceSchema, z.undefined()]).optional(),
|
|
proration: z.union([previewUpdateProrationSchema, z.undefined()]).optional(),
|
|
rollover: z.union([previewUpdateRolloverSchema, z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateDurationTypeSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateFreeTrialParamsSchema = z.object({
|
|
durationLength: z.number(),
|
|
durationType: z
|
|
.union([previewUpdateDurationTypeSchema, z.undefined()])
|
|
.optional(),
|
|
cardRequired: z.union([z.boolean(), z.undefined()]).optional(),
|
|
});
|
|
|
|
export const previewUpdateCustomizeSchema = z.object({
|
|
price: z
|
|
.union([previewUpdateBasePriceSchema, z.undefined()])
|
|
.optional()
|
|
.nullable(),
|
|
items: z
|
|
.union([z.array(previewUpdatePlanItemSchema), z.undefined()])
|
|
.optional(),
|
|
freeTrial: z
|
|
.union([previewUpdateFreeTrialParamsSchema, z.undefined()])
|
|
.optional()
|
|
.nullable(),
|
|
});
|
|
|
|
export const previewUpdateProrationBehaviorSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateRedirectModeSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateCancelActionSchema = closedEnumSchema;
|
|
|
|
export const previewUpdateParamsSchema = z.object({
|
|
customerId: z.string(),
|
|
entityId: z.union([z.string(), z.undefined()]).optional(),
|
|
planId: z.union([z.string(), z.undefined()]).optional(),
|
|
featureQuantities: z
|
|
.union([z.array(previewUpdateFeatureQuantityRequestSchema), z.undefined()])
|
|
.optional(),
|
|
version: z.union([z.number(), z.undefined()]).optional(),
|
|
customize: z.union([previewUpdateCustomizeSchema, z.undefined()]).optional(),
|
|
invoiceMode: z
|
|
.union([previewUpdateInvoiceModeSchema, z.undefined()])
|
|
.optional(),
|
|
prorationBehavior: z
|
|
.union([previewUpdateProrationBehaviorSchema, z.undefined()])
|
|
.optional(),
|
|
redirectMode: z
|
|
.union([previewUpdateRedirectModeSchema, z.undefined()])
|
|
.optional(),
|
|
subscriptionId: z.union([z.string(), z.undefined()]).optional(),
|
|
discounts: z
|
|
.union([z.array(previewUpdateAttachDiscountSchema), z.undefined()])
|
|
.optional(),
|
|
cancelAction: z
|
|
.union([previewUpdateCancelActionSchema, z.undefined()])
|
|
.optional(),
|
|
billingCycleAnchor: z.union([z.literal("now"), z.undefined()]).optional(),
|
|
noBillingChanges: z.union([z.boolean(), z.undefined()]).optional(),
|
|
recalculateBalances: z
|
|
.union([previewUpdateRecalculateBalancesSchema, z.undefined()])
|
|
.optional(),
|
|
});
|
|
|
|
export const previewUpdateIncomingSchema = z.object({
|
|
planId: z.string(),
|
|
plan: z.union([planSchema, z.undefined()]).optional(),
|
|
featureQuantities: z.array(previewUpdateIncomingFeatureQuantitySchema),
|
|
effectiveAt: z.number().nullable(),
|
|
canceledAt: z.number().nullable(),
|
|
expiresAt: z.number().nullable(),
|
|
});
|
|
|
|
export const previewUpdateOutgoingSchema = z.object({
|
|
planId: z.string(),
|
|
plan: z.union([planSchema, z.undefined()]).optional(),
|
|
featureQuantities: z.array(previewUpdateOutgoingFeatureQuantitySchema),
|
|
effectiveAt: z.number().nullable(),
|
|
canceledAt: z.number().nullable(),
|
|
expiresAt: z.number().nullable(),
|
|
});
|
|
|
|
export const intentSchema = openEnumSchema;
|
|
|
|
export const previewUpdateStatusSchema = openEnumSchema;
|
|
|
|
export const previewUpdateTaxSchema = z.object({
|
|
total: z.number(),
|
|
amountInclusive: z.number(),
|
|
amountExclusive: z.number(),
|
|
currency: z.string(),
|
|
status: previewUpdateStatusSchema,
|
|
});
|
|
|
|
export const previewUpdateResponseSchema = z.object({
|
|
customerId: z.string(),
|
|
lineItems: z.array(previewUpdateLineItemSchema),
|
|
subtotal: z.number(),
|
|
total: z.number(),
|
|
currency: z.string(),
|
|
nextCycle: z.union([previewUpdateNextCycleSchema, z.undefined()]).optional(),
|
|
expand: z.union([z.array(z.string()), z.undefined()]).optional(),
|
|
incoming: z.array(previewUpdateIncomingSchema),
|
|
outgoing: z.array(previewUpdateOutgoingSchema),
|
|
intent: intentSchema,
|
|
tax: z.union([previewUpdateTaxSchema, z.undefined()]).optional(),
|
|
invoiceCredits: z
|
|
.union([previewUpdateInvoiceCreditsSchema, z.undefined()])
|
|
.optional(),
|
|
});
|