<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Security.RecoveryPageTemplateCompanyParameters StructType
 * @subpackage Structs
 */
class Security_RecoveryPageTemplateCompanyParameters extends Security_CompanyParameterBase
{
    /**
     * The BannerColor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $BannerColor;
    /**
     * The BannerColorExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $BannerColorExplain;
    /**
     * The Header
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $Header;
    /**
     * The HeaderExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $HeaderExplain;
    /**
     * The LogoImage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LogoImage;
    /**
     * The LogoImageExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $LogoImageExplain;
    /**
     * The PayByLinkHeader
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkHeader;
    /**
     * The PayByLinkHeaderExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkHeaderExplain;
    /**
     * The PayByLinkSecurityNotice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkSecurityNotice;
    /**
     * The PayByLinkSecurityNoticeExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkSecurityNoticeExplain;
    /**
     * The PayByLinkSubhead
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkSubhead;
    /**
     * The PayByLinkSubheadExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PayByLinkSubheadExplain;
    /**
     * The PayByLinkTermsAndConditionsLink
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PayByLinkTermsAndConditionsLink;
    /**
     * The PaymentDetailsPageTemplateExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $PaymentDetailsPageTemplateExplain;
    /**
     * The SecurityNotice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $SecurityNotice;
    /**
     * The SecurityNoticeExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $SecurityNoticeExplain;
    /**
     * The Subhead
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $Subhead;
    /**
     * The SubheadExplain
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\GlobalString
     */
    public $SubheadExplain;
    /**
     * The TermsAndConditionsLink
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TermsAndConditionsLink;
    /**
     * Constructor method for Security.RecoveryPageTemplateCompanyParameters
     * @uses Security_RecoveryPageTemplateCompanyParameters::setBannerColor()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setBannerColorExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setHeader()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setHeaderExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setLogoImage()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setLogoImageExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkHeader()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkHeaderExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkSecurityNotice()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkSecurityNoticeExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkSubhead()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkSubheadExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPayByLinkTermsAndConditionsLink()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setPaymentDetailsPageTemplateExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setSecurityNotice()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setSecurityNoticeExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setSubhead()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setSubheadExplain()
     * @uses Security_RecoveryPageTemplateCompanyParameters::setTermsAndConditionsLink()
     * @param string $bannerColor
     * @param \patest\StructType\GlobalString $bannerColorExplain
     * @param \patest\StructType\GlobalString $header
     * @param \patest\StructType\GlobalString $headerExplain
     * @param string $logoImage
     * @param \patest\StructType\GlobalString $logoImageExplain
     * @param \patest\StructType\GlobalString $payByLinkHeader
     * @param \patest\StructType\GlobalString $payByLinkHeaderExplain
     * @param \patest\StructType\GlobalString $payByLinkSecurityNotice
     * @param \patest\StructType\GlobalString $payByLinkSecurityNoticeExplain
     * @param \patest\StructType\GlobalString $payByLinkSubhead
     * @param \patest\StructType\GlobalString $payByLinkSubheadExplain
     * @param string $payByLinkTermsAndConditionsLink
     * @param \patest\StructType\GlobalString $paymentDetailsPageTemplateExplain
     * @param \patest\StructType\GlobalString $securityNotice
     * @param \patest\StructType\GlobalString $securityNoticeExplain
     * @param \patest\StructType\GlobalString $subhead
     * @param \patest\StructType\GlobalString $subheadExplain
     * @param string $termsAndConditionsLink
     */
    public function __construct($bannerColor = null, \patest\StructType\GlobalString $bannerColorExplain = null, \patest\StructType\GlobalString $header = null, \patest\StructType\GlobalString $headerExplain = null, $logoImage = null, \patest\StructType\GlobalString $logoImageExplain = null, \patest\StructType\GlobalString $payByLinkHeader = null, \patest\StructType\GlobalString $payByLinkHeaderExplain = null, \patest\StructType\GlobalString $payByLinkSecurityNotice = null, \patest\StructType\GlobalString $payByLinkSecurityNoticeExplain = null, \patest\StructType\GlobalString $payByLinkSubhead = null, \patest\StructType\GlobalString $payByLinkSubheadExplain = null, $payByLinkTermsAndConditionsLink = null, \patest\StructType\GlobalString $paymentDetailsPageTemplateExplain = null, \patest\StructType\GlobalString $securityNotice = null, \patest\StructType\GlobalString $securityNoticeExplain = null, \patest\StructType\GlobalString $subhead = null, \patest\StructType\GlobalString $subheadExplain = null, $termsAndConditionsLink = null)
    {
        $this
            ->setBannerColor($bannerColor)
            ->setBannerColorExplain($bannerColorExplain)
            ->setHeader($header)
            ->setHeaderExplain($headerExplain)
            ->setLogoImage($logoImage)
            ->setLogoImageExplain($logoImageExplain)
            ->setPayByLinkHeader($payByLinkHeader)
            ->setPayByLinkHeaderExplain($payByLinkHeaderExplain)
            ->setPayByLinkSecurityNotice($payByLinkSecurityNotice)
            ->setPayByLinkSecurityNoticeExplain($payByLinkSecurityNoticeExplain)
            ->setPayByLinkSubhead($payByLinkSubhead)
            ->setPayByLinkSubheadExplain($payByLinkSubheadExplain)
            ->setPayByLinkTermsAndConditionsLink($payByLinkTermsAndConditionsLink)
            ->setPaymentDetailsPageTemplateExplain($paymentDetailsPageTemplateExplain)
            ->setSecurityNotice($securityNotice)
            ->setSecurityNoticeExplain($securityNoticeExplain)
            ->setSubhead($subhead)
            ->setSubheadExplain($subheadExplain)
            ->setTermsAndConditionsLink($termsAndConditionsLink);
    }
    /**
     * Get BannerColor 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 getBannerColor()
    {
        return isset($this->BannerColor) ? $this->BannerColor : null;
    }
    /**
     * Set BannerColor 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 $bannerColor
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setBannerColor($bannerColor = null)
    {
        // validation for constraint: string
        if (!is_null($bannerColor) && !is_string($bannerColor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($bannerColor, true), gettype($bannerColor)), __LINE__);
        }
        if (is_null($bannerColor) || (is_array($bannerColor) && empty($bannerColor))) {
            unset($this->BannerColor);
        } else {
            $this->BannerColor = $bannerColor;
        }
        return $this;
    }
    /**
     * Get BannerColorExplain 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 \patest\StructType\GlobalString|null
     */
    public function getBannerColorExplain()
    {
        return isset($this->BannerColorExplain) ? $this->BannerColorExplain : null;
    }
    /**
     * Set BannerColorExplain 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 \patest\StructType\GlobalString $bannerColorExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setBannerColorExplain(\patest\StructType\GlobalString $bannerColorExplain = null)
    {
        if (is_null($bannerColorExplain) || (is_array($bannerColorExplain) && empty($bannerColorExplain))) {
            unset($this->BannerColorExplain);
        } else {
            $this->BannerColorExplain = $bannerColorExplain;
        }
        return $this;
    }
    /**
     * Get Header 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 \patest\StructType\GlobalString|null
     */
    public function getHeader()
    {
        return isset($this->Header) ? $this->Header : null;
    }
    /**
     * Set Header 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 \patest\StructType\GlobalString $header
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setHeader(\patest\StructType\GlobalString $header = null)
    {
        if (is_null($header) || (is_array($header) && empty($header))) {
            unset($this->Header);
        } else {
            $this->Header = $header;
        }
        return $this;
    }
    /**
     * Get HeaderExplain 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 \patest\StructType\GlobalString|null
     */
    public function getHeaderExplain()
    {
        return isset($this->HeaderExplain) ? $this->HeaderExplain : null;
    }
    /**
     * Set HeaderExplain 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 \patest\StructType\GlobalString $headerExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setHeaderExplain(\patest\StructType\GlobalString $headerExplain = null)
    {
        if (is_null($headerExplain) || (is_array($headerExplain) && empty($headerExplain))) {
            unset($this->HeaderExplain);
        } else {
            $this->HeaderExplain = $headerExplain;
        }
        return $this;
    }
    /**
     * Get LogoImage 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 getLogoImage()
    {
        return isset($this->LogoImage) ? $this->LogoImage : null;
    }
    /**
     * Set LogoImage 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 $logoImage
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setLogoImage($logoImage = null)
    {
        // validation for constraint: string
        if (!is_null($logoImage) && !is_string($logoImage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($logoImage, true), gettype($logoImage)), __LINE__);
        }
        if (is_null($logoImage) || (is_array($logoImage) && empty($logoImage))) {
            unset($this->LogoImage);
        } else {
            $this->LogoImage = $logoImage;
        }
        return $this;
    }
    /**
     * Get LogoImageExplain 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 \patest\StructType\GlobalString|null
     */
    public function getLogoImageExplain()
    {
        return isset($this->LogoImageExplain) ? $this->LogoImageExplain : null;
    }
    /**
     * Set LogoImageExplain 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 \patest\StructType\GlobalString $logoImageExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setLogoImageExplain(\patest\StructType\GlobalString $logoImageExplain = null)
    {
        if (is_null($logoImageExplain) || (is_array($logoImageExplain) && empty($logoImageExplain))) {
            unset($this->LogoImageExplain);
        } else {
            $this->LogoImageExplain = $logoImageExplain;
        }
        return $this;
    }
    /**
     * Get PayByLinkHeader 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkHeader()
    {
        return isset($this->PayByLinkHeader) ? $this->PayByLinkHeader : null;
    }
    /**
     * Set PayByLinkHeader 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 \patest\StructType\GlobalString $payByLinkHeader
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkHeader(\patest\StructType\GlobalString $payByLinkHeader = null)
    {
        if (is_null($payByLinkHeader) || (is_array($payByLinkHeader) && empty($payByLinkHeader))) {
            unset($this->PayByLinkHeader);
        } else {
            $this->PayByLinkHeader = $payByLinkHeader;
        }
        return $this;
    }
    /**
     * Get PayByLinkHeaderExplain 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkHeaderExplain()
    {
        return isset($this->PayByLinkHeaderExplain) ? $this->PayByLinkHeaderExplain : null;
    }
    /**
     * Set PayByLinkHeaderExplain 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 \patest\StructType\GlobalString $payByLinkHeaderExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkHeaderExplain(\patest\StructType\GlobalString $payByLinkHeaderExplain = null)
    {
        if (is_null($payByLinkHeaderExplain) || (is_array($payByLinkHeaderExplain) && empty($payByLinkHeaderExplain))) {
            unset($this->PayByLinkHeaderExplain);
        } else {
            $this->PayByLinkHeaderExplain = $payByLinkHeaderExplain;
        }
        return $this;
    }
    /**
     * Get PayByLinkSecurityNotice 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkSecurityNotice()
    {
        return isset($this->PayByLinkSecurityNotice) ? $this->PayByLinkSecurityNotice : null;
    }
    /**
     * Set PayByLinkSecurityNotice 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 \patest\StructType\GlobalString $payByLinkSecurityNotice
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkSecurityNotice(\patest\StructType\GlobalString $payByLinkSecurityNotice = null)
    {
        if (is_null($payByLinkSecurityNotice) || (is_array($payByLinkSecurityNotice) && empty($payByLinkSecurityNotice))) {
            unset($this->PayByLinkSecurityNotice);
        } else {
            $this->PayByLinkSecurityNotice = $payByLinkSecurityNotice;
        }
        return $this;
    }
    /**
     * Get PayByLinkSecurityNoticeExplain 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkSecurityNoticeExplain()
    {
        return isset($this->PayByLinkSecurityNoticeExplain) ? $this->PayByLinkSecurityNoticeExplain : null;
    }
    /**
     * Set PayByLinkSecurityNoticeExplain 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 \patest\StructType\GlobalString $payByLinkSecurityNoticeExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkSecurityNoticeExplain(\patest\StructType\GlobalString $payByLinkSecurityNoticeExplain = null)
    {
        if (is_null($payByLinkSecurityNoticeExplain) || (is_array($payByLinkSecurityNoticeExplain) && empty($payByLinkSecurityNoticeExplain))) {
            unset($this->PayByLinkSecurityNoticeExplain);
        } else {
            $this->PayByLinkSecurityNoticeExplain = $payByLinkSecurityNoticeExplain;
        }
        return $this;
    }
    /**
     * Get PayByLinkSubhead 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkSubhead()
    {
        return isset($this->PayByLinkSubhead) ? $this->PayByLinkSubhead : null;
    }
    /**
     * Set PayByLinkSubhead 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 \patest\StructType\GlobalString $payByLinkSubhead
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkSubhead(\patest\StructType\GlobalString $payByLinkSubhead = null)
    {
        if (is_null($payByLinkSubhead) || (is_array($payByLinkSubhead) && empty($payByLinkSubhead))) {
            unset($this->PayByLinkSubhead);
        } else {
            $this->PayByLinkSubhead = $payByLinkSubhead;
        }
        return $this;
    }
    /**
     * Get PayByLinkSubheadExplain 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 \patest\StructType\GlobalString|null
     */
    public function getPayByLinkSubheadExplain()
    {
        return isset($this->PayByLinkSubheadExplain) ? $this->PayByLinkSubheadExplain : null;
    }
    /**
     * Set PayByLinkSubheadExplain 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 \patest\StructType\GlobalString $payByLinkSubheadExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkSubheadExplain(\patest\StructType\GlobalString $payByLinkSubheadExplain = null)
    {
        if (is_null($payByLinkSubheadExplain) || (is_array($payByLinkSubheadExplain) && empty($payByLinkSubheadExplain))) {
            unset($this->PayByLinkSubheadExplain);
        } else {
            $this->PayByLinkSubheadExplain = $payByLinkSubheadExplain;
        }
        return $this;
    }
    /**
     * Get PayByLinkTermsAndConditionsLink 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 getPayByLinkTermsAndConditionsLink()
    {
        return isset($this->PayByLinkTermsAndConditionsLink) ? $this->PayByLinkTermsAndConditionsLink : null;
    }
    /**
     * Set PayByLinkTermsAndConditionsLink 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 $payByLinkTermsAndConditionsLink
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPayByLinkTermsAndConditionsLink($payByLinkTermsAndConditionsLink = null)
    {
        // validation for constraint: string
        if (!is_null($payByLinkTermsAndConditionsLink) && !is_string($payByLinkTermsAndConditionsLink)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($payByLinkTermsAndConditionsLink, true), gettype($payByLinkTermsAndConditionsLink)), __LINE__);
        }
        if (is_null($payByLinkTermsAndConditionsLink) || (is_array($payByLinkTermsAndConditionsLink) && empty($payByLinkTermsAndConditionsLink))) {
            unset($this->PayByLinkTermsAndConditionsLink);
        } else {
            $this->PayByLinkTermsAndConditionsLink = $payByLinkTermsAndConditionsLink;
        }
        return $this;
    }
    /**
     * Get PaymentDetailsPageTemplateExplain 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 \patest\StructType\GlobalString|null
     */
    public function getPaymentDetailsPageTemplateExplain()
    {
        return isset($this->PaymentDetailsPageTemplateExplain) ? $this->PaymentDetailsPageTemplateExplain : null;
    }
    /**
     * Set PaymentDetailsPageTemplateExplain 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 \patest\StructType\GlobalString $paymentDetailsPageTemplateExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setPaymentDetailsPageTemplateExplain(\patest\StructType\GlobalString $paymentDetailsPageTemplateExplain = null)
    {
        if (is_null($paymentDetailsPageTemplateExplain) || (is_array($paymentDetailsPageTemplateExplain) && empty($paymentDetailsPageTemplateExplain))) {
            unset($this->PaymentDetailsPageTemplateExplain);
        } else {
            $this->PaymentDetailsPageTemplateExplain = $paymentDetailsPageTemplateExplain;
        }
        return $this;
    }
    /**
     * Get SecurityNotice 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 \patest\StructType\GlobalString|null
     */
    public function getSecurityNotice()
    {
        return isset($this->SecurityNotice) ? $this->SecurityNotice : null;
    }
    /**
     * Set SecurityNotice 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 \patest\StructType\GlobalString $securityNotice
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setSecurityNotice(\patest\StructType\GlobalString $securityNotice = null)
    {
        if (is_null($securityNotice) || (is_array($securityNotice) && empty($securityNotice))) {
            unset($this->SecurityNotice);
        } else {
            $this->SecurityNotice = $securityNotice;
        }
        return $this;
    }
    /**
     * Get SecurityNoticeExplain 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 \patest\StructType\GlobalString|null
     */
    public function getSecurityNoticeExplain()
    {
        return isset($this->SecurityNoticeExplain) ? $this->SecurityNoticeExplain : null;
    }
    /**
     * Set SecurityNoticeExplain 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 \patest\StructType\GlobalString $securityNoticeExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setSecurityNoticeExplain(\patest\StructType\GlobalString $securityNoticeExplain = null)
    {
        if (is_null($securityNoticeExplain) || (is_array($securityNoticeExplain) && empty($securityNoticeExplain))) {
            unset($this->SecurityNoticeExplain);
        } else {
            $this->SecurityNoticeExplain = $securityNoticeExplain;
        }
        return $this;
    }
    /**
     * Get Subhead 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 \patest\StructType\GlobalString|null
     */
    public function getSubhead()
    {
        return isset($this->Subhead) ? $this->Subhead : null;
    }
    /**
     * Set Subhead 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 \patest\StructType\GlobalString $subhead
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setSubhead(\patest\StructType\GlobalString $subhead = null)
    {
        if (is_null($subhead) || (is_array($subhead) && empty($subhead))) {
            unset($this->Subhead);
        } else {
            $this->Subhead = $subhead;
        }
        return $this;
    }
    /**
     * Get SubheadExplain 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 \patest\StructType\GlobalString|null
     */
    public function getSubheadExplain()
    {
        return isset($this->SubheadExplain) ? $this->SubheadExplain : null;
    }
    /**
     * Set SubheadExplain 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 \patest\StructType\GlobalString $subheadExplain
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setSubheadExplain(\patest\StructType\GlobalString $subheadExplain = null)
    {
        if (is_null($subheadExplain) || (is_array($subheadExplain) && empty($subheadExplain))) {
            unset($this->SubheadExplain);
        } else {
            $this->SubheadExplain = $subheadExplain;
        }
        return $this;
    }
    /**
     * Get TermsAndConditionsLink 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 getTermsAndConditionsLink()
    {
        return isset($this->TermsAndConditionsLink) ? $this->TermsAndConditionsLink : null;
    }
    /**
     * Set TermsAndConditionsLink 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 $termsAndConditionsLink
     * @return \patest\StructType\Security_RecoveryPageTemplateCompanyParameters
     */
    public function setTermsAndConditionsLink($termsAndConditionsLink = null)
    {
        // validation for constraint: string
        if (!is_null($termsAndConditionsLink) && !is_string($termsAndConditionsLink)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($termsAndConditionsLink, true), gettype($termsAndConditionsLink)), __LINE__);
        }
        if (is_null($termsAndConditionsLink) || (is_array($termsAndConditionsLink) && empty($termsAndConditionsLink))) {
            unset($this->TermsAndConditionsLink);
        } else {
            $this->TermsAndConditionsLink = $termsAndConditionsLink;
        }
        return $this;
    }
}
