chargebee
Version:
A library for integrating with Chargebee.
267 lines (266 loc) • 12.2 kB
JavaScript
// Generated Zod schemas: Addon
// Actions: create, update, list, copy
// Do not edit manually – regenerate via sdk-generator
import { z } from 'zod';
//Addon.create
const CreateAddonMetaDataSchema = z.looseObject({});
const CreateAddonTiersSchema = z.object({
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(),
});
const CreateAddonTaxProvidersFieldsSchema = z.object({
provider_name: z.array(z.string().max(50).optional()),
field_id: z.array(z.string().max(50).optional()),
field_value: z.array(z.string().max(50).optional()),
});
const CreateAddonBodySchema = z.looseObject({
id: z.string().max(100),
name: z.string().max(100),
invoice_name: z.string().max(100).optional(),
description: z.string().max(2000).optional(),
charge_type: z.enum(['recurring', 'non_recurring']),
price: z.number().int().min(0).optional(),
currency_code: z.string().max(3).optional(),
period: z.number().int().min(1).optional(),
period_unit: z
.enum(['day', 'week', 'month', 'year', 'not_applicable'])
.optional(),
pricing_model: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
type: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
unit: z.string().max(30).optional(),
enabled_in_portal: z.boolean().default(true).optional(),
taxable: z.boolean().default(true).optional(),
tax_profile_id: z.string().max(50).optional(),
avalara_sale_type: z
.enum(['wholesale', 'retail', 'consumed', 'vendor_use'])
.optional(),
avalara_transaction_type: z.number().int().optional(),
avalara_service_type: z.number().int().optional(),
tax_code: z.string().max(50).optional(),
hsn_code: z.string().max(50).optional(),
taxjar_product_code: z.string().max(50).optional(),
invoice_notes: z.string().max(2000).optional(),
meta_data: CreateAddonMetaDataSchema.optional(),
sku: z.string().max(100).optional(),
accounting_code: z.string().max(100).optional(),
accounting_category1: z.string().max(100).optional(),
accounting_category2: z.string().max(100).optional(),
accounting_category3: z.string().max(100).optional(),
accounting_category4: z.string().max(100).optional(),
is_shippable: z.boolean().default(false).optional(),
shipping_frequency_period: z.number().int().min(1).optional(),
shipping_frequency_period_unit: z
.enum(['year', 'month', 'week', 'day'])
.optional(),
included_in_mrr: z.boolean().optional(),
show_description_in_invoices: z.boolean().default(false).optional(),
show_description_in_quotes: z.boolean().default(false).optional(),
price_in_decimal: z.string().max(39).optional(),
proration_type: z
.enum(['site_default', 'partial_term', 'full_term'])
.optional(),
status: z.enum(['active', 'archived']).optional(),
tiers: CreateAddonTiersSchema.optional(),
tax_providers_fields: CreateAddonTaxProvidersFieldsSchema.optional(),
});
export { CreateAddonBodySchema };
//Addon.update
const UpdateAddonMetaDataSchema = z.looseObject({});
const UpdateAddonTiersSchema = z.object({
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(),
});
const UpdateAddonTaxProvidersFieldsSchema = z.object({
provider_name: z.array(z.string().max(50).optional()),
field_id: z.array(z.string().max(50).optional()),
field_value: z.array(z.string().max(50).optional()),
});
const UpdateAddonBodySchema = z.looseObject({
name: z.string().max(100).optional(),
invoice_name: z.string().max(100).optional(),
description: z.string().max(2000).optional(),
charge_type: z.enum(['recurring', 'non_recurring']).optional(),
price: z.number().int().min(0).optional(),
currency_code: z.string().max(3).optional(),
period: z.number().int().min(1).optional(),
period_unit: z
.enum(['day', 'week', 'month', 'year', 'not_applicable'])
.optional(),
pricing_model: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
type: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
unit: z.string().max(30).optional(),
enabled_in_portal: z.boolean().default(true).optional(),
taxable: z.boolean().default(true).optional(),
tax_profile_id: z.string().max(50).optional(),
avalara_sale_type: z
.enum(['wholesale', 'retail', 'consumed', 'vendor_use'])
.optional(),
avalara_transaction_type: z.number().int().optional(),
avalara_service_type: z.number().int().optional(),
tax_code: z.string().max(50).optional(),
hsn_code: z.string().max(50).optional(),
taxjar_product_code: z.string().max(50).optional(),
invoice_notes: z.string().max(2000).optional(),
meta_data: UpdateAddonMetaDataSchema.optional(),
sku: z.string().max(100).optional(),
accounting_code: z.string().max(100).optional(),
accounting_category1: z.string().max(100).optional(),
accounting_category2: z.string().max(100).optional(),
accounting_category3: z.string().max(100).optional(),
accounting_category4: z.string().max(100).optional(),
is_shippable: z.boolean().default(false).optional(),
shipping_frequency_period: z.number().int().min(1).optional(),
shipping_frequency_period_unit: z
.enum(['year', 'month', 'week', 'day'])
.optional(),
included_in_mrr: z.boolean().optional(),
show_description_in_invoices: z.boolean().default(false).optional(),
show_description_in_quotes: z.boolean().default(false).optional(),
price_in_decimal: z.string().max(39).optional(),
proration_type: z
.enum(['site_default', 'partial_term', 'full_term'])
.optional(),
tiers: UpdateAddonTiersSchema.optional(),
tax_providers_fields: UpdateAddonTaxProvidersFieldsSchema.optional(),
});
export { UpdateAddonBodySchema };
//Addon.list
const ListAddonIdSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListAddonNameSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListAddonPricingModelSchema = z.object({
is: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
is_not: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
in: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
not_in: z
.enum(['flat_fee', 'per_unit', 'tiered', 'volume', 'stairstep'])
.optional(),
});
const ListAddonTypeSchema = z.object({
is: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
is_not: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
in: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
not_in: z
.enum(['on_off', 'quantity', 'tiered', 'volume', 'stairstep'])
.optional(),
});
const ListAddonChargeTypeSchema = z.object({
is: z.enum(['recurring', 'non_recurring']).optional(),
is_not: z.enum(['recurring', 'non_recurring']).optional(),
in: z.enum(['recurring', 'non_recurring']).optional(),
not_in: z.enum(['recurring', 'non_recurring']).optional(),
});
const ListAddonPriceSchema = z.object({
is: z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: z.string().regex(RegExp('^-?\\d+$')).optional(),
between: z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
});
const ListAddonPeriodSchema = z.object({
is: z.string().regex(RegExp('^-?\\d+$')).optional(),
is_not: z.string().regex(RegExp('^-?\\d+$')).optional(),
lt: z.string().regex(RegExp('^-?\\d+$')).optional(),
lte: z.string().regex(RegExp('^-?\\d+$')).optional(),
gt: z.string().regex(RegExp('^-?\\d+$')).optional(),
gte: z.string().regex(RegExp('^-?\\d+$')).optional(),
between: z.string().regex(RegExp('^\\[-?\\d+,-?\\d+\\]$')).optional(),
});
const ListAddonPeriodUnitSchema = z.object({
is: z.enum(['day', 'week', 'month', 'year', 'not_applicable']).optional(),
is_not: z.enum(['day', 'week', 'month', 'year', 'not_applicable']).optional(),
in: z.enum(['day', 'week', 'month', 'year', 'not_applicable']).optional(),
not_in: z.enum(['day', 'week', 'month', 'year', 'not_applicable']).optional(),
});
const ListAddonStatusSchema = z.object({
is: z.enum(['active', 'archived', 'deleted']).optional(),
is_not: z.enum(['active', 'archived', 'deleted']).optional(),
in: z.enum(['active', 'archived', 'deleted']).optional(),
not_in: z.enum(['active', 'archived', 'deleted']).optional(),
});
const ListAddonUpdatedAtSchema = 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 ListAddonCurrencyCodeSchema = z.object({
is: z.string().min(1).optional(),
is_not: z.string().min(1).optional(),
starts_with: z.string().min(1).optional(),
in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(),
});
const ListAddonChannelSchema = z.object({
is: z.enum(['web', 'app_store', 'play_store']).optional(),
is_not: z.enum(['web', 'app_store', 'play_store']).optional(),
in: z.enum(['web', 'app_store', 'play_store']).optional(),
not_in: z.enum(['web', 'app_store', 'play_store']).optional(),
});
const ListAddonBodySchema = z.looseObject({
limit: z.number().int().min(1).max(100).optional(),
offset: z.string().max(1000).optional(),
id: ListAddonIdSchema.optional(),
name: ListAddonNameSchema.optional(),
pricing_model: ListAddonPricingModelSchema.optional(),
type: ListAddonTypeSchema.optional(),
charge_type: ListAddonChargeTypeSchema.optional(),
price: ListAddonPriceSchema.optional(),
period: ListAddonPeriodSchema.optional(),
period_unit: ListAddonPeriodUnitSchema.optional(),
status: ListAddonStatusSchema.optional(),
updated_at: ListAddonUpdatedAtSchema.optional(),
currency_code: ListAddonCurrencyCodeSchema.optional(),
channel: ListAddonChannelSchema.optional(),
include_deleted: z.boolean().default(false).optional(),
});
export { ListAddonBodySchema };
//Addon.copy
const CopyAddonBodySchema = z.looseObject({
from_site: z.string().max(50),
id_at_from_site: z.string().max(100),
id: z.string().max(100).optional(),
for_site_merging: z.boolean().default(false).optional(),
});
export { CopyAddonBodySchema };