/*
 * 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.
 */


export class UpdateAccountHolderStateRequest {
    /**
    * The code of the Account Holder on which to update the state.
    */
    'accountHolderCode': string;
    /**
    * If true, disable the requested state.  If false, enable the requested state.
    */
    'disable': boolean;
    /**
    * The reason that the state is being updated. >Required if the state is being disabled.
    */
    'reason'?: string;
    /**
    * The state to be updated. >Permitted values are: `Processing`, `Payout`
    */
    'stateType': UpdateAccountHolderStateRequest.StateTypeEnum;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "accountHolderCode",
            "baseName": "accountHolderCode",
            "type": "string"
        },
        {
            "name": "disable",
            "baseName": "disable",
            "type": "boolean"
        },
        {
            "name": "reason",
            "baseName": "reason",
            "type": "string"
        },
        {
            "name": "stateType",
            "baseName": "stateType",
            "type": "UpdateAccountHolderStateRequest.StateTypeEnum"
        }    ];

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

export namespace UpdateAccountHolderStateRequest {
    export enum StateTypeEnum {
        LimitedPayout = <any> 'LimitedPayout',
        LimitedProcessing = <any> 'LimitedProcessing',
        LimitlessPayout = <any> 'LimitlessPayout',
        LimitlessProcessing = <any> 'LimitlessProcessing',
        Payout = <any> 'Payout',
        Processing = <any> 'Processing'
    }
}
