<?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.CameraFilter</code>
 */
class CameraFilter extends \Google\Protobuf\Internal\Message
{
    /**
     * Признак активности камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_active = 1;</code>
     */
    protected $is_active = null;
    /**
     * Признак активности канала
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_channel_alive = 2;</code>
     */
    protected $is_channel_alive = null;
    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_online = 3;</code>
     */
    protected $is_online = null;
    /**
     * Тип камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.Camera.Type camera_type = 4;</code>
     */
    protected $camera_type = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Protobuf\BoolValue $is_active
     *           Признак активности камеры
     *     @type \Google\Protobuf\BoolValue $is_channel_alive
     *           Признак активности канала
     *     @type \Google\Protobuf\BoolValue $is_online
     *           Статус камеры
     *     @type int $camera_type
     *           Тип камеры
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\Vc\V1\KeyapisVcCameraV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Признак активности камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_active = 1;</code>
     * @return \Google\Protobuf\BoolValue|null
     */
    public function getIsActive()
    {
        return $this->is_active;
    }

    public function hasIsActive()
    {
        return isset($this->is_active);
    }

    public function clearIsActive()
    {
        unset($this->is_active);
    }

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

     * Признак активности камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_active = 1;</code>
     * @return bool|null
     */
    public function getIsActiveUnwrapped()
    {
        return $this->readWrapperValue("is_active");
    }

    /**
     * Признак активности камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_active = 1;</code>
     * @param \Google\Protobuf\BoolValue $var
     * @return $this
     */
    public function setIsActive($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
        $this->is_active = $var;

        return $this;
    }

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

     * Признак активности камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_active = 1;</code>
     * @param bool|null $var
     * @return $this
     */
    public function setIsActiveUnwrapped($var)
    {
        $this->writeWrapperValue("is_active", $var);
        return $this;}

    /**
     * Признак активности канала
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_channel_alive = 2;</code>
     * @return \Google\Protobuf\BoolValue|null
     */
    public function getIsChannelAlive()
    {
        return $this->is_channel_alive;
    }

    public function hasIsChannelAlive()
    {
        return isset($this->is_channel_alive);
    }

    public function clearIsChannelAlive()
    {
        unset($this->is_channel_alive);
    }

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

     * Признак активности канала
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_channel_alive = 2;</code>
     * @return bool|null
     */
    public function getIsChannelAliveUnwrapped()
    {
        return $this->readWrapperValue("is_channel_alive");
    }

    /**
     * Признак активности канала
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_channel_alive = 2;</code>
     * @param \Google\Protobuf\BoolValue $var
     * @return $this
     */
    public function setIsChannelAlive($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
        $this->is_channel_alive = $var;

        return $this;
    }

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

     * Признак активности канала
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_channel_alive = 2;</code>
     * @param bool|null $var
     * @return $this
     */
    public function setIsChannelAliveUnwrapped($var)
    {
        $this->writeWrapperValue("is_channel_alive", $var);
        return $this;}

    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_online = 3;</code>
     * @return \Google\Protobuf\BoolValue|null
     */
    public function getIsOnline()
    {
        return $this->is_online;
    }

    public function hasIsOnline()
    {
        return isset($this->is_online);
    }

    public function clearIsOnline()
    {
        unset($this->is_online);
    }

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

     * Статус камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_online = 3;</code>
     * @return bool|null
     */
    public function getIsOnlineUnwrapped()
    {
        return $this->readWrapperValue("is_online");
    }

    /**
     * Статус камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_online = 3;</code>
     * @param \Google\Protobuf\BoolValue $var
     * @return $this
     */
    public function setIsOnline($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
        $this->is_online = $var;

        return $this;
    }

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

     * Статус камеры
     *
     * Generated from protobuf field <code>.google.protobuf.BoolValue is_online = 3;</code>
     * @param bool|null $var
     * @return $this
     */
    public function setIsOnlineUnwrapped($var)
    {
        $this->writeWrapperValue("is_online", $var);
        return $this;}

    /**
     * Тип камеры
     *
     * Generated from protobuf field <code>.keyapis.vc.v1.Camera.Type camera_type = 4;</code>
     * @return int
     */
    public function getCameraType()
    {
        return $this->camera_type;
    }

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

        return $this;
    }

}

