<?php

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

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for autoRegistration StructType
 * @subpackage Structs
 */
class AutoRegistration extends AbstractStructBase
{
    /**
     * The startDn
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - default: 1000
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $startDn;
    /**
     * The endDn
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - default: 1000
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $endDn;
    /**
     * The nextDn
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - default: 1000
     * - maxLength: 255
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $nextDn;
    /**
     * The routePartitionName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XFkType
     */
    public $routePartitionName;
    /**
     * The e164Mask
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $e164Mask;
    /**
     * The autoRegistrationEnabled
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $autoRegistrationEnabled;
    /**
     * The universalDeviceTemplate
     * Meta information extracted from the WSDL
     * - documentation: This tag is mandatory if autoRegistrationEnabled is true
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XFkType
     */
    public $universalDeviceTemplate;
    /**
     * The lineTemplate
     * Meta information extracted from the WSDL
     * - documentation: This tag is mandatory if autoRegistrationEnabled is true
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XFkType
     */
    public $lineTemplate;
    /**
     * Constructor method for autoRegistration
     * @uses AutoRegistration::setStartDn()
     * @uses AutoRegistration::setEndDn()
     * @uses AutoRegistration::setNextDn()
     * @uses AutoRegistration::setRoutePartitionName()
     * @uses AutoRegistration::setE164Mask()
     * @uses AutoRegistration::setAutoRegistrationEnabled()
     * @uses AutoRegistration::setUniversalDeviceTemplate()
     * @uses AutoRegistration::setLineTemplate()
     * @param string $startDn
     * @param string $endDn
     * @param string $nextDn
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $routePartitionName
     * @param string $e164Mask
     * @param string $autoRegistrationEnabled
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $universalDeviceTemplate
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $lineTemplate
     */
    public function __construct($startDn = '1000', $endDn = '1000', $nextDn = '1000', \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $routePartitionName = null, $e164Mask = null, $autoRegistrationEnabled = null, \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $universalDeviceTemplate = null, \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $lineTemplate = null)
    {
        $this
            ->setStartDn($startDn)
            ->setEndDn($endDn)
            ->setNextDn($nextDn)
            ->setRoutePartitionName($routePartitionName)
            ->setE164Mask($e164Mask)
            ->setAutoRegistrationEnabled($autoRegistrationEnabled)
            ->setUniversalDeviceTemplate($universalDeviceTemplate)
            ->setLineTemplate($lineTemplate);
    }
    /**
     * Get startDn value
     * @return string|null
     */
    public function getStartDn()
    {
        return $this->startDn;
    }
    /**
     * Set startDn value
     * @param string $startDn
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setStartDn($startDn = '1000')
    {
        $this->startDn = $startDn;
        return $this;
    }
    /**
     * Get endDn value
     * @return string|null
     */
    public function getEndDn()
    {
        return $this->endDn;
    }
    /**
     * Set endDn value
     * @param string $endDn
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setEndDn($endDn = '1000')
    {
        $this->endDn = $endDn;
        return $this;
    }
    /**
     * Get nextDn value
     * @return string|null
     */
    public function getNextDn()
    {
        return $this->nextDn;
    }
    /**
     * Set nextDn value
     * @param string $nextDn
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setNextDn($nextDn = '1000')
    {
        $this->nextDn = $nextDn;
        return $this;
    }
    /**
     * Get routePartitionName value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XFkType|null
     */
    public function getRoutePartitionName()
    {
        return $this->routePartitionName;
    }
    /**
     * Set routePartitionName value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $routePartitionName
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setRoutePartitionName(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $routePartitionName = null)
    {
        $this->routePartitionName = $routePartitionName;
        return $this;
    }
    /**
     * Get e164Mask value
     * @return string|null
     */
    public function getE164Mask()
    {
        return $this->e164Mask;
    }
    /**
     * Set e164Mask value
     * @param string $e164Mask
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setE164Mask($e164Mask = null)
    {
        $this->e164Mask = $e164Mask;
        return $this;
    }
    /**
     * Get autoRegistrationEnabled value
     * @return string|null
     */
    public function getAutoRegistrationEnabled()
    {
        return $this->autoRegistrationEnabled;
    }
    /**
     * Set autoRegistrationEnabled value
     * @param string $autoRegistrationEnabled
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setAutoRegistrationEnabled($autoRegistrationEnabled = null)
    {
        $this->autoRegistrationEnabled = $autoRegistrationEnabled;
        return $this;
    }
    /**
     * Get universalDeviceTemplate value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XFkType|null
     */
    public function getUniversalDeviceTemplate()
    {
        return $this->universalDeviceTemplate;
    }
    /**
     * Set universalDeviceTemplate value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $universalDeviceTemplate
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setUniversalDeviceTemplate(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $universalDeviceTemplate = null)
    {
        $this->universalDeviceTemplate = $universalDeviceTemplate;
        return $this;
    }
    /**
     * Get lineTemplate value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XFkType|null
     */
    public function getLineTemplate()
    {
        return $this->lineTemplate;
    }
    /**
     * Set lineTemplate value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $lineTemplate
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\AutoRegistration
     */
    public function setLineTemplate(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $lineTemplate = null)
    {
        $this->lineTemplate = $lineTemplate;
        return $this;
    }
}
