@ringer-tel/ivy
Version:
TypeScript SDK for Ringer APIs
202 lines (187 loc) • 6.45 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* Ringer Business API
* This API provides comprehensive endpoints for the Ringer Business system. It includes functionality for managing customer accounts, addresses, sites, phone numbers, payments, users, and other business resources. Operations typically require authentication and appropriate permissions.
*
* The version of the OpenAPI document: 1.0.6
* Contact: support@ringer.tel
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { mapValues } from '../runtime';
import type { PackageFeature } from './PackageFeature';
import {
PackageFeatureFromJSON,
PackageFeatureFromJSONTyped,
PackageFeatureToJSON,
PackageFeatureToJSONTyped,
} from './PackageFeature';
/**
*
* @export
* @interface PackageCore
*/
export interface PackageCore {
/**
* Unique identifier for the package.
* @type {number}
* @memberof PackageCore
*/
id: number;
/**
* The name of the package.
* @type {string}
* @memberof PackageCore
*/
name: string;
/**
* A brief description of what the package includes or its purpose.
* @type {string}
* @memberof PackageCore
*/
description?: string | null;
/**
* The type of item this package represents or groups (e.g., subscription, feature_bundle, usage_minutes).
* @type {string}
* @memberof PackageCore
*/
itemType: string;
/**
* Specific rules or subclassifications for the item type.
* @type {string}
* @memberof PackageCore
*/
itemRules?: string | null;
/**
* The quantity of the item provided by this package (e.g., number of minutes, 1 for a subscription).
* @type {number}
* @memberof PackageCore
*/
itemQuantity: number;
/**
* The cost of this package if it's optional or its contribution to a plan's price.
* @type {string}
* @memberof PackageCore
*/
price: string;
/**
* Three-letter ISO currency code for the package price.
* @type {string}
* @memberof PackageCore
*/
currency: string;
/**
* Identifier of the plan this package definition might be primarily associated with or templated from.
* @type {number}
* @memberof PackageCore
*/
planId?: number | null;
/**
* True if this package is an included part of a plan, false if it's optional.
* @type {boolean}
* @memberof PackageCore
*/
included: boolean;
/**
* Indicates if this package can be removed from a plan by the customer.
* @type {boolean}
* @memberof PackageCore
*/
removable: boolean;
/**
* Category of the package
* @type {string}
* @memberof PackageCore
*/
category?: PackageCoreCategoryEnum;
/**
* Whether the package renews automatically
* @type {boolean}
* @memberof PackageCore
*/
renewable?: boolean;
/**
* List of features included in the package
* @type {Array<PackageFeature>}
* @memberof PackageCore
*/
features?: Array<PackageFeature> | null;
}
/**
* @export
*/
export const PackageCoreCategoryEnum = {
Calling: 'calling',
Messaging: 'messaging',
Conferencing: 'conferencing',
Faxing: 'faxing',
Security: 'security',
BasePlan: 'base_plan',
AddOn: 'add_on'
} as const;
export type PackageCoreCategoryEnum = typeof PackageCoreCategoryEnum[keyof typeof PackageCoreCategoryEnum];
/**
* Check if a given object implements the PackageCore interface.
*/
export function instanceOfPackageCore(value: object): value is PackageCore {
if (!('id' in value) || value['id'] === undefined) return false;
if (!('name' in value) || value['name'] === undefined) return false;
if (!('itemType' in value) || value['itemType'] === undefined) return false;
if (!('itemQuantity' in value) || value['itemQuantity'] === undefined) return false;
if (!('price' in value) || value['price'] === undefined) return false;
if (!('currency' in value) || value['currency'] === undefined) return false;
if (!('included' in value) || value['included'] === undefined) return false;
if (!('removable' in value) || value['removable'] === undefined) return false;
return true;
}
export function PackageCoreFromJSON(json: any): PackageCore {
return PackageCoreFromJSONTyped(json, false);
}
export function PackageCoreFromJSONTyped(json: any, ignoreDiscriminator: boolean): PackageCore {
if (json == null) {
return json;
}
return {
'id': json['id'],
'name': json['name'],
'description': json['description'] == null ? undefined : json['description'],
'itemType': json['item_type'],
'itemRules': json['item_rules'] == null ? undefined : json['item_rules'],
'itemQuantity': json['item_quantity'],
'price': json['price'],
'currency': json['currency'],
'planId': json['plan_id'] == null ? undefined : json['plan_id'],
'included': json['included'],
'removable': json['removable'],
'category': json['category'] == null ? undefined : json['category'],
'renewable': json['renewable'] == null ? undefined : json['renewable'],
'features': json['features'] == null ? undefined : ((json['features'] as Array<any>).map(PackageFeatureFromJSON)),
};
}
export function PackageCoreToJSON(json: any): PackageCore {
return PackageCoreToJSONTyped(json, false);
}
export function PackageCoreToJSONTyped(value?: PackageCore | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}
return {
'id': value['id'],
'name': value['name'],
'description': value['description'],
'item_type': value['itemType'],
'item_rules': value['itemRules'],
'item_quantity': value['itemQuantity'],
'price': value['price'],
'currency': value['currency'],
'plan_id': value['planId'],
'included': value['included'],
'removable': value['removable'],
'category': value['category'],
'renewable': value['renewable'],
'features': value['features'] == null ? undefined : ((value['features'] as Array<any>).map(PackageFeatureToJSON)),
};
}