<?php

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

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UpdateCCAProfilesReq StructType
 * @subpackage Structs
 */
class UpdateCCAProfilesReq extends APIRequest
{
    /**
     * The ccaId
     * Meta information extracted from the WSDL
     * - choice: uuid | ccaId
     * - choiceMaxOccurs: 1
     * - choiceMinOccurs: 1
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: false
     * @var string
     */
    public $ccaId;
    /**
     * The uuid
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - choice: uuid | ccaId
     * - choiceMaxOccurs: 1
     * - choiceMinOccurs: 1
     * - pattern: \{........-....-....-....-............\}
     * @var string
     */
    public $uuid;
    /**
     * The newCcaId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $newCcaId;
    /**
     * The primarySoftSwitchId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $primarySoftSwitchId;
    /**
     * The secondarySoftSwitchId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $secondarySoftSwitchId;
    /**
     * The objectClass
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $objectClass;
    /**
     * The subscriberType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $subscriberType;
    /**
     * The sipAliasSuffix
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $sipAliasSuffix;
    /**
     * The sipUserNameSuffix
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $sipUserNameSuffix;
    /**
     * Constructor method for UpdateCCAProfilesReq
     * @uses UpdateCCAProfilesReq::setCcaId()
     * @uses UpdateCCAProfilesReq::setUuid()
     * @uses UpdateCCAProfilesReq::setNewCcaId()
     * @uses UpdateCCAProfilesReq::setPrimarySoftSwitchId()
     * @uses UpdateCCAProfilesReq::setSecondarySoftSwitchId()
     * @uses UpdateCCAProfilesReq::setObjectClass()
     * @uses UpdateCCAProfilesReq::setSubscriberType()
     * @uses UpdateCCAProfilesReq::setSipAliasSuffix()
     * @uses UpdateCCAProfilesReq::setSipUserNameSuffix()
     * @param string $ccaId
     * @param string $uuid
     * @param string $newCcaId
     * @param string $primarySoftSwitchId
     * @param string $secondarySoftSwitchId
     * @param string $objectClass
     * @param string $subscriberType
     * @param string $sipAliasSuffix
     * @param string $sipUserNameSuffix
     */
    public function __construct($ccaId = null, $uuid = null, $newCcaId = null, $primarySoftSwitchId = null, $secondarySoftSwitchId = null, $objectClass = null, $subscriberType = null, $sipAliasSuffix = null, $sipUserNameSuffix = null)
    {
        $this
            ->setCcaId($ccaId)
            ->setUuid($uuid)
            ->setNewCcaId($newCcaId)
            ->setPrimarySoftSwitchId($primarySoftSwitchId)
            ->setSecondarySoftSwitchId($secondarySoftSwitchId)
            ->setObjectClass($objectClass)
            ->setSubscriberType($subscriberType)
            ->setSipAliasSuffix($sipAliasSuffix)
            ->setSipUserNameSuffix($sipUserNameSuffix);
    }
    /**
     * Get ccaId value
     * @return string
     */
    public function getCcaId()
    {
        return isset($this->ccaId) ? $this->ccaId : null;
    }
    /**
     * Set ccaId value
     * This property belongs to a choice that allows only one property to exist. It is
     * therefore removable from the request, consequently if the value assigned to this
     * property is null, the property is removed from this object
     * @param string $ccaId
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setCcaId($ccaId = null)
    {
        if (is_null($ccaId) || (is_array($ccaId) && empty($ccaId))) {
            unset($this->ccaId);
        } else {
            $this->ccaId = $ccaId;
        }
        return $this;
    }
    /**
     * Get uuid value
     * @return string|null
     */
    public function getUuid()
    {
        return isset($this->uuid) ? $this->uuid : null;
    }
    /**
     * Set uuid value
     * This property belongs to a choice that allows only one property to exist. It is
     * therefore removable from the request, consequently if the value assigned to this
     * property is null, the property is removed from this object
     * @param string $uuid
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setUuid($uuid = null)
    {
        if (is_null($uuid) || (is_array($uuid) && empty($uuid))) {
            unset($this->uuid);
        } else {
            $this->uuid = $uuid;
        }
        return $this;
    }
    /**
     * Get newCcaId value
     * @return string|null
     */
    public function getNewCcaId()
    {
        return $this->newCcaId;
    }
    /**
     * Set newCcaId value
     * @param string $newCcaId
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setNewCcaId($newCcaId = null)
    {
        $this->newCcaId = $newCcaId;
        return $this;
    }
    /**
     * Get primarySoftSwitchId value
     * @return string|null
     */
    public function getPrimarySoftSwitchId()
    {
        return $this->primarySoftSwitchId;
    }
    /**
     * Set primarySoftSwitchId value
     * @param string $primarySoftSwitchId
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setPrimarySoftSwitchId($primarySoftSwitchId = null)
    {
        $this->primarySoftSwitchId = $primarySoftSwitchId;
        return $this;
    }
    /**
     * Get secondarySoftSwitchId 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 getSecondarySoftSwitchId()
    {
        return isset($this->secondarySoftSwitchId) ? $this->secondarySoftSwitchId : null;
    }
    /**
     * Set secondarySoftSwitchId 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 $secondarySoftSwitchId
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setSecondarySoftSwitchId($secondarySoftSwitchId = null)
    {
        if (is_null($secondarySoftSwitchId) || (is_array($secondarySoftSwitchId) && empty($secondarySoftSwitchId))) {
            unset($this->secondarySoftSwitchId);
        } else {
            $this->secondarySoftSwitchId = $secondarySoftSwitchId;
        }
        return $this;
    }
    /**
     * Get objectClass value
     * @return string|null
     */
    public function getObjectClass()
    {
        return $this->objectClass;
    }
    /**
     * Set objectClass value
     * @param string $objectClass
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setObjectClass($objectClass = null)
    {
        $this->objectClass = $objectClass;
        return $this;
    }
    /**
     * Get subscriberType 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 getSubscriberType()
    {
        return isset($this->subscriberType) ? $this->subscriberType : null;
    }
    /**
     * Set subscriberType 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 $subscriberType
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setSubscriberType($subscriberType = null)
    {
        if (is_null($subscriberType) || (is_array($subscriberType) && empty($subscriberType))) {
            unset($this->subscriberType);
        } else {
            $this->subscriberType = $subscriberType;
        }
        return $this;
    }
    /**
     * Get sipAliasSuffix 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 getSipAliasSuffix()
    {
        return isset($this->sipAliasSuffix) ? $this->sipAliasSuffix : null;
    }
    /**
     * Set sipAliasSuffix 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 $sipAliasSuffix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setSipAliasSuffix($sipAliasSuffix = null)
    {
        if (is_null($sipAliasSuffix) || (is_array($sipAliasSuffix) && empty($sipAliasSuffix))) {
            unset($this->sipAliasSuffix);
        } else {
            $this->sipAliasSuffix = $sipAliasSuffix;
        }
        return $this;
    }
    /**
     * Get sipUserNameSuffix 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 getSipUserNameSuffix()
    {
        return isset($this->sipUserNameSuffix) ? $this->sipUserNameSuffix : null;
    }
    /**
     * Set sipUserNameSuffix 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 $sipUserNameSuffix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\UpdateCCAProfilesReq
     */
    public function setSipUserNameSuffix($sipUserNameSuffix = null)
    {
        if (is_null($sipUserNameSuffix) || (is_array($sipUserNameSuffix) && empty($sipUserNameSuffix))) {
            unset($this->sipUserNameSuffix);
        } else {
            $this->sipUserNameSuffix = $sipUserNameSuffix;
        }
        return $this;
    }
}
