chargebee
Version:
A library for integrating with Chargebee.
118 lines (105 loc) • 3.15 kB
TypeScript
///<reference path='./../core.d.ts'/>
///<reference path='./../index.d.ts'/>
///<reference path='./filter.d.ts'/>
declare module 'chargebee' {
export interface AttachedItem {
id: string;
parent_item_id: string;
item_id: string;
type: 'recommended' | 'mandatory' | 'optional';
status?: 'active' | 'archived' | 'deleted';
quantity?: number;
quantity_in_decimal?: string;
billing_cycles?: number;
charge_on_event: ChargeOnEventEnum;
charge_once: boolean;
created_at: number;
resource_version?: number;
updated_at?: number;
channel?: ChannelEnum;
business_entity_id?: string;
deleted: boolean;
}
export namespace AttachedItem {
export class AttachedItemResource {
create(
item_id: string,
input: CreateInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<CreateResponse>>;
update(
attached_item_id: string,
input: UpdateInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<UpdateResponse>>;
retrieve(
attached_item_id: string,
input: RetrieveInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<RetrieveResponse>>;
delete(
attached_item_id: string,
input: DeleteInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<DeleteResponse>>;
list(
item_id: string,
input?: ListInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<ListResponse>>;
}
export interface CreateResponse {
attached_item: AttachedItem;
}
export interface UpdateResponse {
attached_item: AttachedItem;
}
export interface RetrieveResponse {
attached_item: AttachedItem;
}
export interface DeleteResponse {
attached_item: AttachedItem;
}
export interface ListResponse {
list: { attached_item: AttachedItem }[];
next_offset?: string;
}
// REQUEST PARAMS
//---------------
export interface CreateInputParam {
item_id: string;
type?: 'recommended' | 'mandatory' | 'optional';
billing_cycles?: number;
quantity?: number;
quantity_in_decimal?: string;
charge_on_event?: ChargeOnEventEnum;
charge_once?: boolean;
business_entity_id?: string;
}
export interface UpdateInputParam {
parent_item_id: string;
type?: 'recommended' | 'mandatory' | 'optional';
billing_cycles?: number;
quantity?: number;
quantity_in_decimal?: string;
charge_on_event?: ChargeOnEventEnum;
charge_once?: boolean;
}
export interface RetrieveInputParam {
parent_item_id: string;
}
export interface DeleteInputParam {
parent_item_id: string;
}
export interface ListInputParam {
limit?: number;
offset?: string;
id?: filter.String;
item_id?: filter.String;
type?: filter.Enum;
item_type?: filter.Enum;
charge_on_event?: filter.Enum;
updated_at?: filter.Timestamp;
}
}
}