<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UpdateGeoLocationPolicyReq StructType
 * @subpackage Structs
 */
class UpdateGeoLocationPolicyReq extends NameAndGUIDRequest
{
    /**
     * The newName
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 50
     * @var string
     */
    public $newName;
    /**
     * The country
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $country;
    /**
     * The description
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $description;
    /**
     * The nationalSubDivision
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 100
     * @var string
     */
    public $nationalSubDivision;
    /**
     * The district
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $district;
    /**
     * The communityName
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $communityName;
    /**
     * The cityDivision
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $cityDivision;
    /**
     * The neighbourhood
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $neighbourhood;
    /**
     * The street
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $street;
    /**
     * The leadingStreetDirection
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 50
     * @var string
     */
    public $leadingStreetDirection;
    /**
     * The trailingStreetSuffix
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 50
     * @var string
     */
    public $trailingStreetSuffix;
    /**
     * The streetSuffix
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $streetSuffix;
    /**
     * The houseNumber
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 16
     * @var string
     */
    public $houseNumber;
    /**
     * The houseNumberSuffix
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 100
     * @var string
     */
    public $houseNumberSuffix;
    /**
     * The landmark
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $landmark;
    /**
     * The location
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $location;
    /**
     * The floor
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 16
     * @var string
     */
    public $floor;
    /**
     * The occupantName
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 255
     * @var string
     */
    public $occupantName;
    /**
     * The postalCode
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - maxLength: 100
     * @var string
     */
    public $postalCode;
    /**
     * The removeRelatedPolicies
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var RemoveRelatedPolicies
     */
    public $removeRelatedPolicies;
    /**
     * The addRelatedPolicies
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var AddRelatedPolicies
     */
    public $addRelatedPolicies;
    /**
     * The relatedPolicies
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var RelatedPolicies
     */
    public $relatedPolicies;
    /**
     * Constructor method for UpdateGeoLocationPolicyReq
     * @uses UpdateGeoLocationPolicyReq::setNewName()
     * @uses UpdateGeoLocationPolicyReq::setCountry()
     * @uses UpdateGeoLocationPolicyReq::setDescription()
     * @uses UpdateGeoLocationPolicyReq::setNationalSubDivision()
     * @uses UpdateGeoLocationPolicyReq::setDistrict()
     * @uses UpdateGeoLocationPolicyReq::setCommunityName()
     * @uses UpdateGeoLocationPolicyReq::setCityDivision()
     * @uses UpdateGeoLocationPolicyReq::setNeighbourhood()
     * @uses UpdateGeoLocationPolicyReq::setStreet()
     * @uses UpdateGeoLocationPolicyReq::setLeadingStreetDirection()
     * @uses UpdateGeoLocationPolicyReq::setTrailingStreetSuffix()
     * @uses UpdateGeoLocationPolicyReq::setStreetSuffix()
     * @uses UpdateGeoLocationPolicyReq::setHouseNumber()
     * @uses UpdateGeoLocationPolicyReq::setHouseNumberSuffix()
     * @uses UpdateGeoLocationPolicyReq::setLandmark()
     * @uses UpdateGeoLocationPolicyReq::setLocation()
     * @uses UpdateGeoLocationPolicyReq::setFloor()
     * @uses UpdateGeoLocationPolicyReq::setOccupantName()
     * @uses UpdateGeoLocationPolicyReq::setPostalCode()
     * @uses UpdateGeoLocationPolicyReq::setRemoveRelatedPolicies()
     * @uses UpdateGeoLocationPolicyReq::setAddRelatedPolicies()
     * @uses UpdateGeoLocationPolicyReq::setRelatedPolicies()
     * @param string $newName
     * @param string $country
     * @param string $description
     * @param string $nationalSubDivision
     * @param string $district
     * @param string $communityName
     * @param string $cityDivision
     * @param string $neighbourhood
     * @param string $street
     * @param string $leadingStreetDirection
     * @param string $trailingStreetSuffix
     * @param string $streetSuffix
     * @param string $houseNumber
     * @param string $houseNumberSuffix
     * @param string $landmark
     * @param string $location
     * @param string $floor
     * @param string $occupantName
     * @param string $postalCode
     * @param RemoveRelatedPolicies $removeRelatedPolicies
     * @param AddRelatedPolicies $addRelatedPolicies
     * @param RelatedPolicies $relatedPolicies
     */
    public function __construct($newName = null, $country = null, $description = null, $nationalSubDivision = null, $district = null, $communityName = null, $cityDivision = null, $neighbourhood = null, $street = null, $leadingStreetDirection = null, $trailingStreetSuffix = null, $streetSuffix = null, $houseNumber = null, $houseNumberSuffix = null, $landmark = null, $location = null, $floor = null, $occupantName = null, $postalCode = null, RemoveRelatedPolicies $removeRelatedPolicies = null, AddRelatedPolicies $addRelatedPolicies = null, RelatedPolicies $relatedPolicies = null)
    {
        $this
            ->setNewName($newName)
            ->setCountry($country)
            ->setDescription($description)
            ->setNationalSubDivision($nationalSubDivision)
            ->setDistrict($district)
            ->setCommunityName($communityName)
            ->setCityDivision($cityDivision)
            ->setNeighbourhood($neighbourhood)
            ->setStreet($street)
            ->setLeadingStreetDirection($leadingStreetDirection)
            ->setTrailingStreetSuffix($trailingStreetSuffix)
            ->setStreetSuffix($streetSuffix)
            ->setHouseNumber($houseNumber)
            ->setHouseNumberSuffix($houseNumberSuffix)
            ->setLandmark($landmark)
            ->setLocation($location)
            ->setFloor($floor)
            ->setOccupantName($occupantName)
            ->setPostalCode($postalCode)
            ->setRemoveRelatedPolicies($removeRelatedPolicies)
            ->setAddRelatedPolicies($addRelatedPolicies)
            ->setRelatedPolicies($relatedPolicies);
    }
    /**
     * Get newName value
     * @return string|null
     */
    public function getNewName()
    {
        return $this->newName;
    }
    /**
     * Set newName value
     * @param string $newName
     * @return UpdateGeoLocationPolicyReq
     */
    public function setNewName($newName = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($newName) && strlen($newName) > 50) || (is_array($newName) && count($newName) > 50)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 50 element(s) or a scalar of 50 character(s) at most, "%d" length given', is_scalar($newName) ? strlen($newName) : count($newName)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($newName) && !is_string($newName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($newName)), __LINE__);
        }
        $this->newName = $newName;
        return $this;
    }
    /**
     * Get country value
     * @return string|null
     */
    public function getCountry()
    {
        return $this->country;
    }
    /**
     * Set country value
     * @param string $country
     * @return UpdateGeoLocationPolicyReq
     */
    public function setCountry($country = null)
    {
        // validation for constraint: string
        if (!is_null($country) && !is_string($country)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($country)), __LINE__);
        }
        $this->country = $country;
        return $this;
    }
    /**
     * Get description value
     * @return string|null
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set description value
     * @param string $description
     * @return UpdateGeoLocationPolicyReq
     */
    public function setDescription($description = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($description) && strlen($description) > 255) || (is_array($description) && count($description) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($description) ? strlen($description) : count($description)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($description) && !is_string($description)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($description)), __LINE__);
        }
        $this->description = $description;
        return $this;
    }
    /**
     * Get nationalSubDivision value
     * @return string|null
     */
    public function getNationalSubDivision()
    {
        return $this->nationalSubDivision;
    }
    /**
     * Set nationalSubDivision value
     * @param string $nationalSubDivision
     * @return UpdateGeoLocationPolicyReq
     */
    public function setNationalSubDivision($nationalSubDivision = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($nationalSubDivision) && strlen($nationalSubDivision) > 100) || (is_array($nationalSubDivision) && count($nationalSubDivision) > 100)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 100 element(s) or a scalar of 100 character(s) at most, "%d" length given', is_scalar($nationalSubDivision) ? strlen($nationalSubDivision) : count($nationalSubDivision)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($nationalSubDivision) && !is_string($nationalSubDivision)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nationalSubDivision)), __LINE__);
        }
        $this->nationalSubDivision = $nationalSubDivision;
        return $this;
    }
    /**
     * Get district value
     * @return string|null
     */
    public function getDistrict()
    {
        return $this->district;
    }
    /**
     * Set district value
     * @param string $district
     * @return UpdateGeoLocationPolicyReq
     */
    public function setDistrict($district = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($district) && strlen($district) > 255) || (is_array($district) && count($district) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($district) ? strlen($district) : count($district)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($district) && !is_string($district)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($district)), __LINE__);
        }
        $this->district = $district;
        return $this;
    }
    /**
     * Get communityName value
     * @return string|null
     */
    public function getCommunityName()
    {
        return $this->communityName;
    }
    /**
     * Set communityName value
     * @param string $communityName
     * @return UpdateGeoLocationPolicyReq
     */
    public function setCommunityName($communityName = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($communityName) && strlen($communityName) > 255) || (is_array($communityName) && count($communityName) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($communityName) ? strlen($communityName) : count($communityName)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($communityName) && !is_string($communityName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($communityName)), __LINE__);
        }
        $this->communityName = $communityName;
        return $this;
    }
    /**
     * Get cityDivision value
     * @return string|null
     */
    public function getCityDivision()
    {
        return $this->cityDivision;
    }
    /**
     * Set cityDivision value
     * @param string $cityDivision
     * @return UpdateGeoLocationPolicyReq
     */
    public function setCityDivision($cityDivision = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($cityDivision) && strlen($cityDivision) > 255) || (is_array($cityDivision) && count($cityDivision) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($cityDivision) ? strlen($cityDivision) : count($cityDivision)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($cityDivision) && !is_string($cityDivision)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cityDivision)), __LINE__);
        }
        $this->cityDivision = $cityDivision;
        return $this;
    }
    /**
     * Get neighbourhood value
     * @return string|null
     */
    public function getNeighbourhood()
    {
        return $this->neighbourhood;
    }
    /**
     * Set neighbourhood value
     * @param string $neighbourhood
     * @return UpdateGeoLocationPolicyReq
     */
    public function setNeighbourhood($neighbourhood = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($neighbourhood) && strlen($neighbourhood) > 255) || (is_array($neighbourhood) && count($neighbourhood) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($neighbourhood) ? strlen($neighbourhood) : count($neighbourhood)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($neighbourhood) && !is_string($neighbourhood)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($neighbourhood)), __LINE__);
        }
        $this->neighbourhood = $neighbourhood;
        return $this;
    }
    /**
     * Get street value
     * @return string|null
     */
    public function getStreet()
    {
        return $this->street;
    }
    /**
     * Set street value
     * @param string $street
     * @return UpdateGeoLocationPolicyReq
     */
    public function setStreet($street = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($street) && strlen($street) > 255) || (is_array($street) && count($street) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($street) ? strlen($street) : count($street)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($street) && !is_string($street)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($street)), __LINE__);
        }
        $this->street = $street;
        return $this;
    }
    /**
     * Get leadingStreetDirection value
     * @return string|null
     */
    public function getLeadingStreetDirection()
    {
        return $this->leadingStreetDirection;
    }
    /**
     * Set leadingStreetDirection value
     * @param string $leadingStreetDirection
     * @return UpdateGeoLocationPolicyReq
     */
    public function setLeadingStreetDirection($leadingStreetDirection = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($leadingStreetDirection) && strlen($leadingStreetDirection) > 50) || (is_array($leadingStreetDirection) && count($leadingStreetDirection) > 50)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 50 element(s) or a scalar of 50 character(s) at most, "%d" length given', is_scalar($leadingStreetDirection) ? strlen($leadingStreetDirection) : count($leadingStreetDirection)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($leadingStreetDirection) && !is_string($leadingStreetDirection)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($leadingStreetDirection)), __LINE__);
        }
        $this->leadingStreetDirection = $leadingStreetDirection;
        return $this;
    }
    /**
     * Get trailingStreetSuffix value
     * @return string|null
     */
    public function getTrailingStreetSuffix()
    {
        return $this->trailingStreetSuffix;
    }
    /**
     * Set trailingStreetSuffix value
     * @param string $trailingStreetSuffix
     * @return UpdateGeoLocationPolicyReq
     */
    public function setTrailingStreetSuffix($trailingStreetSuffix = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($trailingStreetSuffix) && strlen($trailingStreetSuffix) > 50) || (is_array($trailingStreetSuffix) && count($trailingStreetSuffix) > 50)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 50 element(s) or a scalar of 50 character(s) at most, "%d" length given', is_scalar($trailingStreetSuffix) ? strlen($trailingStreetSuffix) : count($trailingStreetSuffix)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($trailingStreetSuffix) && !is_string($trailingStreetSuffix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($trailingStreetSuffix)), __LINE__);
        }
        $this->trailingStreetSuffix = $trailingStreetSuffix;
        return $this;
    }
    /**
     * Get streetSuffix value
     * @return string|null
     */
    public function getStreetSuffix()
    {
        return $this->streetSuffix;
    }
    /**
     * Set streetSuffix value
     * @param string $streetSuffix
     * @return UpdateGeoLocationPolicyReq
     */
    public function setStreetSuffix($streetSuffix = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($streetSuffix) && strlen($streetSuffix) > 255) || (is_array($streetSuffix) && count($streetSuffix) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($streetSuffix) ? strlen($streetSuffix) : count($streetSuffix)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($streetSuffix) && !is_string($streetSuffix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($streetSuffix)), __LINE__);
        }
        $this->streetSuffix = $streetSuffix;
        return $this;
    }
    /**
     * Get houseNumber value
     * @return string|null
     */
    public function getHouseNumber()
    {
        return $this->houseNumber;
    }
    /**
     * Set houseNumber value
     * @param string $houseNumber
     * @return UpdateGeoLocationPolicyReq
     */
    public function setHouseNumber($houseNumber = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($houseNumber) && strlen($houseNumber) > 16) || (is_array($houseNumber) && count($houseNumber) > 16)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 16 element(s) or a scalar of 16 character(s) at most, "%d" length given', is_scalar($houseNumber) ? strlen($houseNumber) : count($houseNumber)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($houseNumber) && !is_string($houseNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($houseNumber)), __LINE__);
        }
        $this->houseNumber = $houseNumber;
        return $this;
    }
    /**
     * Get houseNumberSuffix value
     * @return string|null
     */
    public function getHouseNumberSuffix()
    {
        return $this->houseNumberSuffix;
    }
    /**
     * Set houseNumberSuffix value
     * @param string $houseNumberSuffix
     * @return UpdateGeoLocationPolicyReq
     */
    public function setHouseNumberSuffix($houseNumberSuffix = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($houseNumberSuffix) && strlen($houseNumberSuffix) > 100) || (is_array($houseNumberSuffix) && count($houseNumberSuffix) > 100)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 100 element(s) or a scalar of 100 character(s) at most, "%d" length given', is_scalar($houseNumberSuffix) ? strlen($houseNumberSuffix) : count($houseNumberSuffix)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($houseNumberSuffix) && !is_string($houseNumberSuffix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($houseNumberSuffix)), __LINE__);
        }
        $this->houseNumberSuffix = $houseNumberSuffix;
        return $this;
    }
    /**
     * Get landmark value
     * @return string|null
     */
    public function getLandmark()
    {
        return $this->landmark;
    }
    /**
     * Set landmark value
     * @param string $landmark
     * @return UpdateGeoLocationPolicyReq
     */
    public function setLandmark($landmark = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($landmark) && strlen($landmark) > 255) || (is_array($landmark) && count($landmark) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($landmark) ? strlen($landmark) : count($landmark)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($landmark) && !is_string($landmark)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($landmark)), __LINE__);
        }
        $this->landmark = $landmark;
        return $this;
    }
    /**
     * Get location value
     * @return string|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @param string $location
     * @return UpdateGeoLocationPolicyReq
     */
    public function setLocation($location = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($location) && strlen($location) > 255) || (is_array($location) && count($location) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($location) ? strlen($location) : count($location)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($location) && !is_string($location)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($location)), __LINE__);
        }
        $this->location = $location;
        return $this;
    }
    /**
     * Get floor value
     * @return string|null
     */
    public function getFloor()
    {
        return $this->floor;
    }
    /**
     * Set floor value
     * @param string $floor
     * @return UpdateGeoLocationPolicyReq
     */
    public function setFloor($floor = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($floor) && strlen($floor) > 16) || (is_array($floor) && count($floor) > 16)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 16 element(s) or a scalar of 16 character(s) at most, "%d" length given', is_scalar($floor) ? strlen($floor) : count($floor)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($floor) && !is_string($floor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($floor)), __LINE__);
        }
        $this->floor = $floor;
        return $this;
    }
    /**
     * Get occupantName value
     * @return string|null
     */
    public function getOccupantName()
    {
        return $this->occupantName;
    }
    /**
     * Set occupantName value
     * @param string $occupantName
     * @return UpdateGeoLocationPolicyReq
     */
    public function setOccupantName($occupantName = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($occupantName) && strlen($occupantName) > 255) || (is_array($occupantName) && count($occupantName) > 255)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 255 element(s) or a scalar of 255 character(s) at most, "%d" length given', is_scalar($occupantName) ? strlen($occupantName) : count($occupantName)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($occupantName) && !is_string($occupantName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($occupantName)), __LINE__);
        }
        $this->occupantName = $occupantName;
        return $this;
    }
    /**
     * Get postalCode value
     * @return string|null
     */
    public function getPostalCode()
    {
        return $this->postalCode;
    }
    /**
     * Set postalCode value
     * @param string $postalCode
     * @return UpdateGeoLocationPolicyReq
     */
    public function setPostalCode($postalCode = null)
    {
        // validation for constraint: maxLength
        if ((is_scalar($postalCode) && strlen($postalCode) > 100) || (is_array($postalCode) && count($postalCode) > 100)) {
            throw new \InvalidArgumentException(sprintf('Invalid length, please provide an array with 100 element(s) or a scalar of 100 character(s) at most, "%d" length given', is_scalar($postalCode) ? strlen($postalCode) : count($postalCode)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($postalCode) && !is_string($postalCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($postalCode)), __LINE__);
        }
        $this->postalCode = $postalCode;
        return $this;
    }
    /**
     * Get removeRelatedPolicies value
     * @return RemoveRelatedPolicies|null
     */
    public function getRemoveRelatedPolicies()
    {
        return $this->removeRelatedPolicies;
    }
    /**
     * Set removeRelatedPolicies value
     * @param RemoveRelatedPolicies $removeRelatedPolicies
     * @return UpdateGeoLocationPolicyReq
     */
    public function setRemoveRelatedPolicies(RemoveRelatedPolicies $removeRelatedPolicies = null)
    {
        $this->removeRelatedPolicies = $removeRelatedPolicies;
        return $this;
    }
    /**
     * Get addRelatedPolicies value
     * @return AddRelatedPolicies|null
     */
    public function getAddRelatedPolicies()
    {
        return $this->addRelatedPolicies;
    }
    /**
     * Set addRelatedPolicies value
     * @param AddRelatedPolicies $addRelatedPolicies
     * @return UpdateGeoLocationPolicyReq
     */
    public function setAddRelatedPolicies(AddRelatedPolicies $addRelatedPolicies = null)
    {
        $this->addRelatedPolicies = $addRelatedPolicies;
        return $this;
    }
    /**
     * Get relatedPolicies value
     * @return RelatedPolicies|null
     */
    public function getRelatedPolicies()
    {
        return $this->relatedPolicies;
    }
    /**
     * Set relatedPolicies value
     * @param RelatedPolicies $relatedPolicies
     * @return UpdateGeoLocationPolicyReq
     */
    public function setRelatedPolicies(RelatedPolicies $relatedPolicies = null)
    {
        $this->relatedPolicies = $relatedPolicies;
        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 UpdateGeoLocationPolicyReq
     */
    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__;
    }
}
