/*
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 * Adyen NodeJS API Library
 * Copyright (c) 2021 Adyen B.V.
 * This file is open source and available under the MIT license.
 * See the LICENSE file for more info.
 */

/**
 * Terminal API
 * Definition of Terminal API Schema
 *
 * 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 { CashHandlingDevice } from './cashHandlingDevice';
import { GlobalStatusType } from './globalStatusType';

export class POIStatus {
    'CardReaderOKFlag'?: boolean;
    'CashHandlingDevice'?: Array<CashHandlingDevice>;
    'CommunicationOKFlag'?: boolean;
    'FraudPreventionFlag'?: boolean;
    'GlobalStatus': GlobalStatusType;
    'PEDOKFlag'?: boolean;
    'PrinterStatus'?: POIStatus.PrinterStatusEnum;
    'SecurityOKFlag'?: boolean;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "CardReaderOKFlag",
            "baseName": "CardReaderOKFlag",
            "type": "boolean"
        },
        {
            "name": "CashHandlingDevice",
            "baseName": "CashHandlingDevice",
            "type": "Array<CashHandlingDevice>"
        },
        {
            "name": "CommunicationOKFlag",
            "baseName": "CommunicationOKFlag",
            "type": "boolean"
        },
        {
            "name": "FraudPreventionFlag",
            "baseName": "FraudPreventionFlag",
            "type": "boolean"
        },
        {
            "name": "GlobalStatus",
            "baseName": "GlobalStatus",
            "type": "GlobalStatusType"
        },
        {
            "name": "PEDOKFlag",
            "baseName": "PEDOKFlag",
            "type": "boolean"
        },
        {
            "name": "PrinterStatus",
            "baseName": "PrinterStatus",
            "type": "POIStatus.PrinterStatusEnum"
        },
        {
            "name": "SecurityOKFlag",
            "baseName": "SecurityOKFlag",
            "type": "boolean"
        }    ];

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

export namespace POIStatus {
    export enum PrinterStatusEnum {
        NoPaper = <any> 'NoPaper',
        Ok = <any> 'OK',
        OutOfOrder = <any> 'OutOfOrder',
        PaperJam = <any> 'PaperJam',
        PaperLow = <any> 'PaperLow'
    }
}
