<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto\ClientPayload;

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

/**
 * Generated from protobuf message <code>proto.ClientPayload.UserAgent</code>
 */
class UserAgent extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.Platform platform = 1;</code>
     */
    protected $platform = null;
    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.AppVersion appVersion = 2;</code>
     */
    protected $appVersion = null;
    /**
     * Generated from protobuf field <code>optional string mcc = 3;</code>
     */
    protected $mcc = null;
    /**
     * Generated from protobuf field <code>optional string mnc = 4;</code>
     */
    protected $mnc = null;
    /**
     * Generated from protobuf field <code>optional string osVersion = 5;</code>
     */
    protected $osVersion = null;
    /**
     * Generated from protobuf field <code>optional string manufacturer = 6;</code>
     */
    protected $manufacturer = null;
    /**
     * Generated from protobuf field <code>optional string device = 7;</code>
     */
    protected $device = null;
    /**
     * Generated from protobuf field <code>optional string osBuildNumber = 8;</code>
     */
    protected $osBuildNumber = null;
    /**
     * Generated from protobuf field <code>optional string phoneId = 9;</code>
     */
    protected $phoneId = null;
    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.ReleaseChannel releaseChannel = 10;</code>
     */
    protected $releaseChannel = null;
    /**
     * Generated from protobuf field <code>optional string localeLanguageIso6391 = 11;</code>
     */
    protected $localeLanguageIso6391 = null;
    /**
     * Generated from protobuf field <code>optional string localeCountryIso31661Alpha2 = 12;</code>
     */
    protected $localeCountryIso31661Alpha2 = null;
    /**
     * Generated from protobuf field <code>optional string deviceBoard = 13;</code>
     */
    protected $deviceBoard = null;
    /**
     * Generated from protobuf field <code>optional string deviceExpId = 14;</code>
     */
    protected $deviceExpId = null;
    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.DeviceType deviceType = 15;</code>
     */
    protected $deviceType = null;
    /**
     * Generated from protobuf field <code>optional string deviceModelType = 16;</code>
     */
    protected $deviceModelType = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $platform
     *     @type \PhpWA\Protocol\Proto\ClientPayload\UserAgent\AppVersion $appVersion
     *     @type string $mcc
     *     @type string $mnc
     *     @type string $osVersion
     *     @type string $manufacturer
     *     @type string $device
     *     @type string $osBuildNumber
     *     @type string $phoneId
     *     @type int $releaseChannel
     *     @type string $localeLanguageIso6391
     *     @type string $localeCountryIso31661Alpha2
     *     @type string $deviceBoard
     *     @type string $deviceExpId
     *     @type int $deviceType
     *     @type string $deviceModelType
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.Platform platform = 1;</code>
     * @return int
     */
    public function getPlatform()
    {
        return isset($this->platform) ? $this->platform : 0;
    }

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

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

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.Platform platform = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setPlatform($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\Platform::class);
        $this->platform = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.AppVersion appVersion = 2;</code>
     * @return \PhpWA\Protocol\Proto\ClientPayload\UserAgent\AppVersion|null
     */
    public function getAppVersion()
    {
        return $this->appVersion;
    }

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

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

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.AppVersion appVersion = 2;</code>
     * @param \PhpWA\Protocol\Proto\ClientPayload\UserAgent\AppVersion $var
     * @return $this
     */
    public function setAppVersion($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\AppVersion::class);
        $this->appVersion = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string mcc = 3;</code>
     * @return string
     */
    public function getMcc()
    {
        return isset($this->mcc) ? $this->mcc : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string mcc = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setMcc($var)
    {
        GPBUtil::checkString($var, True);
        $this->mcc = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string mnc = 4;</code>
     * @return string
     */
    public function getMnc()
    {
        return isset($this->mnc) ? $this->mnc : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string mnc = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setMnc($var)
    {
        GPBUtil::checkString($var, True);
        $this->mnc = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string osVersion = 5;</code>
     * @return string
     */
    public function getOsVersion()
    {
        return isset($this->osVersion) ? $this->osVersion : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string osVersion = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setOsVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->osVersion = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string manufacturer = 6;</code>
     * @return string
     */
    public function getManufacturer()
    {
        return isset($this->manufacturer) ? $this->manufacturer : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string manufacturer = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setManufacturer($var)
    {
        GPBUtil::checkString($var, True);
        $this->manufacturer = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string device = 7;</code>
     * @return string
     */
    public function getDevice()
    {
        return isset($this->device) ? $this->device : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string device = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setDevice($var)
    {
        GPBUtil::checkString($var, True);
        $this->device = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string osBuildNumber = 8;</code>
     * @return string
     */
    public function getOsBuildNumber()
    {
        return isset($this->osBuildNumber) ? $this->osBuildNumber : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string osBuildNumber = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setOsBuildNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->osBuildNumber = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string phoneId = 9;</code>
     * @return string
     */
    public function getPhoneId()
    {
        return isset($this->phoneId) ? $this->phoneId : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string phoneId = 9;</code>
     * @param string $var
     * @return $this
     */
    public function setPhoneId($var)
    {
        GPBUtil::checkString($var, True);
        $this->phoneId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.ReleaseChannel releaseChannel = 10;</code>
     * @return int
     */
    public function getReleaseChannel()
    {
        return isset($this->releaseChannel) ? $this->releaseChannel : 0;
    }

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

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

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.ReleaseChannel releaseChannel = 10;</code>
     * @param int $var
     * @return $this
     */
    public function setReleaseChannel($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\ReleaseChannel::class);
        $this->releaseChannel = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string localeLanguageIso6391 = 11;</code>
     * @return string
     */
    public function getLocaleLanguageIso6391()
    {
        return isset($this->localeLanguageIso6391) ? $this->localeLanguageIso6391 : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string localeLanguageIso6391 = 11;</code>
     * @param string $var
     * @return $this
     */
    public function setLocaleLanguageIso6391($var)
    {
        GPBUtil::checkString($var, True);
        $this->localeLanguageIso6391 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string localeCountryIso31661Alpha2 = 12;</code>
     * @return string
     */
    public function getLocaleCountryIso31661Alpha2()
    {
        return isset($this->localeCountryIso31661Alpha2) ? $this->localeCountryIso31661Alpha2 : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string localeCountryIso31661Alpha2 = 12;</code>
     * @param string $var
     * @return $this
     */
    public function setLocaleCountryIso31661Alpha2($var)
    {
        GPBUtil::checkString($var, True);
        $this->localeCountryIso31661Alpha2 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string deviceBoard = 13;</code>
     * @return string
     */
    public function getDeviceBoard()
    {
        return isset($this->deviceBoard) ? $this->deviceBoard : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string deviceBoard = 13;</code>
     * @param string $var
     * @return $this
     */
    public function setDeviceBoard($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceBoard = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string deviceExpId = 14;</code>
     * @return string
     */
    public function getDeviceExpId()
    {
        return isset($this->deviceExpId) ? $this->deviceExpId : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string deviceExpId = 14;</code>
     * @param string $var
     * @return $this
     */
    public function setDeviceExpId($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceExpId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.DeviceType deviceType = 15;</code>
     * @return int
     */
    public function getDeviceType()
    {
        return isset($this->deviceType) ? $this->deviceType : 0;
    }

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

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

    /**
     * Generated from protobuf field <code>optional .proto.ClientPayload.UserAgent.DeviceType deviceType = 15;</code>
     * @param int $var
     * @return $this
     */
    public function setDeviceType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent\DeviceType::class);
        $this->deviceType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string deviceModelType = 16;</code>
     * @return string
     */
    public function getDeviceModelType()
    {
        return isset($this->deviceModelType) ? $this->deviceModelType : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string deviceModelType = 16;</code>
     * @param string $var
     * @return $this
     */
    public function setDeviceModelType($var)
    {
        GPBUtil::checkString($var, True);
        $this->deviceModelType = $var;

        return $this;
    }

}

