chargebee
Version:
A library for integrating with Chargebee.
243 lines (242 loc) • 11.3 kB
JavaScript
// Generated Zod schemas: Ramp
// Actions: createForSubscription, update, list
// Do not edit manually – regenerate via sdk-generator
import { z } from 'zod';
//Ramp.createForSubscription
const CreateForSubscriptionRampContractTermSchema = z.object({
action_at_term_end: z
.enum(['renew', 'evergreen', 'cancel', 'renew_once'])
.optional(),
cancellation_cutoff_period: z.number().int().optional(),
renewal_billing_cycles: z.number().int().optional(),
});
const CreateForSubscriptionRampItemsToAddSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const CreateForSubscriptionRampItemsToUpdateSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const CreateForSubscriptionRampItemTiersSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
starting_unit: z.array(z.number().int().min(1).optional()).optional(),
ending_unit: z.array(z.number().int().optional()).optional(),
price: z.array(z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
ending_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
price_in_decimal: z.array(z.string().max(39).optional()).optional(),
pricing_type: z
.array(z.enum(['per_unit', 'flat_fee', 'package']).optional())
.optional(),
package_size: z.array(z.number().int().min(1).optional()).optional(),
});
const CreateForSubscriptionRampCouponsToAddSchema = z.object({
coupon_id: z.array(z.string().max(100).optional()).optional(),
apply_till: z.array(z.number().int().optional()).optional(),
});
const CreateForSubscriptionRampDiscountsToAddSchema = z.object({
apply_on: z.array(z.enum(['invoice_amount', 'specific_item_price']).optional()),
duration_type: z.array(z.enum(['one_time', 'forever', 'limited_period']).optional()),
percentage: z.array(z.number().min(0.01).max(100).optional()).optional(),
amount: z.array(z.number().int().min(0).optional()).optional(),
period: z.array(z.number().int().min(1).optional()).optional(),
period_unit: z
.array(z.enum(['day', 'week', 'month', 'year']).optional())
.optional(),
included_in_mrr: z.array(z.boolean().optional()).optional(),
item_price_id: z.array(z.string().max(100).optional()).optional(),
});
const CreateForSubscriptionRampBodySchema = z.looseObject({
effective_from: z.number().int(),
description: z.string().max(250).optional(),
coupons_to_remove: z.array(z.string().max(100).optional()).optional(),
discounts_to_remove: z.array(z.string().max(100).optional()).optional(),
items_to_remove: z.array(z.string().max(100).optional()).optional(),
contract_term: CreateForSubscriptionRampContractTermSchema.optional(),
items_to_add: CreateForSubscriptionRampItemsToAddSchema.optional(),
items_to_update: CreateForSubscriptionRampItemsToUpdateSchema.optional(),
item_tiers: CreateForSubscriptionRampItemTiersSchema.optional(),
coupons_to_add: CreateForSubscriptionRampCouponsToAddSchema.optional(),
discounts_to_add: CreateForSubscriptionRampDiscountsToAddSchema.optional(),
});
export { CreateForSubscriptionRampBodySchema };
//Ramp.update
const UpdateRampContractTermSchema = z.object({
action_at_term_end: z
.enum(['renew', 'evergreen', 'cancel', 'renew_once'])
.optional(),
cancellation_cutoff_period: z.number().int().optional(),
renewal_billing_cycles: z.number().int().optional(),
});
const UpdateRampItemsToAddSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const UpdateRampItemsToUpdateSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()),
quantity: z.array(z.number().int().min(1).optional()).optional(),
quantity_in_decimal: z.array(z.string().max(33).optional()).optional(),
unit_price: z.array(z.number().int().min(0).optional()).optional(),
unit_price_in_decimal: z.array(z.string().max(39).optional()).optional(),
billing_cycles: z.array(z.number().int().min(0).optional()).optional(),
service_period_days: z
.array(z.number().int().min(1).max(730).optional())
.optional(),
charge_on_event: z
.array(z
.enum([
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: z.array(z.boolean().optional()).optional(),
charge_on_option: z
.array(z.enum(['immediately', 'on_event']).optional())
.optional(),
});
const UpdateRampItemTiersSchema = z.object({
item_price_id: z.array(z.string().max(100).optional()).optional(),
starting_unit: z.array(z.number().int().min(1).optional()).optional(),
ending_unit: z.array(z.number().int().optional()).optional(),
price: z.array(z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
ending_unit_in_decimal: z.array(z.string().max(33).optional()).optional(),
price_in_decimal: z.array(z.string().max(39).optional()).optional(),
pricing_type: z
.array(z.enum(['per_unit', 'flat_fee', 'package']).optional())
.optional(),
package_size: z.array(z.number().int().min(1).optional()).optional(),
});
const UpdateRampCouponsToAddSchema = z.object({
coupon_id: z.array(z.string().max(100).optional()).optional(),
apply_till: z.array(z.number().int().optional()).optional(),
});
const UpdateRampDiscountsToAddSchema = z.object({
apply_on: z.array(z.enum(['invoice_amount', 'specific_item_price']).optional()),
duration_type: z.array(z.enum(['one_time', 'forever', 'limited_period']).optional()),
percentage: z.array(z.number().min(0.01).max(100).optional()).optional(),
amount: z.array(z.number().int().min(0).optional()).optional(),
period: z.array(z.number().int().min(1).optional()).optional(),
period_unit: z
.array(z.enum(['day', 'week', 'month', 'year']).optional())
.optional(),
included_in_mrr: z.array(z.boolean().optional()).optional(),
item_price_id: z.array(z.string().max(100).optional()).optional(),
});
const UpdateRampBodySchema = z.looseObject({
effective_from: z.number().int(),
description: z.string().max(250).optional(),
coupons_to_remove: z.array(z.string().max(100).optional()).optional(),
discounts_to_remove: z.array(z.string().max(100).optional()).optional(),
items_to_remove: z.array(z.string().max(100).optional()).optional(),
contract_term: UpdateRampContractTermSchema.optional(),
items_to_add: UpdateRampItemsToAddSchema.optional(),
items_to_update: UpdateRampItemsToUpdateSchema.optional(),
item_tiers: UpdateRampItemTiersSchema.optional(),
coupons_to_add: UpdateRampCouponsToAddSchema.optional(),
discounts_to_add: UpdateRampDiscountsToAddSchema.optional(),
});
export { UpdateRampBodySchema };
//Ramp.list
const ListRampStatusSchema = z.object({
is: z.enum(['scheduled', 'succeeded', 'failed', 'draft']).optional(),
in: z.enum(['scheduled', 'succeeded', 'failed', 'draft']).optional(),
});
const ListRampSubscriptionIdSchema = z.object({
is: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListRampEffectiveFromSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListRampUpdatedAtSchema = z.object({
after: z.string().regex(RegExp('^\\d{10}$')).optional(),
before: z.string().regex(RegExp('^\\d{10}$')).optional(),
on: z.string().regex(RegExp('^\\d{10}$')).optional(),
between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListRampSortBySchema = z.looseObject({
asc: z.enum(['effective_from', 'updated_at']).optional(),
desc: z.enum(['effective_from', 'updated_at']).optional(),
});
const ListRampBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
include_deleted: z.boolean().default(false).optional(),
status: ListRampStatusSchema.optional(),
subscription_id: ListRampSubscriptionIdSchema,
effective_from: ListRampEffectiveFromSchema.optional(),
updated_at: ListRampUpdatedAtSchema.optional(),
sort_by: ListRampSortBySchema.optional(),
});
export { ListRampBodySchema };