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

namespace Livekit;

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

/**
 * Generated from protobuf message <code>livekit.AnalyticsEvent</code>
 */
class AnalyticsEvent extends \Google\Protobuf\Internal\Message
{
    /**
     * unique id for this event
     *
     * Generated from protobuf field <code>string id = 25;</code>
     */
    protected $id = '';
    /**
     * Generated from protobuf field <code>.livekit.AnalyticsEventType type = 1;</code>
     */
    protected $type = 0;
    /**
     * Generated from protobuf field <code>.google.protobuf.Timestamp timestamp = 2;</code>
     */
    protected $timestamp = null;
    /**
     * Generated from protobuf field <code>string room_id = 3 [(.logger.name) = "roomID"];</code>
     */
    protected $room_id = '';
    /**
     * Generated from protobuf field <code>.livekit.Room room = 4;</code>
     */
    protected $room = null;
    /**
     * Generated from protobuf field <code>string participant_id = 5 [(.logger.name) = "participantID"];</code>
     */
    protected $participant_id = '';
    /**
     * Generated from protobuf field <code>.livekit.ParticipantInfo participant = 6;</code>
     */
    protected $participant = null;
    /**
     * Generated from protobuf field <code>string track_id = 7 [(.logger.name) = "trackID"];</code>
     */
    protected $track_id = '';
    /**
     * Generated from protobuf field <code>.livekit.TrackInfo track = 8;</code>
     */
    protected $track = null;
    /**
     * Generated from protobuf field <code>string analytics_key = 10;</code>
     */
    protected $analytics_key = '';
    /**
     * Generated from protobuf field <code>.livekit.ClientInfo client_info = 11;</code>
     */
    protected $client_info = null;
    /**
     * Generated from protobuf field <code>.livekit.AnalyticsClientMeta client_meta = 12;</code>
     */
    protected $client_meta = null;
    /**
     * Generated from protobuf field <code>string egress_id = 13 [(.logger.name) = "egressID"];</code>
     */
    protected $egress_id = '';
    /**
     * Generated from protobuf field <code>string ingress_id = 19 [(.logger.name) = "ingressID"];</code>
     */
    protected $ingress_id = '';
    /**
     * Generated from protobuf field <code>.livekit.VideoQuality max_subscribed_video_quality = 14;</code>
     */
    protected $max_subscribed_video_quality = 0;
    /**
     * Generated from protobuf field <code>.livekit.ParticipantInfo publisher = 15;</code>
     */
    protected $publisher = null;
    /**
     * Generated from protobuf field <code>string mime = 16;</code>
     */
    protected $mime = '';
    /**
     * Generated from protobuf field <code>.livekit.EgressInfo egress = 17;</code>
     */
    protected $egress = null;
    /**
     * Generated from protobuf field <code>.livekit.IngressInfo ingress = 18;</code>
     */
    protected $ingress = null;
    /**
     * Generated from protobuf field <code>string error = 20;</code>
     */
    protected $error = '';
    /**
     * Generated from protobuf field <code>.livekit.RTPStats rtp_stats = 21;</code>
     */
    protected $rtp_stats = null;
    /**
     * Generated from protobuf field <code>int32 video_layer = 22;</code>
     */
    protected $video_layer = 0;
    /**
     * Generated from protobuf field <code>string node_id = 24 [(.logger.name) = "nodeID"];</code>
     */
    protected $node_id = '';
    /**
     * Generated from protobuf field <code>string sip_call_id = 26 [(.logger.name) = "sipCallID"];</code>
     */
    protected $sip_call_id = '';
    /**
     * Generated from protobuf field <code>.livekit.SIPCallInfo sip_call = 27;</code>
     */
    protected $sip_call = null;
    /**
     * Generated from protobuf field <code>string sip_trunk_id = 28 [(.logger.name) = "sipTrunkID"];</code>
     */
    protected $sip_trunk_id = '';
    /**
     * Generated from protobuf field <code>.livekit.SIPInboundTrunkInfo sip_inbound_trunk = 29;</code>
     */
    protected $sip_inbound_trunk = null;
    /**
     * Generated from protobuf field <code>.livekit.SIPOutboundTrunkInfo sip_outbound_trunk = 30;</code>
     */
    protected $sip_outbound_trunk = null;
    /**
     * Generated from protobuf field <code>string sip_dispatch_rule_id = 31 [(.logger.name) = "sipDispatchRuleID"];</code>
     */
    protected $sip_dispatch_rule_id = '';
    /**
     * Generated from protobuf field <code>.livekit.SIPDispatchRuleInfo sip_dispatch_rule = 32;</code>
     */
    protected $sip_dispatch_rule = null;
    /**
     * Generated from protobuf field <code>.livekit.SIPTransferInfo sip_transfer = 36;</code>
     */
    protected $sip_transfer = null;
    /**
     * Generated from protobuf field <code>.livekit.ReportInfo report = 33;</code>
     */
    protected $report = null;
    /**
     * Generated from protobuf field <code>.livekit.APICallInfo api_call = 34;</code>
     */
    protected $api_call = null;
    /**
     * Generated from protobuf field <code>.livekit.WebhookInfo webhook = 35;</code>
     */
    protected $webhook = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $id
     *           unique id for this event
     *     @type int $type
     *     @type \Google\Protobuf\Timestamp $timestamp
     *     @type string $room_id
     *     @type \Livekit\Room $room
     *     @type string $participant_id
     *     @type \Livekit\ParticipantInfo $participant
     *     @type string $track_id
     *     @type \Livekit\TrackInfo $track
     *     @type string $analytics_key
     *     @type \Livekit\ClientInfo $client_info
     *     @type \Livekit\AnalyticsClientMeta $client_meta
     *     @type string $egress_id
     *     @type string $ingress_id
     *     @type int $max_subscribed_video_quality
     *     @type \Livekit\ParticipantInfo $publisher
     *     @type string $mime
     *     @type \Livekit\EgressInfo $egress
     *     @type \Livekit\IngressInfo $ingress
     *     @type string $error
     *     @type \Livekit\RTPStats $rtp_stats
     *     @type int $video_layer
     *     @type string $node_id
     *     @type string $sip_call_id
     *     @type \Livekit\SIPCallInfo $sip_call
     *     @type string $sip_trunk_id
     *     @type \Livekit\SIPInboundTrunkInfo $sip_inbound_trunk
     *     @type \Livekit\SIPOutboundTrunkInfo $sip_outbound_trunk
     *     @type string $sip_dispatch_rule_id
     *     @type \Livekit\SIPDispatchRuleInfo $sip_dispatch_rule
     *     @type \Livekit\SIPTransferInfo $sip_transfer
     *     @type \Livekit\ReportInfo $report
     *     @type \Livekit\APICallInfo $api_call
     *     @type \Livekit\WebhookInfo $webhook
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\LivekitAnalytics::initOnce();
        parent::__construct($data);
    }

    /**
     * unique id for this event
     *
     * Generated from protobuf field <code>string id = 25;</code>
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * unique id for this event
     *
     * Generated from protobuf field <code>string id = 25;</code>
     * @param string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkString($var, True);
        $this->id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.AnalyticsEventType type = 1;</code>
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.google.protobuf.Timestamp timestamp = 2;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getTimestamp()
    {
        return $this->timestamp;
    }

    public function hasTimestamp()
    {
        return isset($this->timestamp);
    }

    public function clearTimestamp()
    {
        unset($this->timestamp);
    }

    /**
     * Generated from protobuf field <code>.google.protobuf.Timestamp timestamp = 2;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setTimestamp($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->timestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string room_id = 3 [(.logger.name) = "roomID"];</code>
     * @return string
     */
    public function getRoomId()
    {
        return $this->room_id;
    }

    /**
     * Generated from protobuf field <code>string room_id = 3 [(.logger.name) = "roomID"];</code>
     * @param string $var
     * @return $this
     */
    public function setRoomId($var)
    {
        GPBUtil::checkString($var, True);
        $this->room_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.Room room = 4;</code>
     * @return \Livekit\Room|null
     */
    public function getRoom()
    {
        return $this->room;
    }

    public function hasRoom()
    {
        return isset($this->room);
    }

    public function clearRoom()
    {
        unset($this->room);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string participant_id = 5 [(.logger.name) = "participantID"];</code>
     * @return string
     */
    public function getParticipantId()
    {
        return $this->participant_id;
    }

    /**
     * Generated from protobuf field <code>string participant_id = 5 [(.logger.name) = "participantID"];</code>
     * @param string $var
     * @return $this
     */
    public function setParticipantId($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.ParticipantInfo participant = 6;</code>
     * @return \Livekit\ParticipantInfo|null
     */
    public function getParticipant()
    {
        return $this->participant;
    }

    public function hasParticipant()
    {
        return isset($this->participant);
    }

    public function clearParticipant()
    {
        unset($this->participant);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string track_id = 7 [(.logger.name) = "trackID"];</code>
     * @return string
     */
    public function getTrackId()
    {
        return $this->track_id;
    }

    /**
     * Generated from protobuf field <code>string track_id = 7 [(.logger.name) = "trackID"];</code>
     * @param string $var
     * @return $this
     */
    public function setTrackId($var)
    {
        GPBUtil::checkString($var, True);
        $this->track_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.TrackInfo track = 8;</code>
     * @return \Livekit\TrackInfo|null
     */
    public function getTrack()
    {
        return $this->track;
    }

    public function hasTrack()
    {
        return isset($this->track);
    }

    public function clearTrack()
    {
        unset($this->track);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string analytics_key = 10;</code>
     * @return string
     */
    public function getAnalyticsKey()
    {
        return $this->analytics_key;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.ClientInfo client_info = 11;</code>
     * @return \Livekit\ClientInfo|null
     */
    public function getClientInfo()
    {
        return $this->client_info;
    }

    public function hasClientInfo()
    {
        return isset($this->client_info);
    }

    public function clearClientInfo()
    {
        unset($this->client_info);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.AnalyticsClientMeta client_meta = 12;</code>
     * @return \Livekit\AnalyticsClientMeta|null
     */
    public function getClientMeta()
    {
        return $this->client_meta;
    }

    public function hasClientMeta()
    {
        return isset($this->client_meta);
    }

    public function clearClientMeta()
    {
        unset($this->client_meta);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string egress_id = 13 [(.logger.name) = "egressID"];</code>
     * @return string
     */
    public function getEgressId()
    {
        return $this->egress_id;
    }

    /**
     * Generated from protobuf field <code>string egress_id = 13 [(.logger.name) = "egressID"];</code>
     * @param string $var
     * @return $this
     */
    public function setEgressId($var)
    {
        GPBUtil::checkString($var, True);
        $this->egress_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string ingress_id = 19 [(.logger.name) = "ingressID"];</code>
     * @return string
     */
    public function getIngressId()
    {
        return $this->ingress_id;
    }

    /**
     * Generated from protobuf field <code>string ingress_id = 19 [(.logger.name) = "ingressID"];</code>
     * @param string $var
     * @return $this
     */
    public function setIngressId($var)
    {
        GPBUtil::checkString($var, True);
        $this->ingress_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.VideoQuality max_subscribed_video_quality = 14;</code>
     * @return int
     */
    public function getMaxSubscribedVideoQuality()
    {
        return $this->max_subscribed_video_quality;
    }

    /**
     * Generated from protobuf field <code>.livekit.VideoQuality max_subscribed_video_quality = 14;</code>
     * @param int $var
     * @return $this
     */
    public function setMaxSubscribedVideoQuality($var)
    {
        GPBUtil::checkEnum($var, \Livekit\VideoQuality::class);
        $this->max_subscribed_video_quality = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.ParticipantInfo publisher = 15;</code>
     * @return \Livekit\ParticipantInfo|null
     */
    public function getPublisher()
    {
        return $this->publisher;
    }

    public function hasPublisher()
    {
        return isset($this->publisher);
    }

    public function clearPublisher()
    {
        unset($this->publisher);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string mime = 16;</code>
     * @return string
     */
    public function getMime()
    {
        return $this->mime;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.EgressInfo egress = 17;</code>
     * @return \Livekit\EgressInfo|null
     */
    public function getEgress()
    {
        return $this->egress;
    }

    public function hasEgress()
    {
        return isset($this->egress);
    }

    public function clearEgress()
    {
        unset($this->egress);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.IngressInfo ingress = 18;</code>
     * @return \Livekit\IngressInfo|null
     */
    public function getIngress()
    {
        return $this->ingress;
    }

    public function hasIngress()
    {
        return isset($this->ingress);
    }

    public function clearIngress()
    {
        unset($this->ingress);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string error = 20;</code>
     * @return string
     */
    public function getError()
    {
        return $this->error;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.RTPStats rtp_stats = 21;</code>
     * @return \Livekit\RTPStats|null
     */
    public function getRtpStats()
    {
        return $this->rtp_stats;
    }

    public function hasRtpStats()
    {
        return isset($this->rtp_stats);
    }

    public function clearRtpStats()
    {
        unset($this->rtp_stats);
    }

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string node_id = 24 [(.logger.name) = "nodeID"];</code>
     * @return string
     */
    public function getNodeId()
    {
        return $this->node_id;
    }

    /**
     * Generated from protobuf field <code>string node_id = 24 [(.logger.name) = "nodeID"];</code>
     * @param string $var
     * @return $this
     */
    public function setNodeId($var)
    {
        GPBUtil::checkString($var, True);
        $this->node_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string sip_call_id = 26 [(.logger.name) = "sipCallID"];</code>
     * @return string
     */
    public function getSipCallId()
    {
        return $this->sip_call_id;
    }

    /**
     * Generated from protobuf field <code>string sip_call_id = 26 [(.logger.name) = "sipCallID"];</code>
     * @param string $var
     * @return $this
     */
    public function setSipCallId($var)
    {
        GPBUtil::checkString($var, True);
        $this->sip_call_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.SIPCallInfo sip_call = 27;</code>
     * @return \Livekit\SIPCallInfo|null
     */
    public function getSipCall()
    {
        return $this->sip_call;
    }

    public function hasSipCall()
    {
        return isset($this->sip_call);
    }

    public function clearSipCall()
    {
        unset($this->sip_call);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string sip_trunk_id = 28 [(.logger.name) = "sipTrunkID"];</code>
     * @return string
     */
    public function getSipTrunkId()
    {
        return $this->sip_trunk_id;
    }

    /**
     * Generated from protobuf field <code>string sip_trunk_id = 28 [(.logger.name) = "sipTrunkID"];</code>
     * @param string $var
     * @return $this
     */
    public function setSipTrunkId($var)
    {
        GPBUtil::checkString($var, True);
        $this->sip_trunk_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.SIPInboundTrunkInfo sip_inbound_trunk = 29;</code>
     * @return \Livekit\SIPInboundTrunkInfo|null
     */
    public function getSipInboundTrunk()
    {
        return $this->sip_inbound_trunk;
    }

    public function hasSipInboundTrunk()
    {
        return isset($this->sip_inbound_trunk);
    }

    public function clearSipInboundTrunk()
    {
        unset($this->sip_inbound_trunk);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.SIPOutboundTrunkInfo sip_outbound_trunk = 30;</code>
     * @return \Livekit\SIPOutboundTrunkInfo|null
     */
    public function getSipOutboundTrunk()
    {
        return $this->sip_outbound_trunk;
    }

    public function hasSipOutboundTrunk()
    {
        return isset($this->sip_outbound_trunk);
    }

    public function clearSipOutboundTrunk()
    {
        unset($this->sip_outbound_trunk);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string sip_dispatch_rule_id = 31 [(.logger.name) = "sipDispatchRuleID"];</code>
     * @return string
     */
    public function getSipDispatchRuleId()
    {
        return $this->sip_dispatch_rule_id;
    }

    /**
     * Generated from protobuf field <code>string sip_dispatch_rule_id = 31 [(.logger.name) = "sipDispatchRuleID"];</code>
     * @param string $var
     * @return $this
     */
    public function setSipDispatchRuleId($var)
    {
        GPBUtil::checkString($var, True);
        $this->sip_dispatch_rule_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.SIPDispatchRuleInfo sip_dispatch_rule = 32;</code>
     * @return \Livekit\SIPDispatchRuleInfo|null
     */
    public function getSipDispatchRule()
    {
        return $this->sip_dispatch_rule;
    }

    public function hasSipDispatchRule()
    {
        return isset($this->sip_dispatch_rule);
    }

    public function clearSipDispatchRule()
    {
        unset($this->sip_dispatch_rule);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.SIPTransferInfo sip_transfer = 36;</code>
     * @return \Livekit\SIPTransferInfo|null
     */
    public function getSipTransfer()
    {
        return $this->sip_transfer;
    }

    public function hasSipTransfer()
    {
        return isset($this->sip_transfer);
    }

    public function clearSipTransfer()
    {
        unset($this->sip_transfer);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.ReportInfo report = 33;</code>
     * @return \Livekit\ReportInfo|null
     */
    public function getReport()
    {
        return $this->report;
    }

    public function hasReport()
    {
        return isset($this->report);
    }

    public function clearReport()
    {
        unset($this->report);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.APICallInfo api_call = 34;</code>
     * @return \Livekit\APICallInfo|null
     */
    public function getApiCall()
    {
        return $this->api_call;
    }

    public function hasApiCall()
    {
        return isset($this->api_call);
    }

    public function clearApiCall()
    {
        unset($this->api_call);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.livekit.WebhookInfo webhook = 35;</code>
     * @return \Livekit\WebhookInfo|null
     */
    public function getWebhook()
    {
        return $this->webhook;
    }

    public function hasWebhook()
    {
        return isset($this->webhook);
    }

    public function clearWebhook()
    {
        unset($this->webhook);
    }

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

        return $this;
    }

}

