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

namespace Livekit;

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

/**
 * details about the client
 *
 * Generated from protobuf message <code>livekit.ClientInfo</code>
 */
class ClientInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.livekit.ClientInfo.SDK sdk = 1;</code>
     */
    protected $sdk = 0;
    /**
     * Generated from protobuf field <code>string version = 2;</code>
     */
    protected $version = '';
    /**
     * Generated from protobuf field <code>int32 protocol = 3;</code>
     */
    protected $protocol = 0;
    /**
     * Generated from protobuf field <code>string os = 4;</code>
     */
    protected $os = '';
    /**
     * Generated from protobuf field <code>string os_version = 5;</code>
     */
    protected $os_version = '';
    /**
     * Generated from protobuf field <code>string device_model = 6;</code>
     */
    protected $device_model = '';
    /**
     * Generated from protobuf field <code>string browser = 7;</code>
     */
    protected $browser = '';
    /**
     * Generated from protobuf field <code>string browser_version = 8;</code>
     */
    protected $browser_version = '';
    /**
     * Generated from protobuf field <code>string address = 9;</code>
     */
    protected $address = '';
    /**
     * wifi, wired, cellular, vpn, empty if not known
     *
     * Generated from protobuf field <code>string network = 10;</code>
     */
    protected $network = '';
    /**
     * comma separated list of additional LiveKit SDKs in use of this client, with versions
     * e.g. "components-js:1.2.3,track-processors-js:1.2.3"
     *
     * Generated from protobuf field <code>string other_sdks = 11;</code>
     */
    protected $other_sdks = '';
    /**
     * client protocol version
     *
     * Generated from protobuf field <code>int32 client_protocol = 12;</code>
     */
    protected $client_protocol = 0;
    /**
     * capabilities the client advertises. Populated automatically by each SDK;
     * not a user-configurable setting.
     *
     * Generated from protobuf field <code>repeated .livekit.ClientInfo.Capability capabilities = 13;</code>
     */
    private $capabilities;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $sdk
     *     @type string $version
     *     @type int $protocol
     *     @type string $os
     *     @type string $os_version
     *     @type string $device_model
     *     @type string $browser
     *     @type string $browser_version
     *     @type string $address
     *     @type string $network
     *           wifi, wired, cellular, vpn, empty if not known
     *     @type string $other_sdks
     *           comma separated list of additional LiveKit SDKs in use of this client, with versions
     *           e.g. "components-js:1.2.3,track-processors-js:1.2.3"
     *     @type int $client_protocol
     *           client protocol version
     *     @type int[] $capabilities
     *           capabilities the client advertises. Populated automatically by each SDK;
     *           not a user-configurable setting.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\LivekitModels::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.livekit.ClientInfo.SDK sdk = 1;</code>
     * @return int
     */
    public function getSdk()
    {
        return $this->sdk;
    }

    /**
     * Generated from protobuf field <code>.livekit.ClientInfo.SDK sdk = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setSdk($var)
    {
        GPBUtil::checkEnum($var, \Livekit\ClientInfo\SDK::class);
        $this->sdk = $var;

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 protocol = 3;</code>
     * @return int
     */
    public function getProtocol()
    {
        return $this->protocol;
    }

    /**
     * Generated from protobuf field <code>int32 protocol = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setProtocol($var)
    {
        GPBUtil::checkInt32($var);
        $this->protocol = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string os = 4;</code>
     * @return string
     */
    public function getOs()
    {
        return $this->os;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string os_version = 5;</code>
     * @return string
     */
    public function getOsVersion()
    {
        return $this->os_version;
    }

    /**
     * Generated from protobuf field <code>string os_version = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setOsVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->os_version = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string device_model = 6;</code>
     * @return string
     */
    public function getDeviceModel()
    {
        return $this->device_model;
    }

    /**
     * Generated from protobuf field <code>string device_model = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setDeviceModel($var)
    {
        GPBUtil::checkString($var, True);
        $this->device_model = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string browser = 7;</code>
     * @return string
     */
    public function getBrowser()
    {
        return $this->browser;
    }

    /**
     * Generated from protobuf field <code>string browser = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setBrowser($var)
    {
        GPBUtil::checkString($var, True);
        $this->browser = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string browser_version = 8;</code>
     * @return string
     */
    public function getBrowserVersion()
    {
        return $this->browser_version;
    }

    /**
     * Generated from protobuf field <code>string browser_version = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setBrowserVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->browser_version = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string address = 9;</code>
     * @return string
     */
    public function getAddress()
    {
        return $this->address;
    }

    /**
     * Generated from protobuf field <code>string address = 9;</code>
     * @param string $var
     * @return $this
     */
    public function setAddress($var)
    {
        GPBUtil::checkString($var, True);
        $this->address = $var;

        return $this;
    }

    /**
     * wifi, wired, cellular, vpn, empty if not known
     *
     * Generated from protobuf field <code>string network = 10;</code>
     * @return string
     */
    public function getNetwork()
    {
        return $this->network;
    }

    /**
     * wifi, wired, cellular, vpn, empty if not known
     *
     * Generated from protobuf field <code>string network = 10;</code>
     * @param string $var
     * @return $this
     */
    public function setNetwork($var)
    {
        GPBUtil::checkString($var, True);
        $this->network = $var;

        return $this;
    }

    /**
     * comma separated list of additional LiveKit SDKs in use of this client, with versions
     * e.g. "components-js:1.2.3,track-processors-js:1.2.3"
     *
     * Generated from protobuf field <code>string other_sdks = 11;</code>
     * @return string
     */
    public function getOtherSdks()
    {
        return $this->other_sdks;
    }

    /**
     * comma separated list of additional LiveKit SDKs in use of this client, with versions
     * e.g. "components-js:1.2.3,track-processors-js:1.2.3"
     *
     * Generated from protobuf field <code>string other_sdks = 11;</code>
     * @param string $var
     * @return $this
     */
    public function setOtherSdks($var)
    {
        GPBUtil::checkString($var, True);
        $this->other_sdks = $var;

        return $this;
    }

    /**
     * client protocol version
     *
     * Generated from protobuf field <code>int32 client_protocol = 12;</code>
     * @return int
     */
    public function getClientProtocol()
    {
        return $this->client_protocol;
    }

    /**
     * client protocol version
     *
     * Generated from protobuf field <code>int32 client_protocol = 12;</code>
     * @param int $var
     * @return $this
     */
    public function setClientProtocol($var)
    {
        GPBUtil::checkInt32($var);
        $this->client_protocol = $var;

        return $this;
    }

    /**
     * capabilities the client advertises. Populated automatically by each SDK;
     * not a user-configurable setting.
     *
     * Generated from protobuf field <code>repeated .livekit.ClientInfo.Capability capabilities = 13;</code>
     * @return RepeatedField<int>
     */
    public function getCapabilities()
    {
        return $this->capabilities;
    }

    /**
     * capabilities the client advertises. Populated automatically by each SDK;
     * not a user-configurable setting.
     *
     * Generated from protobuf field <code>repeated .livekit.ClientInfo.Capability capabilities = 13;</code>
     * @param int[] $var
     * @return $this
     */
    public function setCapabilities($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Livekit\ClientInfo\Capability::class);
        $this->capabilities = $arr;

        return $this;
    }

}

