All files / codegen/models PriceScheme.ts

71.42% Statements 95/133
100% Branches 0/0
0% Functions 0/3
71.42% Lines 95/133

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 1351x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x                                   1x 1x                                          
/* tslint:disable */
/* eslint-disable */
/**
 * Octane API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
 
import { exists, mapValues } from '../runtime';
import {
    PriceTier,
    PriceTierFromJSON,
    PriceTierFromJSONTyped,
    PriceTierToJSON,
} from './PriceTier';
 
/**
 * 
 * @export
 * @interface PriceScheme
 */
export interface PriceScheme {
    /**
     * 
     * @type {string}
     * @memberof PriceScheme
     */
    displayName?: string | null;
    /**
     * 
     * @type {string}
     * @memberof PriceScheme
     */
    name?: string | null;
    /**
     * 
     * @type {any}
     * @memberof PriceScheme
     */
    readonly schemeType?: any | null;
    /**
     * Size of the unit batch to use for the prices. Can only be set if scheme_type='FLAT' or 'TIERED'. E.g. To charge $10 per 100 API Requests, set batch_size to 100.
     * @type {number}
     * @memberof PriceScheme
     */
    batchSize?: number | null;
    /**
     * Array of price tiers, each of which consists of `price` and `cap` key:value pairs
     * @type {Array<PriceTier>}
     * @memberof PriceScheme
     */
    prices?: Array<PriceTier>;
    /**
     * Array of (key, value) meter labels to price on & the price tiers that should be used against those labels
     * @type {Array<object>}
     * @memberof PriceScheme
     */
    priceList?: Array<object>;
    /**
     * 
     * @type {string}
     * @memberof PriceScheme
     */
    timeUnitName?: string | null;
    /**
     * 
     * @type {string}
     * @memberof PriceScheme
     */
    unitName?: string | null;
    /**
     * The % increase/decrease in price after the minimum charge is reached.
     * @type {number}
     * @memberof PriceScheme
     */
    postMinimumChargePercentageChange?: number | null;
    /**
     * The frequency at which the meter should be tiered, in months. For example, if set to 12, the usage over the full year will be included when computing the tier. Only available for TIERED and STAIRSTEP scheme_types with a SUM or TIME_WEIGHTED_SUM meter.
     * @type {number}
     * @memberof PriceScheme
     */
    frequency?: number;
}
 
export function PriceSchemeFromJSON(json: any): PriceScheme {
    return PriceSchemeFromJSONTyped(json, false);
}
 
export function PriceSchemeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PriceScheme {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'displayName': !exists(json, 'display_name') ? undefined : json['display_name'],
        'name': !exists(json, 'name') ? undefined : json['name'],
        'schemeType': !exists(json, 'scheme_type') ? undefined : json['scheme_type'],
        'batchSize': !exists(json, 'batch_size') ? undefined : json['batch_size'],
        'prices': !exists(json, 'prices') ? undefined : ((json['prices'] as Array<any>).map(PriceTierFromJSON)),
        'priceList': !exists(json, 'price_list') ? undefined : json['price_list'],
        'timeUnitName': !exists(json, 'time_unit_name') ? undefined : json['time_unit_name'],
        'unitName': !exists(json, 'unit_name') ? undefined : json['unit_name'],
        'postMinimumChargePercentageChange': !exists(json, 'post_minimum_charge_percentage_change') ? undefined : json['post_minimum_charge_percentage_change'],
        'frequency': !exists(json, 'frequency') ? undefined : json['frequency'],
    };
}
 
export function PriceSchemeToJSON(value?: PriceScheme | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'display_name': value.displayName,
        'name': value.name,
        'batch_size': value.batchSize,
        'prices': value.prices === undefined ? undefined : ((value.prices as Array<any>).map(PriceTierToJSON)),
        'price_list': value.priceList,
        'time_unit_name': value.timeUnitName,
        'unit_name': value.unitName,
        'post_minimum_charge_percentage_change': value.postMinimumChargePercentageChange,
        'frequency': value.frequency,
    };
}