<?php

namespace PayPal\Api;

use PayPal\Common\PayPalModel;

/**
 * Class BaseAddress
 *
 * Base Address object used as billing address in a payment or extended for Shipping Address.
 *
 * @package PayPal\Api
 *
 * @property string line1
 * @property string line2
 * @property string city
 * @property string country_code
 * @property string postal_code
 * @property string state
 * @property string normalization_status
 * @property string status
 */
class BaseAddress extends PayPalModel {

	/**
	 * Line 1 of the Address (eg. number, street, etc).
	 *
	 * @param string $line1
	 * 
	 * @return $this
	 */
	public function setLine1( $line1) {
		$this->line1 = $line1;
		return $this;
	}

	/**
	 * Line 1 of the Address (eg. number, street, etc).
	 *
	 * @return string
	 */
	public function getLine1() {
		return $this->line1;
	}

	/**
	 * Optional line 2 of the Address (eg. suite, apt #, etc.).
	 *
	 * @param string $line2
	 * 
	 * @return $this
	 */
	public function setLine2( $line2) {
		$this->line2 = $line2;
		return $this;
	}

	/**
	 * Optional line 2 of the Address (eg. suite, apt #, etc.).
	 *
	 * @return string
	 */
	public function getLine2() {
		return $this->line2;
	}

	/**
	 * City name.
	 *
	 * @param string $city
	 * 
	 * @return $this
	 */
	public function setCity( $city) {
		$this->city = $city;
		return $this;
	}

	/**
	 * City name.
	 *
	 * @return string
	 */
	public function getCity() {
		return $this->city;
	}

	/**
	 * 2 letter country code.
	 *
	 * @param string $country_code
	 * 
	 * @return $this
	 */
	public function setCountryCode( $country_code) {
		$this->country_code = $country_code;
		return $this;
	}

	/**
	 * 2 letter country code.
	 *
	 * @return string
	 */
	public function getCountryCode() {
		return $this->country_code;
	}

	/**
	 * Zip code or equivalent is usually required for countries that have them. For list of countries that do not have postal codes please refer to http://en.wikipedia.org/wiki/Postal_code.
	 *
	 * @param string $postal_code
	 * 
	 * @return $this
	 */
	public function setPostalCode( $postal_code) {
		$this->postal_code = $postal_code;
		return $this;
	}

	/**
	 * Zip code or equivalent is usually required for countries that have them. For list of countries that do not have postal codes please refer to http://en.wikipedia.org/wiki/Postal_code.
	 *
	 * @return string
	 */
	public function getPostalCode() {
		return $this->postal_code;
	}

	/**
	 * 2 letter code for US states, and the equivalent for other countries.
	 *
	 * @param string $state
	 * 
	 * @return $this
	 */
	public function setState( $state) {
		$this->state = $state;
		return $this;
	}

	/**
	 * 2 letter code for US states, and the equivalent for other countries.
	 *
	 * @return string
	 */
	public function getState() {
		return $this->state;
	}

	/**
	 * Address normalization status
	 * Valid Values: ["UNKNOWN", "UNNORMALIZED_USER_PREFERRED", "NORMALIZED", "UNNORMALIZED"]
	 *
	 * @param string $normalization_status
	 *
	 * @return $this
	 */
	public function setNormalizationStatus( $normalization_status) {
		$this->normalization_status = $normalization_status;
		return $this;
	}

	/**
	 * Address normalization status
	 *
	 * @return string
	 */
	public function getNormalizationStatus() {
		return $this->normalization_status;
	}

	/**
	 * Address status
	 * Valid Values: ["CONFIRMED", "UNCONFIRMED"]
	 *
	 * @param string $status
	 *
	 * @return $this
	 */
	public function setStatus( $status) {
		$this->status = $status;
		return $this;
	}

	/**
	 * Address status
	 *
	 * @return string
	 */
	public function getStatus() {
		return $this->status;
	}

}
