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

namespace Keyapis\Vc\V1;

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

/**
 * Камера
 *
 * Generated from protobuf message <code>keyapis.vc.v1.Camera</code>
 */
class Camera extends \Google\Protobuf\Internal\Message
{
    /**
     * Идентификатор камеры
     *
     * Generated from protobuf field <code>string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $id = '';
    /**
     * uid камеры
     *
     * Generated from protobuf field <code>string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $uid = '';
    /**
     * Название камеры
     *
     * Generated from protobuf field <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $name = '';
    /**
     * Признак: онлайн камера или нет
     *
     * Generated from protobuf field <code>bool is_online = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $is_online = false;
    /**
     * Признак: Есть ли у камеры активный пользователь
     *
     * Generated from protobuf field <code>bool is_active_user_camera = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $is_active_user_camera = false;
    /**
     * Дата и время изменения статуса камеры
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp status_changed_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $status_changed_at = null;
    /**
     * MAC-адрес камеры
     *
     * Generated from protobuf field <code>string mac = 7;</code>
     */
    protected $mac = '';
    /**
     * IP камеры
     *
     * Generated from protobuf field <code>string ip = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $ip = '';
    /**
     * Внешний IP камеры
     *
     * Generated from protobuf field <code>string remote_ip = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $remote_ip = '';
    /**
     * Дата начала действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_started_at = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $tariff_started_at = null;
    /**
     * Дата окончания действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_ended_at = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $tariff_ended_at = null;
    /**
     * Наименование тарифа
     *
     * Generated from protobuf field <code>string tariff_title = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $tariff_title = '';
    /**
     * Тип камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.Camera.Type type = 13 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     */
    protected $type = 0;
    /**
     * Идентификатор категории.
     * Камера - 1, домофон - 2, скуд - 3, шлагбаум - 4
     *
     * Generated from protobuf field <code>int32 camera_category_id = 14 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     */
    protected $camera_category_id = 0;
    /**
     * РТСП-ссылка
     *
     * Generated from protobuf field <code>string rtsp_url = 15 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     */
    protected $rtsp_url = '';
    /**
     * Серийный номер
     *
     * Generated from protobuf field <code>string serial_number = 16 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     */
    protected $serial_number = '';
    /**
     * Идентификатор компании
     *
     * Generated from protobuf field <code>int32 company_id = 17 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     */
    protected $company_id = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $id
     *           Идентификатор камеры
     *     @type string $uid
     *           uid камеры
     *     @type string $name
     *           Название камеры
     *     @type bool $is_online
     *           Признак: онлайн камера или нет
     *     @type bool $is_active_user_camera
     *           Признак: Есть ли у камеры активный пользователь
     *     @type \Google\Protobuf\Timestamp $status_changed_at
     *           Дата и время изменения статуса камеры
     *     @type string $mac
     *           MAC-адрес камеры
     *     @type string $ip
     *           IP камеры
     *     @type string $remote_ip
     *           Внешний IP камеры
     *     @type \Google\Protobuf\Timestamp $tariff_started_at
     *           Дата начала действия текущего тарифа
     *     @type \Google\Protobuf\Timestamp $tariff_ended_at
     *           Дата окончания действия текущего тарифа
     *     @type string $tariff_title
     *           Наименование тарифа
     *     @type int $type
     *           Тип камеры
     *     @type int $camera_category_id
     *           Идентификатор категории.
     *           Камера - 1, домофон - 2, скуд - 3, шлагбаум - 4
     *     @type string $rtsp_url
     *           РТСП-ссылка
     *     @type string $serial_number
     *           Серийный номер
     *     @type int $company_id
     *           Идентификатор компании
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\Vc\V1\KeyapisVcCameraV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Идентификатор камеры
     *
     * Generated from protobuf field <code>string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Идентификатор камеры
     *
     * Generated from protobuf field <code>string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkString($var, True);
        $this->id = $var;

        return $this;
    }

    /**
     * uid камеры
     *
     * Generated from protobuf field <code>string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getUid()
    {
        return $this->uid;
    }

    /**
     * uid камеры
     *
     * Generated from protobuf field <code>string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setUid($var)
    {
        GPBUtil::checkString($var, True);
        $this->uid = $var;

        return $this;
    }

    /**
     * Название камеры
     *
     * Generated from protobuf field <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Название камеры
     *
     * Generated from protobuf field <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Признак: онлайн камера или нет
     *
     * Generated from protobuf field <code>bool is_online = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return bool
     */
    public function getIsOnline()
    {
        return $this->is_online;
    }

    /**
     * Признак: онлайн камера или нет
     *
     * Generated from protobuf field <code>bool is_online = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param bool $var
     * @return $this
     */
    public function setIsOnline($var)
    {
        GPBUtil::checkBool($var);
        $this->is_online = $var;

        return $this;
    }

    /**
     * Признак: Есть ли у камеры активный пользователь
     *
     * Generated from protobuf field <code>bool is_active_user_camera = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return bool
     */
    public function getIsActiveUserCamera()
    {
        return $this->is_active_user_camera;
    }

    /**
     * Признак: Есть ли у камеры активный пользователь
     *
     * Generated from protobuf field <code>bool is_active_user_camera = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param bool $var
     * @return $this
     */
    public function setIsActiveUserCamera($var)
    {
        GPBUtil::checkBool($var);
        $this->is_active_user_camera = $var;

        return $this;
    }

    /**
     * Дата и время изменения статуса камеры
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp status_changed_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getStatusChangedAt()
    {
        return $this->status_changed_at;
    }

    public function hasStatusChangedAt()
    {
        return isset($this->status_changed_at);
    }

    public function clearStatusChangedAt()
    {
        unset($this->status_changed_at);
    }

    /**
     * Дата и время изменения статуса камеры
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp status_changed_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setStatusChangedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->status_changed_at = $var;

        return $this;
    }

    /**
     * MAC-адрес камеры
     *
     * Generated from protobuf field <code>string mac = 7;</code>
     * @return string
     */
    public function getMac()
    {
        return $this->mac;
    }

    /**
     * MAC-адрес камеры
     *
     * Generated from protobuf field <code>string mac = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setMac($var)
    {
        GPBUtil::checkString($var, True);
        $this->mac = $var;

        return $this;
    }

    /**
     * IP камеры
     *
     * Generated from protobuf field <code>string ip = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getIp()
    {
        return $this->ip;
    }

    /**
     * IP камеры
     *
     * Generated from protobuf field <code>string ip = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setIp($var)
    {
        GPBUtil::checkString($var, True);
        $this->ip = $var;

        return $this;
    }

    /**
     * Внешний IP камеры
     *
     * Generated from protobuf field <code>string remote_ip = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getRemoteIp()
    {
        return $this->remote_ip;
    }

    /**
     * Внешний IP камеры
     *
     * Generated from protobuf field <code>string remote_ip = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setRemoteIp($var)
    {
        GPBUtil::checkString($var, True);
        $this->remote_ip = $var;

        return $this;
    }

    /**
     * Дата начала действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_started_at = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getTariffStartedAt()
    {
        return $this->tariff_started_at;
    }

    public function hasTariffStartedAt()
    {
        return isset($this->tariff_started_at);
    }

    public function clearTariffStartedAt()
    {
        unset($this->tariff_started_at);
    }

    /**
     * Дата начала действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_started_at = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setTariffStartedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->tariff_started_at = $var;

        return $this;
    }

    /**
     * Дата окончания действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_ended_at = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getTariffEndedAt()
    {
        return $this->tariff_ended_at;
    }

    public function hasTariffEndedAt()
    {
        return isset($this->tariff_ended_at);
    }

    public function clearTariffEndedAt()
    {
        unset($this->tariff_ended_at);
    }

    /**
     * Дата окончания действия текущего тарифа
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp tariff_ended_at = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setTariffEndedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->tariff_ended_at = $var;

        return $this;
    }

    /**
     * Наименование тарифа
     *
     * Generated from protobuf field <code>string tariff_title = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getTariffTitle()
    {
        return $this->tariff_title;
    }

    /**
     * Наименование тарифа
     *
     * Generated from protobuf field <code>string tariff_title = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setTariffTitle($var)
    {
        GPBUtil::checkString($var, True);
        $this->tariff_title = $var;

        return $this;
    }

    /**
     * Тип камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.Camera.Type type = 13 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Тип камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.Camera.Type type = 13 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Vc\V1\Camera\Type::class);
        $this->type = $var;

        return $this;
    }

    /**
     * Идентификатор категории.
     * Камера - 1, домофон - 2, скуд - 3, шлагбаум - 4
     *
     * Generated from protobuf field <code>int32 camera_category_id = 14 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @return int
     */
    public function getCameraCategoryId()
    {
        return $this->camera_category_id;
    }

    /**
     * Идентификатор категории.
     * Камера - 1, домофон - 2, скуд - 3, шлагбаум - 4
     *
     * Generated from protobuf field <code>int32 camera_category_id = 14 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setCameraCategoryId($var)
    {
        GPBUtil::checkInt32($var);
        $this->camera_category_id = $var;

        return $this;
    }

    /**
     * РТСП-ссылка
     *
     * Generated from protobuf field <code>string rtsp_url = 15 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @return string
     */
    public function getRtspUrl()
    {
        return $this->rtsp_url;
    }

    /**
     * РТСП-ссылка
     *
     * Generated from protobuf field <code>string rtsp_url = 15 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setRtspUrl($var)
    {
        GPBUtil::checkString($var, True);
        $this->rtsp_url = $var;

        return $this;
    }

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

    /**
     * Серийный номер
     *
     * Generated from protobuf field <code>string serial_number = 16 [(.google.api.field_behavior) = INPUT_ONLY];</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>int32 company_id = 17 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @return int
     */
    public function getCompanyId()
    {
        return $this->company_id;
    }

    /**
     * Идентификатор компании
     *
     * Generated from protobuf field <code>int32 company_id = 17 [(.google.api.field_behavior) = INPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setCompanyId($var)
    {
        GPBUtil::checkInt32($var);
        $this->company_id = $var;

        return $this;
    }

}

