/*
 * 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 { TransactionListForAccount } from './transactionListForAccount';

export class AccountHolderTransactionListRequest {
    /**
    * The code of the account holder that owns the account(s) of which retrieve the transaction list.
    */
    'accountHolderCode': string;
    /**
    * A list of accounts to include in the transaction list. If left blank, the last fifty (50) transactions for all accounts of the account holder will be included.
    */
    'transactionListsPerAccount'?: Array<TransactionListForAccount>;
    /**
    * A list of statuses to include in the transaction list. If left blank, all transactions will be included. >Permitted values: >* `PendingCredit` - a pending balance credit. >* `CreditFailed` - a pending credit failure; the balance will not be credited. >* `Credited` - a credited balance. >* `PendingDebit` - a pending balance debit (e.g., a refund). >* `CreditClosed` - a pending credit closed; the balance will not be credited. >* `CreditSuspended` - a pending credit closed; the balance will not be credited. >* `DebitFailed` - a pending debit failure; the balance will not be debited. >* `Debited` - a debited balance (e.g., a refund). >* `DebitReversedReceived` - a pending refund reversal. >* `DebitedReversed` - a reversed refund. >* `ChargebackReceived` - a received chargeback request. >* `Chargeback` - a processed chargeback. >* `ChargebackReversedReceived` - a pending chargeback reversal. >* `ChargebackReversed` - a reversed chargeback. >* `Converted` - converted. >* `ManualCorrected` - manual booking/adjustment by Adyen. >* `Payout` - a payout. >* `PayoutReversed` - a reversed payout. >* `PendingFundTransfer` - a pending transfer of funds from one account to another. >* `FundTransfer` - a transfer of funds from one account to another.
    */
    'transactionStatuses'?: Array<AccountHolderTransactionListRequest.TransactionStatusesEnum>;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "accountHolderCode",
            "baseName": "accountHolderCode",
            "type": "string"
        },
        {
            "name": "transactionListsPerAccount",
            "baseName": "transactionListsPerAccount",
            "type": "Array<TransactionListForAccount>"
        },
        {
            "name": "transactionStatuses",
            "baseName": "transactionStatuses",
            "type": "Array<AccountHolderTransactionListRequest.TransactionStatusesEnum>"
        }    ];

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

export namespace AccountHolderTransactionListRequest {
    export enum TransactionStatusesEnum {
        BalanceNotPaidOutTransfer = <any> 'BalanceNotPaidOutTransfer',
        BalancePlatformSweep = <any> 'BalancePlatformSweep',
        BalancePlatfromSweepReturned = <any> 'BalancePlatfromSweepReturned',
        Chargeback = <any> 'Chargeback',
        ChargebackCorrection = <any> 'ChargebackCorrection',
        ChargebackCorrectionReceived = <any> 'ChargebackCorrectionReceived',
        ChargebackReceived = <any> 'ChargebackReceived',
        ChargebackReversed = <any> 'ChargebackReversed',
        ChargebackReversedCorrection = <any> 'ChargebackReversedCorrection',
        ChargebackReversedCorrectionReceived = <any> 'ChargebackReversedCorrectionReceived',
        ChargebackReversedReceived = <any> 'ChargebackReversedReceived',
        Converted = <any> 'Converted',
        CreditClosed = <any> 'CreditClosed',
        CreditFailed = <any> 'CreditFailed',
        CreditReversed = <any> 'CreditReversed',
        CreditReversedReceived = <any> 'CreditReversedReceived',
        CreditSuspended = <any> 'CreditSuspended',
        Credited = <any> 'Credited',
        DebitFailed = <any> 'DebitFailed',
        DebitReversedReceived = <any> 'DebitReversedReceived',
        Debited = <any> 'Debited',
        DebitedReversed = <any> 'DebitedReversed',
        DepositCorrectionCredited = <any> 'DepositCorrectionCredited',
        DepositCorrectionDebited = <any> 'DepositCorrectionDebited',
        Fee = <any> 'Fee',
        FundTransfer = <any> 'FundTransfer',
        FundTransferReversed = <any> 'FundTransferReversed',
        InvoiceDeductionCredited = <any> 'InvoiceDeductionCredited',
        InvoiceDeductionDebited = <any> 'InvoiceDeductionDebited',
        ManualCorrected = <any> 'ManualCorrected',
        ManualCorrectionCredited = <any> 'ManualCorrectionCredited',
        ManualCorrectionDebited = <any> 'ManualCorrectionDebited',
        MerchantPayin = <any> 'MerchantPayin',
        MerchantPayinReversed = <any> 'MerchantPayinReversed',
        Payout = <any> 'Payout',
        PayoutReversed = <any> 'PayoutReversed',
        PendingCredit = <any> 'PendingCredit',
        PendingDebit = <any> 'PendingDebit',
        PendingFundTransfer = <any> 'PendingFundTransfer',
        ReCredited = <any> 'ReCredited',
        ReCreditedReceived = <any> 'ReCreditedReceived',
        SecondChargeback = <any> 'SecondChargeback',
        SecondChargebackCorrection = <any> 'SecondChargebackCorrection',
        SecondChargebackCorrectionReceived = <any> 'SecondChargebackCorrectionReceived',
        SecondChargebackReceived = <any> 'SecondChargebackReceived'
    }
}
