<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/telemetry_control/v1/keyapis_telemetry_control_device_v1.proto

namespace Keyapis\TelemetryControl\V1;

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

/**
 * Прибор учёта
 *
 * Generated from protobuf message <code>keyapis.telemetry_control.v1.Device</code>
 */
class Device extends \Google\Protobuf\Internal\Message
{
    /**
     * Идентификатор
     *
     * Generated from protobuf field <code>int32 id = 1;</code>
     */
    protected $id = 0;
    /**
     * Индикаторы
     *
     * Generated from protobuf field <code>repeated .keyapis.telemetry_control.v1.Indicator indicators = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private $indicators;
    /**
     * Точка учета
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $metric_point = null;
    /**
     * Дата создания
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $created_at = null;
    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $changed_at = null;
    /**
     * Тип прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.Type type = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $type = 0;
    /**
     * Серийный номер
     *
     * Generated from protobuf field <code>string serial_number = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $serial_number = '';
    /**
     * Производитель и модель счетчика
     *
     * Generated from protobuf field <code>string model = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $model = '';
    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>int32 year = 9 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $year = 0;
    /**
     * Идентификатор строения ФИАС
     *
     * Generated from protobuf field <code>string fias_id = 10 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $fias_id = '';
    /**
     * Идентификатор владельца.
     * Заполняется сервером
     *
     * Generated from protobuf field <code>string resource_owner_id = 11 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $resource_owner_id = '';
    /**
     * Тип статуса
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.StatusType status_type = 12;</code>
     */
    protected $status_type = 0;
    /**
     * Дата установки
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp installed_at = 13;</code>
     */
    protected $installed_at = null;
    /**
     * Дата удаления
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp removed_at = 14;</code>
     */
    protected $removed_at = null;
    /**
     * Дата предыдущей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp check_at = 15;</code>
     */
    protected $check_at = null;
    /**
     * Дата следующей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_check_at = 16;</code>
     */
    protected $next_check_at = null;
    /**
     * Внешний дентификатор прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue external_id = 17;</code>
     */
    protected $external_id = null;
    /**
     * Тип тарифного плана
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PlanType plan_type = 18;</code>
     */
    protected $plan_type = 0;
    /**
     * Идентификатор хаба
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value parent_id = 19;</code>
     */
    protected $parent_id = null;
    /**
     * Тип трубопровода
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PipeType pipe_type = 20;</code>
     */
    protected $pipe_type = 0;
    /**
     * Идентификатор модуля LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue dev_eui = 21;</code>
     */
    protected $dev_eui = null;
    /**
     * MAC-адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue mac = 22;</code>
     */
    protected $mac = null;
    /**
     * Номер порта
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value port = 23;</code>
     */
    protected $port = null;
    /**
     * Сетевой адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue network_address = 24;</code>
     */
    protected $network_address = null;
    /**
     * Канал связи.
     * Для станции LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue comm_channel = 25;</code>
     */
    protected $comm_channel = null;
    /**
     * MSISDN SIM-карты.
     * Номер телефона
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_number = 26;</code>
     */
    protected $sim_number = null;
    /**
     * Серийный номер SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_serial = 27;</code>
     */
    protected $sim_serial = null;
    /**
     * IP адрес SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue ip_address_sim = 28;</code>
     */
    protected $ip_address_sim = null;
    /**
     * Размещение
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue placement = 29;</code>
     */
    protected $placement = null;
    /**
     * Место установки
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue installation_place = 30;</code>
     */
    protected $installation_place = null;
    /**
     * Kлюч приложения.
     * Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appkey = 31 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $appkey = null;
    /**
     * Идентификатор приложения.
     * Для LoRaWAN [64 бита]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appeui = 32 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $appeui = null;
    /**
     * Тип протокола
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue protocol_type_label = 33;</code>
     */
    protected $protocol_type_label = null;
    /**
     * Номер канала для многоканального ПУ
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value channel_number = 34 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @deprecated
     */
    protected $channel_number = null;
    /**
     * Тип проводного интерфейса
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue wire_interface = 35;</code>
     */
    protected $wire_interface = null;
    /**
     * Идентификатор объекта строительства
     *
     * Generated from protobuf field <code>int32 building_id = 36;</code>
     */
    protected $building_id = 0;
    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value manufacture_year = 37;</code>
     */
    protected $manufacture_year = null;
    /**
     * Посредник получения показаний
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Indicator.VendorType indicator_vendor_type = 38;</code>
     */
    protected $indicator_vendor_type = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $id
     *           Идентификатор
     *     @type array<\Keyapis\TelemetryControl\V1\Indicator>|\Google\Protobuf\Internal\RepeatedField $indicators
     *           Индикаторы
     *     @type \Keyapis\TelemetryControl\V1\Device\MetricPoint $metric_point
     *           Точка учета
     *     @type \Google\Protobuf\Timestamp $created_at
     *           Дата создания
     *     @type \Google\Protobuf\Timestamp $changed_at
     *           Дата последнего изменения.
     *           Заполняется и обновляется сервером.
     *           Заполняется при создании и изменении.
     *           Является версией объекта
     *     @type int $type
     *           Тип прибора учёта(ПУ)
     *     @type string $serial_number
     *           Серийный номер
     *     @type string $model
     *           Производитель и модель счетчика
     *     @type int $year
     *           Год выпуска счётчика
     *     @type string $fias_id
     *           Идентификатор строения ФИАС
     *     @type string $resource_owner_id
     *           Идентификатор владельца.
     *           Заполняется сервером
     *     @type int $status_type
     *           Тип статуса
     *     @type \Google\Protobuf\Timestamp $installed_at
     *           Дата установки
     *     @type \Google\Protobuf\Timestamp $removed_at
     *           Дата удаления
     *     @type \Google\Protobuf\Timestamp $check_at
     *           Дата предыдущей поверки счетчика
     *     @type \Google\Protobuf\Timestamp $next_check_at
     *           Дата следующей поверки счетчика
     *     @type \Google\Protobuf\StringValue $external_id
     *           Внешний дентификатор прибора учёта(ПУ)
     *     @type int $plan_type
     *           Тип тарифного плана
     *     @type \Google\Protobuf\Int32Value $parent_id
     *           Идентификатор хаба
     *     @type int $pipe_type
     *           Тип трубопровода
     *     @type \Google\Protobuf\StringValue $dev_eui
     *           Идентификатор модуля LoraWan
     *     @type \Google\Protobuf\StringValue $mac
     *           MAC-адрес
     *     @type \Google\Protobuf\Int32Value $port
     *           Номер порта
     *     @type \Google\Protobuf\StringValue $network_address
     *           Сетевой адрес
     *     @type \Google\Protobuf\StringValue $comm_channel
     *           Канал связи.
     *           Для станции LoraWan
     *     @type \Google\Protobuf\StringValue $sim_number
     *           MSISDN SIM-карты.
     *           Номер телефона
     *     @type \Google\Protobuf\StringValue $sim_serial
     *           Серийный номер SIM-карты
     *     @type \Google\Protobuf\StringValue $ip_address_sim
     *           IP адрес SIM-карты
     *     @type \Google\Protobuf\StringValue $placement
     *           Размещение
     *     @type \Google\Protobuf\StringValue $installation_place
     *           Место установки
     *     @type \Google\Protobuf\StringValue $appkey
     *           Kлюч приложения.
     *           Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *     @type \Google\Protobuf\StringValue $appeui
     *           Идентификатор приложения.
     *           Для LoRaWAN [64 бита]
     *     @type \Google\Protobuf\StringValue $protocol_type_label
     *           Тип протокола
     *     @type \Google\Protobuf\Int32Value $channel_number
     *           Номер канала для многоканального ПУ
     *     @type \Google\Protobuf\StringValue $wire_interface
     *           Тип проводного интерфейса
     *     @type int $building_id
     *           Идентификатор объекта строительства
     *     @type \Google\Protobuf\Int32Value $manufacture_year
     *           Год выпуска счётчика
     *     @type int $indicator_vendor_type
     *           Посредник получения показаний
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\TelemetryControl\V1\KeyapisTelemetryControlDeviceV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Идентификатор
     *
     * Generated from protobuf field <code>int32 id = 1;</code>
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Идентификатор
     *
     * Generated from protobuf field <code>int32 id = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkInt32($var);
        $this->id = $var;

        return $this;
    }

    /**
     * Индикаторы
     *
     * Generated from protobuf field <code>repeated .keyapis.telemetry_control.v1.Indicator indicators = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getIndicators()
    {
        return $this->indicators;
    }

    /**
     * Индикаторы
     *
     * Generated from protobuf field <code>repeated .keyapis.telemetry_control.v1.Indicator indicators = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param array<\Keyapis\TelemetryControl\V1\Indicator>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setIndicators($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Keyapis\TelemetryControl\V1\Indicator::class);
        $this->indicators = $arr;

        return $this;
    }

    /**
     * Точка учета
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return \Keyapis\TelemetryControl\V1\Device\MetricPoint|null
     * @deprecated
     */
    public function getMetricPoint()
    {
        @trigger_error('metric_point is deprecated.', E_USER_DEPRECATED);
        return $this->metric_point;
    }

    public function hasMetricPoint()
    {
        @trigger_error('metric_point is deprecated.', E_USER_DEPRECATED);
        return isset($this->metric_point);
    }

    public function clearMetricPoint()
    {
        @trigger_error('metric_point is deprecated.', E_USER_DEPRECATED);
        unset($this->metric_point);
    }

    /**
     * Точка учета
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param \Keyapis\TelemetryControl\V1\Device\MetricPoint $var
     * @return $this
     * @deprecated
     */
    public function setMetricPoint($var)
    {
        @trigger_error('metric_point is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Keyapis\TelemetryControl\V1\Device\MetricPoint::class);
        $this->metric_point = $var;

        return $this;
    }

    /**
     * Дата создания
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getCreatedAt()
    {
        return $this->created_at;
    }

    public function hasCreatedAt()
    {
        return isset($this->created_at);
    }

    public function clearCreatedAt()
    {
        unset($this->created_at);
    }

    /**
     * Дата создания
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setCreatedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->created_at = $var;

        return $this;
    }

    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getChangedAt()
    {
        return $this->changed_at;
    }

    public function hasChangedAt()
    {
        return isset($this->changed_at);
    }

    public function clearChangedAt()
    {
        unset($this->changed_at);
    }

    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setChangedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->changed_at = $var;

        return $this;
    }

    /**
     * Тип прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.Type type = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Тип прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.Type type = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\TelemetryControl\V1\Device\Type::class);
        $this->type = $var;

        return $this;
    }

    /**
     * Серийный номер
     *
     * Generated from protobuf field <code>string serial_number = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getSerialNumber()
    {
        return $this->serial_number;
    }

    /**
     * Серийный номер
     *
     * Generated from protobuf field <code>string serial_number = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setSerialNumber($var)
    {
        GPBUtil::checkString($var, True);
        $this->serial_number = $var;

        return $this;
    }

    /**
     * Производитель и модель счетчика
     *
     * Generated from protobuf field <code>string model = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getModel()
    {
        return $this->model;
    }

    /**
     * Производитель и модель счетчика
     *
     * Generated from protobuf field <code>string model = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setModel($var)
    {
        GPBUtil::checkString($var, True);
        $this->model = $var;

        return $this;
    }

    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>int32 year = 9 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @return int
     * @deprecated
     */
    public function getYear()
    {
        @trigger_error('year is deprecated.', E_USER_DEPRECATED);
        return $this->year;
    }

    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>int32 year = 9 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @param int $var
     * @return $this
     * @deprecated
     */
    public function setYear($var)
    {
        @trigger_error('year is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkInt32($var);
        $this->year = $var;

        return $this;
    }

    /**
     * Идентификатор строения ФИАС
     *
     * Generated from protobuf field <code>string fias_id = 10 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @return string
     * @deprecated
     */
    public function getFiasId()
    {
        @trigger_error('fias_id is deprecated.', E_USER_DEPRECATED);
        return $this->fias_id;
    }

    /**
     * Идентификатор строения ФИАС
     *
     * Generated from protobuf field <code>string fias_id = 10 [deprecated = true, (.google.api.field_behavior) = REQUIRED, (.google.api.field_visibility) = {</code>
     * @param string $var
     * @return $this
     * @deprecated
     */
    public function setFiasId($var)
    {
        @trigger_error('fias_id is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkString($var, True);
        $this->fias_id = $var;

        return $this;
    }

    /**
     * Идентификатор владельца.
     * Заполняется сервером
     *
     * Generated from protobuf field <code>string resource_owner_id = 11 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_visibility) = {</code>
     * @return string
     * @deprecated
     */
    public function getResourceOwnerId()
    {
        @trigger_error('resource_owner_id is deprecated.', E_USER_DEPRECATED);
        return $this->resource_owner_id;
    }

    /**
     * Идентификатор владельца.
     * Заполняется сервером
     *
     * Generated from protobuf field <code>string resource_owner_id = 11 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_visibility) = {</code>
     * @param string $var
     * @return $this
     * @deprecated
     */
    public function setResourceOwnerId($var)
    {
        @trigger_error('resource_owner_id is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkString($var, True);
        $this->resource_owner_id = $var;

        return $this;
    }

    /**
     * Тип статуса
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.StatusType status_type = 12;</code>
     * @return int
     */
    public function getStatusType()
    {
        return $this->status_type;
    }

    /**
     * Тип статуса
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.StatusType status_type = 12;</code>
     * @param int $var
     * @return $this
     */
    public function setStatusType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\TelemetryControl\V1\Device\StatusType::class);
        $this->status_type = $var;

        return $this;
    }

    /**
     * Дата установки
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp installed_at = 13;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getInstalledAt()
    {
        return $this->installed_at;
    }

    public function hasInstalledAt()
    {
        return isset($this->installed_at);
    }

    public function clearInstalledAt()
    {
        unset($this->installed_at);
    }

    /**
     * Дата установки
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp installed_at = 13;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setInstalledAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->installed_at = $var;

        return $this;
    }

    /**
     * Дата удаления
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp removed_at = 14;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getRemovedAt()
    {
        return $this->removed_at;
    }

    public function hasRemovedAt()
    {
        return isset($this->removed_at);
    }

    public function clearRemovedAt()
    {
        unset($this->removed_at);
    }

    /**
     * Дата удаления
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp removed_at = 14;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setRemovedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->removed_at = $var;

        return $this;
    }

    /**
     * Дата предыдущей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp check_at = 15;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getCheckAt()
    {
        return $this->check_at;
    }

    public function hasCheckAt()
    {
        return isset($this->check_at);
    }

    public function clearCheckAt()
    {
        unset($this->check_at);
    }

    /**
     * Дата предыдущей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp check_at = 15;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setCheckAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->check_at = $var;

        return $this;
    }

    /**
     * Дата следующей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_check_at = 16;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getNextCheckAt()
    {
        return $this->next_check_at;
    }

    public function hasNextCheckAt()
    {
        return isset($this->next_check_at);
    }

    public function clearNextCheckAt()
    {
        unset($this->next_check_at);
    }

    /**
     * Дата следующей поверки счетчика
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_check_at = 16;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setNextCheckAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->next_check_at = $var;

        return $this;
    }

    /**
     * Внешний дентификатор прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue external_id = 17;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getExternalId()
    {
        return $this->external_id;
    }

    public function hasExternalId()
    {
        return isset($this->external_id);
    }

    public function clearExternalId()
    {
        unset($this->external_id);
    }

    /**
     * Returns the unboxed value from <code>getExternalId()</code>

     * Внешний дентификатор прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue external_id = 17;</code>
     * @return string|null
     */
    public function getExternalIdUnwrapped()
    {
        return $this->readWrapperValue("external_id");
    }

    /**
     * Внешний дентификатор прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue external_id = 17;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setExternalId($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->external_id = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Внешний дентификатор прибора учёта(ПУ)
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue external_id = 17;</code>
     * @param string|null $var
     * @return $this
     */
    public function setExternalIdUnwrapped($var)
    {
        $this->writeWrapperValue("external_id", $var);
        return $this;}

    /**
     * Тип тарифного плана
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PlanType plan_type = 18;</code>
     * @return int
     */
    public function getPlanType()
    {
        return $this->plan_type;
    }

    /**
     * Тип тарифного плана
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PlanType plan_type = 18;</code>
     * @param int $var
     * @return $this
     */
    public function setPlanType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\TelemetryControl\V1\Device\PlanType::class);
        $this->plan_type = $var;

        return $this;
    }

    /**
     * Идентификатор хаба
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value parent_id = 19;</code>
     * @return \Google\Protobuf\Int32Value|null
     */
    public function getParentId()
    {
        return $this->parent_id;
    }

    public function hasParentId()
    {
        return isset($this->parent_id);
    }

    public function clearParentId()
    {
        unset($this->parent_id);
    }

    /**
     * Returns the unboxed value from <code>getParentId()</code>

     * Идентификатор хаба
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value parent_id = 19;</code>
     * @return int|null
     */
    public function getParentIdUnwrapped()
    {
        return $this->readWrapperValue("parent_id");
    }

    /**
     * Идентификатор хаба
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value parent_id = 19;</code>
     * @param \Google\Protobuf\Int32Value $var
     * @return $this
     */
    public function setParentId($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
        $this->parent_id = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.

     * Идентификатор хаба
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value parent_id = 19;</code>
     * @param int|null $var
     * @return $this
     */
    public function setParentIdUnwrapped($var)
    {
        $this->writeWrapperValue("parent_id", $var);
        return $this;}

    /**
     * Тип трубопровода
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PipeType pipe_type = 20;</code>
     * @return int
     */
    public function getPipeType()
    {
        return $this->pipe_type;
    }

    /**
     * Тип трубопровода
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Device.PipeType pipe_type = 20;</code>
     * @param int $var
     * @return $this
     */
    public function setPipeType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\TelemetryControl\V1\Device\PipeType::class);
        $this->pipe_type = $var;

        return $this;
    }

    /**
     * Идентификатор модуля LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue dev_eui = 21;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getDevEui()
    {
        return $this->dev_eui;
    }

    public function hasDevEui()
    {
        return isset($this->dev_eui);
    }

    public function clearDevEui()
    {
        unset($this->dev_eui);
    }

    /**
     * Returns the unboxed value from <code>getDevEui()</code>

     * Идентификатор модуля LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue dev_eui = 21;</code>
     * @return string|null
     */
    public function getDevEuiUnwrapped()
    {
        return $this->readWrapperValue("dev_eui");
    }

    /**
     * Идентификатор модуля LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue dev_eui = 21;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setDevEui($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->dev_eui = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Идентификатор модуля LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue dev_eui = 21;</code>
     * @param string|null $var
     * @return $this
     */
    public function setDevEuiUnwrapped($var)
    {
        $this->writeWrapperValue("dev_eui", $var);
        return $this;}

    /**
     * MAC-адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue mac = 22;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getMac()
    {
        return $this->mac;
    }

    public function hasMac()
    {
        return isset($this->mac);
    }

    public function clearMac()
    {
        unset($this->mac);
    }

    /**
     * Returns the unboxed value from <code>getMac()</code>

     * MAC-адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue mac = 22;</code>
     * @return string|null
     */
    public function getMacUnwrapped()
    {
        return $this->readWrapperValue("mac");
    }

    /**
     * MAC-адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue mac = 22;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setMac($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->mac = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * MAC-адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue mac = 22;</code>
     * @param string|null $var
     * @return $this
     */
    public function setMacUnwrapped($var)
    {
        $this->writeWrapperValue("mac", $var);
        return $this;}

    /**
     * Номер порта
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value port = 23;</code>
     * @return \Google\Protobuf\Int32Value|null
     */
    public function getPort()
    {
        return $this->port;
    }

    public function hasPort()
    {
        return isset($this->port);
    }

    public function clearPort()
    {
        unset($this->port);
    }

    /**
     * Returns the unboxed value from <code>getPort()</code>

     * Номер порта
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value port = 23;</code>
     * @return int|null
     */
    public function getPortUnwrapped()
    {
        return $this->readWrapperValue("port");
    }

    /**
     * Номер порта
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value port = 23;</code>
     * @param \Google\Protobuf\Int32Value $var
     * @return $this
     */
    public function setPort($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
        $this->port = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.

     * Номер порта
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value port = 23;</code>
     * @param int|null $var
     * @return $this
     */
    public function setPortUnwrapped($var)
    {
        $this->writeWrapperValue("port", $var);
        return $this;}

    /**
     * Сетевой адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue network_address = 24;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getNetworkAddress()
    {
        return $this->network_address;
    }

    public function hasNetworkAddress()
    {
        return isset($this->network_address);
    }

    public function clearNetworkAddress()
    {
        unset($this->network_address);
    }

    /**
     * Returns the unboxed value from <code>getNetworkAddress()</code>

     * Сетевой адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue network_address = 24;</code>
     * @return string|null
     */
    public function getNetworkAddressUnwrapped()
    {
        return $this->readWrapperValue("network_address");
    }

    /**
     * Сетевой адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue network_address = 24;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setNetworkAddress($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->network_address = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Сетевой адрес
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue network_address = 24;</code>
     * @param string|null $var
     * @return $this
     */
    public function setNetworkAddressUnwrapped($var)
    {
        $this->writeWrapperValue("network_address", $var);
        return $this;}

    /**
     * Канал связи.
     * Для станции LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue comm_channel = 25;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getCommChannel()
    {
        return $this->comm_channel;
    }

    public function hasCommChannel()
    {
        return isset($this->comm_channel);
    }

    public function clearCommChannel()
    {
        unset($this->comm_channel);
    }

    /**
     * Returns the unboxed value from <code>getCommChannel()</code>

     * Канал связи.
     * Для станции LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue comm_channel = 25;</code>
     * @return string|null
     */
    public function getCommChannelUnwrapped()
    {
        return $this->readWrapperValue("comm_channel");
    }

    /**
     * Канал связи.
     * Для станции LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue comm_channel = 25;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setCommChannel($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->comm_channel = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Канал связи.
     * Для станции LoraWan
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue comm_channel = 25;</code>
     * @param string|null $var
     * @return $this
     */
    public function setCommChannelUnwrapped($var)
    {
        $this->writeWrapperValue("comm_channel", $var);
        return $this;}

    /**
     * MSISDN SIM-карты.
     * Номер телефона
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_number = 26;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getSimNumber()
    {
        return $this->sim_number;
    }

    public function hasSimNumber()
    {
        return isset($this->sim_number);
    }

    public function clearSimNumber()
    {
        unset($this->sim_number);
    }

    /**
     * Returns the unboxed value from <code>getSimNumber()</code>

     * MSISDN SIM-карты.
     * Номер телефона
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_number = 26;</code>
     * @return string|null
     */
    public function getSimNumberUnwrapped()
    {
        return $this->readWrapperValue("sim_number");
    }

    /**
     * MSISDN SIM-карты.
     * Номер телефона
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_number = 26;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setSimNumber($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->sim_number = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * MSISDN SIM-карты.
     * Номер телефона
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_number = 26;</code>
     * @param string|null $var
     * @return $this
     */
    public function setSimNumberUnwrapped($var)
    {
        $this->writeWrapperValue("sim_number", $var);
        return $this;}

    /**
     * Серийный номер SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_serial = 27;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getSimSerial()
    {
        return $this->sim_serial;
    }

    public function hasSimSerial()
    {
        return isset($this->sim_serial);
    }

    public function clearSimSerial()
    {
        unset($this->sim_serial);
    }

    /**
     * Returns the unboxed value from <code>getSimSerial()</code>

     * Серийный номер SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_serial = 27;</code>
     * @return string|null
     */
    public function getSimSerialUnwrapped()
    {
        return $this->readWrapperValue("sim_serial");
    }

    /**
     * Серийный номер SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_serial = 27;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setSimSerial($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->sim_serial = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Серийный номер SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue sim_serial = 27;</code>
     * @param string|null $var
     * @return $this
     */
    public function setSimSerialUnwrapped($var)
    {
        $this->writeWrapperValue("sim_serial", $var);
        return $this;}

    /**
     * IP адрес SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue ip_address_sim = 28;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getIpAddressSim()
    {
        return $this->ip_address_sim;
    }

    public function hasIpAddressSim()
    {
        return isset($this->ip_address_sim);
    }

    public function clearIpAddressSim()
    {
        unset($this->ip_address_sim);
    }

    /**
     * Returns the unboxed value from <code>getIpAddressSim()</code>

     * IP адрес SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue ip_address_sim = 28;</code>
     * @return string|null
     */
    public function getIpAddressSimUnwrapped()
    {
        return $this->readWrapperValue("ip_address_sim");
    }

    /**
     * IP адрес SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue ip_address_sim = 28;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setIpAddressSim($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->ip_address_sim = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * IP адрес SIM-карты
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue ip_address_sim = 28;</code>
     * @param string|null $var
     * @return $this
     */
    public function setIpAddressSimUnwrapped($var)
    {
        $this->writeWrapperValue("ip_address_sim", $var);
        return $this;}

    /**
     * Размещение
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue placement = 29;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getPlacement()
    {
        return $this->placement;
    }

    public function hasPlacement()
    {
        return isset($this->placement);
    }

    public function clearPlacement()
    {
        unset($this->placement);
    }

    /**
     * Returns the unboxed value from <code>getPlacement()</code>

     * Размещение
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue placement = 29;</code>
     * @return string|null
     */
    public function getPlacementUnwrapped()
    {
        return $this->readWrapperValue("placement");
    }

    /**
     * Размещение
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue placement = 29;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setPlacement($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->placement = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Размещение
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue placement = 29;</code>
     * @param string|null $var
     * @return $this
     */
    public function setPlacementUnwrapped($var)
    {
        $this->writeWrapperValue("placement", $var);
        return $this;}

    /**
     * Место установки
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue installation_place = 30;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getInstallationPlace()
    {
        return $this->installation_place;
    }

    public function hasInstallationPlace()
    {
        return isset($this->installation_place);
    }

    public function clearInstallationPlace()
    {
        unset($this->installation_place);
    }

    /**
     * Returns the unboxed value from <code>getInstallationPlace()</code>

     * Место установки
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue installation_place = 30;</code>
     * @return string|null
     */
    public function getInstallationPlaceUnwrapped()
    {
        return $this->readWrapperValue("installation_place");
    }

    /**
     * Место установки
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue installation_place = 30;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setInstallationPlace($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->installation_place = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Место установки
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue installation_place = 30;</code>
     * @param string|null $var
     * @return $this
     */
    public function setInstallationPlaceUnwrapped($var)
    {
        $this->writeWrapperValue("installation_place", $var);
        return $this;}

    /**
     * Kлюч приложения.
     * Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appkey = 31 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return \Google\Protobuf\StringValue|null
     * @deprecated
     */
    public function getAppkey()
    {
        @trigger_error('appkey is deprecated.', E_USER_DEPRECATED);
        return $this->appkey;
    }

    public function hasAppkey()
    {
        @trigger_error('appkey is deprecated.', E_USER_DEPRECATED);
        return isset($this->appkey);
    }

    public function clearAppkey()
    {
        @trigger_error('appkey is deprecated.', E_USER_DEPRECATED);
        unset($this->appkey);
    }

    /**
     * Returns the unboxed value from <code>getAppkey()</code>

     * Kлюч приложения.
     * Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appkey = 31 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return string|null
     */
    public function getAppkeyUnwrapped()
    {
        @trigger_error('appkey is deprecated.', E_USER_DEPRECATED);
        return $this->readWrapperValue("appkey");
    }

    /**
     * Kлюч приложения.
     * Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appkey = 31 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     * @deprecated
     */
    public function setAppkey($var)
    {
        @trigger_error('appkey is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->appkey = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Kлюч приложения.
     * Используется в процессе присоединения к сети для получения сессионных ключей NwkSKey и AppSKey для LoRaWAN [128 бит]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appkey = 31 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param string|null $var
     * @return $this
     */
    public function setAppkeyUnwrapped($var)
    {
        $this->writeWrapperValue("appkey", $var);
        return $this;}

    /**
     * Идентификатор приложения.
     * Для LoRaWAN [64 бита]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appeui = 32 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return \Google\Protobuf\StringValue|null
     * @deprecated
     */
    public function getAppeui()
    {
        @trigger_error('appeui is deprecated.', E_USER_DEPRECATED);
        return $this->appeui;
    }

    public function hasAppeui()
    {
        @trigger_error('appeui is deprecated.', E_USER_DEPRECATED);
        return isset($this->appeui);
    }

    public function clearAppeui()
    {
        @trigger_error('appeui is deprecated.', E_USER_DEPRECATED);
        unset($this->appeui);
    }

    /**
     * Returns the unboxed value from <code>getAppeui()</code>

     * Идентификатор приложения.
     * Для LoRaWAN [64 бита]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appeui = 32 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return string|null
     */
    public function getAppeuiUnwrapped()
    {
        @trigger_error('appeui is deprecated.', E_USER_DEPRECATED);
        return $this->readWrapperValue("appeui");
    }

    /**
     * Идентификатор приложения.
     * Для LoRaWAN [64 бита]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appeui = 32 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     * @deprecated
     */
    public function setAppeui($var)
    {
        @trigger_error('appeui is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->appeui = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Идентификатор приложения.
     * Для LoRaWAN [64 бита]
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue appeui = 32 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param string|null $var
     * @return $this
     */
    public function setAppeuiUnwrapped($var)
    {
        $this->writeWrapperValue("appeui", $var);
        return $this;}

    /**
     * Тип протокола
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue protocol_type_label = 33;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getProtocolTypeLabel()
    {
        return $this->protocol_type_label;
    }

    public function hasProtocolTypeLabel()
    {
        return isset($this->protocol_type_label);
    }

    public function clearProtocolTypeLabel()
    {
        unset($this->protocol_type_label);
    }

    /**
     * Returns the unboxed value from <code>getProtocolTypeLabel()</code>

     * Тип протокола
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue protocol_type_label = 33;</code>
     * @return string|null
     */
    public function getProtocolTypeLabelUnwrapped()
    {
        return $this->readWrapperValue("protocol_type_label");
    }

    /**
     * Тип протокола
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue protocol_type_label = 33;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setProtocolTypeLabel($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->protocol_type_label = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Тип протокола
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue protocol_type_label = 33;</code>
     * @param string|null $var
     * @return $this
     */
    public function setProtocolTypeLabelUnwrapped($var)
    {
        $this->writeWrapperValue("protocol_type_label", $var);
        return $this;}

    /**
     * Номер канала для многоканального ПУ
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value channel_number = 34 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return \Google\Protobuf\Int32Value|null
     * @deprecated
     */
    public function getChannelNumber()
    {
        @trigger_error('channel_number is deprecated.', E_USER_DEPRECATED);
        return $this->channel_number;
    }

    public function hasChannelNumber()
    {
        @trigger_error('channel_number is deprecated.', E_USER_DEPRECATED);
        return isset($this->channel_number);
    }

    public function clearChannelNumber()
    {
        @trigger_error('channel_number is deprecated.', E_USER_DEPRECATED);
        unset($this->channel_number);
    }

    /**
     * Returns the unboxed value from <code>getChannelNumber()</code>

     * Номер канала для многоканального ПУ
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value channel_number = 34 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @return int|null
     */
    public function getChannelNumberUnwrapped()
    {
        @trigger_error('channel_number is deprecated.', E_USER_DEPRECATED);
        return $this->readWrapperValue("channel_number");
    }

    /**
     * Номер канала для многоканального ПУ
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value channel_number = 34 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param \Google\Protobuf\Int32Value $var
     * @return $this
     * @deprecated
     */
    public function setChannelNumber($var)
    {
        @trigger_error('channel_number is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
        $this->channel_number = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.

     * Номер канала для многоканального ПУ
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value channel_number = 34 [deprecated = true, (.google.api.field_visibility) = {</code>
     * @param int|null $var
     * @return $this
     */
    public function setChannelNumberUnwrapped($var)
    {
        $this->writeWrapperValue("channel_number", $var);
        return $this;}

    /**
     * Тип проводного интерфейса
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue wire_interface = 35;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getWireInterface()
    {
        return $this->wire_interface;
    }

    public function hasWireInterface()
    {
        return isset($this->wire_interface);
    }

    public function clearWireInterface()
    {
        unset($this->wire_interface);
    }

    /**
     * Returns the unboxed value from <code>getWireInterface()</code>

     * Тип проводного интерфейса
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue wire_interface = 35;</code>
     * @return string|null
     */
    public function getWireInterfaceUnwrapped()
    {
        return $this->readWrapperValue("wire_interface");
    }

    /**
     * Тип проводного интерфейса
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue wire_interface = 35;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setWireInterface($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->wire_interface = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Тип проводного интерфейса
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue wire_interface = 35;</code>
     * @param string|null $var
     * @return $this
     */
    public function setWireInterfaceUnwrapped($var)
    {
        $this->writeWrapperValue("wire_interface", $var);
        return $this;}

    /**
     * Идентификатор объекта строительства
     *
     * Generated from protobuf field <code>int32 building_id = 36;</code>
     * @return int
     */
    public function getBuildingId()
    {
        return $this->building_id;
    }

    /**
     * Идентификатор объекта строительства
     *
     * Generated from protobuf field <code>int32 building_id = 36;</code>
     * @param int $var
     * @return $this
     */
    public function setBuildingId($var)
    {
        GPBUtil::checkInt32($var);
        $this->building_id = $var;

        return $this;
    }

    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value manufacture_year = 37;</code>
     * @return \Google\Protobuf\Int32Value|null
     */
    public function getManufactureYear()
    {
        return $this->manufacture_year;
    }

    public function hasManufactureYear()
    {
        return isset($this->manufacture_year);
    }

    public function clearManufactureYear()
    {
        unset($this->manufacture_year);
    }

    /**
     * Returns the unboxed value from <code>getManufactureYear()</code>

     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value manufacture_year = 37;</code>
     * @return int|null
     */
    public function getManufactureYearUnwrapped()
    {
        return $this->readWrapperValue("manufacture_year");
    }

    /**
     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value manufacture_year = 37;</code>
     * @param \Google\Protobuf\Int32Value $var
     * @return $this
     */
    public function setManufactureYear($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
        $this->manufacture_year = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.

     * Год выпуска счётчика
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value manufacture_year = 37;</code>
     * @param int|null $var
     * @return $this
     */
    public function setManufactureYearUnwrapped($var)
    {
        $this->writeWrapperValue("manufacture_year", $var);
        return $this;}

    /**
     * Посредник получения показаний
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Indicator.VendorType indicator_vendor_type = 38;</code>
     * @return int
     */
    public function getIndicatorVendorType()
    {
        return $this->indicator_vendor_type;
    }

    /**
     * Посредник получения показаний
     *
     * Generated from protobuf field <code>.keyapis.telemetry_control.v1.Indicator.VendorType indicator_vendor_type = 38;</code>
     * @param int $var
     * @return $this
     */
    public function setIndicatorVendorType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\TelemetryControl\V1\Indicator\VendorType::class);
        $this->indicator_vendor_type = $var;

        return $this;
    }

}

