/**
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 * 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 { Amount } from './amount';
import { BankAccountDetail } from './bankAccountDetail';
import { ErrorFieldType } from './errorFieldType';
import { LocalDate } from './localDate';
import { OperationStatus } from './operationStatus';

export class AccountHolderPayoutNotificationContent {
    /**
    * The code of the account from which the payout was made.
    */
    'accountCode': string;
    /**
    * The code of the Account Holder to which the payout was made.
    */
    'accountHolderCode': string;
    /**
    * The payout amounts (per currency).
    */
    'amounts'?: Array<Amount>;
    'bankAccountDetail'?: BankAccountDetail;
    /**
    * A description of the payout.
    */
    'description'?: string;
    'estimatedArrivalDate'?: LocalDate;
    /**
    * Invalid fields list.
    */
    'invalidFields'?: Array<ErrorFieldType>;
    /**
    * The merchant reference.
    */
    'merchantReference'?: string;
    /**
    * The PSP reference of the original payout.
    */
    'originalPspReference'?: string;
    /**
    * The country code of the bank from which the payout was initiated.
    */
    'payoutAccountCountry'?: string;
    /**
    * The account number of the bank from which the payout was initiated.
    */
    'payoutAccountNumber'?: string;
    /**
    * The balance account id to which payment was made
    */
    'payoutBalanceAccountId'?: string;
    /**
    * The name of the bank the payout from which the payout was initiated.
    */
    'payoutBankName'?: string;
    /**
    * The branch code of the bank from which the payout was initiated.
    */
    'payoutBranchCode'?: string;
    /**
    * The unique payout identifier.
    */
    'payoutReference'?: number;
    /**
    * Speed with which payouts for this account are processed. Permitted values: `STANDARD`, `SAME_DAY`.
    */
    'payoutSpeed'?: AccountHolderPayoutNotificationContent.PayoutSpeedEnum;
    'status'?: OperationStatus;
}

export namespace AccountHolderPayoutNotificationContent {
    export enum PayoutSpeedEnum {
        Instant = <any> 'INSTANT',
        SameDay = <any> 'SAME_DAY',
        Standard = <any> 'STANDARD'
    }
}
