/*
 * The version of the OpenAPI document: v6
 * 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 { KYCCheckResult } from './kYCCheckResult';
import { KYCLegalArrangementCheckResult } from './kYCLegalArrangementCheckResult';
import { KYCLegalArrangementEntityCheckResult } from './kYCLegalArrangementEntityCheckResult';
import { KYCPayoutMethodCheckResult } from './kYCPayoutMethodCheckResult';
import { KYCShareholderCheckResult } from './kYCShareholderCheckResult';
import { KYCSignatoryCheckResult } from './kYCSignatoryCheckResult';
import { KYCUltimateParentCompanyCheckResult } from './kYCUltimateParentCompanyCheckResult';

export class KYCVerificationResult {
    'accountHolder'?: KYCCheckResult;
    /**
    * The results of the checks on the legal arrangements.
    */
    'legalArrangements'?: Array<KYCLegalArrangementCheckResult>;
    /**
    * The results of the checks on the legal arrangement entities.
    */
    'legalArrangementsEntities'?: Array<KYCLegalArrangementEntityCheckResult>;
    /**
    * The results of the checks on the payout methods.
    */
    'payoutMethods'?: Array<KYCPayoutMethodCheckResult>;
    /**
    * The results of the checks on the shareholders.
    */
    'shareholders'?: Array<KYCShareholderCheckResult>;
    /**
    * The results of the checks on the signatories.
    */
    'signatories'?: Array<KYCSignatoryCheckResult>;
    /**
    * The result of the check on the Ultimate Parent Company.
    */
    'ultimateParentCompany'?: Array<KYCUltimateParentCompanyCheckResult>;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "accountHolder",
            "baseName": "accountHolder",
            "type": "KYCCheckResult"
        },
        {
            "name": "legalArrangements",
            "baseName": "legalArrangements",
            "type": "Array<KYCLegalArrangementCheckResult>"
        },
        {
            "name": "legalArrangementsEntities",
            "baseName": "legalArrangementsEntities",
            "type": "Array<KYCLegalArrangementEntityCheckResult>"
        },
        {
            "name": "payoutMethods",
            "baseName": "payoutMethods",
            "type": "Array<KYCPayoutMethodCheckResult>"
        },
        {
            "name": "shareholders",
            "baseName": "shareholders",
            "type": "Array<KYCShareholderCheckResult>"
        },
        {
            "name": "signatories",
            "baseName": "signatories",
            "type": "Array<KYCSignatoryCheckResult>"
        },
        {
            "name": "ultimateParentCompany",
            "baseName": "ultimateParentCompany",
            "type": "Array<KYCUltimateParentCompanyCheckResult>"
        }    ];

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

