<?php

namespace NineDotMedia\viapost-php\Struct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for AddUserToAccountNonUK Struct
 * @subpackage Structs
 */
class AddUserToAccountNonUK extends AbstractStructBase
{
    /**
     * The iCountryID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $iCountryID;
    /**
     * The bAdmin
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $bAdmin;
    /**
     * The sLoginToken
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sLoginToken;
    /**
     * The sForeName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sForeName;
    /**
     * The sSurname
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sSurname;
    /**
     * The sCompany
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sCompany;
    /**
     * The sAdd1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sAdd1;
    /**
     * The sAdd2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sAdd2;
    /**
     * The sAdd3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sAdd3;
    /**
     * The sPostCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sPostCode;
    /**
     * The sPhoneNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sPhoneNumber;
    /**
     * The sEmail
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sEmail;
    /**
     * The sPassword
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sPassword;
    /**
     * The sReturnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sReturnMessage;
    /**
     * Constructor method for AddUserToAccountNonUK
     * @uses AddUserToAccountNonUK::setICountryID()
     * @uses AddUserToAccountNonUK::setBAdmin()
     * @uses AddUserToAccountNonUK::setSLoginToken()
     * @uses AddUserToAccountNonUK::setSForeName()
     * @uses AddUserToAccountNonUK::setSSurname()
     * @uses AddUserToAccountNonUK::setSCompany()
     * @uses AddUserToAccountNonUK::setSAdd1()
     * @uses AddUserToAccountNonUK::setSAdd2()
     * @uses AddUserToAccountNonUK::setSAdd3()
     * @uses AddUserToAccountNonUK::setSPostCode()
     * @uses AddUserToAccountNonUK::setSPhoneNumber()
     * @uses AddUserToAccountNonUK::setSEmail()
     * @uses AddUserToAccountNonUK::setSPassword()
     * @uses AddUserToAccountNonUK::setSReturnMessage()
     * @param int $iCountryID
     * @param bool $bAdmin
     * @param string $sLoginToken
     * @param string $sForeName
     * @param string $sSurname
     * @param string $sCompany
     * @param string $sAdd1
     * @param string $sAdd2
     * @param string $sAdd3
     * @param string $sPostCode
     * @param string $sPhoneNumber
     * @param string $sEmail
     * @param string $sPassword
     * @param string $sReturnMessage
     */
    public function __construct($iCountryID = null, $bAdmin = null, $sLoginToken = null, $sForeName = null, $sSurname = null, $sCompany = null, $sAdd1 = null, $sAdd2 = null, $sAdd3 = null, $sPostCode = null, $sPhoneNumber = null, $sEmail = null, $sPassword = null, $sReturnMessage = null)
    {
        $this
            ->setICountryID($iCountryID)
            ->setBAdmin($bAdmin)
            ->setSLoginToken($sLoginToken)
            ->setSForeName($sForeName)
            ->setSSurname($sSurname)
            ->setSCompany($sCompany)
            ->setSAdd1($sAdd1)
            ->setSAdd2($sAdd2)
            ->setSAdd3($sAdd3)
            ->setSPostCode($sPostCode)
            ->setSPhoneNumber($sPhoneNumber)
            ->setSEmail($sEmail)
            ->setSPassword($sPassword)
            ->setSReturnMessage($sReturnMessage);
    }
    /**
     * Get iCountryID value
     * @return int
     */
    public function getICountryID()
    {
        return $this->iCountryID;
    }
    /**
     * Set iCountryID value
     * @param int $iCountryID
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setICountryID($iCountryID = null)
    {
        // validation for constraint: int
        if (!is_null($iCountryID) && !(is_int($iCountryID) || ctype_digit($iCountryID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iCountryID, true), gettype($iCountryID)), __LINE__);
        }
        $this->iCountryID = $iCountryID;
        return $this;
    }
    /**
     * Get bAdmin value
     * @return bool
     */
    public function getBAdmin()
    {
        return $this->bAdmin;
    }
    /**
     * Set bAdmin value
     * @param bool $bAdmin
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setBAdmin($bAdmin = null)
    {
        // validation for constraint: boolean
        if (!is_null($bAdmin) && !is_bool($bAdmin)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($bAdmin, true), gettype($bAdmin)), __LINE__);
        }
        $this->bAdmin = $bAdmin;
        return $this;
    }
    /**
     * Get sLoginToken value
     * @return string|null
     */
    public function getSLoginToken()
    {
        return $this->sLoginToken;
    }
    /**
     * Set sLoginToken value
     * @param string $sLoginToken
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSLoginToken($sLoginToken = null)
    {
        // validation for constraint: string
        if (!is_null($sLoginToken) && !is_string($sLoginToken)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sLoginToken, true), gettype($sLoginToken)), __LINE__);
        }
        $this->sLoginToken = $sLoginToken;
        return $this;
    }
    /**
     * Get sForeName value
     * @return string|null
     */
    public function getSForeName()
    {
        return $this->sForeName;
    }
    /**
     * Set sForeName value
     * @param string $sForeName
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSForeName($sForeName = null)
    {
        // validation for constraint: string
        if (!is_null($sForeName) && !is_string($sForeName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sForeName, true), gettype($sForeName)), __LINE__);
        }
        $this->sForeName = $sForeName;
        return $this;
    }
    /**
     * Get sSurname value
     * @return string|null
     */
    public function getSSurname()
    {
        return $this->sSurname;
    }
    /**
     * Set sSurname value
     * @param string $sSurname
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSSurname($sSurname = null)
    {
        // validation for constraint: string
        if (!is_null($sSurname) && !is_string($sSurname)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sSurname, true), gettype($sSurname)), __LINE__);
        }
        $this->sSurname = $sSurname;
        return $this;
    }
    /**
     * Get sCompany value
     * @return string|null
     */
    public function getSCompany()
    {
        return $this->sCompany;
    }
    /**
     * Set sCompany value
     * @param string $sCompany
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSCompany($sCompany = null)
    {
        // validation for constraint: string
        if (!is_null($sCompany) && !is_string($sCompany)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sCompany, true), gettype($sCompany)), __LINE__);
        }
        $this->sCompany = $sCompany;
        return $this;
    }
    /**
     * Get sAdd1 value
     * @return string|null
     */
    public function getSAdd1()
    {
        return $this->sAdd1;
    }
    /**
     * Set sAdd1 value
     * @param string $sAdd1
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSAdd1($sAdd1 = null)
    {
        // validation for constraint: string
        if (!is_null($sAdd1) && !is_string($sAdd1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sAdd1, true), gettype($sAdd1)), __LINE__);
        }
        $this->sAdd1 = $sAdd1;
        return $this;
    }
    /**
     * Get sAdd2 value
     * @return string|null
     */
    public function getSAdd2()
    {
        return $this->sAdd2;
    }
    /**
     * Set sAdd2 value
     * @param string $sAdd2
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSAdd2($sAdd2 = null)
    {
        // validation for constraint: string
        if (!is_null($sAdd2) && !is_string($sAdd2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sAdd2, true), gettype($sAdd2)), __LINE__);
        }
        $this->sAdd2 = $sAdd2;
        return $this;
    }
    /**
     * Get sAdd3 value
     * @return string|null
     */
    public function getSAdd3()
    {
        return $this->sAdd3;
    }
    /**
     * Set sAdd3 value
     * @param string $sAdd3
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSAdd3($sAdd3 = null)
    {
        // validation for constraint: string
        if (!is_null($sAdd3) && !is_string($sAdd3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sAdd3, true), gettype($sAdd3)), __LINE__);
        }
        $this->sAdd3 = $sAdd3;
        return $this;
    }
    /**
     * Get sPostCode value
     * @return string|null
     */
    public function getSPostCode()
    {
        return $this->sPostCode;
    }
    /**
     * Set sPostCode value
     * @param string $sPostCode
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSPostCode($sPostCode = null)
    {
        // validation for constraint: string
        if (!is_null($sPostCode) && !is_string($sPostCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sPostCode, true), gettype($sPostCode)), __LINE__);
        }
        $this->sPostCode = $sPostCode;
        return $this;
    }
    /**
     * Get sPhoneNumber value
     * @return string|null
     */
    public function getSPhoneNumber()
    {
        return $this->sPhoneNumber;
    }
    /**
     * Set sPhoneNumber value
     * @param string $sPhoneNumber
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSPhoneNumber($sPhoneNumber = null)
    {
        // validation for constraint: string
        if (!is_null($sPhoneNumber) && !is_string($sPhoneNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sPhoneNumber, true), gettype($sPhoneNumber)), __LINE__);
        }
        $this->sPhoneNumber = $sPhoneNumber;
        return $this;
    }
    /**
     * Get sEmail value
     * @return string|null
     */
    public function getSEmail()
    {
        return $this->sEmail;
    }
    /**
     * Set sEmail value
     * @param string $sEmail
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSEmail($sEmail = null)
    {
        // validation for constraint: string
        if (!is_null($sEmail) && !is_string($sEmail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sEmail, true), gettype($sEmail)), __LINE__);
        }
        $this->sEmail = $sEmail;
        return $this;
    }
    /**
     * Get sPassword value
     * @return string|null
     */
    public function getSPassword()
    {
        return $this->sPassword;
    }
    /**
     * Set sPassword value
     * @param string $sPassword
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSPassword($sPassword = null)
    {
        // validation for constraint: string
        if (!is_null($sPassword) && !is_string($sPassword)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sPassword, true), gettype($sPassword)), __LINE__);
        }
        $this->sPassword = $sPassword;
        return $this;
    }
    /**
     * Get sReturnMessage value
     * @return string|null
     */
    public function getSReturnMessage()
    {
        return $this->sReturnMessage;
    }
    /**
     * Set sReturnMessage value
     * @param string $sReturnMessage
     * @return \NineDotMedia\viapost-php\Struct\AddUserToAccountNonUK
     */
    public function setSReturnMessage($sReturnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($sReturnMessage) && !is_string($sReturnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sReturnMessage, true), gettype($sReturnMessage)), __LINE__);
        }
        $this->sReturnMessage = $sReturnMessage;
        return $this;
    }
}
