/*
 * The version of the OpenAPI document: v2
 * 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.
 */


export class TaxReportingClassification {
    /**
    * The organization\'s business type.  Possible values: **other**, **listedPublicCompany**, **subsidiaryOfListedPublicCompany**, **governmentalOrganization**, **internationalOrganization**, **financialInstitution**.
    */
    'businessType'?: TaxReportingClassification.BusinessTypeEnum;
    /**
    * The Global Intermediary Identification Number (GIIN) required for FATCA.
    */
    'financialInstitutionNumber'?: string;
    /**
    * The organization\'s main source of income.  Possible values: **businessOperation**, **realEstateSales**, **investmentInterestOrRoyalty**, **propertyRental**, **other**.
    */
    'mainSourceOfIncome'?: TaxReportingClassification.MainSourceOfIncomeEnum;
    /**
    * The tax reporting classification type.  Possible values: **nonFinancialNonReportable**, **financialNonReportable**, **nonFinancialActive**, **nonFinancialPassive**.
    */
    'type'?: TaxReportingClassification.TypeEnum;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "businessType",
            "baseName": "businessType",
            "type": "TaxReportingClassification.BusinessTypeEnum"
        },
        {
            "name": "financialInstitutionNumber",
            "baseName": "financialInstitutionNumber",
            "type": "string"
        },
        {
            "name": "mainSourceOfIncome",
            "baseName": "mainSourceOfIncome",
            "type": "TaxReportingClassification.MainSourceOfIncomeEnum"
        },
        {
            "name": "type",
            "baseName": "type",
            "type": "TaxReportingClassification.TypeEnum"
        }    ];

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

export namespace TaxReportingClassification {
    export enum BusinessTypeEnum {
        Other = <any> 'other',
        ListedPublicCompany = <any> 'listedPublicCompany',
        SubsidiaryOfListedPublicCompany = <any> 'subsidiaryOfListedPublicCompany',
        GovernmentalOrganization = <any> 'governmentalOrganization',
        InternationalOrganization = <any> 'internationalOrganization',
        FinancialInstitution = <any> 'financialInstitution.'
    }
    export enum MainSourceOfIncomeEnum {
        BusinessOperation = <any> 'businessOperation',
        RealEstateSales = <any> 'realEstateSales',
        InvestmentInterestOrRoyalty = <any> 'investmentInterestOrRoyalty',
        PropertyRental = <any> 'propertyRental',
        Other = <any> 'other'
    }
    export enum TypeEnum {
        NonFinancialNonReportable = <any> 'nonFinancialNonReportable',
        FinancialNonReportable = <any> 'financialNonReportable',
        NonFinancialActive = <any> 'nonFinancialActive',
        NonFinancialPassive = <any> 'nonFinancialPassive'
    }
}
