/*
 * The version of the OpenAPI document: v1
 * Contact: developer-experience@adyen.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit this class manually.
 */

import { CardholderReceipt } from './cardholderReceipt';
import { Connectivity } from './connectivity';
import { Gratuity } from './gratuity';
import { Hardware } from './hardware';
import { Nexo } from './nexo';
import { OfflineProcessing } from './offlineProcessing';
import { Opi } from './opi';
import { Passcodes } from './passcodes';
import { ReceiptOptions } from './receiptOptions';
import { ReceiptPrinting } from './receiptPrinting';
import { Signature } from './signature';
import { Standalone } from './standalone';
import { Surcharge } from './surcharge';
import { Timeouts } from './timeouts';
import { WifiProfiles } from './wifiProfiles';

export class TerminalSettings {
    'cardholderReceipt'?: CardholderReceipt;
    'connectivity'?: Connectivity;
    /**
    * Settings for tipping with or without predefined options to choose from. The maximum number of predefined options is four, or three plus the option to enter a custom tip.
    */
    'gratuities'?: Array<Gratuity>;
    'hardware'?: Hardware;
    'nexo'?: Nexo;
    'offlineProcessing'?: OfflineProcessing;
    'opi'?: Opi;
    'passcodes'?: Passcodes;
    'receiptOptions'?: ReceiptOptions;
    'receiptPrinting'?: ReceiptPrinting;
    'signature'?: Signature;
    'standalone'?: Standalone;
    'surcharge'?: Surcharge;
    'timeouts'?: Timeouts;
    'wifiProfiles'?: WifiProfiles;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "cardholderReceipt",
            "baseName": "cardholderReceipt",
            "type": "CardholderReceipt"
        },
        {
            "name": "connectivity",
            "baseName": "connectivity",
            "type": "Connectivity"
        },
        {
            "name": "gratuities",
            "baseName": "gratuities",
            "type": "Array<Gratuity>"
        },
        {
            "name": "hardware",
            "baseName": "hardware",
            "type": "Hardware"
        },
        {
            "name": "nexo",
            "baseName": "nexo",
            "type": "Nexo"
        },
        {
            "name": "offlineProcessing",
            "baseName": "offlineProcessing",
            "type": "OfflineProcessing"
        },
        {
            "name": "opi",
            "baseName": "opi",
            "type": "Opi"
        },
        {
            "name": "passcodes",
            "baseName": "passcodes",
            "type": "Passcodes"
        },
        {
            "name": "receiptOptions",
            "baseName": "receiptOptions",
            "type": "ReceiptOptions"
        },
        {
            "name": "receiptPrinting",
            "baseName": "receiptPrinting",
            "type": "ReceiptPrinting"
        },
        {
            "name": "signature",
            "baseName": "signature",
            "type": "Signature"
        },
        {
            "name": "standalone",
            "baseName": "standalone",
            "type": "Standalone"
        },
        {
            "name": "surcharge",
            "baseName": "surcharge",
            "type": "Surcharge"
        },
        {
            "name": "timeouts",
            "baseName": "timeouts",
            "type": "Timeouts"
        },
        {
            "name": "wifiProfiles",
            "baseName": "wifiProfiles",
            "type": "WifiProfiles"
        }    ];

    static getAttributeTypeMap() {
        return TerminalSettings.attributeTypeMap;
    }
}

