# All files / codegen/models AddOn.ts

69.6% Statements 71/102
100% Branches 0/0
0% Functions 0/3
69.6% Lines 71/102

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
    1041x
    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 {
        Feature,
        FeatureFromJSON,
        FeatureFromJSONTyped,
        FeatureToJSON,
    } from './Feature';

    /**
     *
     * @export
     * @interface AddOn
     */
    export interface AddOn {
        /**
         *
         * @type {Feature}
         * @memberof AddOn
         */
        feature: Feature;
        /**
         * Price of the add on
         * @type {number}
         * @memberof AddOn
         */
        price: number;
        /**
         * If true, customer is just charged once in the first billing cycle.
         * @type {boolean}
         * @memberof AddOn
         */
        singleUse: boolean;
        /**
         *
         * @type {boolean}
         * @memberof AddOn
         */
        quantityEnabled: boolean;
        /**
         * If true, immediately invoice the customer for this add on.
         * @type {boolean}
         * @memberof AddOn
         */
        immediatelyCharge?: boolean;
        /**
         * The maximum number of add-ons that an end-customer can apply to their subscription.
         * @type {number}
         * @memberof AddOn
         */
        limit?: number;
    }

    export function AddOnFromJSON(json: any): AddOn {
        return AddOnFromJSONTyped(json, false);
    }

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

            'feature': FeatureFromJSON(json['feature']),
            'price': json['price'],
            'singleUse': json['single_use'],
            'quantityEnabled': json['quantity_enabled'],
            'immediatelyCharge': !exists(json, 'immediately_charge') ? undefined : json['immediately_charge'],
            'limit': !exists(json, 'limit') ? undefined : json['limit'],
        };
    }

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

            'feature': FeatureToJSON(value.feature),
            'price': value.price,
            'single_use': value.singleUse,
            'quantity_enabled': value.quantityEnabled,
            'immediately_charge': value.immediatelyCharge,
            'limit': value.limit,
        };
    }