chargebee
Version:
A library for integrating with Chargebee.
118 lines (105 loc) • 3.05 kB
TypeScript
///<reference path='./../core.d.ts'/>
///<reference path='./../index.d.ts'/>
///<reference path='./filter.d.ts'/>
declare module 'chargebee' {
export interface PriceVariant {
id: string;
name: string;
external_name?: string;
variant_group?: string;
description?: string;
status?: 'active' | 'archived' | 'deleted';
created_at: number;
resource_version?: number;
updated_at?: number;
archived_at?: number;
attributes?: PriceVariant.Attribute[];
business_entity_id?: string;
deleted: boolean;
}
export namespace PriceVariant {
export class PriceVariantResource {
create(
input: CreateInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<CreateResponse>>;
retrieve(
price_variant_id: string,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<RetrieveResponse>>;
update(
price_variant_id: string,
input: UpdateInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<UpdateResponse>>;
delete(
price_variant_id: string,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<DeleteResponse>>;
list(
input?: ListInputParam,
headers?: ChargebeeRequestHeader,
): Promise<ChargebeeResponse<ListResponse>>;
}
export interface CreateResponse {
price_variant: PriceVariant;
}
export interface RetrieveResponse {
price_variant: PriceVariant;
}
export interface UpdateResponse {
price_variant: PriceVariant;
}
export interface DeleteResponse {
price_variant: PriceVariant;
}
export interface ListResponse {
list: { price_variant: PriceVariant }[];
next_offset?: string;
}
export interface Attribute {
name: string;
value: string;
}
// REQUEST PARAMS
//---------------
export interface CreateInputParam {
id: string;
name: string;
external_name?: string;
description?: string;
variant_group?: string;
business_entity_id?: string;
attributes?: AttributesCreateInputParam[];
}
export interface UpdateInputParam {
name?: string;
external_name?: string;
description?: string;
variant_group?: string;
status?: 'active' | 'archived';
attributes?: AttributesUpdateInputParam[];
}
export interface ListInputParam {
limit?: number;
offset?: string;
id?: filter.String;
name?: filter.String;
status?: filter.Enum;
updated_at?: filter.Timestamp;
created_at?: filter.Timestamp;
business_entity_id?: filter.String;
include_site_level_resources?: filter.Boolean;
'sort_by[asc]'?: string;
'sort_by[desc]'?: string;
}
export interface AttributesCreateInputParam {
name: string;
value: string;
}
export interface AttributesUpdateInputParam {
name: string;
value: string;
}
}
}