<?php

namespace CustomerManagement\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CustomerListWithTroubleConditions StructType
 * @subpackage Structs
 */
class CustomerListWithTroubleConditions extends AbstractStructBase
{
    /**
     * The UnitId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $UnitId;
    /**
     * The VersionId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $VersionId;
    /**
     * The DealerBranchId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $DealerBranchId;
    /**
     * The CustomerId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $CustomerId;
    /**
     * The JoinDate
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $JoinDate;
    /**
     * The PostalCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PostalCode;
    /**
     * The State
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $State;
    /**
     * The SubState
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $SubState;
    /**
     * The City
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $City;
    /**
     * The SubCity
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $SubCity;
    /**
     * The InstallAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $InstallAddress;
    /**
     * The UnitDesc
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $UnitDesc;
    /**
     * The ModemSerial
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ModemSerial;
    /**
     * The DealerCustomerId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DealerCustomerId;
    /**
     * The DealerBranchDesc
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DealerBranchDesc;
    /**
     * The PrimaryEmail
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PrimaryEmail;
    /**
     * The PrimaryPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PrimaryPhone;
    /**
     * The LastName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $LastName;
    /**
     * The FirstName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $FirstName;
    /**
     * The CompanyName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CompanyName;
    /**
     * The CsAcctNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CsAcctNumber;
    /**
     * The CsAcctPrefix
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CsAcctPrefix;
    /**
     * The ReceiverPhoneNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ReceiverPhoneNumber;
    /**
     * The CsPhoneKey
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $CsPhoneKey;
    /**
     * The PanelType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PanelType;
    /**
     * The CustomerTroubleConditions
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition
     */
    public $CustomerTroubleConditions;
    /**
     * Constructor method for CustomerListWithTroubleConditions
     * @uses CustomerListWithTroubleConditions::setUnitId()
     * @uses CustomerListWithTroubleConditions::setVersionId()
     * @uses CustomerListWithTroubleConditions::setDealerBranchId()
     * @uses CustomerListWithTroubleConditions::setCustomerId()
     * @uses CustomerListWithTroubleConditions::setJoinDate()
     * @uses CustomerListWithTroubleConditions::setPostalCode()
     * @uses CustomerListWithTroubleConditions::setState()
     * @uses CustomerListWithTroubleConditions::setSubState()
     * @uses CustomerListWithTroubleConditions::setCity()
     * @uses CustomerListWithTroubleConditions::setSubCity()
     * @uses CustomerListWithTroubleConditions::setInstallAddress()
     * @uses CustomerListWithTroubleConditions::setUnitDesc()
     * @uses CustomerListWithTroubleConditions::setModemSerial()
     * @uses CustomerListWithTroubleConditions::setDealerCustomerId()
     * @uses CustomerListWithTroubleConditions::setDealerBranchDesc()
     * @uses CustomerListWithTroubleConditions::setPrimaryEmail()
     * @uses CustomerListWithTroubleConditions::setPrimaryPhone()
     * @uses CustomerListWithTroubleConditions::setLastName()
     * @uses CustomerListWithTroubleConditions::setFirstName()
     * @uses CustomerListWithTroubleConditions::setCompanyName()
     * @uses CustomerListWithTroubleConditions::setCsAcctNumber()
     * @uses CustomerListWithTroubleConditions::setCsAcctPrefix()
     * @uses CustomerListWithTroubleConditions::setReceiverPhoneNumber()
     * @uses CustomerListWithTroubleConditions::setCsPhoneKey()
     * @uses CustomerListWithTroubleConditions::setPanelType()
     * @uses CustomerListWithTroubleConditions::setCustomerTroubleConditions()
     * @param int $unitId
     * @param int $versionId
     * @param int $dealerBranchId
     * @param int $customerId
     * @param string $joinDate
     * @param string $postalCode
     * @param string $state
     * @param string $subState
     * @param string $city
     * @param string $subCity
     * @param string $installAddress
     * @param string $unitDesc
     * @param string $modemSerial
     * @param string $dealerCustomerId
     * @param string $dealerBranchDesc
     * @param string $primaryEmail
     * @param string $primaryPhone
     * @param string $lastName
     * @param string $firstName
     * @param string $companyName
     * @param string $csAcctNumber
     * @param string $csAcctPrefix
     * @param string $receiverPhoneNumber
     * @param string $csPhoneKey
     * @param string $panelType
     * @param \CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition $customerTroubleConditions
     */
    public function __construct($unitId = null, $versionId = null, $dealerBranchId = null, $customerId = null, $joinDate = null, $postalCode = null, $state = null, $subState = null, $city = null, $subCity = null, $installAddress = null, $unitDesc = null, $modemSerial = null, $dealerCustomerId = null, $dealerBranchDesc = null, $primaryEmail = null, $primaryPhone = null, $lastName = null, $firstName = null, $companyName = null, $csAcctNumber = null, $csAcctPrefix = null, $receiverPhoneNumber = null, $csPhoneKey = null, $panelType = null, \CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition $customerTroubleConditions = null)
    {
        $this
            ->setUnitId($unitId)
            ->setVersionId($versionId)
            ->setDealerBranchId($dealerBranchId)
            ->setCustomerId($customerId)
            ->setJoinDate($joinDate)
            ->setPostalCode($postalCode)
            ->setState($state)
            ->setSubState($subState)
            ->setCity($city)
            ->setSubCity($subCity)
            ->setInstallAddress($installAddress)
            ->setUnitDesc($unitDesc)
            ->setModemSerial($modemSerial)
            ->setDealerCustomerId($dealerCustomerId)
            ->setDealerBranchDesc($dealerBranchDesc)
            ->setPrimaryEmail($primaryEmail)
            ->setPrimaryPhone($primaryPhone)
            ->setLastName($lastName)
            ->setFirstName($firstName)
            ->setCompanyName($companyName)
            ->setCsAcctNumber($csAcctNumber)
            ->setCsAcctPrefix($csAcctPrefix)
            ->setReceiverPhoneNumber($receiverPhoneNumber)
            ->setCsPhoneKey($csPhoneKey)
            ->setPanelType($panelType)
            ->setCustomerTroubleConditions($customerTroubleConditions);
    }
    /**
     * Get UnitId value
     * @return int
     */
    public function getUnitId()
    {
        return $this->UnitId;
    }
    /**
     * Set UnitId value
     * @param int $unitId
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setUnitId($unitId = null)
    {
        // validation for constraint: int
        if (!is_null($unitId) && !(is_int($unitId) || ctype_digit($unitId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($unitId, true), gettype($unitId)), __LINE__);
        }
        $this->UnitId = $unitId;
        return $this;
    }
    /**
     * Get VersionId value
     * @return int
     */
    public function getVersionId()
    {
        return $this->VersionId;
    }
    /**
     * Set VersionId value
     * @param int $versionId
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setVersionId($versionId = null)
    {
        // validation for constraint: int
        if (!is_null($versionId) && !(is_int($versionId) || ctype_digit($versionId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($versionId, true), gettype($versionId)), __LINE__);
        }
        $this->VersionId = $versionId;
        return $this;
    }
    /**
     * Get DealerBranchId value
     * @return int
     */
    public function getDealerBranchId()
    {
        return $this->DealerBranchId;
    }
    /**
     * Set DealerBranchId value
     * @param int $dealerBranchId
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setDealerBranchId($dealerBranchId = null)
    {
        // validation for constraint: int
        if (!is_null($dealerBranchId) && !(is_int($dealerBranchId) || ctype_digit($dealerBranchId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($dealerBranchId, true), gettype($dealerBranchId)), __LINE__);
        }
        $this->DealerBranchId = $dealerBranchId;
        return $this;
    }
    /**
     * Get CustomerId value
     * @return int
     */
    public function getCustomerId()
    {
        return $this->CustomerId;
    }
    /**
     * Set CustomerId value
     * @param int $customerId
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCustomerId($customerId = null)
    {
        // validation for constraint: int
        if (!is_null($customerId) && !(is_int($customerId) || ctype_digit($customerId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($customerId, true), gettype($customerId)), __LINE__);
        }
        $this->CustomerId = $customerId;
        return $this;
    }
    /**
     * Get JoinDate value
     * @return string
     */
    public function getJoinDate()
    {
        return $this->JoinDate;
    }
    /**
     * Set JoinDate value
     * @param string $joinDate
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setJoinDate($joinDate = null)
    {
        // validation for constraint: string
        if (!is_null($joinDate) && !is_string($joinDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($joinDate, true), gettype($joinDate)), __LINE__);
        }
        $this->JoinDate = $joinDate;
        return $this;
    }
    /**
     * Get PostalCode value
     * @return string|null
     */
    public function getPostalCode()
    {
        return $this->PostalCode;
    }
    /**
     * Set PostalCode value
     * @param string $postalCode
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setPostalCode($postalCode = null)
    {
        // validation for constraint: string
        if (!is_null($postalCode) && !is_string($postalCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($postalCode, true), gettype($postalCode)), __LINE__);
        }
        $this->PostalCode = $postalCode;
        return $this;
    }
    /**
     * Get State value
     * @return string|null
     */
    public function getState()
    {
        return $this->State;
    }
    /**
     * Set State value
     * @param string $state
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setState($state = null)
    {
        // validation for constraint: string
        if (!is_null($state) && !is_string($state)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($state, true), gettype($state)), __LINE__);
        }
        $this->State = $state;
        return $this;
    }
    /**
     * Get SubState value
     * @return string|null
     */
    public function getSubState()
    {
        return $this->SubState;
    }
    /**
     * Set SubState value
     * @param string $subState
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setSubState($subState = null)
    {
        // validation for constraint: string
        if (!is_null($subState) && !is_string($subState)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($subState, true), gettype($subState)), __LINE__);
        }
        $this->SubState = $subState;
        return $this;
    }
    /**
     * Get City value
     * @return string|null
     */
    public function getCity()
    {
        return $this->City;
    }
    /**
     * Set City value
     * @param string $city
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCity($city = null)
    {
        // validation for constraint: string
        if (!is_null($city) && !is_string($city)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($city, true), gettype($city)), __LINE__);
        }
        $this->City = $city;
        return $this;
    }
    /**
     * Get SubCity value
     * @return string|null
     */
    public function getSubCity()
    {
        return $this->SubCity;
    }
    /**
     * Set SubCity value
     * @param string $subCity
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setSubCity($subCity = null)
    {
        // validation for constraint: string
        if (!is_null($subCity) && !is_string($subCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($subCity, true), gettype($subCity)), __LINE__);
        }
        $this->SubCity = $subCity;
        return $this;
    }
    /**
     * Get InstallAddress value
     * @return string|null
     */
    public function getInstallAddress()
    {
        return $this->InstallAddress;
    }
    /**
     * Set InstallAddress value
     * @param string $installAddress
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setInstallAddress($installAddress = null)
    {
        // validation for constraint: string
        if (!is_null($installAddress) && !is_string($installAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($installAddress, true), gettype($installAddress)), __LINE__);
        }
        $this->InstallAddress = $installAddress;
        return $this;
    }
    /**
     * Get UnitDesc value
     * @return string|null
     */
    public function getUnitDesc()
    {
        return $this->UnitDesc;
    }
    /**
     * Set UnitDesc value
     * @param string $unitDesc
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setUnitDesc($unitDesc = null)
    {
        // validation for constraint: string
        if (!is_null($unitDesc) && !is_string($unitDesc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($unitDesc, true), gettype($unitDesc)), __LINE__);
        }
        $this->UnitDesc = $unitDesc;
        return $this;
    }
    /**
     * Get ModemSerial value
     * @return string|null
     */
    public function getModemSerial()
    {
        return $this->ModemSerial;
    }
    /**
     * Set ModemSerial value
     * @param string $modemSerial
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setModemSerial($modemSerial = null)
    {
        // validation for constraint: string
        if (!is_null($modemSerial) && !is_string($modemSerial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($modemSerial, true), gettype($modemSerial)), __LINE__);
        }
        $this->ModemSerial = $modemSerial;
        return $this;
    }
    /**
     * Get DealerCustomerId value
     * @return string|null
     */
    public function getDealerCustomerId()
    {
        return $this->DealerCustomerId;
    }
    /**
     * Set DealerCustomerId value
     * @param string $dealerCustomerId
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setDealerCustomerId($dealerCustomerId = null)
    {
        // validation for constraint: string
        if (!is_null($dealerCustomerId) && !is_string($dealerCustomerId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dealerCustomerId, true), gettype($dealerCustomerId)), __LINE__);
        }
        $this->DealerCustomerId = $dealerCustomerId;
        return $this;
    }
    /**
     * Get DealerBranchDesc value
     * @return string|null
     */
    public function getDealerBranchDesc()
    {
        return $this->DealerBranchDesc;
    }
    /**
     * Set DealerBranchDesc value
     * @param string $dealerBranchDesc
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setDealerBranchDesc($dealerBranchDesc = null)
    {
        // validation for constraint: string
        if (!is_null($dealerBranchDesc) && !is_string($dealerBranchDesc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dealerBranchDesc, true), gettype($dealerBranchDesc)), __LINE__);
        }
        $this->DealerBranchDesc = $dealerBranchDesc;
        return $this;
    }
    /**
     * Get PrimaryEmail value
     * @return string|null
     */
    public function getPrimaryEmail()
    {
        return $this->PrimaryEmail;
    }
    /**
     * Set PrimaryEmail value
     * @param string $primaryEmail
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setPrimaryEmail($primaryEmail = null)
    {
        // validation for constraint: string
        if (!is_null($primaryEmail) && !is_string($primaryEmail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($primaryEmail, true), gettype($primaryEmail)), __LINE__);
        }
        $this->PrimaryEmail = $primaryEmail;
        return $this;
    }
    /**
     * Get PrimaryPhone value
     * @return string|null
     */
    public function getPrimaryPhone()
    {
        return $this->PrimaryPhone;
    }
    /**
     * Set PrimaryPhone value
     * @param string $primaryPhone
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setPrimaryPhone($primaryPhone = null)
    {
        // validation for constraint: string
        if (!is_null($primaryPhone) && !is_string($primaryPhone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($primaryPhone, true), gettype($primaryPhone)), __LINE__);
        }
        $this->PrimaryPhone = $primaryPhone;
        return $this;
    }
    /**
     * Get LastName value
     * @return string|null
     */
    public function getLastName()
    {
        return $this->LastName;
    }
    /**
     * Set LastName value
     * @param string $lastName
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setLastName($lastName = null)
    {
        // validation for constraint: string
        if (!is_null($lastName) && !is_string($lastName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastName, true), gettype($lastName)), __LINE__);
        }
        $this->LastName = $lastName;
        return $this;
    }
    /**
     * Get FirstName value
     * @return string|null
     */
    public function getFirstName()
    {
        return $this->FirstName;
    }
    /**
     * Set FirstName value
     * @param string $firstName
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setFirstName($firstName = null)
    {
        // validation for constraint: string
        if (!is_null($firstName) && !is_string($firstName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($firstName, true), gettype($firstName)), __LINE__);
        }
        $this->FirstName = $firstName;
        return $this;
    }
    /**
     * Get CompanyName value
     * @return string|null
     */
    public function getCompanyName()
    {
        return $this->CompanyName;
    }
    /**
     * Set CompanyName value
     * @param string $companyName
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCompanyName($companyName = null)
    {
        // validation for constraint: string
        if (!is_null($companyName) && !is_string($companyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($companyName, true), gettype($companyName)), __LINE__);
        }
        $this->CompanyName = $companyName;
        return $this;
    }
    /**
     * Get CsAcctNumber value
     * @return string|null
     */
    public function getCsAcctNumber()
    {
        return $this->CsAcctNumber;
    }
    /**
     * Set CsAcctNumber value
     * @param string $csAcctNumber
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCsAcctNumber($csAcctNumber = null)
    {
        // validation for constraint: string
        if (!is_null($csAcctNumber) && !is_string($csAcctNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($csAcctNumber, true), gettype($csAcctNumber)), __LINE__);
        }
        $this->CsAcctNumber = $csAcctNumber;
        return $this;
    }
    /**
     * Get CsAcctPrefix value
     * @return string|null
     */
    public function getCsAcctPrefix()
    {
        return $this->CsAcctPrefix;
    }
    /**
     * Set CsAcctPrefix value
     * @param string $csAcctPrefix
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCsAcctPrefix($csAcctPrefix = null)
    {
        // validation for constraint: string
        if (!is_null($csAcctPrefix) && !is_string($csAcctPrefix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($csAcctPrefix, true), gettype($csAcctPrefix)), __LINE__);
        }
        $this->CsAcctPrefix = $csAcctPrefix;
        return $this;
    }
    /**
     * Get ReceiverPhoneNumber value
     * @return string|null
     */
    public function getReceiverPhoneNumber()
    {
        return $this->ReceiverPhoneNumber;
    }
    /**
     * Set ReceiverPhoneNumber value
     * @param string $receiverPhoneNumber
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setReceiverPhoneNumber($receiverPhoneNumber = null)
    {
        // validation for constraint: string
        if (!is_null($receiverPhoneNumber) && !is_string($receiverPhoneNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($receiverPhoneNumber, true), gettype($receiverPhoneNumber)), __LINE__);
        }
        $this->ReceiverPhoneNumber = $receiverPhoneNumber;
        return $this;
    }
    /**
     * Get CsPhoneKey value
     * @return string|null
     */
    public function getCsPhoneKey()
    {
        return $this->CsPhoneKey;
    }
    /**
     * Set CsPhoneKey value
     * @param string $csPhoneKey
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCsPhoneKey($csPhoneKey = null)
    {
        // validation for constraint: string
        if (!is_null($csPhoneKey) && !is_string($csPhoneKey)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($csPhoneKey, true), gettype($csPhoneKey)), __LINE__);
        }
        $this->CsPhoneKey = $csPhoneKey;
        return $this;
    }
    /**
     * Get PanelType value
     * @return string|null
     */
    public function getPanelType()
    {
        return $this->PanelType;
    }
    /**
     * Set PanelType value
     * @param string $panelType
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setPanelType($panelType = null)
    {
        // validation for constraint: string
        if (!is_null($panelType) && !is_string($panelType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($panelType, true), gettype($panelType)), __LINE__);
        }
        $this->PanelType = $panelType;
        return $this;
    }
    /**
     * Get CustomerTroubleConditions value
     * @return \CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition|null
     */
    public function getCustomerTroubleConditions()
    {
        return $this->CustomerTroubleConditions;
    }
    /**
     * Set CustomerTroubleConditions value
     * @param \CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition $customerTroubleConditions
     * @return \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    public function setCustomerTroubleConditions(\CustomerManagement\ArrayType\ArrayOfCustomerTroubleCondition $customerTroubleConditions = null)
    {
        $this->CustomerTroubleConditions = $customerTroubleConditions;
        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 \CustomerManagement\StructType\CustomerListWithTroubleConditions
     */
    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__;
    }
}
