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

namespace OS\PB;

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

/**
 * Generated from protobuf message <code>OS.PB.ModemResponse</code>
 */
class ModemResponse extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.OS.PB.ModemConfig Config = 1;</code>
     */
    protected $Config = null;
    /**
     * Hardware Information
     *
     * Generated from protobuf field <code>string Manufacturer = 2;</code>
     */
    protected $Manufacturer = '';
    /**
     * eg: EC200U
     *
     * Generated from protobuf field <code>string Model = 3;</code>
     */
    protected $Model = '';
    /**
     * eg: EC200UCNAAR01A04M08
     *
     * Generated from protobuf field <code>string Revision = 4;</code>
     */
    protected $Revision = '';
    /**
     * International Mobile Equipment Identity. 
     *
     * Generated from protobuf field <code>string IMEI = 5;</code>
     */
    protected $IMEI = '';
    /**
     * Manufacturer Serial Number of Modem
     *
     * Generated from protobuf field <code>string SerialNumber = 6;</code>
     */
    protected $SerialNumber = '';
    /**
     * SIM information  
     *
     * Generated from protobuf field <code>.OS.PB.ModemSIMSlot SelectedSIMSlot = 10;</code>
     */
    protected $SelectedSIMSlot = 0;
    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM1_IMSI = 11;</code>
     */
    protected $SIM1_IMSI = '';
    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM1_ICCID = 12;</code>
     */
    protected $SIM1_ICCID = '';
    /**
     * Phone Number of SIM
     *
     * Generated from protobuf field <code>string SIM1_SubscriberNumber = 13;</code>
     */
    protected $SIM1_SubscriberNumber = '';
    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM2_IMSI = 14;</code>
     */
    protected $SIM2_IMSI = '';
    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM2_ICCID = 15;</code>
     */
    protected $SIM2_ICCID = '';
    /**
     * Phone Number of SIM  
     *
     * Generated from protobuf field <code>string SIM2_SubscriberNumber = 16;</code>
     */
    protected $SIM2_SubscriberNumber = '';
    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkStatusType NetworkStatus = 20;</code>
     */
    protected $NetworkStatus = 0;
    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkAccessType NetworkAccess = 21;</code>
     */
    protected $NetworkAccess = 0;
    /**
     * Generated from protobuf field <code>uint32 CellId = 22;</code>
     */
    protected $CellId = 0;
    /**
     * Generated from protobuf field <code>uint32 LocationAreaCode = 23;</code>
     */
    protected $LocationAreaCode = 0;
    /**
     * Generated from protobuf field <code>sint32 RSSI = 24;</code>
     */
    protected $RSSI = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \OS\PB\ModemConfig $Config
     *     @type string $Manufacturer
     *           Hardware Information
     *     @type string $Model
     *           eg: EC200U
     *     @type string $Revision
     *           eg: EC200UCNAAR01A04M08
     *     @type string $IMEI
     *           International Mobile Equipment Identity. 
     *     @type string $SerialNumber
     *           Manufacturer Serial Number of Modem
     *     @type int $SelectedSIMSlot
     *           SIM information  
     *     @type string $SIM1_IMSI
     *           International Mobile Subscriber Identity
     *     @type string $SIM1_ICCID
     *           Integrated Circuit Card Identifier
     *     @type string $SIM1_SubscriberNumber
     *           Phone Number of SIM
     *     @type string $SIM2_IMSI
     *           International Mobile Subscriber Identity
     *     @type string $SIM2_ICCID
     *           Integrated Circuit Card Identifier
     *     @type string $SIM2_SubscriberNumber
     *           Phone Number of SIM  
     *     @type int $NetworkStatus
     *     @type int $NetworkAccess
     *     @type int $CellId
     *     @type int $LocationAreaCode
     *     @type int $RSSI
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Modem::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemConfig Config = 1;</code>
     * @return \OS\PB\ModemConfig|null
     */
    public function getConfig()
    {
        return $this->Config;
    }

    public function hasConfig()
    {
        return isset($this->Config);
    }

    public function clearConfig()
    {
        unset($this->Config);
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemConfig Config = 1;</code>
     * @param \OS\PB\ModemConfig $var
     * @return $this
     */
    public function setConfig($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\ModemConfig::class);
        $this->Config = $var;

        return $this;
    }

    /**
     * Hardware Information
     *
     * Generated from protobuf field <code>string Manufacturer = 2;</code>
     * @return string
     */
    public function getManufacturer()
    {
        return $this->Manufacturer;
    }

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

        return $this;
    }

    /**
     * eg: EC200U
     *
     * Generated from protobuf field <code>string Model = 3;</code>
     * @return string
     */
    public function getModel()
    {
        return $this->Model;
    }

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

        return $this;
    }

    /**
     * eg: EC200UCNAAR01A04M08
     *
     * Generated from protobuf field <code>string Revision = 4;</code>
     * @return string
     */
    public function getRevision()
    {
        return $this->Revision;
    }

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

        return $this;
    }

    /**
     * International Mobile Equipment Identity. 
     *
     * Generated from protobuf field <code>string IMEI = 5;</code>
     * @return string
     */
    public function getIMEI()
    {
        return $this->IMEI;
    }

    /**
     * International Mobile Equipment Identity. 
     *
     * Generated from protobuf field <code>string IMEI = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setIMEI($var)
    {
        GPBUtil::checkString($var, True);
        $this->IMEI = $var;

        return $this;
    }

    /**
     * Manufacturer Serial Number of Modem
     *
     * Generated from protobuf field <code>string SerialNumber = 6;</code>
     * @return string
     */
    public function getSerialNumber()
    {
        return $this->SerialNumber;
    }

    /**
     * Manufacturer Serial Number of Modem
     *
     * Generated from protobuf field <code>string SerialNumber = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setSerialNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->SerialNumber = $var;

        return $this;
    }

    /**
     * SIM information  
     *
     * Generated from protobuf field <code>.OS.PB.ModemSIMSlot SelectedSIMSlot = 10;</code>
     * @return int
     */
    public function getSelectedSIMSlot()
    {
        return $this->SelectedSIMSlot;
    }

    /**
     * SIM information  
     *
     * Generated from protobuf field <code>.OS.PB.ModemSIMSlot SelectedSIMSlot = 10;</code>
     * @param int $var
     * @return $this
     */
    public function setSelectedSIMSlot($var)
    {
        GPBUtil::checkEnum($var, \OS\PB\ModemSIMSlot::class);
        $this->SelectedSIMSlot = $var;

        return $this;
    }

    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM1_IMSI = 11;</code>
     * @return string
     */
    public function getSIM1IMSI()
    {
        return $this->SIM1_IMSI;
    }

    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM1_IMSI = 11;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM1IMSI($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM1_IMSI = $var;

        return $this;
    }

    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM1_ICCID = 12;</code>
     * @return string
     */
    public function getSIM1ICCID()
    {
        return $this->SIM1_ICCID;
    }

    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM1_ICCID = 12;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM1ICCID($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM1_ICCID = $var;

        return $this;
    }

    /**
     * Phone Number of SIM
     *
     * Generated from protobuf field <code>string SIM1_SubscriberNumber = 13;</code>
     * @return string
     */
    public function getSIM1SubscriberNumber()
    {
        return $this->SIM1_SubscriberNumber;
    }

    /**
     * Phone Number of SIM
     *
     * Generated from protobuf field <code>string SIM1_SubscriberNumber = 13;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM1SubscriberNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM1_SubscriberNumber = $var;

        return $this;
    }

    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM2_IMSI = 14;</code>
     * @return string
     */
    public function getSIM2IMSI()
    {
        return $this->SIM2_IMSI;
    }

    /**
     * International Mobile Subscriber Identity
     *
     * Generated from protobuf field <code>string SIM2_IMSI = 14;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM2IMSI($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM2_IMSI = $var;

        return $this;
    }

    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM2_ICCID = 15;</code>
     * @return string
     */
    public function getSIM2ICCID()
    {
        return $this->SIM2_ICCID;
    }

    /**
     * Integrated Circuit Card Identifier
     *
     * Generated from protobuf field <code>string SIM2_ICCID = 15;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM2ICCID($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM2_ICCID = $var;

        return $this;
    }

    /**
     * Phone Number of SIM  
     *
     * Generated from protobuf field <code>string SIM2_SubscriberNumber = 16;</code>
     * @return string
     */
    public function getSIM2SubscriberNumber()
    {
        return $this->SIM2_SubscriberNumber;
    }

    /**
     * Phone Number of SIM  
     *
     * Generated from protobuf field <code>string SIM2_SubscriberNumber = 16;</code>
     * @param string $var
     * @return $this
     */
    public function setSIM2SubscriberNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->SIM2_SubscriberNumber = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkStatusType NetworkStatus = 20;</code>
     * @return int
     */
    public function getNetworkStatus()
    {
        return $this->NetworkStatus;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkStatusType NetworkStatus = 20;</code>
     * @param int $var
     * @return $this
     */
    public function setNetworkStatus($var)
    {
        GPBUtil::checkEnum($var, \OS\PB\ModemResponse\ModemNetworkStatusType::class);
        $this->NetworkStatus = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkAccessType NetworkAccess = 21;</code>
     * @return int
     */
    public function getNetworkAccess()
    {
        return $this->NetworkAccess;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.ModemResponse.ModemNetworkAccessType NetworkAccess = 21;</code>
     * @param int $var
     * @return $this
     */
    public function setNetworkAccess($var)
    {
        GPBUtil::checkEnum($var, \OS\PB\ModemResponse\ModemNetworkAccessType::class);
        $this->NetworkAccess = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>uint32 CellId = 22;</code>
     * @return int
     */
    public function getCellId()
    {
        return $this->CellId;
    }

    /**
     * Generated from protobuf field <code>uint32 CellId = 22;</code>
     * @param int $var
     * @return $this
     */
    public function setCellId($var)
    {
        GPBUtil::checkUint32($var);
        $this->CellId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>uint32 LocationAreaCode = 23;</code>
     * @return int
     */
    public function getLocationAreaCode()
    {
        return $this->LocationAreaCode;
    }

    /**
     * Generated from protobuf field <code>uint32 LocationAreaCode = 23;</code>
     * @param int $var
     * @return $this
     */
    public function setLocationAreaCode($var)
    {
        GPBUtil::checkUint32($var);
        $this->LocationAreaCode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>sint32 RSSI = 24;</code>
     * @return int
     */
    public function getRSSI()
    {
        return $this->RSSI;
    }

    /**
     * Generated from protobuf field <code>sint32 RSSI = 24;</code>
     * @param int $var
     * @return $this
     */
    public function setRSSI($var)
    {
        GPBUtil::checkInt32($var);
        $this->RSSI = $var;

        return $this;
    }

}

