/**
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 * 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.
 *
 * Adyen for Platforms: Notifications
 * The Notification API sends notifications to the endpoints specified in a given subscription. Subscriptions are managed through the Notification Configuration API. The API specifications listed here detail the format of each notification.  For more information, refer to our [documentation](https://docs.adyen.com/platforms/notifications).
 *
 * The version of the OpenAPI document: 6
 * 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 the class manually.
 */

import { BusinessDetails } from './businessDetails';
import { IndividualDetails } from './individualDetails';
import { ViasAddress } from './viasAddress';
import { ViasPhoneNumber } from './viasPhoneNumber';

export class LegalArrangementEntityDetail {
    'address'?: ViasAddress;
    'businessDetails'?: BusinessDetails;
    /**
    * The e-mail address of the entity.
    */
    'email'?: string;
    /**
    * The phone number of the contact provided as a single string.  It will be handled as a landline phone. **Examples:** \"0031 6 11 22 33 44\", \"+316/1122-3344\", \"(0031) 611223344\"
    */
    'fullPhoneNumber'?: string;
    'individualDetails'?: IndividualDetails;
    /**
    * Adyen-generated unique alphanumeric identifier (UUID) for the entry, returned in the response when you create a legal arrangement entity. Required when updating an existing legal arrangement entity entry in an `/updateAccountHolder` request.
    */
    'legalArrangementEntityCode'?: string;
    /**
    * Your reference for the legal arrangement entity.
    */
    'legalArrangementEntityReference'?: string;
    /**
    * An array containing the roles of the entity in the legal arrangement.  The possible values depend on the legal arrangement `type`.  - For `type` **Association**: **ControllingPerson** and **Shareholder**.  - For `type` **Partnership**: **Partner** and **Shareholder**.  - For `type` **Trust**: **Trustee**, **Settlor**, **Protector**, **Beneficiary**,  and **Shareholder**.  
    */
    'legalArrangementMembers'?: Array<LegalArrangementEntityDetail.LegalArrangementMembersEnum>;
    /**
    * The legal entity type.  Possible values: **Business**, **Individual**, **NonProfit**, **PublicCompany**, or **Partnership**. 
    */
    'legalEntityType': LegalArrangementEntityDetail.LegalEntityTypeEnum;
    'phoneNumber'?: ViasPhoneNumber;
    /**
    * The URL of the website of the contact.
    */
    'webAddress'?: string;
}

export namespace LegalArrangementEntityDetail {
    export enum LegalArrangementMembersEnum {
        Beneficiary = <any> 'Beneficiary',
        ControllingPerson = <any> 'ControllingPerson',
        Partner = <any> 'Partner',
        Protector = <any> 'Protector',
        Settlor = <any> 'Settlor',
        Shareholder = <any> 'Shareholder',
        Trustee = <any> 'Trustee'
    }
    export enum LegalEntityTypeEnum {
        Business = <any> 'Business',
        Individual = <any> 'Individual',
        NonProfit = <any> 'NonProfit',
        Partnership = <any> 'Partnership',
        PublicCompany = <any> 'PublicCompany'
    }
}
