<?php
/**
 * WARNING: Do not edit by hand, this file was generated by Crank:
 *
 * https://github.com/gocardless/crank
 */

namespace GoCardlessPro\Resources;

/**
 * A thin wrapper around a outbound_payment, providing access to its
 * attributes
 *
 * @property-read mixed $amount
 * @property-read mixed $created_at
 * @property-read mixed $currency
 * @property-read mixed $description
 * @property-read mixed $execution_date
 * @property-read mixed $id
 * @property-read mixed $is_withdrawal
 * @property-read mixed $links
 * @property-read mixed $metadata
 * @property-read mixed $reference
 * @property-read mixed $scheme
 * @property-read mixed $status
 * @property-read mixed $verifications
 */
class OutboundPayment extends BaseResource
{
    protected $model_name = "OutboundPayment";

    /**
     * Amount, in the lowest denomination for the currency (e.g. pence in GBP,
     * cents in EUR).
     */
    protected $amount;

    /**
     * Fixed [timestamp](#api-usage-dates-and-times), recording when the
     * outbound payment was created.
     */
    protected $created_at;

    /**
     * [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217#Active_codes) currency.
     * Currently only "GBP" is supported.
     */
    protected $currency;

    /**
     * A human-readable description of the outbound payment
     */
    protected $description;

    /**
     * A future date on which the outbound payment should be sent.
     * If not specified, the payment will be sent as soon as possible.
     */
    protected $execution_date;

    /**
     * Unique identifier of the outbound payment.
     */
    protected $id;

    /**
     * Indicates whether the outbound payment is a withdrawal to your verified
     * business bank account.
     */
    protected $is_withdrawal;

    /**
     * 
     */
    protected $links;

    /**
     * Key-value store of custom data. Up to 3 keys are permitted, with
     * key names up to 50 characters and values up to 500 characters.
     */
    protected $metadata;

    /**
     * An auto-generated reference that will appear on your receiver's bank
     * statement.
     */
    protected $reference;

    /**
     * Bank payment scheme to process the outbound payment. Currently only
     * "faster_payments" (GBP) is supported.
     */
    protected $scheme;

    /**
     * One of:
     * <ul>
     * <li>`verifying`: The payment has been
     * [created](#outbound-payments-create-an-outbound-payment) and the
     * verification process has begun.</li>
     * <li>`pending_approval`: The payment is awaiting
     * [approval](#outbound-payments-approve-an-outbound-payment).</li>
     * <li>`scheduled`: The payment has passed verification &
     * [approval](#outbound-payments-approve-an-outbound-payment), but
     * processing has not yet begun.</li>
     * <li>`executing`: The execution date has arrived and the payment has been
     * placed in queue for processing.</li>
     * <li>`executed`: The payment has been accepted by the scheme and is now on
     * its way to the recipient.</li>
     * <li>`cancelled`: The payment has been
     * [cancelled](#outbound-payments-cancel-an-outbound-payment) or was not
     * [approved](#outbound-payments-approve-an-outbound-payment) on time.</li>
     * <li>`failed`: The payment was not sent, usually due to an error while or
     * after executing.</li>
     * </ul>
     */
    protected $status;

    /**
     * Contains details of the verifications performed for the outbound payment
     */
    protected $verifications;

}
