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

namespace Livekit;

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

/**
 * room info that should not be returned to clients
 *
 * Generated from protobuf message <code>livekit.RoomInternal</code>
 */
class RoomInternal extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.livekit.AutoTrackEgress track_egress = 1;</code>
     */
    protected $track_egress = null;
    /**
     * Generated from protobuf field <code>.livekit.AutoParticipantEgress participant_egress = 2;</code>
     */
    protected $participant_egress = null;
    /**
     * Generated from protobuf field <code>.livekit.PlayoutDelay playout_delay = 3;</code>
     */
    protected $playout_delay = null;
    /**
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agent_dispatches = 5;</code>
     */
    private $agent_dispatches;
    /**
     * Generated from protobuf field <code>bool sync_streams = 4;</code>
     */
    protected $sync_streams = false;
    /**
     * Generated from protobuf field <code>bool replay_enabled = 6;</code>
     */
    protected $replay_enabled = false;
    /**
     * Generated from protobuf field <code>bool export_room = 7;</code>
     */
    protected $export_room = false;
    /**
     * Generated from protobuf field <code>map<string, string> tags = 8;</code>
     */
    private $tags;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Livekit\AutoTrackEgress $track_egress
     *     @type \Livekit\AutoParticipantEgress $participant_egress
     *     @type \Livekit\PlayoutDelay $playout_delay
     *     @type \Livekit\RoomAgentDispatch[] $agent_dispatches
     *     @type bool $sync_streams
     *     @type bool $replay_enabled
     *     @type bool $export_room
     *     @type array|\Google\Protobuf\Internal\MapField $tags
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\LivekitInternal::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.livekit.AutoTrackEgress track_egress = 1;</code>
     * @return \Livekit\AutoTrackEgress|null
     */
    public function getTrackEgress()
    {
        return $this->track_egress;
    }

    public function hasTrackEgress()
    {
        return isset($this->track_egress);
    }

    public function clearTrackEgress()
    {
        unset($this->track_egress);
    }

    /**
     * Generated from protobuf field <code>.livekit.AutoTrackEgress track_egress = 1;</code>
     * @param \Livekit\AutoTrackEgress $var
     * @return $this
     */
    public function setTrackEgress($var)
    {
        GPBUtil::checkMessage($var, \Livekit\AutoTrackEgress::class);
        $this->track_egress = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.AutoParticipantEgress participant_egress = 2;</code>
     * @return \Livekit\AutoParticipantEgress|null
     */
    public function getParticipantEgress()
    {
        return $this->participant_egress;
    }

    public function hasParticipantEgress()
    {
        return isset($this->participant_egress);
    }

    public function clearParticipantEgress()
    {
        unset($this->participant_egress);
    }

    /**
     * Generated from protobuf field <code>.livekit.AutoParticipantEgress participant_egress = 2;</code>
     * @param \Livekit\AutoParticipantEgress $var
     * @return $this
     */
    public function setParticipantEgress($var)
    {
        GPBUtil::checkMessage($var, \Livekit\AutoParticipantEgress::class);
        $this->participant_egress = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.PlayoutDelay playout_delay = 3;</code>
     * @return \Livekit\PlayoutDelay|null
     */
    public function getPlayoutDelay()
    {
        return $this->playout_delay;
    }

    public function hasPlayoutDelay()
    {
        return isset($this->playout_delay);
    }

    public function clearPlayoutDelay()
    {
        unset($this->playout_delay);
    }

    /**
     * Generated from protobuf field <code>.livekit.PlayoutDelay playout_delay = 3;</code>
     * @param \Livekit\PlayoutDelay $var
     * @return $this
     */
    public function setPlayoutDelay($var)
    {
        GPBUtil::checkMessage($var, \Livekit\PlayoutDelay::class);
        $this->playout_delay = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agent_dispatches = 5;</code>
     * @return RepeatedField<\Livekit\RoomAgentDispatch>
     */
    public function getAgentDispatches()
    {
        return $this->agent_dispatches;
    }

    /**
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agent_dispatches = 5;</code>
     * @param \Livekit\RoomAgentDispatch[] $var
     * @return $this
     */
    public function setAgentDispatches($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Livekit\RoomAgentDispatch::class);
        $this->agent_dispatches = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool sync_streams = 4;</code>
     * @return bool
     */
    public function getSyncStreams()
    {
        return $this->sync_streams;
    }

    /**
     * Generated from protobuf field <code>bool sync_streams = 4;</code>
     * @param bool $var
     * @return $this
     */
    public function setSyncStreams($var)
    {
        GPBUtil::checkBool($var);
        $this->sync_streams = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool replay_enabled = 6;</code>
     * @return bool
     */
    public function getReplayEnabled()
    {
        return $this->replay_enabled;
    }

    /**
     * Generated from protobuf field <code>bool replay_enabled = 6;</code>
     * @param bool $var
     * @return $this
     */
    public function setReplayEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->replay_enabled = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool export_room = 7;</code>
     * @return bool
     */
    public function getExportRoom()
    {
        return $this->export_room;
    }

    /**
     * Generated from protobuf field <code>bool export_room = 7;</code>
     * @param bool $var
     * @return $this
     */
    public function setExportRoom($var)
    {
        GPBUtil::checkBool($var);
        $this->export_room = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>map<string, string> tags = 8;</code>
     * @return \Google\Protobuf\Internal\MapField
     */
    public function getTags()
    {
        return $this->tags;
    }

    /**
     * Generated from protobuf field <code>map<string, string> tags = 8;</code>
     * @param array|\Google\Protobuf\Internal\MapField $var
     * @return $this
     */
    public function setTags($var)
    {
        $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
        $this->tags = $arr;

        return $this;
    }

}

