<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/vc/v1/keyapis_vc_camera_video_data_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.CameraVideoData</code>
 */
class CameraVideoData extends \Google\Protobuf\Internal\Message
{
    /**
     * Идентификатор камеры в системе Видеокомфорт.
     * Тип: Guid
     *
     * Generated from protobuf field <code>string uid = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $uid = '';
    /**
     * Категория камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Category category = 2;</code>
     */
    protected $category = null;
    /**
     * Наименование камеры
     *
     * Generated from protobuf field <code>string title = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $title = '';
    /**
     * Серийный номер камеры
     *
     * Generated from protobuf field <code>string serial_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $serial_number = '';
    /**
     * IP камеры
     *
     * Generated from protobuf field <code>string ip = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $ip = '';
    /**
     * Адрес видео-потока (https соединение)
     *
     * Generated from protobuf field <code>string streamer_url = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $streamer_url = '';
    /**
     * MAC-адрес камеры
     *
     * Generated from protobuf field <code>string mac = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $mac = '';
    /**
     * Модель камеры
     *
     * Generated from protobuf field <code>string model = 8;</code>
     */
    protected $model = '';
    /**
     * Производитель камеры
     *
     * Generated from protobuf field <code>string vendor = 9;</code>
     */
    protected $vendor = '';
    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Status status = 10 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $status = null;
    /**
     * URL скриншотов разных размеров в JPG-формате
     *
     * Generated from protobuf field <code>string screenshot_url_template = 11 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $screenshot_url_template = '';
    /**
     * Шаблон для “точных” скриншотов. Выдаёт скриншоты всех размеров
     *
     * Generated from protobuf field <code>string screenshot_precise_url_template = 12 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $screenshot_precise_url_template = '';
    /**
     * U-Токен, кука, которая выдается Умному Дому
     *
     * Generated from protobuf field <code>string user_token = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $user_token = '';
    /**
     * Токен для воспроизведения видео с камеры
     *
     * Generated from protobuf field <code>string streamer_token = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $streamer_token = '';
    /**
     * Токен для получения контента с cdn (например, файлов изображений)
     *
     * Generated from protobuf field <code>string screenshot_token = 15 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $screenshot_token = '';
    /**
     * Глубина хранения видео в минутах
     *
     * Generated from protobuf field <code>int32 archive_length = 16;</code>
     */
    protected $archive_length = 0;
    /**
     * Координаты месторасположения
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Location location = 17;</code>
     */
    protected $location = null;
    /**
     * Дата создания
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $created_at = null;
    /**
     * Дата обновления
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp updated_at = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $updated_at = null;
    /**
     * Смещение таймзоны в минутах.
     * # Диапазон: -720..840
     *
     * Generated from protobuf field <code>int32 utc_offset = 20;</code>
     */
    protected $utc_offset = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $uid
     *           Идентификатор камеры в системе Видеокомфорт.
     *           Тип: Guid
     *     @type \Keyapis\Vc\V1\CameraVideoData\Category $category
     *           Категория камеры
     *     @type string $title
     *           Наименование камеры
     *     @type string $serial_number
     *           Серийный номер камеры
     *     @type string $ip
     *           IP камеры
     *     @type string $streamer_url
     *           Адрес видео-потока (https соединение)
     *     @type string $mac
     *           MAC-адрес камеры
     *     @type string $model
     *           Модель камеры
     *     @type string $vendor
     *           Производитель камеры
     *     @type \Keyapis\Vc\V1\CameraVideoData\Status $status
     *           Статус камеры
     *     @type string $screenshot_url_template
     *           URL скриншотов разных размеров в JPG-формате
     *     @type string $screenshot_precise_url_template
     *           Шаблон для “точных” скриншотов. Выдаёт скриншоты всех размеров
     *     @type string $user_token
     *           U-Токен, кука, которая выдается Умному Дому
     *     @type string $streamer_token
     *           Токен для воспроизведения видео с камеры
     *     @type string $screenshot_token
     *           Токен для получения контента с cdn (например, файлов изображений)
     *     @type int $archive_length
     *           Глубина хранения видео в минутах
     *     @type \Keyapis\Vc\V1\CameraVideoData\Location $location
     *           Координаты месторасположения
     *     @type \Google\Protobuf\Timestamp $created_at
     *           Дата создания
     *     @type \Google\Protobuf\Timestamp $updated_at
     *           Дата обновления
     *     @type int $utc_offset
     *           Смещение таймзоны в минутах.
     *           # Диапазон: -720..840
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\Vc\V1\KeyapisVcCameraVideoDataV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Идентификатор камеры в системе Видеокомфорт.
     * Тип: Guid
     *
     * Generated from protobuf field <code>string uid = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getUid()
    {
        return $this->uid;
    }

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

        return $this;
    }

    /**
     * Категория камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Category category = 2;</code>
     * @return \Keyapis\Vc\V1\CameraVideoData\Category|null
     */
    public function getCategory()
    {
        return $this->category;
    }

    public function hasCategory()
    {
        return isset($this->category);
    }

    public function clearCategory()
    {
        unset($this->category);
    }

    /**
     * Категория камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Category category = 2;</code>
     * @param \Keyapis\Vc\V1\CameraVideoData\Category $var
     * @return $this
     */
    public function setCategory($var)
    {
        GPBUtil::checkMessage($var, \Keyapis\Vc\V1\CameraVideoData\Category::class);
        $this->category = $var;

        return $this;
    }

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

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

        return $this;
    }

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

    /**
     * Серийный номер камеры
     *
     * Generated from protobuf field <code>string serial_number = 4 [(.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;
    }

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

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

        return $this;
    }

    /**
     * Адрес видео-потока (https соединение)
     *
     * Generated from protobuf field <code>string streamer_url = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getStreamerUrl()
    {
        return $this->streamer_url;
    }

    /**
     * Адрес видео-потока (https соединение)
     *
     * Generated from protobuf field <code>string streamer_url = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setStreamerUrl($var)
    {
        GPBUtil::checkString($var, True);
        $this->streamer_url = $var;

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Модель камеры
     *
     * Generated from protobuf field <code>string model = 8;</code>
     * @return string
     */
    public function getModel()
    {
        return $this->model;
    }

    /**
     * Модель камеры
     *
     * Generated from protobuf field <code>string model = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setModel($var)
    {
        GPBUtil::checkString($var, True);
        $this->model = $var;

        return $this;
    }

    /**
     * Производитель камеры
     *
     * Generated from protobuf field <code>string vendor = 9;</code>
     * @return string
     */
    public function getVendor()
    {
        return $this->vendor;
    }

    /**
     * Производитель камеры
     *
     * Generated from protobuf field <code>string vendor = 9;</code>
     * @param string $var
     * @return $this
     */
    public function setVendor($var)
    {
        GPBUtil::checkString($var, True);
        $this->vendor = $var;

        return $this;
    }

    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Status status = 10 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Keyapis\Vc\V1\CameraVideoData\Status|null
     */
    public function getStatus()
    {
        return $this->status;
    }

    public function hasStatus()
    {
        return isset($this->status);
    }

    public function clearStatus()
    {
        unset($this->status);
    }

    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Status status = 10 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param \Keyapis\Vc\V1\CameraVideoData\Status $var
     * @return $this
     */
    public function setStatus($var)
    {
        GPBUtil::checkMessage($var, \Keyapis\Vc\V1\CameraVideoData\Status::class);
        $this->status = $var;

        return $this;
    }

    /**
     * URL скриншотов разных размеров в JPG-формате
     *
     * Generated from protobuf field <code>string screenshot_url_template = 11 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getScreenshotUrlTemplate()
    {
        return $this->screenshot_url_template;
    }

    /**
     * URL скриншотов разных размеров в JPG-формате
     *
     * Generated from protobuf field <code>string screenshot_url_template = 11 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setScreenshotUrlTemplate($var)
    {
        GPBUtil::checkString($var, True);
        $this->screenshot_url_template = $var;

        return $this;
    }

    /**
     * Шаблон для “точных” скриншотов. Выдаёт скриншоты всех размеров
     *
     * Generated from protobuf field <code>string screenshot_precise_url_template = 12 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getScreenshotPreciseUrlTemplate()
    {
        return $this->screenshot_precise_url_template;
    }

    /**
     * Шаблон для “точных” скриншотов. Выдаёт скриншоты всех размеров
     *
     * Generated from protobuf field <code>string screenshot_precise_url_template = 12 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setScreenshotPreciseUrlTemplate($var)
    {
        GPBUtil::checkString($var, True);
        $this->screenshot_precise_url_template = $var;

        return $this;
    }

    /**
     * U-Токен, кука, которая выдается Умному Дому
     *
     * Generated from protobuf field <code>string user_token = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getUserToken()
    {
        return $this->user_token;
    }

    /**
     * U-Токен, кука, которая выдается Умному Дому
     *
     * Generated from protobuf field <code>string user_token = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setUserToken($var)
    {
        GPBUtil::checkString($var, True);
        $this->user_token = $var;

        return $this;
    }

    /**
     * Токен для воспроизведения видео с камеры
     *
     * Generated from protobuf field <code>string streamer_token = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getStreamerToken()
    {
        return $this->streamer_token;
    }

    /**
     * Токен для воспроизведения видео с камеры
     *
     * Generated from protobuf field <code>string streamer_token = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setStreamerToken($var)
    {
        GPBUtil::checkString($var, True);
        $this->streamer_token = $var;

        return $this;
    }

    /**
     * Токен для получения контента с cdn (например, файлов изображений)
     *
     * Generated from protobuf field <code>string screenshot_token = 15 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getScreenshotToken()
    {
        return $this->screenshot_token;
    }

    /**
     * Токен для получения контента с cdn (например, файлов изображений)
     *
     * Generated from protobuf field <code>string screenshot_token = 15 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setScreenshotToken($var)
    {
        GPBUtil::checkString($var, True);
        $this->screenshot_token = $var;

        return $this;
    }

    /**
     * Глубина хранения видео в минутах
     *
     * Generated from protobuf field <code>int32 archive_length = 16;</code>
     * @return int
     */
    public function getArchiveLength()
    {
        return $this->archive_length;
    }

    /**
     * Глубина хранения видео в минутах
     *
     * Generated from protobuf field <code>int32 archive_length = 16;</code>
     * @param int $var
     * @return $this
     */
    public function setArchiveLength($var)
    {
        GPBUtil::checkInt32($var);
        $this->archive_length = $var;

        return $this;
    }

    /**
     * Координаты месторасположения
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Location location = 17;</code>
     * @return \Keyapis\Vc\V1\CameraVideoData\Location|null
     */
    public function getLocation()
    {
        return $this->location;
    }

    public function hasLocation()
    {
        return isset($this->location);
    }

    public function clearLocation()
    {
        unset($this->location);
    }

    /**
     * Координаты месторасположения
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.CameraVideoData.Location location = 17;</code>
     * @param \Keyapis\Vc\V1\CameraVideoData\Location $var
     * @return $this
     */
    public function setLocation($var)
    {
        GPBUtil::checkMessage($var, \Keyapis\Vc\V1\CameraVideoData\Location::class);
        $this->location = $var;

        return $this;
    }

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

    public function hasUpdatedAt()
    {
        return isset($this->updated_at);
    }

    public function clearUpdatedAt()
    {
        unset($this->updated_at);
    }

    /**
     * Дата обновления
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp updated_at = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setUpdatedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->updated_at = $var;

        return $this;
    }

    /**
     * Смещение таймзоны в минутах.
     * # Диапазон: -720..840
     *
     * Generated from protobuf field <code>int32 utc_offset = 20;</code>
     * @return int
     */
    public function getUtcOffset()
    {
        return $this->utc_offset;
    }

    /**
     * Смещение таймзоны в минутах.
     * # Диапазон: -720..840
     *
     * Generated from protobuf field <code>int32 utc_offset = 20;</code>
     * @param int $var
     * @return $this
     */
    public function setUtcOffset($var)
    {
        GPBUtil::checkInt32($var);
        $this->utc_offset = $var;

        return $this;
    }

}

