chargebee
Version:
A library for integrating with Chargebee.
364 lines (363 loc) • 18.7 kB
JavaScript
"use strict";
// Generated Zod schemas: Plan
// Actions: create, update, list, copy
// Do not edit manually – regenerate via sdk-generator
Object.defineProperty(exports, "__esModule", { value: true });
exports.CopyPlanBodySchema = exports.ListPlanBodySchema = exports.UpdatePlanBodySchema = exports.CreatePlanBodySchema = void 0;
const zod_1 = require("zod");
//Plan.create
const CreatePlanMetaDataSchema = zod_1.z.looseObject({});
const CreatePlanTiersSchema = zod_1.z.object({
starting_unit: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
ending_unit: zod_1.z.array(zod_1.z.number().int().optional()).optional(),
price: zod_1.z.array(zod_1.z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
ending_unit_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
price_in_decimal: zod_1.z.array(zod_1.z.string().max(39).optional()).optional(),
});
const CreatePlanTaxProvidersFieldsSchema = zod_1.z.object({
provider_name: zod_1.z.array(zod_1.z.string().max(50).optional()),
field_id: zod_1.z.array(zod_1.z.string().max(50).optional()),
field_value: zod_1.z.array(zod_1.z.string().max(50).optional()),
});
const CreatePlanApplicableAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
});
const CreatePlanEventBasedAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
quantity: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
quantity_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
on_event: zod_1.z
.array(zod_1.z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: zod_1.z.array(zod_1.z.boolean().default(true).optional()).optional(),
});
const CreatePlanAttachedAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
quantity: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
quantity_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
billing_cycles: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
type: zod_1.z.array(zod_1.z.enum(['recommended', 'mandatory']).optional()).optional(),
});
const CreatePlanBodySchema = zod_1.z.looseObject({
id: zod_1.z.string().max(100),
name: zod_1.z.string().max(100),
invoice_name: zod_1.z.string().max(100).optional(),
description: zod_1.z.string().max(2000).optional(),
trial_period: zod_1.z.number().int().min(1).optional(),
trial_period_unit: zod_1.z.enum(['day', 'month']).optional(),
trial_end_action: zod_1.z
.enum(['site_default', 'activate_subscription', 'cancel_subscription'])
.optional(),
period: zod_1.z.number().int().min(1).optional(),
period_unit: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
setup_cost: zod_1.z.number().int().min(1).optional(),
price: zod_1.z.number().int().min(0).optional(),
price_in_decimal: zod_1.z.string().max(39).optional(),
currency_code: zod_1.z.string().max(3).optional(),
billing_cycles: zod_1.z.number().int().min(1).optional(),
pricing_model: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
charge_model: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
free_quantity: zod_1.z.number().int().min(0).optional(),
free_quantity_in_decimal: zod_1.z.string().max(33).optional(),
addon_applicability: zod_1.z.enum(['all', 'restricted']).optional(),
downgrade_penalty: zod_1.z.number().min(0.01).max(100).optional(),
redirect_url: zod_1.z.string().max(500).optional(),
enabled_in_hosted_pages: zod_1.z.boolean().default(true).optional(),
enabled_in_portal: zod_1.z.boolean().default(true).optional(),
taxable: zod_1.z.boolean().default(true).optional(),
tax_profile_id: zod_1.z.string().max(50).optional(),
tax_code: zod_1.z.string().max(50).optional(),
hsn_code: zod_1.z.string().max(50).optional(),
taxjar_product_code: zod_1.z.string().max(50).optional(),
avalara_sale_type: zod_1.z
.enum(['wholesale', 'retail', 'consumed', 'vendor_use'])
.optional(),
avalara_transaction_type: zod_1.z.number().int().optional(),
avalara_service_type: zod_1.z.number().int().optional(),
sku: zod_1.z.string().max(100).optional(),
accounting_code: zod_1.z.string().max(100).optional(),
accounting_category1: zod_1.z.string().max(100).optional(),
accounting_category2: zod_1.z.string().max(100).optional(),
accounting_category3: zod_1.z.string().max(100).optional(),
accounting_category4: zod_1.z.string().max(100).optional(),
is_shippable: zod_1.z.boolean().default(false).optional(),
shipping_frequency_period: zod_1.z.number().int().min(1).optional(),
shipping_frequency_period_unit: zod_1.z
.enum(['year', 'month', 'week', 'day'])
.optional(),
invoice_notes: zod_1.z.string().max(2000).optional(),
meta_data: CreatePlanMetaDataSchema.optional(),
show_description_in_invoices: zod_1.z.boolean().default(false).optional(),
show_description_in_quotes: zod_1.z.boolean().default(false).optional(),
giftable: zod_1.z.boolean().default(false).optional(),
status: zod_1.z.enum(['active', 'archived']).optional(),
claim_url: zod_1.z.string().max(500).optional(),
tiers: CreatePlanTiersSchema.optional(),
tax_providers_fields: CreatePlanTaxProvidersFieldsSchema.optional(),
applicable_addons: CreatePlanApplicableAddonsSchema.optional(),
event_based_addons: CreatePlanEventBasedAddonsSchema.optional(),
attached_addons: CreatePlanAttachedAddonsSchema.optional(),
});
exports.CreatePlanBodySchema = CreatePlanBodySchema;
//Plan.update
const UpdatePlanMetaDataSchema = zod_1.z.looseObject({});
const UpdatePlanTiersSchema = zod_1.z.object({
starting_unit: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
ending_unit: zod_1.z.array(zod_1.z.number().int().optional()).optional(),
price: zod_1.z.array(zod_1.z.number().int().min(0).optional()).optional(),
starting_unit_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
ending_unit_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
price_in_decimal: zod_1.z.array(zod_1.z.string().max(39).optional()).optional(),
});
const UpdatePlanTaxProvidersFieldsSchema = zod_1.z.object({
provider_name: zod_1.z.array(zod_1.z.string().max(50).optional()),
field_id: zod_1.z.array(zod_1.z.string().max(50).optional()),
field_value: zod_1.z.array(zod_1.z.string().max(50).optional()),
});
const UpdatePlanApplicableAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
});
const UpdatePlanEventBasedAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
quantity: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
quantity_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
on_event: zod_1.z
.array(zod_1.z
.enum([
'subscription_creation',
'subscription_trial_start',
'plan_activation',
'subscription_activation',
'contract_termination',
])
.optional())
.optional(),
charge_once: zod_1.z.array(zod_1.z.boolean().default(true).optional()).optional(),
});
const UpdatePlanAttachedAddonsSchema = zod_1.z.object({
id: zod_1.z.array(zod_1.z.string().max(100).optional()).optional(),
quantity: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
quantity_in_decimal: zod_1.z.array(zod_1.z.string().max(33).optional()).optional(),
billing_cycles: zod_1.z.array(zod_1.z.number().int().min(1).optional()).optional(),
type: zod_1.z.array(zod_1.z.enum(['recommended', 'mandatory']).optional()).optional(),
});
const UpdatePlanBodySchema = zod_1.z.looseObject({
name: zod_1.z.string().max(100).optional(),
invoice_name: zod_1.z.string().max(100).optional(),
description: zod_1.z.string().max(2000).optional(),
trial_period: zod_1.z.number().int().min(0).optional(),
trial_period_unit: zod_1.z.enum(['day', 'month']).optional(),
trial_end_action: zod_1.z
.enum(['site_default', 'activate_subscription', 'cancel_subscription'])
.optional(),
period: zod_1.z.number().int().min(1).optional(),
period_unit: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
setup_cost: zod_1.z.number().int().min(1).optional(),
price: zod_1.z.number().int().min(0).optional(),
price_in_decimal: zod_1.z.string().max(39).optional(),
currency_code: zod_1.z.string().max(3).optional(),
billing_cycles: zod_1.z.number().int().min(1).optional(),
pricing_model: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
charge_model: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
free_quantity: zod_1.z.number().int().min(0).optional(),
free_quantity_in_decimal: zod_1.z.string().max(33).optional(),
addon_applicability: zod_1.z.enum(['all', 'restricted']).optional(),
downgrade_penalty: zod_1.z.number().min(0.01).max(100).optional(),
redirect_url: zod_1.z.string().max(500).optional(),
enabled_in_hosted_pages: zod_1.z.boolean().default(true).optional(),
enabled_in_portal: zod_1.z.boolean().default(true).optional(),
taxable: zod_1.z.boolean().default(true).optional(),
tax_profile_id: zod_1.z.string().max(50).optional(),
tax_code: zod_1.z.string().max(50).optional(),
hsn_code: zod_1.z.string().max(50).optional(),
taxjar_product_code: zod_1.z.string().max(50).optional(),
avalara_sale_type: zod_1.z
.enum(['wholesale', 'retail', 'consumed', 'vendor_use'])
.optional(),
avalara_transaction_type: zod_1.z.number().int().optional(),
avalara_service_type: zod_1.z.number().int().optional(),
sku: zod_1.z.string().max(100).optional(),
accounting_code: zod_1.z.string().max(100).optional(),
accounting_category1: zod_1.z.string().max(100).optional(),
accounting_category2: zod_1.z.string().max(100).optional(),
accounting_category3: zod_1.z.string().max(100).optional(),
accounting_category4: zod_1.z.string().max(100).optional(),
is_shippable: zod_1.z.boolean().default(false).optional(),
shipping_frequency_period: zod_1.z.number().int().min(1).optional(),
shipping_frequency_period_unit: zod_1.z
.enum(['year', 'month', 'week', 'day'])
.optional(),
invoice_notes: zod_1.z.string().max(2000).optional(),
meta_data: UpdatePlanMetaDataSchema.optional(),
show_description_in_invoices: zod_1.z.boolean().default(false).optional(),
show_description_in_quotes: zod_1.z.boolean().default(false).optional(),
tiers: UpdatePlanTiersSchema.optional(),
tax_providers_fields: UpdatePlanTaxProvidersFieldsSchema.optional(),
applicable_addons: UpdatePlanApplicableAddonsSchema.optional(),
event_based_addons: UpdatePlanEventBasedAddonsSchema.optional(),
attached_addons: UpdatePlanAttachedAddonsSchema.optional(),
});
exports.UpdatePlanBodySchema = UpdatePlanBodySchema;
//Plan.list
const ListPlanIdSchema = zod_1.z.object({
is: zod_1.z.string().min(1).optional(),
is_not: zod_1.z.string().min(1).optional(),
starts_with: zod_1.z.string().min(1).optional(),
in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListPlanNameSchema = zod_1.z.object({
is: zod_1.z.string().min(1).optional(),
is_not: zod_1.z.string().min(1).optional(),
starts_with: zod_1.z.string().min(1).optional(),
in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListPlanPriceSchema = zod_1.z.object({
is: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
between: zod_1.z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
});
const ListPlanPeriodSchema = zod_1.z.object({
is: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
between: zod_1.z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
});
const ListPlanPeriodUnitSchema = zod_1.z.object({
is: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
is_not: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
in: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
not_in: zod_1.z.enum(['day', 'week', 'month', 'year']).optional(),
});
const ListPlanTrialPeriodSchema = zod_1.z.object({
is: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: zod_1.z.string().regex(RegExp('^-?\\d+$')).optional(),
between: zod_1.z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
is_present: zod_1.z.enum(['true', 'false']).optional(),
});
const ListPlanTrialPeriodUnitSchema = zod_1.z.object({
is: zod_1.z.enum(['day', 'month']).optional(),
is_not: zod_1.z.enum(['day', 'month']).optional(),
in: zod_1.z.enum(['day', 'month']).optional(),
not_in: zod_1.z.enum(['day', 'month']).optional(),
});
const ListPlanAddonApplicabilitySchema = zod_1.z.object({
is: zod_1.z.enum(['all', 'restricted']).optional(),
is_not: zod_1.z.enum(['all', 'restricted']).optional(),
in: zod_1.z.enum(['all', 'restricted']).optional(),
not_in: zod_1.z.enum(['all', 'restricted']).optional(),
});
const ListPlanGiftableSchema = zod_1.z.object({
is: zod_1.z.enum(['true', 'false']).optional(),
});
const ListPlanChargeModelSchema = zod_1.z.object({
is: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
is_not: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
in: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
not_in: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
});
const ListPlanPricingModelSchema = zod_1.z.object({
is: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
is_not: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
in: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
not_in: zod_1.z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
});
const ListPlanStatusSchema = zod_1.z.object({
is: zod_1.z.enum(['active', 'archived', 'deleted']).optional(),
is_not: zod_1.z.enum(['active', 'archived', 'deleted']).optional(),
in: zod_1.z.enum(['active', 'archived', 'deleted']).optional(),
not_in: zod_1.z.enum(['active', 'archived', 'deleted']).optional(),
});
const ListPlanUpdatedAtSchema = zod_1.z.object({
after: zod_1.z.string().regex(RegExp('^\\d{10}$')).optional(),
before: zod_1.z.string().regex(RegExp('^\\d{10}$')).optional(),
on: zod_1.z.string().regex(RegExp('^\\d{10}$')).optional(),
between: zod_1.z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(),
});
const ListPlanCurrencyCodeSchema = zod_1.z.object({
is: zod_1.z.string().min(1).optional(),
is_not: zod_1.z.string().min(1).optional(),
starts_with: zod_1.z.string().min(1).optional(),
in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: zod_1.z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListPlanChannelSchema = zod_1.z.object({
is: zod_1.z.enum(['web', 'app_store', 'play_store']).optional(),
is_not: zod_1.z.enum(['web', 'app_store', 'play_store']).optional(),
in: zod_1.z.enum(['web', 'app_store', 'play_store']).optional(),
not_in: zod_1.z.enum(['web', 'app_store', 'play_store']).optional(),
});
const ListPlanBodySchema = zod_1.z.looseObject({
limit: zod_1.z.number().int().min(1).max(100).optional(),
offset: zod_1.z.string().max(1000).optional(),
id: ListPlanIdSchema.optional(),
name: ListPlanNameSchema.optional(),
price: ListPlanPriceSchema.optional(),
period: ListPlanPeriodSchema.optional(),
period_unit: ListPlanPeriodUnitSchema.optional(),
trial_period: ListPlanTrialPeriodSchema.optional(),
trial_period_unit: ListPlanTrialPeriodUnitSchema.optional(),
addon_applicability: ListPlanAddonApplicabilitySchema.optional(),
giftable: ListPlanGiftableSchema.optional(),
charge_model: ListPlanChargeModelSchema.optional(),
pricing_model: ListPlanPricingModelSchema.optional(),
status: ListPlanStatusSchema.optional(),
updated_at: ListPlanUpdatedAtSchema.optional(),
currency_code: ListPlanCurrencyCodeSchema.optional(),
channel: ListPlanChannelSchema.optional(),
include_deleted: zod_1.z.boolean().default(false).optional(),
});
exports.ListPlanBodySchema = ListPlanBodySchema;
//Plan.copy
const CopyPlanBodySchema = zod_1.z.looseObject({
from_site: zod_1.z.string().max(50),
id_at_from_site: zod_1.z.string().max(100),
id: zod_1.z.string().max(100).optional(),
for_site_merging: zod_1.z.boolean().default(false).optional(),
});
exports.CopyPlanBodySchema = CopyPlanBodySchema;