<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Security.EsroWebAppCompanyParameters StructType
 * @subpackage Structs
 */
class Security_EsroWebAppCompanyParameters extends Security_CompanyParameterBase
{
    /**
     * The BypassPassPhraseMaxAge
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $BypassPassPhraseMaxAge;
    /**
     * The BypassPassPhraseWhenNoDOB
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $BypassPassPhraseWhenNoDOB;
    /**
     * The DisableLinkedClientsManagement
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DisableLinkedClientsManagement;
    /**
     * The DisplayClientImage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DisplayClientImage;
    /**
     * The DisplayLoyaltyPoints
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DisplayLoyaltyPoints;
    /**
     * The DisplayQualityPoints
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DisplayQualityPoints;
    /**
     * The EnableAccountCreation
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableAccountCreation;
    /**
     * The EnableDistribute
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableDistribute;
    /**
     * The EnableDonate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableDonate;
    /**
     * The EnableForward
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableForward;
    /**
     * The EnableFriendsAndFamilyTab
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableFriendsAndFamilyTab;
    /**
     * The EnableReplaceSeat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableReplaceSeat;
    /**
     * The EnableResell
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableResell;
    /**
     * The EnableTicketsTab
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EnableTicketsTab;
    /**
     * The FFGranularRestriction
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FFGranularRestriction;
    /**
     * The FriendsFamilyFieldsMandatory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FriendsFamilyFieldsMandatory;
    /**
     * The FriendsFamilyFieldsToHide
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FriendsFamilyFieldsToHide;
    /**
     * The MyProfileHiddenFields
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MyProfileHiddenFields;
    /**
     * The MyProfileMandatoryFields
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MyProfileMandatoryFields;
    /**
     * The MyProfileReadOnlyFields
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MyProfileReadOnlyFields;
    /**
     * Constructor method for Security.EsroWebAppCompanyParameters
     * @uses Security_EsroWebAppCompanyParameters::setBypassPassPhraseMaxAge()
     * @uses Security_EsroWebAppCompanyParameters::setBypassPassPhraseWhenNoDOB()
     * @uses Security_EsroWebAppCompanyParameters::setDisableLinkedClientsManagement()
     * @uses Security_EsroWebAppCompanyParameters::setDisplayClientImage()
     * @uses Security_EsroWebAppCompanyParameters::setDisplayLoyaltyPoints()
     * @uses Security_EsroWebAppCompanyParameters::setDisplayQualityPoints()
     * @uses Security_EsroWebAppCompanyParameters::setEnableAccountCreation()
     * @uses Security_EsroWebAppCompanyParameters::setEnableDistribute()
     * @uses Security_EsroWebAppCompanyParameters::setEnableDonate()
     * @uses Security_EsroWebAppCompanyParameters::setEnableForward()
     * @uses Security_EsroWebAppCompanyParameters::setEnableFriendsAndFamilyTab()
     * @uses Security_EsroWebAppCompanyParameters::setEnableReplaceSeat()
     * @uses Security_EsroWebAppCompanyParameters::setEnableResell()
     * @uses Security_EsroWebAppCompanyParameters::setEnableTicketsTab()
     * @uses Security_EsroWebAppCompanyParameters::setFFGranularRestriction()
     * @uses Security_EsroWebAppCompanyParameters::setFriendsFamilyFieldsMandatory()
     * @uses Security_EsroWebAppCompanyParameters::setFriendsFamilyFieldsToHide()
     * @uses Security_EsroWebAppCompanyParameters::setMyProfileHiddenFields()
     * @uses Security_EsroWebAppCompanyParameters::setMyProfileMandatoryFields()
     * @uses Security_EsroWebAppCompanyParameters::setMyProfileReadOnlyFields()
     * @param int $bypassPassPhraseMaxAge
     * @param bool $bypassPassPhraseWhenNoDOB
     * @param bool $disableLinkedClientsManagement
     * @param bool $displayClientImage
     * @param bool $displayLoyaltyPoints
     * @param bool $displayQualityPoints
     * @param bool $enableAccountCreation
     * @param bool $enableDistribute
     * @param bool $enableDonate
     * @param bool $enableForward
     * @param bool $enableFriendsAndFamilyTab
     * @param bool $enableReplaceSeat
     * @param bool $enableResell
     * @param bool $enableTicketsTab
     * @param string $fFGranularRestriction
     * @param string $friendsFamilyFieldsMandatory
     * @param string $friendsFamilyFieldsToHide
     * @param string $myProfileHiddenFields
     * @param string $myProfileMandatoryFields
     * @param string $myProfileReadOnlyFields
     */
    public function __construct($bypassPassPhraseMaxAge = null, $bypassPassPhraseWhenNoDOB = null, $disableLinkedClientsManagement = null, $displayClientImage = null, $displayLoyaltyPoints = null, $displayQualityPoints = null, $enableAccountCreation = null, $enableDistribute = null, $enableDonate = null, $enableForward = null, $enableFriendsAndFamilyTab = null, $enableReplaceSeat = null, $enableResell = null, $enableTicketsTab = null, $fFGranularRestriction = null, $friendsFamilyFieldsMandatory = null, $friendsFamilyFieldsToHide = null, $myProfileHiddenFields = null, $myProfileMandatoryFields = null, $myProfileReadOnlyFields = null)
    {
        $this
            ->setBypassPassPhraseMaxAge($bypassPassPhraseMaxAge)
            ->setBypassPassPhraseWhenNoDOB($bypassPassPhraseWhenNoDOB)
            ->setDisableLinkedClientsManagement($disableLinkedClientsManagement)
            ->setDisplayClientImage($displayClientImage)
            ->setDisplayLoyaltyPoints($displayLoyaltyPoints)
            ->setDisplayQualityPoints($displayQualityPoints)
            ->setEnableAccountCreation($enableAccountCreation)
            ->setEnableDistribute($enableDistribute)
            ->setEnableDonate($enableDonate)
            ->setEnableForward($enableForward)
            ->setEnableFriendsAndFamilyTab($enableFriendsAndFamilyTab)
            ->setEnableReplaceSeat($enableReplaceSeat)
            ->setEnableResell($enableResell)
            ->setEnableTicketsTab($enableTicketsTab)
            ->setFFGranularRestriction($fFGranularRestriction)
            ->setFriendsFamilyFieldsMandatory($friendsFamilyFieldsMandatory)
            ->setFriendsFamilyFieldsToHide($friendsFamilyFieldsToHide)
            ->setMyProfileHiddenFields($myProfileHiddenFields)
            ->setMyProfileMandatoryFields($myProfileMandatoryFields)
            ->setMyProfileReadOnlyFields($myProfileReadOnlyFields);
    }
    /**
     * Get BypassPassPhraseMaxAge value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return int|null
     */
    public function getBypassPassPhraseMaxAge()
    {
        return isset($this->BypassPassPhraseMaxAge) ? $this->BypassPassPhraseMaxAge : null;
    }
    /**
     * Set BypassPassPhraseMaxAge value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param int $bypassPassPhraseMaxAge
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setBypassPassPhraseMaxAge($bypassPassPhraseMaxAge = null)
    {
        // validation for constraint: int
        if (!is_null($bypassPassPhraseMaxAge) && !(is_int($bypassPassPhraseMaxAge) || ctype_digit($bypassPassPhraseMaxAge))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($bypassPassPhraseMaxAge, true), gettype($bypassPassPhraseMaxAge)), __LINE__);
        }
        if (is_null($bypassPassPhraseMaxAge) || (is_array($bypassPassPhraseMaxAge) && empty($bypassPassPhraseMaxAge))) {
            unset($this->BypassPassPhraseMaxAge);
        } else {
            $this->BypassPassPhraseMaxAge = $bypassPassPhraseMaxAge;
        }
        return $this;
    }
    /**
     * Get BypassPassPhraseWhenNoDOB value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getBypassPassPhraseWhenNoDOB()
    {
        return isset($this->BypassPassPhraseWhenNoDOB) ? $this->BypassPassPhraseWhenNoDOB : null;
    }
    /**
     * Set BypassPassPhraseWhenNoDOB value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $bypassPassPhraseWhenNoDOB
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setBypassPassPhraseWhenNoDOB($bypassPassPhraseWhenNoDOB = null)
    {
        // validation for constraint: boolean
        if (!is_null($bypassPassPhraseWhenNoDOB) && !is_bool($bypassPassPhraseWhenNoDOB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($bypassPassPhraseWhenNoDOB, true), gettype($bypassPassPhraseWhenNoDOB)), __LINE__);
        }
        if (is_null($bypassPassPhraseWhenNoDOB) || (is_array($bypassPassPhraseWhenNoDOB) && empty($bypassPassPhraseWhenNoDOB))) {
            unset($this->BypassPassPhraseWhenNoDOB);
        } else {
            $this->BypassPassPhraseWhenNoDOB = $bypassPassPhraseWhenNoDOB;
        }
        return $this;
    }
    /**
     * Get DisableLinkedClientsManagement value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getDisableLinkedClientsManagement()
    {
        return isset($this->DisableLinkedClientsManagement) ? $this->DisableLinkedClientsManagement : null;
    }
    /**
     * Set DisableLinkedClientsManagement value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $disableLinkedClientsManagement
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setDisableLinkedClientsManagement($disableLinkedClientsManagement = null)
    {
        // validation for constraint: boolean
        if (!is_null($disableLinkedClientsManagement) && !is_bool($disableLinkedClientsManagement)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($disableLinkedClientsManagement, true), gettype($disableLinkedClientsManagement)), __LINE__);
        }
        if (is_null($disableLinkedClientsManagement) || (is_array($disableLinkedClientsManagement) && empty($disableLinkedClientsManagement))) {
            unset($this->DisableLinkedClientsManagement);
        } else {
            $this->DisableLinkedClientsManagement = $disableLinkedClientsManagement;
        }
        return $this;
    }
    /**
     * Get DisplayClientImage value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getDisplayClientImage()
    {
        return isset($this->DisplayClientImage) ? $this->DisplayClientImage : null;
    }
    /**
     * Set DisplayClientImage value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $displayClientImage
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setDisplayClientImage($displayClientImage = null)
    {
        // validation for constraint: boolean
        if (!is_null($displayClientImage) && !is_bool($displayClientImage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($displayClientImage, true), gettype($displayClientImage)), __LINE__);
        }
        if (is_null($displayClientImage) || (is_array($displayClientImage) && empty($displayClientImage))) {
            unset($this->DisplayClientImage);
        } else {
            $this->DisplayClientImage = $displayClientImage;
        }
        return $this;
    }
    /**
     * Get DisplayLoyaltyPoints value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getDisplayLoyaltyPoints()
    {
        return isset($this->DisplayLoyaltyPoints) ? $this->DisplayLoyaltyPoints : null;
    }
    /**
     * Set DisplayLoyaltyPoints value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $displayLoyaltyPoints
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setDisplayLoyaltyPoints($displayLoyaltyPoints = null)
    {
        // validation for constraint: boolean
        if (!is_null($displayLoyaltyPoints) && !is_bool($displayLoyaltyPoints)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($displayLoyaltyPoints, true), gettype($displayLoyaltyPoints)), __LINE__);
        }
        if (is_null($displayLoyaltyPoints) || (is_array($displayLoyaltyPoints) && empty($displayLoyaltyPoints))) {
            unset($this->DisplayLoyaltyPoints);
        } else {
            $this->DisplayLoyaltyPoints = $displayLoyaltyPoints;
        }
        return $this;
    }
    /**
     * Get DisplayQualityPoints value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getDisplayQualityPoints()
    {
        return isset($this->DisplayQualityPoints) ? $this->DisplayQualityPoints : null;
    }
    /**
     * Set DisplayQualityPoints value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $displayQualityPoints
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setDisplayQualityPoints($displayQualityPoints = null)
    {
        // validation for constraint: boolean
        if (!is_null($displayQualityPoints) && !is_bool($displayQualityPoints)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($displayQualityPoints, true), gettype($displayQualityPoints)), __LINE__);
        }
        if (is_null($displayQualityPoints) || (is_array($displayQualityPoints) && empty($displayQualityPoints))) {
            unset($this->DisplayQualityPoints);
        } else {
            $this->DisplayQualityPoints = $displayQualityPoints;
        }
        return $this;
    }
    /**
     * Get EnableAccountCreation value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableAccountCreation()
    {
        return isset($this->EnableAccountCreation) ? $this->EnableAccountCreation : null;
    }
    /**
     * Set EnableAccountCreation value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableAccountCreation
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableAccountCreation($enableAccountCreation = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableAccountCreation) && !is_bool($enableAccountCreation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableAccountCreation, true), gettype($enableAccountCreation)), __LINE__);
        }
        if (is_null($enableAccountCreation) || (is_array($enableAccountCreation) && empty($enableAccountCreation))) {
            unset($this->EnableAccountCreation);
        } else {
            $this->EnableAccountCreation = $enableAccountCreation;
        }
        return $this;
    }
    /**
     * Get EnableDistribute value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableDistribute()
    {
        return isset($this->EnableDistribute) ? $this->EnableDistribute : null;
    }
    /**
     * Set EnableDistribute value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableDistribute
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableDistribute($enableDistribute = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableDistribute) && !is_bool($enableDistribute)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableDistribute, true), gettype($enableDistribute)), __LINE__);
        }
        if (is_null($enableDistribute) || (is_array($enableDistribute) && empty($enableDistribute))) {
            unset($this->EnableDistribute);
        } else {
            $this->EnableDistribute = $enableDistribute;
        }
        return $this;
    }
    /**
     * Get EnableDonate value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableDonate()
    {
        return isset($this->EnableDonate) ? $this->EnableDonate : null;
    }
    /**
     * Set EnableDonate value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableDonate
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableDonate($enableDonate = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableDonate) && !is_bool($enableDonate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableDonate, true), gettype($enableDonate)), __LINE__);
        }
        if (is_null($enableDonate) || (is_array($enableDonate) && empty($enableDonate))) {
            unset($this->EnableDonate);
        } else {
            $this->EnableDonate = $enableDonate;
        }
        return $this;
    }
    /**
     * Get EnableForward value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableForward()
    {
        return isset($this->EnableForward) ? $this->EnableForward : null;
    }
    /**
     * Set EnableForward value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableForward
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableForward($enableForward = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableForward) && !is_bool($enableForward)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableForward, true), gettype($enableForward)), __LINE__);
        }
        if (is_null($enableForward) || (is_array($enableForward) && empty($enableForward))) {
            unset($this->EnableForward);
        } else {
            $this->EnableForward = $enableForward;
        }
        return $this;
    }
    /**
     * Get EnableFriendsAndFamilyTab value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableFriendsAndFamilyTab()
    {
        return isset($this->EnableFriendsAndFamilyTab) ? $this->EnableFriendsAndFamilyTab : null;
    }
    /**
     * Set EnableFriendsAndFamilyTab value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableFriendsAndFamilyTab
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableFriendsAndFamilyTab($enableFriendsAndFamilyTab = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableFriendsAndFamilyTab) && !is_bool($enableFriendsAndFamilyTab)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableFriendsAndFamilyTab, true), gettype($enableFriendsAndFamilyTab)), __LINE__);
        }
        if (is_null($enableFriendsAndFamilyTab) || (is_array($enableFriendsAndFamilyTab) && empty($enableFriendsAndFamilyTab))) {
            unset($this->EnableFriendsAndFamilyTab);
        } else {
            $this->EnableFriendsAndFamilyTab = $enableFriendsAndFamilyTab;
        }
        return $this;
    }
    /**
     * Get EnableReplaceSeat value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableReplaceSeat()
    {
        return isset($this->EnableReplaceSeat) ? $this->EnableReplaceSeat : null;
    }
    /**
     * Set EnableReplaceSeat value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableReplaceSeat
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableReplaceSeat($enableReplaceSeat = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableReplaceSeat) && !is_bool($enableReplaceSeat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableReplaceSeat, true), gettype($enableReplaceSeat)), __LINE__);
        }
        if (is_null($enableReplaceSeat) || (is_array($enableReplaceSeat) && empty($enableReplaceSeat))) {
            unset($this->EnableReplaceSeat);
        } else {
            $this->EnableReplaceSeat = $enableReplaceSeat;
        }
        return $this;
    }
    /**
     * Get EnableResell value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableResell()
    {
        return isset($this->EnableResell) ? $this->EnableResell : null;
    }
    /**
     * Set EnableResell value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableResell
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableResell($enableResell = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableResell) && !is_bool($enableResell)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableResell, true), gettype($enableResell)), __LINE__);
        }
        if (is_null($enableResell) || (is_array($enableResell) && empty($enableResell))) {
            unset($this->EnableResell);
        } else {
            $this->EnableResell = $enableResell;
        }
        return $this;
    }
    /**
     * Get EnableTicketsTab value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEnableTicketsTab()
    {
        return isset($this->EnableTicketsTab) ? $this->EnableTicketsTab : null;
    }
    /**
     * Set EnableTicketsTab value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $enableTicketsTab
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setEnableTicketsTab($enableTicketsTab = null)
    {
        // validation for constraint: boolean
        if (!is_null($enableTicketsTab) && !is_bool($enableTicketsTab)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enableTicketsTab, true), gettype($enableTicketsTab)), __LINE__);
        }
        if (is_null($enableTicketsTab) || (is_array($enableTicketsTab) && empty($enableTicketsTab))) {
            unset($this->EnableTicketsTab);
        } else {
            $this->EnableTicketsTab = $enableTicketsTab;
        }
        return $this;
    }
    /**
     * Get FFGranularRestriction value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getFFGranularRestriction()
    {
        return isset($this->FFGranularRestriction) ? $this->FFGranularRestriction : null;
    }
    /**
     * Set FFGranularRestriction value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $fFGranularRestriction
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setFFGranularRestriction($fFGranularRestriction = null)
    {
        // validation for constraint: string
        if (!is_null($fFGranularRestriction) && !is_string($fFGranularRestriction)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fFGranularRestriction, true), gettype($fFGranularRestriction)), __LINE__);
        }
        if (is_null($fFGranularRestriction) || (is_array($fFGranularRestriction) && empty($fFGranularRestriction))) {
            unset($this->FFGranularRestriction);
        } else {
            $this->FFGranularRestriction = $fFGranularRestriction;
        }
        return $this;
    }
    /**
     * Get FriendsFamilyFieldsMandatory value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getFriendsFamilyFieldsMandatory()
    {
        return isset($this->FriendsFamilyFieldsMandatory) ? $this->FriendsFamilyFieldsMandatory : null;
    }
    /**
     * Set FriendsFamilyFieldsMandatory value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $friendsFamilyFieldsMandatory
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setFriendsFamilyFieldsMandatory($friendsFamilyFieldsMandatory = null)
    {
        // validation for constraint: string
        if (!is_null($friendsFamilyFieldsMandatory) && !is_string($friendsFamilyFieldsMandatory)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($friendsFamilyFieldsMandatory, true), gettype($friendsFamilyFieldsMandatory)), __LINE__);
        }
        if (is_null($friendsFamilyFieldsMandatory) || (is_array($friendsFamilyFieldsMandatory) && empty($friendsFamilyFieldsMandatory))) {
            unset($this->FriendsFamilyFieldsMandatory);
        } else {
            $this->FriendsFamilyFieldsMandatory = $friendsFamilyFieldsMandatory;
        }
        return $this;
    }
    /**
     * Get FriendsFamilyFieldsToHide value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getFriendsFamilyFieldsToHide()
    {
        return isset($this->FriendsFamilyFieldsToHide) ? $this->FriendsFamilyFieldsToHide : null;
    }
    /**
     * Set FriendsFamilyFieldsToHide value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $friendsFamilyFieldsToHide
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setFriendsFamilyFieldsToHide($friendsFamilyFieldsToHide = null)
    {
        // validation for constraint: string
        if (!is_null($friendsFamilyFieldsToHide) && !is_string($friendsFamilyFieldsToHide)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($friendsFamilyFieldsToHide, true), gettype($friendsFamilyFieldsToHide)), __LINE__);
        }
        if (is_null($friendsFamilyFieldsToHide) || (is_array($friendsFamilyFieldsToHide) && empty($friendsFamilyFieldsToHide))) {
            unset($this->FriendsFamilyFieldsToHide);
        } else {
            $this->FriendsFamilyFieldsToHide = $friendsFamilyFieldsToHide;
        }
        return $this;
    }
    /**
     * Get MyProfileHiddenFields value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getMyProfileHiddenFields()
    {
        return isset($this->MyProfileHiddenFields) ? $this->MyProfileHiddenFields : null;
    }
    /**
     * Set MyProfileHiddenFields value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $myProfileHiddenFields
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setMyProfileHiddenFields($myProfileHiddenFields = null)
    {
        // validation for constraint: string
        if (!is_null($myProfileHiddenFields) && !is_string($myProfileHiddenFields)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($myProfileHiddenFields, true), gettype($myProfileHiddenFields)), __LINE__);
        }
        if (is_null($myProfileHiddenFields) || (is_array($myProfileHiddenFields) && empty($myProfileHiddenFields))) {
            unset($this->MyProfileHiddenFields);
        } else {
            $this->MyProfileHiddenFields = $myProfileHiddenFields;
        }
        return $this;
    }
    /**
     * Get MyProfileMandatoryFields value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getMyProfileMandatoryFields()
    {
        return isset($this->MyProfileMandatoryFields) ? $this->MyProfileMandatoryFields : null;
    }
    /**
     * Set MyProfileMandatoryFields value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $myProfileMandatoryFields
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setMyProfileMandatoryFields($myProfileMandatoryFields = null)
    {
        // validation for constraint: string
        if (!is_null($myProfileMandatoryFields) && !is_string($myProfileMandatoryFields)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($myProfileMandatoryFields, true), gettype($myProfileMandatoryFields)), __LINE__);
        }
        if (is_null($myProfileMandatoryFields) || (is_array($myProfileMandatoryFields) && empty($myProfileMandatoryFields))) {
            unset($this->MyProfileMandatoryFields);
        } else {
            $this->MyProfileMandatoryFields = $myProfileMandatoryFields;
        }
        return $this;
    }
    /**
     * Get MyProfileReadOnlyFields value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getMyProfileReadOnlyFields()
    {
        return isset($this->MyProfileReadOnlyFields) ? $this->MyProfileReadOnlyFields : null;
    }
    /**
     * Set MyProfileReadOnlyFields value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $myProfileReadOnlyFields
     * @return \patest\StructType\Security_EsroWebAppCompanyParameters
     */
    public function setMyProfileReadOnlyFields($myProfileReadOnlyFields = null)
    {
        // validation for constraint: string
        if (!is_null($myProfileReadOnlyFields) && !is_string($myProfileReadOnlyFields)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($myProfileReadOnlyFields, true), gettype($myProfileReadOnlyFields)), __LINE__);
        }
        if (is_null($myProfileReadOnlyFields) || (is_array($myProfileReadOnlyFields) && empty($myProfileReadOnlyFields))) {
            unset($this->MyProfileReadOnlyFields);
        } else {
            $this->MyProfileReadOnlyFields = $myProfileReadOnlyFields;
        }
        return $this;
    }
}
