<?php

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

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for gateKeeperInfo StructType
 * @subpackage Structs
 */
class GateKeeperInfo extends AbstractStructBase
{
    /**
     * The gateKeeperName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XFkType
     */
    public $gateKeeperName;
    /**
     * The e164
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $e164;
    /**
     * The technologyPrefix
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $technologyPrefix;
    /**
     * The zone
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: false
     * @var string
     */
    public $zone;
    /**
     * The gateKeeper
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XFkType
     */
    public $gateKeeper;
    /**
     * The terminalType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $terminalType;
    /**
     * Constructor method for gateKeeperInfo
     * @uses GateKeeperInfo::setGateKeeperName()
     * @uses GateKeeperInfo::setE164()
     * @uses GateKeeperInfo::setTechnologyPrefix()
     * @uses GateKeeperInfo::setZone()
     * @uses GateKeeperInfo::setGateKeeper()
     * @uses GateKeeperInfo::setTerminalType()
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeperName
     * @param string $e164
     * @param string $technologyPrefix
     * @param string $zone
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeper
     * @param string $terminalType
     */
    public function __construct(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeperName = null, $e164 = null, $technologyPrefix = null, $zone = null, \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeper = null, $terminalType = null)
    {
        $this
            ->setGateKeeperName($gateKeeperName)
            ->setE164($e164)
            ->setTechnologyPrefix($technologyPrefix)
            ->setZone($zone)
            ->setGateKeeper($gateKeeper)
            ->setTerminalType($terminalType);
    }
    /**
     * Get gateKeeperName value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XFkType|null
     */
    public function getGateKeeperName()
    {
        return $this->gateKeeperName;
    }
    /**
     * Set gateKeeperName value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeperName
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setGateKeeperName(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeperName = null)
    {
        $this->gateKeeperName = $gateKeeperName;
        return $this;
    }
    /**
     * Get e164 value
     * @return string|null
     */
    public function getE164()
    {
        return $this->e164;
    }
    /**
     * Set e164 value
     * @param string $e164
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setE164($e164 = null)
    {
        $this->e164 = $e164;
        return $this;
    }
    /**
     * Get technologyPrefix value
     * @return string|null
     */
    public function getTechnologyPrefix()
    {
        return $this->technologyPrefix;
    }
    /**
     * Set technologyPrefix value
     * @param string $technologyPrefix
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setTechnologyPrefix($technologyPrefix = null)
    {
        $this->technologyPrefix = $technologyPrefix;
        return $this;
    }
    /**
     * Get zone value
     * @return string|null
     */
    public function getZone()
    {
        return $this->zone;
    }
    /**
     * Set zone value
     * @param string $zone
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setZone($zone = null)
    {
        $this->zone = $zone;
        return $this;
    }
    /**
     * Get gateKeeper value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XFkType|null
     */
    public function getGateKeeper()
    {
        return $this->gateKeeper;
    }
    /**
     * Set gateKeeper value
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeper
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setGateKeeper(\\Losc\CucmBundle\Model\Webservice\StructType\XFkType $gateKeeper = null)
    {
        $this->gateKeeper = $gateKeeper;
        return $this;
    }
    /**
     * Get terminalType value
     * @return string|null
     */
    public function getTerminalType()
    {
        return $this->terminalType;
    }
    /**
     * Set terminalType value
     * @param string $terminalType
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\GateKeeperInfo
     */
    public function setTerminalType($terminalType = null)
    {
        $this->terminalType = $terminalType;
        return $this;
    }
}
