<?php

namespace \Losc\CucmBundle\Model\Webservice\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for XServiceProfileList StructType
 * @subpackage Structs
 */
class XServiceProfileList extends AbstractStructBase
{
    /**
     * The profileName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $profileName;
    /**
     * The primary
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $primary;
    /**
     * The secondary
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $secondary;
    /**
     * The tertiary
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $tertiary;
    /**
     * The serverCertificateVerification
     * Meta information extracted from the WSDL
     * - documentation: Applicable only for Conferencing Profile
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $serverCertificateVerification;
    /**
     * The serviceProfileXml
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig
     */
    public $serviceProfileXml;
    /**
     * Constructor method for XServiceProfileList
     * @uses XServiceProfileList::setProfileName()
     * @uses XServiceProfileList::setPrimary()
     * @uses XServiceProfileList::setSecondary()
     * @uses XServiceProfileList::setTertiary()
     * @uses XServiceProfileList::setServerCertificateVerification()
     * @uses XServiceProfileList::setServiceProfileXml()
     * @param string $profileName
     * @param string $primary
     * @param string $secondary
     * @param string $tertiary
     * @param string $serverCertificateVerification
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig $serviceProfileXml
     */
    public function __construct($profileName = null, $primary = null, $secondary = null, $tertiary = null, $serverCertificateVerification = null, \\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig $serviceProfileXml = null)
    {
        $this
            ->setProfileName($profileName)
            ->setPrimary($primary)
            ->setSecondary($secondary)
            ->setTertiary($tertiary)
            ->setServerCertificateVerification($serverCertificateVerification)
            ->setServiceProfileXml($serviceProfileXml);
    }
    /**
     * Get profileName value
     * @return string
     */
    public function getProfileName()
    {
        return $this->profileName;
    }
    /**
     * Set profileName value
     * @param string $profileName
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setProfileName($profileName = null)
    {
        $this->profileName = $profileName;
        return $this;
    }
    /**
     * Get primary 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 getPrimary()
    {
        return isset($this->primary) ? $this->primary : null;
    }
    /**
     * Set primary 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 $primary
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setPrimary($primary = null)
    {
        if (is_null($primary) || (is_array($primary) && empty($primary))) {
            unset($this->primary);
        } else {
            $this->primary = $primary;
        }
        return $this;
    }
    /**
     * Get secondary 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 getSecondary()
    {
        return isset($this->secondary) ? $this->secondary : null;
    }
    /**
     * Set secondary 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 $secondary
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setSecondary($secondary = null)
    {
        if (is_null($secondary) || (is_array($secondary) && empty($secondary))) {
            unset($this->secondary);
        } else {
            $this->secondary = $secondary;
        }
        return $this;
    }
    /**
     * Get tertiary 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 getTertiary()
    {
        return isset($this->tertiary) ? $this->tertiary : null;
    }
    /**
     * Set tertiary 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 $tertiary
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setTertiary($tertiary = null)
    {
        if (is_null($tertiary) || (is_array($tertiary) && empty($tertiary))) {
            unset($this->tertiary);
        } else {
            $this->tertiary = $tertiary;
        }
        return $this;
    }
    /**
     * Get serverCertificateVerification 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 getServerCertificateVerification()
    {
        return isset($this->serverCertificateVerification) ? $this->serverCertificateVerification : null;
    }
    /**
     * Set serverCertificateVerification 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 $serverCertificateVerification
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setServerCertificateVerification($serverCertificateVerification = null)
    {
        if (is_null($serverCertificateVerification) || (is_array($serverCertificateVerification) && empty($serverCertificateVerification))) {
            unset($this->serverCertificateVerification);
        } else {
            $this->serverCertificateVerification = $serverCertificateVerification;
        }
        return $this;
    }
    /**
     * Get serviceProfileXml value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig|null
     */
    public function getServiceProfileXml()
    {
        return $this->serviceProfileXml;
    }
    /**
     * Set serviceProfileXml value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig $serviceProfileXml
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XServiceProfileList
     */
    public function setServiceProfileXml(\\Losc\CucmBundle\Model\Webservice\StructType\XVendorConfig $serviceProfileXml = null)
    {
        $this->serviceProfileXml = $serviceProfileXml;
        return $this;
    }
}
