<?php
 
 
 

namespace PhpWA\Protocol\Proto;

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




class WebMessageInfo extends \Google\Protobuf\Internal\Message
{
    


    protected $key = null;
    


    protected $message = null;
    


    protected $messageTimestamp = null;
    


    protected $status = null;
    


    protected $participant = null;
    


    protected $messageC2STimestamp = null;
    


    protected $ignore = null;
    


    protected $starred = null;
    


    protected $broadcast = null;
    


    protected $pushName = null;
    


    protected $mediaCiphertextSha256 = null;
    


    protected $multicast = null;
    


    protected $urlText = null;
    


    protected $urlNumber = null;
    


    protected $messageStubType = null;
    


    protected $clearMedia = null;
    


    private $messageStubParameters;
    


    protected $duration = null;
    


    private $labels;
    


    protected $paymentInfo = null;
    


    protected $finalLiveLocation = null;
    


    protected $quotedPaymentInfo = null;
    


    protected $ephemeralStartTimestamp = null;
    


    protected $ephemeralDuration = null;
    


    protected $ephemeralOffToOn = null;
    


    protected $ephemeralOutOfSync = null;
    


    protected $bizPrivacyStatus = null;
    


    protected $verifiedBizName = null;
    


    protected $mediaData = null;
    


    protected $photoChange = null;
    


    private $userReceipt;
    


    private $reactions;
    


    protected $quotedStickerData = null;
    


    protected $futureproofData = null;
    


    protected $statusPsa = null;
    


    private $pollUpdates;
    


    protected $pollAdditionalMetadata = null;
    


    protected $agentId = null;
    


    protected $statusAlreadyViewed = null;
    


    protected $messageSecret = null;
    


    protected $keepInChat = null;
    


    protected $originalSelfAuthorUserJidString = null;
    


    protected $revokeMessageTimestamp = null;
    


    protected $pinInChat = null;
    


    protected $premiumMessageInfo = null;
    


    protected $is1PBizBotMessage = null;
    


    protected $isGroupHistoryMessage = null;
    


    protected $botMessageInvokerJid = null;
    


    protected $commentMetadata = null;
    


    private $eventResponses;
    


    protected $reportingTokenInfo = null;
    


    protected $newsletterServerId = null;
    


    protected $eventAdditionalMetadata = null;
    


    protected $isMentionedInStatus = null;
    


    private $statusMentions;
    


    protected $targetMessageId = null;
    


    private $messageAddOns;
    


    protected $statusMentionMessageInfo = null;
    


    protected $isSupportAiMessage = null;
    


    private $statusMentionSources;
    


    private $supportAiCitations;
    


    protected $botTargetId = null;
    


    protected $groupHistoryIndividualMessageInfo = null;
    


    protected $groupHistoryBundleInfo = null;
    


    protected $interactiveMessageAdditionalMetadata = null;
    


    protected $quarantinedMessage = null;

    









































































    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



    public function getKey()
    {
        return $this->key;
    }

    public function hasKey()
    {
        return isset($this->key);
    }

    public function clearKey()
    {
        unset($this->key);
    }

    




    public function setKey($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageKey::class);
        $this->key = $var;

        return $this;
    }

    



    public function getMessage()
    {
        return $this->message;
    }

    public function hasMessage()
    {
        return isset($this->message);
    }

    public function clearMessage()
    {
        unset($this->message);
    }

    




    public function setMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message::class);
        $this->message = $var;

        return $this;
    }

    



    public function getMessageTimestamp()
    {
        return isset($this->messageTimestamp) ? $this->messageTimestamp : 0;
    }

    public function hasMessageTimestamp()
    {
        return isset($this->messageTimestamp);
    }

    public function clearMessageTimestamp()
    {
        unset($this->messageTimestamp);
    }

    




    public function setMessageTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->messageTimestamp = $var;

        return $this;
    }

    



    public function getStatus()
    {
        return isset($this->status) ? $this->status : 0;
    }

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

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

    




    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\Status::class);
        $this->status = $var;

        return $this;
    }

    



    public function getParticipant()
    {
        return isset($this->participant) ? $this->participant : '';
    }

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

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

    




    public function setParticipant($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant = $var;

        return $this;
    }

    



    public function getMessageC2STimestamp()
    {
        return isset($this->messageC2STimestamp) ? $this->messageC2STimestamp : 0;
    }

    public function hasMessageC2STimestamp()
    {
        return isset($this->messageC2STimestamp);
    }

    public function clearMessageC2STimestamp()
    {
        unset($this->messageC2STimestamp);
    }

    




    public function setMessageC2STimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->messageC2STimestamp = $var;

        return $this;
    }

    



    public function getIgnore()
    {
        return isset($this->ignore) ? $this->ignore : false;
    }

    public function hasIgnore()
    {
        return isset($this->ignore);
    }

    public function clearIgnore()
    {
        unset($this->ignore);
    }

    




    public function setIgnore($var)
    {
        GPBUtil::checkBool($var);
        $this->ignore = $var;

        return $this;
    }

    



    public function getStarred()
    {
        return isset($this->starred) ? $this->starred : false;
    }

    public function hasStarred()
    {
        return isset($this->starred);
    }

    public function clearStarred()
    {
        unset($this->starred);
    }

    




    public function setStarred($var)
    {
        GPBUtil::checkBool($var);
        $this->starred = $var;

        return $this;
    }

    



    public function getBroadcast()
    {
        return isset($this->broadcast) ? $this->broadcast : false;
    }

    public function hasBroadcast()
    {
        return isset($this->broadcast);
    }

    public function clearBroadcast()
    {
        unset($this->broadcast);
    }

    




    public function setBroadcast($var)
    {
        GPBUtil::checkBool($var);
        $this->broadcast = $var;

        return $this;
    }

    



    public function getPushName()
    {
        return isset($this->pushName) ? $this->pushName : '';
    }

    public function hasPushName()
    {
        return isset($this->pushName);
    }

    public function clearPushName()
    {
        unset($this->pushName);
    }

    




    public function setPushName($var)
    {
        GPBUtil::checkString($var, True);
        $this->pushName = $var;

        return $this;
    }

    



    public function getMediaCiphertextSha256()
    {
        return isset($this->mediaCiphertextSha256) ? $this->mediaCiphertextSha256 : '';
    }

    public function hasMediaCiphertextSha256()
    {
        return isset($this->mediaCiphertextSha256);
    }

    public function clearMediaCiphertextSha256()
    {
        unset($this->mediaCiphertextSha256);
    }

    




    public function setMediaCiphertextSha256($var)
    {
        GPBUtil::checkString($var, False);
        $this->mediaCiphertextSha256 = $var;

        return $this;
    }

    



    public function getMulticast()
    {
        return isset($this->multicast) ? $this->multicast : false;
    }

    public function hasMulticast()
    {
        return isset($this->multicast);
    }

    public function clearMulticast()
    {
        unset($this->multicast);
    }

    




    public function setMulticast($var)
    {
        GPBUtil::checkBool($var);
        $this->multicast = $var;

        return $this;
    }

    



    public function getUrlText()
    {
        return isset($this->urlText) ? $this->urlText : false;
    }

    public function hasUrlText()
    {
        return isset($this->urlText);
    }

    public function clearUrlText()
    {
        unset($this->urlText);
    }

    




    public function setUrlText($var)
    {
        GPBUtil::checkBool($var);
        $this->urlText = $var;

        return $this;
    }

    



    public function getUrlNumber()
    {
        return isset($this->urlNumber) ? $this->urlNumber : false;
    }

    public function hasUrlNumber()
    {
        return isset($this->urlNumber);
    }

    public function clearUrlNumber()
    {
        unset($this->urlNumber);
    }

    




    public function setUrlNumber($var)
    {
        GPBUtil::checkBool($var);
        $this->urlNumber = $var;

        return $this;
    }

    



    public function getMessageStubType()
    {
        return isset($this->messageStubType) ? $this->messageStubType : 0;
    }

    public function hasMessageStubType()
    {
        return isset($this->messageStubType);
    }

    public function clearMessageStubType()
    {
        unset($this->messageStubType);
    }

    




    public function setMessageStubType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\StubType::class);
        $this->messageStubType = $var;

        return $this;
    }

    



    public function getClearMedia()
    {
        return isset($this->clearMedia) ? $this->clearMedia : false;
    }

    public function hasClearMedia()
    {
        return isset($this->clearMedia);
    }

    public function clearClearMedia()
    {
        unset($this->clearMedia);
    }

    




    public function setClearMedia($var)
    {
        GPBUtil::checkBool($var);
        $this->clearMedia = $var;

        return $this;
    }

    



    public function getMessageStubParameters()
    {
        return $this->messageStubParameters;
    }

    




    public function setMessageStubParameters($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->messageStubParameters = $arr;

        return $this;
    }

    



    public function getDuration()
    {
        return isset($this->duration) ? $this->duration : 0;
    }

    public function hasDuration()
    {
        return isset($this->duration);
    }

    public function clearDuration()
    {
        unset($this->duration);
    }

    




    public function setDuration($var)
    {
        GPBUtil::checkUint32($var);
        $this->duration = $var;

        return $this;
    }

    



    public function getLabels()
    {
        return $this->labels;
    }

    




    public function setLabels($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->labels = $arr;

        return $this;
    }

    



    public function getPaymentInfo()
    {
        return $this->paymentInfo;
    }

    public function hasPaymentInfo()
    {
        return isset($this->paymentInfo);
    }

    public function clearPaymentInfo()
    {
        unset($this->paymentInfo);
    }

    




    public function setPaymentInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PaymentInfo::class);
        $this->paymentInfo = $var;

        return $this;
    }

    



    public function getFinalLiveLocation()
    {
        return $this->finalLiveLocation;
    }

    public function hasFinalLiveLocation()
    {
        return isset($this->finalLiveLocation);
    }

    public function clearFinalLiveLocation()
    {
        unset($this->finalLiveLocation);
    }

    




    public function setFinalLiveLocation($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\LiveLocationMessage::class);
        $this->finalLiveLocation = $var;

        return $this;
    }

    



    public function getQuotedPaymentInfo()
    {
        return $this->quotedPaymentInfo;
    }

    public function hasQuotedPaymentInfo()
    {
        return isset($this->quotedPaymentInfo);
    }

    public function clearQuotedPaymentInfo()
    {
        unset($this->quotedPaymentInfo);
    }

    




    public function setQuotedPaymentInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PaymentInfo::class);
        $this->quotedPaymentInfo = $var;

        return $this;
    }

    



    public function getEphemeralStartTimestamp()
    {
        return isset($this->ephemeralStartTimestamp) ? $this->ephemeralStartTimestamp : 0;
    }

    public function hasEphemeralStartTimestamp()
    {
        return isset($this->ephemeralStartTimestamp);
    }

    public function clearEphemeralStartTimestamp()
    {
        unset($this->ephemeralStartTimestamp);
    }

    




    public function setEphemeralStartTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->ephemeralStartTimestamp = $var;

        return $this;
    }

    



    public function getEphemeralDuration()
    {
        return isset($this->ephemeralDuration) ? $this->ephemeralDuration : 0;
    }

    public function hasEphemeralDuration()
    {
        return isset($this->ephemeralDuration);
    }

    public function clearEphemeralDuration()
    {
        unset($this->ephemeralDuration);
    }

    




    public function setEphemeralDuration($var)
    {
        GPBUtil::checkUint32($var);
        $this->ephemeralDuration = $var;

        return $this;
    }

    



    public function getEphemeralOffToOn()
    {
        return isset($this->ephemeralOffToOn) ? $this->ephemeralOffToOn : false;
    }

    public function hasEphemeralOffToOn()
    {
        return isset($this->ephemeralOffToOn);
    }

    public function clearEphemeralOffToOn()
    {
        unset($this->ephemeralOffToOn);
    }

    




    public function setEphemeralOffToOn($var)
    {
        GPBUtil::checkBool($var);
        $this->ephemeralOffToOn = $var;

        return $this;
    }

    



    public function getEphemeralOutOfSync()
    {
        return isset($this->ephemeralOutOfSync) ? $this->ephemeralOutOfSync : false;
    }

    public function hasEphemeralOutOfSync()
    {
        return isset($this->ephemeralOutOfSync);
    }

    public function clearEphemeralOutOfSync()
    {
        unset($this->ephemeralOutOfSync);
    }

    




    public function setEphemeralOutOfSync($var)
    {
        GPBUtil::checkBool($var);
        $this->ephemeralOutOfSync = $var;

        return $this;
    }

    



    public function getBizPrivacyStatus()
    {
        return isset($this->bizPrivacyStatus) ? $this->bizPrivacyStatus : 0;
    }

    public function hasBizPrivacyStatus()
    {
        return isset($this->bizPrivacyStatus);
    }

    public function clearBizPrivacyStatus()
    {
        unset($this->bizPrivacyStatus);
    }

    




    public function setBizPrivacyStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\BizPrivacyStatus::class);
        $this->bizPrivacyStatus = $var;

        return $this;
    }

    



    public function getVerifiedBizName()
    {
        return isset($this->verifiedBizName) ? $this->verifiedBizName : '';
    }

    public function hasVerifiedBizName()
    {
        return isset($this->verifiedBizName);
    }

    public function clearVerifiedBizName()
    {
        unset($this->verifiedBizName);
    }

    




    public function setVerifiedBizName($var)
    {
        GPBUtil::checkString($var, True);
        $this->verifiedBizName = $var;

        return $this;
    }

    



    public function getMediaData()
    {
        return $this->mediaData;
    }

    public function hasMediaData()
    {
        return isset($this->mediaData);
    }

    public function clearMediaData()
    {
        unset($this->mediaData);
    }

    




    public function setMediaData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MediaData::class);
        $this->mediaData = $var;

        return $this;
    }

    



    public function getPhotoChange()
    {
        return $this->photoChange;
    }

    public function hasPhotoChange()
    {
        return isset($this->photoChange);
    }

    public function clearPhotoChange()
    {
        unset($this->photoChange);
    }

    




    public function setPhotoChange($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PhotoChange::class);
        $this->photoChange = $var;

        return $this;
    }

    



    public function getUserReceipt()
    {
        return $this->userReceipt;
    }

    




    public function setUserReceipt($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\UserReceipt::class);
        $this->userReceipt = $arr;

        return $this;
    }

    



    public function getReactions()
    {
        return $this->reactions;
    }

    




    public function setReactions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\Reaction::class);
        $this->reactions = $arr;

        return $this;
    }

    



    public function getQuotedStickerData()
    {
        return $this->quotedStickerData;
    }

    public function hasQuotedStickerData()
    {
        return isset($this->quotedStickerData);
    }

    public function clearQuotedStickerData()
    {
        unset($this->quotedStickerData);
    }

    




    public function setQuotedStickerData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MediaData::class);
        $this->quotedStickerData = $var;

        return $this;
    }

    



    public function getFutureproofData()
    {
        return isset($this->futureproofData) ? $this->futureproofData : '';
    }

    public function hasFutureproofData()
    {
        return isset($this->futureproofData);
    }

    public function clearFutureproofData()
    {
        unset($this->futureproofData);
    }

    




    public function setFutureproofData($var)
    {
        GPBUtil::checkString($var, False);
        $this->futureproofData = $var;

        return $this;
    }

    



    public function getStatusPsa()
    {
        return $this->statusPsa;
    }

    public function hasStatusPsa()
    {
        return isset($this->statusPsa);
    }

    public function clearStatusPsa()
    {
        unset($this->statusPsa);
    }

    




    public function setStatusPsa($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\StatusPSA::class);
        $this->statusPsa = $var;

        return $this;
    }

    



    public function getPollUpdates()
    {
        return $this->pollUpdates;
    }

    




    public function setPollUpdates($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\PollUpdate::class);
        $this->pollUpdates = $arr;

        return $this;
    }

    



    public function getPollAdditionalMetadata()
    {
        return $this->pollAdditionalMetadata;
    }

    public function hasPollAdditionalMetadata()
    {
        return isset($this->pollAdditionalMetadata);
    }

    public function clearPollAdditionalMetadata()
    {
        unset($this->pollAdditionalMetadata);
    }

    




    public function setPollAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PollAdditionalMetadata::class);
        $this->pollAdditionalMetadata = $var;

        return $this;
    }

    



    public function getAgentId()
    {
        return isset($this->agentId) ? $this->agentId : '';
    }

    public function hasAgentId()
    {
        return isset($this->agentId);
    }

    public function clearAgentId()
    {
        unset($this->agentId);
    }

    




    public function setAgentId($var)
    {
        GPBUtil::checkString($var, True);
        $this->agentId = $var;

        return $this;
    }

    



    public function getStatusAlreadyViewed()
    {
        return isset($this->statusAlreadyViewed) ? $this->statusAlreadyViewed : false;
    }

    public function hasStatusAlreadyViewed()
    {
        return isset($this->statusAlreadyViewed);
    }

    public function clearStatusAlreadyViewed()
    {
        unset($this->statusAlreadyViewed);
    }

    




    public function setStatusAlreadyViewed($var)
    {
        GPBUtil::checkBool($var);
        $this->statusAlreadyViewed = $var;

        return $this;
    }

    



    public function getMessageSecret()
    {
        return isset($this->messageSecret) ? $this->messageSecret : '';
    }

    public function hasMessageSecret()
    {
        return isset($this->messageSecret);
    }

    public function clearMessageSecret()
    {
        unset($this->messageSecret);
    }

    




    public function setMessageSecret($var)
    {
        GPBUtil::checkString($var, False);
        $this->messageSecret = $var;

        return $this;
    }

    



    public function getKeepInChat()
    {
        return $this->keepInChat;
    }

    public function hasKeepInChat()
    {
        return isset($this->keepInChat);
    }

    public function clearKeepInChat()
    {
        unset($this->keepInChat);
    }

    




    public function setKeepInChat($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\KeepInChat::class);
        $this->keepInChat = $var;

        return $this;
    }

    



    public function getOriginalSelfAuthorUserJidString()
    {
        return isset($this->originalSelfAuthorUserJidString) ? $this->originalSelfAuthorUserJidString : '';
    }

    public function hasOriginalSelfAuthorUserJidString()
    {
        return isset($this->originalSelfAuthorUserJidString);
    }

    public function clearOriginalSelfAuthorUserJidString()
    {
        unset($this->originalSelfAuthorUserJidString);
    }

    




    public function setOriginalSelfAuthorUserJidString($var)
    {
        GPBUtil::checkString($var, True);
        $this->originalSelfAuthorUserJidString = $var;

        return $this;
    }

    



    public function getRevokeMessageTimestamp()
    {
        return isset($this->revokeMessageTimestamp) ? $this->revokeMessageTimestamp : 0;
    }

    public function hasRevokeMessageTimestamp()
    {
        return isset($this->revokeMessageTimestamp);
    }

    public function clearRevokeMessageTimestamp()
    {
        unset($this->revokeMessageTimestamp);
    }

    




    public function setRevokeMessageTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->revokeMessageTimestamp = $var;

        return $this;
    }

    



    public function getPinInChat()
    {
        return $this->pinInChat;
    }

    public function hasPinInChat()
    {
        return isset($this->pinInChat);
    }

    public function clearPinInChat()
    {
        unset($this->pinInChat);
    }

    




    public function setPinInChat($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PinInChat::class);
        $this->pinInChat = $var;

        return $this;
    }

    



    public function getPremiumMessageInfo()
    {
        return $this->premiumMessageInfo;
    }

    public function hasPremiumMessageInfo()
    {
        return isset($this->premiumMessageInfo);
    }

    public function clearPremiumMessageInfo()
    {
        unset($this->premiumMessageInfo);
    }

    




    public function setPremiumMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PremiumMessageInfo::class);
        $this->premiumMessageInfo = $var;

        return $this;
    }

    



    public function getIs1PBizBotMessage()
    {
        return isset($this->is1PBizBotMessage) ? $this->is1PBizBotMessage : false;
    }

    public function hasIs1PBizBotMessage()
    {
        return isset($this->is1PBizBotMessage);
    }

    public function clearIs1PBizBotMessage()
    {
        unset($this->is1PBizBotMessage);
    }

    




    public function setIs1PBizBotMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->is1PBizBotMessage = $var;

        return $this;
    }

    



    public function getIsGroupHistoryMessage()
    {
        return isset($this->isGroupHistoryMessage) ? $this->isGroupHistoryMessage : false;
    }

    public function hasIsGroupHistoryMessage()
    {
        return isset($this->isGroupHistoryMessage);
    }

    public function clearIsGroupHistoryMessage()
    {
        unset($this->isGroupHistoryMessage);
    }

    




    public function setIsGroupHistoryMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->isGroupHistoryMessage = $var;

        return $this;
    }

    



    public function getBotMessageInvokerJid()
    {
        return isset($this->botMessageInvokerJid) ? $this->botMessageInvokerJid : '';
    }

    public function hasBotMessageInvokerJid()
    {
        return isset($this->botMessageInvokerJid);
    }

    public function clearBotMessageInvokerJid()
    {
        unset($this->botMessageInvokerJid);
    }

    




    public function setBotMessageInvokerJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->botMessageInvokerJid = $var;

        return $this;
    }

    



    public function getCommentMetadata()
    {
        return $this->commentMetadata;
    }

    public function hasCommentMetadata()
    {
        return isset($this->commentMetadata);
    }

    public function clearCommentMetadata()
    {
        unset($this->commentMetadata);
    }

    




    public function setCommentMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\CommentMetadata::class);
        $this->commentMetadata = $var;

        return $this;
    }

    



    public function getEventResponses()
    {
        return $this->eventResponses;
    }

    




    public function setEventResponses($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\EventResponse::class);
        $this->eventResponses = $arr;

        return $this;
    }

    



    public function getReportingTokenInfo()
    {
        return $this->reportingTokenInfo;
    }

    public function hasReportingTokenInfo()
    {
        return isset($this->reportingTokenInfo);
    }

    public function clearReportingTokenInfo()
    {
        unset($this->reportingTokenInfo);
    }

    




    public function setReportingTokenInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ReportingTokenInfo::class);
        $this->reportingTokenInfo = $var;

        return $this;
    }

    



    public function getNewsletterServerId()
    {
        return isset($this->newsletterServerId) ? $this->newsletterServerId : 0;
    }

    public function hasNewsletterServerId()
    {
        return isset($this->newsletterServerId);
    }

    public function clearNewsletterServerId()
    {
        unset($this->newsletterServerId);
    }

    




    public function setNewsletterServerId($var)
    {
        GPBUtil::checkUint64($var);
        $this->newsletterServerId = $var;

        return $this;
    }

    



    public function getEventAdditionalMetadata()
    {
        return $this->eventAdditionalMetadata;
    }

    public function hasEventAdditionalMetadata()
    {
        return isset($this->eventAdditionalMetadata);
    }

    public function clearEventAdditionalMetadata()
    {
        unset($this->eventAdditionalMetadata);
    }

    




    public function setEventAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\EventAdditionalMetadata::class);
        $this->eventAdditionalMetadata = $var;

        return $this;
    }

    



    public function getIsMentionedInStatus()
    {
        return isset($this->isMentionedInStatus) ? $this->isMentionedInStatus : false;
    }

    public function hasIsMentionedInStatus()
    {
        return isset($this->isMentionedInStatus);
    }

    public function clearIsMentionedInStatus()
    {
        unset($this->isMentionedInStatus);
    }

    




    public function setIsMentionedInStatus($var)
    {
        GPBUtil::checkBool($var);
        $this->isMentionedInStatus = $var;

        return $this;
    }

    



    public function getStatusMentions()
    {
        return $this->statusMentions;
    }

    




    public function setStatusMentions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->statusMentions = $arr;

        return $this;
    }

    



    public function getTargetMessageId()
    {
        return $this->targetMessageId;
    }

    public function hasTargetMessageId()
    {
        return isset($this->targetMessageId);
    }

    public function clearTargetMessageId()
    {
        unset($this->targetMessageId);
    }

    




    public function setTargetMessageId($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageKey::class);
        $this->targetMessageId = $var;

        return $this;
    }

    



    public function getMessageAddOns()
    {
        return $this->messageAddOns;
    }

    




    public function setMessageAddOns($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\MessageAddOn::class);
        $this->messageAddOns = $arr;

        return $this;
    }

    



    public function getStatusMentionMessageInfo()
    {
        return $this->statusMentionMessageInfo;
    }

    public function hasStatusMentionMessageInfo()
    {
        return isset($this->statusMentionMessageInfo);
    }

    public function clearStatusMentionMessageInfo()
    {
        unset($this->statusMentionMessageInfo);
    }

    




    public function setStatusMentionMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\StatusMentionMessage::class);
        $this->statusMentionMessageInfo = $var;

        return $this;
    }

    



    public function getIsSupportAiMessage()
    {
        return isset($this->isSupportAiMessage) ? $this->isSupportAiMessage : false;
    }

    public function hasIsSupportAiMessage()
    {
        return isset($this->isSupportAiMessage);
    }

    public function clearIsSupportAiMessage()
    {
        unset($this->isSupportAiMessage);
    }

    




    public function setIsSupportAiMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->isSupportAiMessage = $var;

        return $this;
    }

    



    public function getStatusMentionSources()
    {
        return $this->statusMentionSources;
    }

    




    public function setStatusMentionSources($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->statusMentionSources = $arr;

        return $this;
    }

    



    public function getSupportAiCitations()
    {
        return $this->supportAiCitations;
    }

    




    public function setSupportAiCitations($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\Citation::class);
        $this->supportAiCitations = $arr;

        return $this;
    }

    



    public function getBotTargetId()
    {
        return isset($this->botTargetId) ? $this->botTargetId : '';
    }

    public function hasBotTargetId()
    {
        return isset($this->botTargetId);
    }

    public function clearBotTargetId()
    {
        unset($this->botTargetId);
    }

    




    public function setBotTargetId($var)
    {
        GPBUtil::checkString($var, True);
        $this->botTargetId = $var;

        return $this;
    }

    



    public function getGroupHistoryIndividualMessageInfo()
    {
        return $this->groupHistoryIndividualMessageInfo;
    }

    public function hasGroupHistoryIndividualMessageInfo()
    {
        return isset($this->groupHistoryIndividualMessageInfo);
    }

    public function clearGroupHistoryIndividualMessageInfo()
    {
        unset($this->groupHistoryIndividualMessageInfo);
    }

    




    public function setGroupHistoryIndividualMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\GroupHistoryIndividualMessageInfo::class);
        $this->groupHistoryIndividualMessageInfo = $var;

        return $this;
    }

    



    public function getGroupHistoryBundleInfo()
    {
        return $this->groupHistoryBundleInfo;
    }

    public function hasGroupHistoryBundleInfo()
    {
        return isset($this->groupHistoryBundleInfo);
    }

    public function clearGroupHistoryBundleInfo()
    {
        unset($this->groupHistoryBundleInfo);
    }

    




    public function setGroupHistoryBundleInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\GroupHistoryBundleInfo::class);
        $this->groupHistoryBundleInfo = $var;

        return $this;
    }

    



    public function getInteractiveMessageAdditionalMetadata()
    {
        return $this->interactiveMessageAdditionalMetadata;
    }

    public function hasInteractiveMessageAdditionalMetadata()
    {
        return isset($this->interactiveMessageAdditionalMetadata);
    }

    public function clearInteractiveMessageAdditionalMetadata()
    {
        unset($this->interactiveMessageAdditionalMetadata);
    }

    




    public function setInteractiveMessageAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\InteractiveMessageAdditionalMetadata::class);
        $this->interactiveMessageAdditionalMetadata = $var;

        return $this;
    }

    



    public function getQuarantinedMessage()
    {
        return $this->quarantinedMessage;
    }

    public function hasQuarantinedMessage()
    {
        return isset($this->quarantinedMessage);
    }

    public function clearQuarantinedMessage()
    {
        unset($this->quarantinedMessage);
    }

    




    public function setQuarantinedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\QuarantinedMessage::class);
        $this->quarantinedMessage = $var;

        return $this;
    }

}

