<?php
 
 
 

namespace PhpWA\Protocol\Proto\ClientPayload;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;




class UserAgent extends \Google\Protobuf\Internal\Message
{
    


    protected $platform = null;
    


    protected $appVersion = null;
    


    protected $mcc = null;
    


    protected $mnc = null;
    


    protected $osVersion = null;
    


    protected $manufacturer = null;
    


    protected $device = null;
    


    protected $osBuildNumber = null;
    


    protected $phoneId = null;
    


    protected $releaseChannel = null;
    


    protected $localeLanguageIso6391 = null;
    


    protected $localeCountryIso31661Alpha2 = null;
    


    protected $deviceBoard = null;
    


    protected $deviceExpId = null;
    


    protected $deviceType = null;
    


    protected $deviceModelType = null;

    























    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



    public function getPlatform()
    {
        return isset($this->platform) ? $this->platform : 0;
    }

    public function hasPlatform()
    {
        return isset($this->platform);
    }

    public function clearPlatform()
    {
        unset($this->platform);
    }

    




    public function setPlatform($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\Platform::class);
        $this->platform = $var;

        return $this;
    }

    



    public function getAppVersion()
    {
        return $this->appVersion;
    }

    public function hasAppVersion()
    {
        return isset($this->appVersion);
    }

    public function clearAppVersion()
    {
        unset($this->appVersion);
    }

    




    public function setAppVersion($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\AppVersion::class);
        $this->appVersion = $var;

        return $this;
    }

    



    public function getMcc()
    {
        return isset($this->mcc) ? $this->mcc : '';
    }

    public function hasMcc()
    {
        return isset($this->mcc);
    }

    public function clearMcc()
    {
        unset($this->mcc);
    }

    




    public function setMcc($var)
    {
        GPBUtil::checkString($var, True);
        $this->mcc = $var;

        return $this;
    }

    



    public function getMnc()
    {
        return isset($this->mnc) ? $this->mnc : '';
    }

    public function hasMnc()
    {
        return isset($this->mnc);
    }

    public function clearMnc()
    {
        unset($this->mnc);
    }

    




    public function setMnc($var)
    {
        GPBUtil::checkString($var, True);
        $this->mnc = $var;

        return $this;
    }

    



    public function getOsVersion()
    {
        return isset($this->osVersion) ? $this->osVersion : '';
    }

    public function hasOsVersion()
    {
        return isset($this->osVersion);
    }

    public function clearOsVersion()
    {
        unset($this->osVersion);
    }

    




    public function setOsVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->osVersion = $var;

        return $this;
    }

    



    public function getManufacturer()
    {
        return isset($this->manufacturer) ? $this->manufacturer : '';
    }

    public function hasManufacturer()
    {
        return isset($this->manufacturer);
    }

    public function clearManufacturer()
    {
        unset($this->manufacturer);
    }

    




    public function setManufacturer($var)
    {
        GPBUtil::checkString($var, True);
        $this->manufacturer = $var;

        return $this;
    }

    



    public function getDevice()
    {
        return isset($this->device) ? $this->device : '';
    }

    public function hasDevice()
    {
        return isset($this->device);
    }

    public function clearDevice()
    {
        unset($this->device);
    }

    




    public function setDevice($var)
    {
        GPBUtil::checkString($var, True);
        $this->device = $var;

        return $this;
    }

    



    public function getOsBuildNumber()
    {
        return isset($this->osBuildNumber) ? $this->osBuildNumber : '';
    }

    public function hasOsBuildNumber()
    {
        return isset($this->osBuildNumber);
    }

    public function clearOsBuildNumber()
    {
        unset($this->osBuildNumber);
    }

    




    public function setOsBuildNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->osBuildNumber = $var;

        return $this;
    }

    



    public function getPhoneId()
    {
        return isset($this->phoneId) ? $this->phoneId : '';
    }

    public function hasPhoneId()
    {
        return isset($this->phoneId);
    }

    public function clearPhoneId()
    {
        unset($this->phoneId);
    }

    




    public function setPhoneId($var)
    {
        GPBUtil::checkString($var, True);
        $this->phoneId = $var;

        return $this;
    }

    



    public function getReleaseChannel()
    {
        return isset($this->releaseChannel) ? $this->releaseChannel : 0;
    }

    public function hasReleaseChannel()
    {
        return isset($this->releaseChannel);
    }

    public function clearReleaseChannel()
    {
        unset($this->releaseChannel);
    }

    




    public function setReleaseChannel($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\ReleaseChannel::class);
        $this->releaseChannel = $var;

        return $this;
    }

    



    public function getLocaleLanguageIso6391()
    {
        return isset($this->localeLanguageIso6391) ? $this->localeLanguageIso6391 : '';
    }

    public function hasLocaleLanguageIso6391()
    {
        return isset($this->localeLanguageIso6391);
    }

    public function clearLocaleLanguageIso6391()
    {
        unset($this->localeLanguageIso6391);
    }

    




    public function setLocaleLanguageIso6391($var)
    {
        GPBUtil::checkString($var, True);
        $this->localeLanguageIso6391 = $var;

        return $this;
    }

    



    public function getLocaleCountryIso31661Alpha2()
    {
        return isset($this->localeCountryIso31661Alpha2) ? $this->localeCountryIso31661Alpha2 : '';
    }

    public function hasLocaleCountryIso31661Alpha2()
    {
        return isset($this->localeCountryIso31661Alpha2);
    }

    public function clearLocaleCountryIso31661Alpha2()
    {
        unset($this->localeCountryIso31661Alpha2);
    }

    




    public function setLocaleCountryIso31661Alpha2($var)
    {
        GPBUtil::checkString($var, True);
        $this->localeCountryIso31661Alpha2 = $var;

        return $this;
    }

    



    public function getDeviceBoard()
    {
        return isset($this->deviceBoard) ? $this->deviceBoard : '';
    }

    public function hasDeviceBoard()
    {
        return isset($this->deviceBoard);
    }

    public function clearDeviceBoard()
    {
        unset($this->deviceBoard);
    }

    




    public function setDeviceBoard($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceBoard = $var;

        return $this;
    }

    



    public function getDeviceExpId()
    {
        return isset($this->deviceExpId) ? $this->deviceExpId : '';
    }

    public function hasDeviceExpId()
    {
        return isset($this->deviceExpId);
    }

    public function clearDeviceExpId()
    {
        unset($this->deviceExpId);
    }

    




    public function setDeviceExpId($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceExpId = $var;

        return $this;
    }

    



    public function getDeviceType()
    {
        return isset($this->deviceType) ? $this->deviceType : 0;
    }

    public function hasDeviceType()
    {
        return isset($this->deviceType);
    }

    public function clearDeviceType()
    {
        unset($this->deviceType);
    }

    




    public function setDeviceType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\DeviceType::class);
        $this->deviceType = $var;

        return $this;
    }

    



    public function getDeviceModelType()
    {
        return isset($this->deviceModelType) ? $this->deviceModelType : '';
    }

    public function hasDeviceModelType()
    {
        return isset($this->deviceModelType);
    }

    public function clearDeviceModelType()
    {
        unset($this->deviceModelType);
    }

    




    public function setDeviceModelType($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceModelType = $var;

        return $this;
    }

}

