<?php

namespace Sabre\CreatePassengerNameRecord\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CreatePassengerNameRecordRQ Structs
 * @subpackage Structs
 */
class CreatePassengerNameRecordRQ extends STL_Request_Payload
{
    /**
     * The Profile
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\Profile
     */
    public $Profile;
    /**
     * The TravelItineraryAddInfo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo
     */
    public $TravelItineraryAddInfo;
    /**
     * The AirBook
     * @var \Sabre\CreatePassengerNameRecord\Structs\AirBook
     */
    public $AirBook;
    /**
     * The AirPrice
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\AirPrice
     */
    public $AirPrice;
    /**
     * The AirTax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\AirTax
     */
    public $AirTax;
    /**
     * The MiscSegment
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\MiscSegment
     */
    public $MiscSegment;
    /**
     * The SpecialReqDetails
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails
     */
    public $SpecialReqDetails;
    /**
     * The PostProcessing
     * @var \Sabre\CreatePassengerNameRecord\Structs\PostProcessing
     */
    public $PostProcessing;
    /**
     * The targetCity
     * @var string
     */
    public $targetCity;
    /**
     * The haltOnAirPriceError
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var bool
     */
    public $haltOnAirPriceError;
    /**
     * Constructor method for CreatePassengerNameRecordRQ
     * @uses CreatePassengerNameRecordRQ::setProfile()
     * @uses CreatePassengerNameRecordRQ::setTravelItineraryAddInfo()
     * @uses CreatePassengerNameRecordRQ::setAirBook()
     * @uses CreatePassengerNameRecordRQ::setAirPrice()
     * @uses CreatePassengerNameRecordRQ::setAirTax()
     * @uses CreatePassengerNameRecordRQ::setMiscSegment()
     * @uses CreatePassengerNameRecordRQ::setSpecialReqDetails()
     * @uses CreatePassengerNameRecordRQ::setPostProcessing()
     * @uses CreatePassengerNameRecordRQ::setTargetCity()
     * @uses CreatePassengerNameRecordRQ::setHaltOnAirPriceError()
     * @param \Sabre\CreatePassengerNameRecord\Structs\Profile $profile
     * @param \Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo $travelItineraryAddInfo
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirBook $airBook
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirPrice $airPrice
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirTax $airTax
     * @param \Sabre\CreatePassengerNameRecord\Structs\MiscSegment $miscSegment
     * @param \Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails $specialReqDetails
     * @param \Sabre\CreatePassengerNameRecord\Structs\PostProcessing $postProcessing
     * @param string $targetCity
     * @param bool $haltOnAirPriceError
     */
    public function __construct(\Sabre\CreatePassengerNameRecord\Structs\Profile $profile = null, \Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo $travelItineraryAddInfo = null, \Sabre\CreatePassengerNameRecord\Structs\AirBook $airBook = null, \Sabre\CreatePassengerNameRecord\Structs\AirPrice $airPrice = null, \Sabre\CreatePassengerNameRecord\Structs\AirTax $airTax = null, \Sabre\CreatePassengerNameRecord\Structs\MiscSegment $miscSegment = null, \Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails $specialReqDetails = null, \Sabre\CreatePassengerNameRecord\Structs\PostProcessing $postProcessing = null, $targetCity = null, $haltOnAirPriceError = null)
    {
        $this
            ->setProfile($profile)
            ->setTravelItineraryAddInfo($travelItineraryAddInfo)
            ->setAirBook($airBook)
            ->setAirPrice($airPrice)
            ->setAirTax($airTax)
            ->setMiscSegment($miscSegment)
            ->setSpecialReqDetails($specialReqDetails)
            ->setPostProcessing($postProcessing)
            ->setTargetCity($targetCity)
            ->setHaltOnAirPriceError($haltOnAirPriceError);
    }
    /**
     * Get Profile value
     * @return \Sabre\CreatePassengerNameRecord\Structs\Profile|null
     */
    public function getProfile()
    {
        return $this->Profile;
    }
    /**
     * Set Profile value
     * @param \Sabre\CreatePassengerNameRecord\Structs\Profile $profile
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setProfile(\Sabre\CreatePassengerNameRecord\Structs\Profile $profile = null)
    {
        $this->Profile = $profile;
        return $this;
    }
    /**
     * Get TravelItineraryAddInfo value
     * @return \Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo|null
     */
    public function getTravelItineraryAddInfo()
    {
        return $this->TravelItineraryAddInfo;
    }
    /**
     * Set TravelItineraryAddInfo value
     * @param \Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo $travelItineraryAddInfo
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setTravelItineraryAddInfo(\Sabre\CreatePassengerNameRecord\Structs\TravelItineraryAddInfo $travelItineraryAddInfo = null)
    {
        $this->TravelItineraryAddInfo = $travelItineraryAddInfo;
        return $this;
    }
    /**
     * Get AirBook value
     * @return \Sabre\CreatePassengerNameRecord\Structs\AirBook|null
     */
    public function getAirBook()
    {
        return $this->AirBook;
    }
    /**
     * Set AirBook value
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirBook $airBook
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setAirBook(\Sabre\CreatePassengerNameRecord\Structs\AirBook $airBook = null)
    {
        $this->AirBook = $airBook;
        return $this;
    }
    /**
     * Get AirPrice value
     * @return \Sabre\CreatePassengerNameRecord\Structs\AirPrice|null
     */
    public function getAirPrice()
    {
        return $this->AirPrice;
    }
    /**
     * Set AirPrice value
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirPrice $airPrice
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setAirPrice(\Sabre\CreatePassengerNameRecord\Structs\AirPrice $airPrice = null)
    {
        $this->AirPrice = $airPrice;
        return $this;
    }
    /**
     * Get AirTax value
     * @return \Sabre\CreatePassengerNameRecord\Structs\AirTax|null
     */
    public function getAirTax()
    {
        return $this->AirTax;
    }
    /**
     * Set AirTax value
     * @param \Sabre\CreatePassengerNameRecord\Structs\AirTax $airTax
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setAirTax(\Sabre\CreatePassengerNameRecord\Structs\AirTax $airTax = null)
    {
        $this->AirTax = $airTax;
        return $this;
    }
    /**
     * Get MiscSegment value
     * @return \Sabre\CreatePassengerNameRecord\Structs\MiscSegment|null
     */
    public function getMiscSegment()
    {
        return $this->MiscSegment;
    }
    /**
     * Set MiscSegment value
     * @param \Sabre\CreatePassengerNameRecord\Structs\MiscSegment $miscSegment
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setMiscSegment(\Sabre\CreatePassengerNameRecord\Structs\MiscSegment $miscSegment = null)
    {
        $this->MiscSegment = $miscSegment;
        return $this;
    }
    /**
     * Get SpecialReqDetails value
     * @return \Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails|null
     */
    public function getSpecialReqDetails()
    {
        return $this->SpecialReqDetails;
    }
    /**
     * Set SpecialReqDetails value
     * @param \Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails $specialReqDetails
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setSpecialReqDetails(\Sabre\CreatePassengerNameRecord\Structs\SpecialReqDetails $specialReqDetails = null)
    {
        $this->SpecialReqDetails = $specialReqDetails;
        return $this;
    }
    /**
     * Get PostProcessing value
     * @return \Sabre\CreatePassengerNameRecord\Structs\PostProcessing|null
     */
    public function getPostProcessing()
    {
        return $this->PostProcessing;
    }
    /**
     * Set PostProcessing value
     * @param \Sabre\CreatePassengerNameRecord\Structs\PostProcessing $postProcessing
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setPostProcessing(\Sabre\CreatePassengerNameRecord\Structs\PostProcessing $postProcessing = null)
    {
        $this->PostProcessing = $postProcessing;
        return $this;
    }
    /**
     * Get targetCity value
     * @return string|null
     */
    public function getTargetCity()
    {
        return $this->targetCity;
    }
    /**
     * Set targetCity value
     * @param string $targetCity
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setTargetCity($targetCity = null)
    {
        $this->targetCity = $targetCity;
        return $this;
    }
    /**
     * Get haltOnAirPriceError value
     * @return bool|null
     */
    public function getHaltOnAirPriceError()
    {
        return $this->haltOnAirPriceError;
    }
    /**
     * Set haltOnAirPriceError value
     * @param bool $haltOnAirPriceError
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public function setHaltOnAirPriceError($haltOnAirPriceError = null)
    {
        $this->haltOnAirPriceError = $haltOnAirPriceError;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \Sabre\CreatePassengerNameRecord\Structs\CreatePassengerNameRecordRQ
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
