# All files / codegen/models PriceSchemeInputArgs.ts

70% Statements 77/110
100% Branches 0/0
0% Functions 0/3
70% Lines 77/110

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
    1121x
    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 {
        PriceInputArgs1,
        PriceInputArgs1FromJSON,
        PriceInputArgs1FromJSONTyped,
        PriceInputArgs1ToJSON,
    } from './PriceInputArgs1';

    /**
     *
     * @export
     * @interface PriceSchemeInputArgs
     */
    export interface PriceSchemeInputArgs {
        /**
         * One of 'FLAT', 'TIERED', or 'STAIRSTEP'
         * @type {string}
         * @memberof PriceSchemeInputArgs
         */
        schemeType: string;
        /**
         * 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 PriceSchemeInputArgs
         */
        batchSize?: number;
        /**
         * Array of price tiers, each of which consists of `price` and `cap` key:value pairs
         * @type {Array<PriceInputArgs1>}
         * @memberof PriceSchemeInputArgs
         */
        prices?: Array<PriceInputArgs1>;
        /**
         * The time unit for the metered component (e.g., month or hour)
         * @type {string}
         * @memberof PriceSchemeInputArgs
         */
        timeUnitName?: string;
        /**
         * The name of the unit used for this metered component (e.g., gigabyte)
         * @type {string}
         * @memberof PriceSchemeInputArgs
         */
        unitName?: string;
        /**
         * Array of (key, value) meter labels to price on & the price tiers that should be used against those labels
         * @type {Array<object>}
         * @memberof PriceSchemeInputArgs
         */
        priceList?: Array<object>;
        /**
         * The % increase/decrease in price after the minimum charge is reached (e.g., 25.5 -> 25.5% increase).
         * @type {number}
         * @memberof PriceSchemeInputArgs
         */
        postMinimumChargePercentageChange?: number;
    }

    export function PriceSchemeInputArgsFromJSON(json: any): PriceSchemeInputArgs {
        return PriceSchemeInputArgsFromJSONTyped(json, false);
    }

    export function PriceSchemeInputArgsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PriceSchemeInputArgs {
        if ((json === undefined) || (json === null)) {
            return json;
        }
        return {

            'schemeType': json['scheme_type'],
            'batchSize': !exists(json, 'batch_size') ? undefined : json['batch_size'],
            'prices': !exists(json, 'prices') ? undefined : ((json['prices'] as Array<any>).map(PriceInputArgs1FromJSON)),
            'timeUnitName': !exists(json, 'time_unit_name') ? undefined : json['time_unit_name'],
            'unitName': !exists(json, 'unit_name') ? undefined : json['unit_name'],
            'priceList': !exists(json, 'price_list') ? undefined : json['price_list'],
            'postMinimumChargePercentageChange': !exists(json, 'post_minimum_charge_percentage_change') ? undefined : json['post_minimum_charge_percentage_change'],
        };
    }

    export function PriceSchemeInputArgsToJSON(value?: PriceSchemeInputArgs | null): any {
        if (value === undefined) {
            return undefined;
        }
        if (value === null) {
            return null;
        }
        return {

            'scheme_type': value.schemeType,
            'batch_size': value.batchSize,
            'prices': value.prices === undefined ? undefined : ((value.prices as Array<any>).map(PriceInputArgs1ToJSON)),
            'time_unit_name': value.timeUnitName,
            'unit_name': value.unitName,
            'price_list': value.priceList,
            'post_minimum_charge_percentage_change': value.postMinimumChargePercentageChange,
        };
    }