<?php

namespace PayPal\Api;

use PayPal\Common\PayPalModel;

/**
 * Class AgreementDetails
 *
 * A resource representing the agreement details.
 *
 * @package PayPal\Api
 *
 * @property \PayPal\Api\Currency outstanding_balance
 * @property string cycles_remaining
 * @property string cycles_completed
 * @property string next_billing_date
 * @property string last_payment_date
 * @property \PayPal\Api\Currency last_payment_amount
 * @property string final_payment_date
 * @property string failed_payment_count
 */
class AgreementDetails extends PayPalModel {

	/**
	 * The outstanding balance for this agreement.
	 *
	 * @param \PayPal\Api\Currency $outstanding_balance
	 * 
	 * @return $this
	 */
	public function setOutstandingBalance( $outstanding_balance) {
		$this->outstanding_balance = $outstanding_balance;
		return $this;
	}

	/**
	 * The outstanding balance for this agreement.
	 *
	 * @return \PayPal\Api\Currency
	 */
	public function getOutstandingBalance() {
		return $this->outstanding_balance;
	}

	/**
	 * Number of cycles remaining for this agreement.
	 *
	 * @param string $cycles_remaining
	 * 
	 * @return $this
	 */
	public function setCyclesRemaining( $cycles_remaining) {
		$this->cycles_remaining = $cycles_remaining;
		return $this;
	}

	/**
	 * Number of cycles remaining for this agreement.
	 *
	 * @return string
	 */
	public function getCyclesRemaining() {
		return $this->cycles_remaining;
	}

	/**
	 * Number of cycles completed for this agreement.
	 *
	 * @param string $cycles_completed
	 * 
	 * @return $this
	 */
	public function setCyclesCompleted( $cycles_completed) {
		$this->cycles_completed = $cycles_completed;
		return $this;
	}

	/**
	 * Number of cycles completed for this agreement.
	 *
	 * @return string
	 */
	public function getCyclesCompleted() {
		return $this->cycles_completed;
	}

	/**
	 * The next billing date for this agreement, represented as 2014-02-19T10:00:00Z format.
	 *
	 * @param string $next_billing_date
	 * 
	 * @return $this
	 */
	public function setNextBillingDate( $next_billing_date) {
		$this->next_billing_date = $next_billing_date;
		return $this;
	}

	/**
	 * The next billing date for this agreement, represented as 2014-02-19T10:00:00Z format.
	 *
	 * @return string
	 */
	public function getNextBillingDate() {
		return $this->next_billing_date;
	}

	/**
	 * Last payment date for this agreement, represented as 2014-06-09T09:42:31Z format.
	 *
	 * @param string $last_payment_date
	 * 
	 * @return $this
	 */
	public function setLastPaymentDate( $last_payment_date) {
		$this->last_payment_date = $last_payment_date;
		return $this;
	}

	/**
	 * Last payment date for this agreement, represented as 2014-06-09T09:42:31Z format.
	 *
	 * @return string
	 */
	public function getLastPaymentDate() {
		return $this->last_payment_date;
	}

	/**
	 * Last payment amount for this agreement.
	 *
	 * @param \PayPal\Api\Currency $last_payment_amount
	 * 
	 * @return $this
	 */
	public function setLastPaymentAmount( $last_payment_amount) {
		$this->last_payment_amount = $last_payment_amount;
		return $this;
	}

	/**
	 * Last payment amount for this agreement.
	 *
	 * @return \PayPal\Api\Currency
	 */
	public function getLastPaymentAmount() {
		return $this->last_payment_amount;
	}

	/**
	 * Last payment date for this agreement, represented as 2015-02-19T10:00:00Z format.
	 *
	 * @param string $final_payment_date
	 * 
	 * @return $this
	 */
	public function setFinalPaymentDate( $final_payment_date) {
		$this->final_payment_date = $final_payment_date;
		return $this;
	}

	/**
	 * Last payment date for this agreement, represented as 2015-02-19T10:00:00Z format.
	 *
	 * @return string
	 */
	public function getFinalPaymentDate() {
		return $this->final_payment_date;
	}

	/**
	 * Total number of failed payments for this agreement.
	 *
	 * @param string $failed_payment_count
	 * 
	 * @return $this
	 */
	public function setFailedPaymentCount( $failed_payment_count) {
		$this->failed_payment_count = $failed_payment_count;
		return $this;
	}

	/**
	 * Total number of failed payments for this agreement.
	 *
	 * @return string
	 */
	public function getFailedPaymentCount() {
		return $this->failed_payment_count;
	}

}
