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

namespace PhpWA\Protocol\Proto;

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

/**
 * Generated from protobuf message <code>proto.Message</code>
 */
class Message extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional string conversation = 1;</code>
     */
    protected $conversation = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage senderKeyDistributionMessage = 2;</code>
     */
    protected $senderKeyDistributionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ImageMessage imageMessage = 3;</code>
     */
    protected $imageMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactMessage contactMessage = 4;</code>
     */
    protected $contactMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.LocationMessage locationMessage = 5;</code>
     */
    protected $locationMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ExtendedTextMessage extendedTextMessage = 6;</code>
     */
    protected $extendedTextMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.DocumentMessage documentMessage = 7;</code>
     */
    protected $documentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.AudioMessage audioMessage = 8;</code>
     */
    protected $audioMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage videoMessage = 9;</code>
     */
    protected $videoMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.Call call = 10;</code>
     */
    protected $call = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.Chat chat = 11;</code>
     */
    protected $chat = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage protocolMessage = 12;</code>
     */
    protected $protocolMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactsArrayMessage contactsArrayMessage = 13;</code>
     */
    protected $contactsArrayMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.HighlyStructuredMessage highlyStructuredMessage = 14;</code>
     */
    protected $highlyStructuredMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;</code>
     */
    protected $fastRatchetKeySenderKeyDistributionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.SendPaymentMessage sendPaymentMessage = 16;</code>
     */
    protected $sendPaymentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage liveLocationMessage = 18;</code>
     */
    protected $liveLocationMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPaymentMessage requestPaymentMessage = 22;</code>
     */
    protected $requestPaymentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.DeclinePaymentRequestMessage declinePaymentRequestMessage = 23;</code>
     */
    protected $declinePaymentRequestMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.CancelPaymentRequestMessage cancelPaymentRequestMessage = 24;</code>
     */
    protected $cancelPaymentRequestMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateMessage templateMessage = 25;</code>
     */
    protected $templateMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerMessage stickerMessage = 26;</code>
     */
    protected $stickerMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.GroupInviteMessage groupInviteMessage = 28;</code>
     */
    protected $groupInviteMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateButtonReplyMessage templateButtonReplyMessage = 29;</code>
     */
    protected $templateButtonReplyMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ProductMessage productMessage = 30;</code>
     */
    protected $productMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.DeviceSentMessage deviceSentMessage = 31;</code>
     */
    protected $deviceSentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.MessageContextInfo messageContextInfo = 35;</code>
     */
    protected $messageContextInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ListMessage listMessage = 36;</code>
     */
    protected $listMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessage = 37;</code>
     */
    protected $viewOnceMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.OrderMessage orderMessage = 38;</code>
     */
    protected $orderMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ListResponseMessage listResponseMessage = 39;</code>
     */
    protected $listResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage ephemeralMessage = 40;</code>
     */
    protected $ephemeralMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.InvoiceMessage invoiceMessage = 41;</code>
     */
    protected $invoiceMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsMessage buttonsMessage = 42;</code>
     */
    protected $buttonsMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsResponseMessage buttonsResponseMessage = 43;</code>
     */
    protected $buttonsResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PaymentInviteMessage paymentInviteMessage = 44;</code>
     */
    protected $paymentInviteMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveMessage interactiveMessage = 45;</code>
     */
    protected $interactiveMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ReactionMessage reactionMessage = 46;</code>
     */
    protected $reactionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerSyncRMRMessage stickerSyncRmrMessage = 47;</code>
     */
    protected $stickerSyncRmrMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveResponseMessage interactiveResponseMessage = 48;</code>
     */
    protected $interactiveResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessage = 49;</code>
     */
    protected $pollCreationMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollUpdateMessage pollUpdateMessage = 50;</code>
     */
    protected $pollUpdateMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.KeepInChatMessage keepInChatMessage = 51;</code>
     */
    protected $keepInChatMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage documentWithCaptionMessage = 53;</code>
     */
    protected $documentWithCaptionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPhoneNumberMessage requestPhoneNumberMessage = 54;</code>
     */
    protected $requestPhoneNumberMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2 = 55;</code>
     */
    protected $viewOnceMessageV2 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.EncReactionMessage encReactionMessage = 56;</code>
     */
    protected $encReactionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage editedMessage = 58;</code>
     */
    protected $editedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2Extension = 59;</code>
     */
    protected $viewOnceMessageV2Extension = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV2 = 60;</code>
     */
    protected $pollCreationMessageV2 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallCreationMessage scheduledCallCreationMessage = 61;</code>
     */
    protected $scheduledCallCreationMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupMentionedMessage = 62;</code>
     */
    protected $groupMentionedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PinInChatMessage pinInChatMessage = 63;</code>
     */
    protected $pinInChatMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV3 = 64;</code>
     */
    protected $pollCreationMessageV3 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallEditMessage scheduledCallEditMessage = 65;</code>
     */
    protected $scheduledCallEditMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage ptvMessage = 66;</code>
     */
    protected $ptvMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botInvokeMessage = 67;</code>
     */
    protected $botInvokeMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.CallLogMessage callLogMesssage = 69;</code>
     */
    protected $callLogMesssage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryBundle messageHistoryBundle = 70;</code>
     */
    protected $messageHistoryBundle = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.EncCommentMessage encCommentMessage = 71;</code>
     */
    protected $encCommentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.BCallMessage bcallMessage = 72;</code>
     */
    protected $bcallMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage lottieStickerMessage = 74;</code>
     */
    protected $lottieStickerMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.EventMessage eventMessage = 75;</code>
     */
    protected $eventMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.EncEventResponseMessage encEventResponseMessage = 76;</code>
     */
    protected $encEventResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.CommentMessage commentMessage = 77;</code>
     */
    protected $commentMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterAdminInviteMessage newsletterAdminInviteMessage = 78;</code>
     */
    protected $newsletterAdminInviteMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PlaceholderMessage placeholderMessage = 80;</code>
     */
    protected $placeholderMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.SecretEncryptedMessage secretEncryptedMessage = 82;</code>
     */
    protected $secretEncryptedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.AlbumMessage albumMessage = 83;</code>
     */
    protected $albumMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage eventCoverImage = 85;</code>
     */
    protected $eventCoverImage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerPackMessage stickerPackMessage = 86;</code>
     */
    protected $stickerPackMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusMentionMessage = 87;</code>
     */
    protected $statusMentionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessage = 88;</code>
     */
    protected $pollResultSnapshotMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationOptionImageMessage = 90;</code>
     */
    protected $pollCreationOptionImageMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage associatedChildMessage = 91;</code>
     */
    protected $associatedChildMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMentionMessage = 92;</code>
     */
    protected $groupStatusMentionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationMessageV4 = 93;</code>
     */
    protected $pollCreationMessageV4 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusAddYours = 95;</code>
     */
    protected $statusAddYours = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessage = 96;</code>
     */
    protected $groupStatusMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.AIRichResponseMessage richResponseMessage = 97;</code>
     */
    protected $richResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusNotificationMessage statusNotificationMessage = 98;</code>
     */
    protected $statusNotificationMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage limitSharingMessage = 99;</code>
     */
    protected $limitSharingMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botTaskMessage = 100;</code>
     */
    protected $botTaskMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionMessage = 101;</code>
     */
    protected $questionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryNotice messageHistoryNotice = 102;</code>
     */
    protected $messageHistoryNotice = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessageV2 = 103;</code>
     */
    protected $groupStatusMessageV2 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botForwardedMessage = 104;</code>
     */
    protected $botForwardedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuestionAnswerMessage statusQuestionAnswerMessage = 105;</code>
     */
    protected $statusQuestionAnswerMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionReplyMessage = 106;</code>
     */
    protected $questionReplyMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.QuestionResponseMessage questionResponseMessage = 107;</code>
     */
    protected $questionResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuotedMessage statusQuotedMessage = 109;</code>
     */
    protected $statusQuotedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusStickerInteractionMessage statusStickerInteractionMessage = 110;</code>
     */
    protected $statusStickerInteractionMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV5 = 111;</code>
     */
    protected $pollCreationMessageV5 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113;</code>
     */
    protected $newsletterFollowerInviteMessageV2 = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessageV3 = 114;</code>
     */
    protected $pollResultSnapshotMessageV3 = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $conversation
     *     @type \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage $senderKeyDistributionMessage
     *     @type \PhpWA\Protocol\Proto\Message\ImageMessage $imageMessage
     *     @type \PhpWA\Protocol\Proto\Message\ContactMessage $contactMessage
     *     @type \PhpWA\Protocol\Proto\Message\LocationMessage $locationMessage
     *     @type \PhpWA\Protocol\Proto\Message\ExtendedTextMessage $extendedTextMessage
     *     @type \PhpWA\Protocol\Proto\Message\DocumentMessage $documentMessage
     *     @type \PhpWA\Protocol\Proto\Message\AudioMessage $audioMessage
     *     @type \PhpWA\Protocol\Proto\Message\VideoMessage $videoMessage
     *     @type \PhpWA\Protocol\Proto\Message\Call $call
     *     @type \PhpWA\Protocol\Proto\Message\Chat $chat
     *     @type \PhpWA\Protocol\Proto\Message\ProtocolMessage $protocolMessage
     *     @type \PhpWA\Protocol\Proto\Message\ContactsArrayMessage $contactsArrayMessage
     *     @type \PhpWA\Protocol\Proto\Message\HighlyStructuredMessage $highlyStructuredMessage
     *     @type \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage $fastRatchetKeySenderKeyDistributionMessage
     *     @type \PhpWA\Protocol\Proto\Message\SendPaymentMessage $sendPaymentMessage
     *     @type \PhpWA\Protocol\Proto\Message\LiveLocationMessage $liveLocationMessage
     *     @type \PhpWA\Protocol\Proto\Message\RequestPaymentMessage $requestPaymentMessage
     *     @type \PhpWA\Protocol\Proto\Message\DeclinePaymentRequestMessage $declinePaymentRequestMessage
     *     @type \PhpWA\Protocol\Proto\Message\CancelPaymentRequestMessage $cancelPaymentRequestMessage
     *     @type \PhpWA\Protocol\Proto\Message\TemplateMessage $templateMessage
     *     @type \PhpWA\Protocol\Proto\Message\StickerMessage $stickerMessage
     *     @type \PhpWA\Protocol\Proto\Message\GroupInviteMessage $groupInviteMessage
     *     @type \PhpWA\Protocol\Proto\Message\TemplateButtonReplyMessage $templateButtonReplyMessage
     *     @type \PhpWA\Protocol\Proto\Message\ProductMessage $productMessage
     *     @type \PhpWA\Protocol\Proto\Message\DeviceSentMessage $deviceSentMessage
     *     @type \PhpWA\Protocol\Proto\MessageContextInfo $messageContextInfo
     *     @type \PhpWA\Protocol\Proto\Message\ListMessage $listMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $viewOnceMessage
     *     @type \PhpWA\Protocol\Proto\Message\OrderMessage $orderMessage
     *     @type \PhpWA\Protocol\Proto\Message\ListResponseMessage $listResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $ephemeralMessage
     *     @type \PhpWA\Protocol\Proto\Message\InvoiceMessage $invoiceMessage
     *     @type \PhpWA\Protocol\Proto\Message\ButtonsMessage $buttonsMessage
     *     @type \PhpWA\Protocol\Proto\Message\ButtonsResponseMessage $buttonsResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\PaymentInviteMessage $paymentInviteMessage
     *     @type \PhpWA\Protocol\Proto\Message\InteractiveMessage $interactiveMessage
     *     @type \PhpWA\Protocol\Proto\Message\ReactionMessage $reactionMessage
     *     @type \PhpWA\Protocol\Proto\Message\StickerSyncRMRMessage $stickerSyncRmrMessage
     *     @type \PhpWA\Protocol\Proto\Message\InteractiveResponseMessage $interactiveResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\PollCreationMessage $pollCreationMessage
     *     @type \PhpWA\Protocol\Proto\Message\PollUpdateMessage $pollUpdateMessage
     *     @type \PhpWA\Protocol\Proto\Message\KeepInChatMessage $keepInChatMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $documentWithCaptionMessage
     *     @type \PhpWA\Protocol\Proto\Message\RequestPhoneNumberMessage $requestPhoneNumberMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $viewOnceMessageV2
     *     @type \PhpWA\Protocol\Proto\Message\EncReactionMessage $encReactionMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $editedMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $viewOnceMessageV2Extension
     *     @type \PhpWA\Protocol\Proto\Message\PollCreationMessage $pollCreationMessageV2
     *     @type \PhpWA\Protocol\Proto\Message\ScheduledCallCreationMessage $scheduledCallCreationMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $groupMentionedMessage
     *     @type \PhpWA\Protocol\Proto\Message\PinInChatMessage $pinInChatMessage
     *     @type \PhpWA\Protocol\Proto\Message\PollCreationMessage $pollCreationMessageV3
     *     @type \PhpWA\Protocol\Proto\Message\ScheduledCallEditMessage $scheduledCallEditMessage
     *     @type \PhpWA\Protocol\Proto\Message\VideoMessage $ptvMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $botInvokeMessage
     *     @type \PhpWA\Protocol\Proto\Message\CallLogMessage $callLogMesssage
     *     @type \PhpWA\Protocol\Proto\Message\MessageHistoryBundle $messageHistoryBundle
     *     @type \PhpWA\Protocol\Proto\Message\EncCommentMessage $encCommentMessage
     *     @type \PhpWA\Protocol\Proto\Message\BCallMessage $bcallMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $lottieStickerMessage
     *     @type \PhpWA\Protocol\Proto\Message\EventMessage $eventMessage
     *     @type \PhpWA\Protocol\Proto\Message\EncEventResponseMessage $encEventResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\CommentMessage $commentMessage
     *     @type \PhpWA\Protocol\Proto\Message\NewsletterAdminInviteMessage $newsletterAdminInviteMessage
     *     @type \PhpWA\Protocol\Proto\Message\PlaceholderMessage $placeholderMessage
     *     @type \PhpWA\Protocol\Proto\Message\SecretEncryptedMessage $secretEncryptedMessage
     *     @type \PhpWA\Protocol\Proto\Message\AlbumMessage $albumMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $eventCoverImage
     *     @type \PhpWA\Protocol\Proto\Message\StickerPackMessage $stickerPackMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $statusMentionMessage
     *     @type \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage $pollResultSnapshotMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $pollCreationOptionImageMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $associatedChildMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $groupStatusMentionMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $pollCreationMessageV4
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $statusAddYours
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $groupStatusMessage
     *     @type \PhpWA\Protocol\Proto\AIRichResponseMessage $richResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\StatusNotificationMessage $statusNotificationMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $limitSharingMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $botTaskMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $questionMessage
     *     @type \PhpWA\Protocol\Proto\Message\MessageHistoryNotice $messageHistoryNotice
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $groupStatusMessageV2
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $botForwardedMessage
     *     @type \PhpWA\Protocol\Proto\Message\StatusQuestionAnswerMessage $statusQuestionAnswerMessage
     *     @type \PhpWA\Protocol\Proto\Message\FutureProofMessage $questionReplyMessage
     *     @type \PhpWA\Protocol\Proto\Message\QuestionResponseMessage $questionResponseMessage
     *     @type \PhpWA\Protocol\Proto\Message\StatusQuotedMessage $statusQuotedMessage
     *     @type \PhpWA\Protocol\Proto\Message\StatusStickerInteractionMessage $statusStickerInteractionMessage
     *     @type \PhpWA\Protocol\Proto\Message\PollCreationMessage $pollCreationMessageV5
     *     @type \PhpWA\Protocol\Proto\Message\NewsletterFollowerInviteMessage $newsletterFollowerInviteMessageV2
     *     @type \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage $pollResultSnapshotMessageV3
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional string conversation = 1;</code>
     * @return string
     */
    public function getConversation()
    {
        return isset($this->conversation) ? $this->conversation : '';
    }

    public function hasConversation()
    {
        return isset($this->conversation);
    }

    public function clearConversation()
    {
        unset($this->conversation);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage senderKeyDistributionMessage = 2;</code>
     * @return \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage|null
     */
    public function getSenderKeyDistributionMessage()
    {
        return $this->senderKeyDistributionMessage;
    }

    public function hasSenderKeyDistributionMessage()
    {
        return isset($this->senderKeyDistributionMessage);
    }

    public function clearSenderKeyDistributionMessage()
    {
        unset($this->senderKeyDistributionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage senderKeyDistributionMessage = 2;</code>
     * @param \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage $var
     * @return $this
     */
    public function setSenderKeyDistributionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage::class);
        $this->senderKeyDistributionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ImageMessage imageMessage = 3;</code>
     * @return \PhpWA\Protocol\Proto\Message\ImageMessage|null
     */
    public function getImageMessage()
    {
        return $this->imageMessage;
    }

    public function hasImageMessage()
    {
        return isset($this->imageMessage);
    }

    public function clearImageMessage()
    {
        unset($this->imageMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ImageMessage imageMessage = 3;</code>
     * @param \PhpWA\Protocol\Proto\Message\ImageMessage $var
     * @return $this
     */
    public function setImageMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ImageMessage::class);
        $this->imageMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactMessage contactMessage = 4;</code>
     * @return \PhpWA\Protocol\Proto\Message\ContactMessage|null
     */
    public function getContactMessage()
    {
        return $this->contactMessage;
    }

    public function hasContactMessage()
    {
        return isset($this->contactMessage);
    }

    public function clearContactMessage()
    {
        unset($this->contactMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactMessage contactMessage = 4;</code>
     * @param \PhpWA\Protocol\Proto\Message\ContactMessage $var
     * @return $this
     */
    public function setContactMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ContactMessage::class);
        $this->contactMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LocationMessage locationMessage = 5;</code>
     * @return \PhpWA\Protocol\Proto\Message\LocationMessage|null
     */
    public function getLocationMessage()
    {
        return $this->locationMessage;
    }

    public function hasLocationMessage()
    {
        return isset($this->locationMessage);
    }

    public function clearLocationMessage()
    {
        unset($this->locationMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LocationMessage locationMessage = 5;</code>
     * @param \PhpWA\Protocol\Proto\Message\LocationMessage $var
     * @return $this
     */
    public function setLocationMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\LocationMessage::class);
        $this->locationMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ExtendedTextMessage extendedTextMessage = 6;</code>
     * @return \PhpWA\Protocol\Proto\Message\ExtendedTextMessage|null
     */
    public function getExtendedTextMessage()
    {
        return $this->extendedTextMessage;
    }

    public function hasExtendedTextMessage()
    {
        return isset($this->extendedTextMessage);
    }

    public function clearExtendedTextMessage()
    {
        unset($this->extendedTextMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ExtendedTextMessage extendedTextMessage = 6;</code>
     * @param \PhpWA\Protocol\Proto\Message\ExtendedTextMessage $var
     * @return $this
     */
    public function setExtendedTextMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ExtendedTextMessage::class);
        $this->extendedTextMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DocumentMessage documentMessage = 7;</code>
     * @return \PhpWA\Protocol\Proto\Message\DocumentMessage|null
     */
    public function getDocumentMessage()
    {
        return $this->documentMessage;
    }

    public function hasDocumentMessage()
    {
        return isset($this->documentMessage);
    }

    public function clearDocumentMessage()
    {
        unset($this->documentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DocumentMessage documentMessage = 7;</code>
     * @param \PhpWA\Protocol\Proto\Message\DocumentMessage $var
     * @return $this
     */
    public function setDocumentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\DocumentMessage::class);
        $this->documentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.AudioMessage audioMessage = 8;</code>
     * @return \PhpWA\Protocol\Proto\Message\AudioMessage|null
     */
    public function getAudioMessage()
    {
        return $this->audioMessage;
    }

    public function hasAudioMessage()
    {
        return isset($this->audioMessage);
    }

    public function clearAudioMessage()
    {
        unset($this->audioMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.AudioMessage audioMessage = 8;</code>
     * @param \PhpWA\Protocol\Proto\Message\AudioMessage $var
     * @return $this
     */
    public function setAudioMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\AudioMessage::class);
        $this->audioMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage videoMessage = 9;</code>
     * @return \PhpWA\Protocol\Proto\Message\VideoMessage|null
     */
    public function getVideoMessage()
    {
        return $this->videoMessage;
    }

    public function hasVideoMessage()
    {
        return isset($this->videoMessage);
    }

    public function clearVideoMessage()
    {
        unset($this->videoMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage videoMessage = 9;</code>
     * @param \PhpWA\Protocol\Proto\Message\VideoMessage $var
     * @return $this
     */
    public function setVideoMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\VideoMessage::class);
        $this->videoMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.Call call = 10;</code>
     * @return \PhpWA\Protocol\Proto\Message\Call|null
     */
    public function getCall()
    {
        return $this->call;
    }

    public function hasCall()
    {
        return isset($this->call);
    }

    public function clearCall()
    {
        unset($this->call);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.Call call = 10;</code>
     * @param \PhpWA\Protocol\Proto\Message\Call $var
     * @return $this
     */
    public function setCall($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\Call::class);
        $this->call = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.Chat chat = 11;</code>
     * @return \PhpWA\Protocol\Proto\Message\Chat|null
     */
    public function getChat()
    {
        return $this->chat;
    }

    public function hasChat()
    {
        return isset($this->chat);
    }

    public function clearChat()
    {
        unset($this->chat);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.Chat chat = 11;</code>
     * @param \PhpWA\Protocol\Proto\Message\Chat $var
     * @return $this
     */
    public function setChat($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\Chat::class);
        $this->chat = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage protocolMessage = 12;</code>
     * @return \PhpWA\Protocol\Proto\Message\ProtocolMessage|null
     */
    public function getProtocolMessage()
    {
        return $this->protocolMessage;
    }

    public function hasProtocolMessage()
    {
        return isset($this->protocolMessage);
    }

    public function clearProtocolMessage()
    {
        unset($this->protocolMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage protocolMessage = 12;</code>
     * @param \PhpWA\Protocol\Proto\Message\ProtocolMessage $var
     * @return $this
     */
    public function setProtocolMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ProtocolMessage::class);
        $this->protocolMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactsArrayMessage contactsArrayMessage = 13;</code>
     * @return \PhpWA\Protocol\Proto\Message\ContactsArrayMessage|null
     */
    public function getContactsArrayMessage()
    {
        return $this->contactsArrayMessage;
    }

    public function hasContactsArrayMessage()
    {
        return isset($this->contactsArrayMessage);
    }

    public function clearContactsArrayMessage()
    {
        unset($this->contactsArrayMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ContactsArrayMessage contactsArrayMessage = 13;</code>
     * @param \PhpWA\Protocol\Proto\Message\ContactsArrayMessage $var
     * @return $this
     */
    public function setContactsArrayMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ContactsArrayMessage::class);
        $this->contactsArrayMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.HighlyStructuredMessage highlyStructuredMessage = 14;</code>
     * @return \PhpWA\Protocol\Proto\Message\HighlyStructuredMessage|null
     */
    public function getHighlyStructuredMessage()
    {
        return $this->highlyStructuredMessage;
    }

    public function hasHighlyStructuredMessage()
    {
        return isset($this->highlyStructuredMessage);
    }

    public function clearHighlyStructuredMessage()
    {
        unset($this->highlyStructuredMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.HighlyStructuredMessage highlyStructuredMessage = 14;</code>
     * @param \PhpWA\Protocol\Proto\Message\HighlyStructuredMessage $var
     * @return $this
     */
    public function setHighlyStructuredMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\HighlyStructuredMessage::class);
        $this->highlyStructuredMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;</code>
     * @return \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage|null
     */
    public function getFastRatchetKeySenderKeyDistributionMessage()
    {
        return $this->fastRatchetKeySenderKeyDistributionMessage;
    }

    public function hasFastRatchetKeySenderKeyDistributionMessage()
    {
        return isset($this->fastRatchetKeySenderKeyDistributionMessage);
    }

    public function clearFastRatchetKeySenderKeyDistributionMessage()
    {
        unset($this->fastRatchetKeySenderKeyDistributionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;</code>
     * @param \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage $var
     * @return $this
     */
    public function setFastRatchetKeySenderKeyDistributionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\SenderKeyDistributionMessage::class);
        $this->fastRatchetKeySenderKeyDistributionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SendPaymentMessage sendPaymentMessage = 16;</code>
     * @return \PhpWA\Protocol\Proto\Message\SendPaymentMessage|null
     */
    public function getSendPaymentMessage()
    {
        return $this->sendPaymentMessage;
    }

    public function hasSendPaymentMessage()
    {
        return isset($this->sendPaymentMessage);
    }

    public function clearSendPaymentMessage()
    {
        unset($this->sendPaymentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SendPaymentMessage sendPaymentMessage = 16;</code>
     * @param \PhpWA\Protocol\Proto\Message\SendPaymentMessage $var
     * @return $this
     */
    public function setSendPaymentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\SendPaymentMessage::class);
        $this->sendPaymentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage liveLocationMessage = 18;</code>
     * @return \PhpWA\Protocol\Proto\Message\LiveLocationMessage|null
     */
    public function getLiveLocationMessage()
    {
        return $this->liveLocationMessage;
    }

    public function hasLiveLocationMessage()
    {
        return isset($this->liveLocationMessage);
    }

    public function clearLiveLocationMessage()
    {
        unset($this->liveLocationMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage liveLocationMessage = 18;</code>
     * @param \PhpWA\Protocol\Proto\Message\LiveLocationMessage $var
     * @return $this
     */
    public function setLiveLocationMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\LiveLocationMessage::class);
        $this->liveLocationMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPaymentMessage requestPaymentMessage = 22;</code>
     * @return \PhpWA\Protocol\Proto\Message\RequestPaymentMessage|null
     */
    public function getRequestPaymentMessage()
    {
        return $this->requestPaymentMessage;
    }

    public function hasRequestPaymentMessage()
    {
        return isset($this->requestPaymentMessage);
    }

    public function clearRequestPaymentMessage()
    {
        unset($this->requestPaymentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPaymentMessage requestPaymentMessage = 22;</code>
     * @param \PhpWA\Protocol\Proto\Message\RequestPaymentMessage $var
     * @return $this
     */
    public function setRequestPaymentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\RequestPaymentMessage::class);
        $this->requestPaymentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DeclinePaymentRequestMessage declinePaymentRequestMessage = 23;</code>
     * @return \PhpWA\Protocol\Proto\Message\DeclinePaymentRequestMessage|null
     */
    public function getDeclinePaymentRequestMessage()
    {
        return $this->declinePaymentRequestMessage;
    }

    public function hasDeclinePaymentRequestMessage()
    {
        return isset($this->declinePaymentRequestMessage);
    }

    public function clearDeclinePaymentRequestMessage()
    {
        unset($this->declinePaymentRequestMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DeclinePaymentRequestMessage declinePaymentRequestMessage = 23;</code>
     * @param \PhpWA\Protocol\Proto\Message\DeclinePaymentRequestMessage $var
     * @return $this
     */
    public function setDeclinePaymentRequestMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\DeclinePaymentRequestMessage::class);
        $this->declinePaymentRequestMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CancelPaymentRequestMessage cancelPaymentRequestMessage = 24;</code>
     * @return \PhpWA\Protocol\Proto\Message\CancelPaymentRequestMessage|null
     */
    public function getCancelPaymentRequestMessage()
    {
        return $this->cancelPaymentRequestMessage;
    }

    public function hasCancelPaymentRequestMessage()
    {
        return isset($this->cancelPaymentRequestMessage);
    }

    public function clearCancelPaymentRequestMessage()
    {
        unset($this->cancelPaymentRequestMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CancelPaymentRequestMessage cancelPaymentRequestMessage = 24;</code>
     * @param \PhpWA\Protocol\Proto\Message\CancelPaymentRequestMessage $var
     * @return $this
     */
    public function setCancelPaymentRequestMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\CancelPaymentRequestMessage::class);
        $this->cancelPaymentRequestMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateMessage templateMessage = 25;</code>
     * @return \PhpWA\Protocol\Proto\Message\TemplateMessage|null
     */
    public function getTemplateMessage()
    {
        return $this->templateMessage;
    }

    public function hasTemplateMessage()
    {
        return isset($this->templateMessage);
    }

    public function clearTemplateMessage()
    {
        unset($this->templateMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateMessage templateMessage = 25;</code>
     * @param \PhpWA\Protocol\Proto\Message\TemplateMessage $var
     * @return $this
     */
    public function setTemplateMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\TemplateMessage::class);
        $this->templateMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerMessage stickerMessage = 26;</code>
     * @return \PhpWA\Protocol\Proto\Message\StickerMessage|null
     */
    public function getStickerMessage()
    {
        return $this->stickerMessage;
    }

    public function hasStickerMessage()
    {
        return isset($this->stickerMessage);
    }

    public function clearStickerMessage()
    {
        unset($this->stickerMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerMessage stickerMessage = 26;</code>
     * @param \PhpWA\Protocol\Proto\Message\StickerMessage $var
     * @return $this
     */
    public function setStickerMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StickerMessage::class);
        $this->stickerMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.GroupInviteMessage groupInviteMessage = 28;</code>
     * @return \PhpWA\Protocol\Proto\Message\GroupInviteMessage|null
     */
    public function getGroupInviteMessage()
    {
        return $this->groupInviteMessage;
    }

    public function hasGroupInviteMessage()
    {
        return isset($this->groupInviteMessage);
    }

    public function clearGroupInviteMessage()
    {
        unset($this->groupInviteMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.GroupInviteMessage groupInviteMessage = 28;</code>
     * @param \PhpWA\Protocol\Proto\Message\GroupInviteMessage $var
     * @return $this
     */
    public function setGroupInviteMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\GroupInviteMessage::class);
        $this->groupInviteMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateButtonReplyMessage templateButtonReplyMessage = 29;</code>
     * @return \PhpWA\Protocol\Proto\Message\TemplateButtonReplyMessage|null
     */
    public function getTemplateButtonReplyMessage()
    {
        return $this->templateButtonReplyMessage;
    }

    public function hasTemplateButtonReplyMessage()
    {
        return isset($this->templateButtonReplyMessage);
    }

    public function clearTemplateButtonReplyMessage()
    {
        unset($this->templateButtonReplyMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.TemplateButtonReplyMessage templateButtonReplyMessage = 29;</code>
     * @param \PhpWA\Protocol\Proto\Message\TemplateButtonReplyMessage $var
     * @return $this
     */
    public function setTemplateButtonReplyMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\TemplateButtonReplyMessage::class);
        $this->templateButtonReplyMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProductMessage productMessage = 30;</code>
     * @return \PhpWA\Protocol\Proto\Message\ProductMessage|null
     */
    public function getProductMessage()
    {
        return $this->productMessage;
    }

    public function hasProductMessage()
    {
        return isset($this->productMessage);
    }

    public function clearProductMessage()
    {
        unset($this->productMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProductMessage productMessage = 30;</code>
     * @param \PhpWA\Protocol\Proto\Message\ProductMessage $var
     * @return $this
     */
    public function setProductMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ProductMessage::class);
        $this->productMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DeviceSentMessage deviceSentMessage = 31;</code>
     * @return \PhpWA\Protocol\Proto\Message\DeviceSentMessage|null
     */
    public function getDeviceSentMessage()
    {
        return $this->deviceSentMessage;
    }

    public function hasDeviceSentMessage()
    {
        return isset($this->deviceSentMessage);
    }

    public function clearDeviceSentMessage()
    {
        unset($this->deviceSentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.DeviceSentMessage deviceSentMessage = 31;</code>
     * @param \PhpWA\Protocol\Proto\Message\DeviceSentMessage $var
     * @return $this
     */
    public function setDeviceSentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\DeviceSentMessage::class);
        $this->deviceSentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageContextInfo messageContextInfo = 35;</code>
     * @return \PhpWA\Protocol\Proto\MessageContextInfo|null
     */
    public function getMessageContextInfo()
    {
        return $this->messageContextInfo;
    }

    public function hasMessageContextInfo()
    {
        return isset($this->messageContextInfo);
    }

    public function clearMessageContextInfo()
    {
        unset($this->messageContextInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageContextInfo messageContextInfo = 35;</code>
     * @param \PhpWA\Protocol\Proto\MessageContextInfo $var
     * @return $this
     */
    public function setMessageContextInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageContextInfo::class);
        $this->messageContextInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ListMessage listMessage = 36;</code>
     * @return \PhpWA\Protocol\Proto\Message\ListMessage|null
     */
    public function getListMessage()
    {
        return $this->listMessage;
    }

    public function hasListMessage()
    {
        return isset($this->listMessage);
    }

    public function clearListMessage()
    {
        unset($this->listMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ListMessage listMessage = 36;</code>
     * @param \PhpWA\Protocol\Proto\Message\ListMessage $var
     * @return $this
     */
    public function setListMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ListMessage::class);
        $this->listMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessage = 37;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getViewOnceMessage()
    {
        return $this->viewOnceMessage;
    }

    public function hasViewOnceMessage()
    {
        return isset($this->viewOnceMessage);
    }

    public function clearViewOnceMessage()
    {
        unset($this->viewOnceMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessage = 37;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setViewOnceMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->viewOnceMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.OrderMessage orderMessage = 38;</code>
     * @return \PhpWA\Protocol\Proto\Message\OrderMessage|null
     */
    public function getOrderMessage()
    {
        return $this->orderMessage;
    }

    public function hasOrderMessage()
    {
        return isset($this->orderMessage);
    }

    public function clearOrderMessage()
    {
        unset($this->orderMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.OrderMessage orderMessage = 38;</code>
     * @param \PhpWA\Protocol\Proto\Message\OrderMessage $var
     * @return $this
     */
    public function setOrderMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\OrderMessage::class);
        $this->orderMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ListResponseMessage listResponseMessage = 39;</code>
     * @return \PhpWA\Protocol\Proto\Message\ListResponseMessage|null
     */
    public function getListResponseMessage()
    {
        return $this->listResponseMessage;
    }

    public function hasListResponseMessage()
    {
        return isset($this->listResponseMessage);
    }

    public function clearListResponseMessage()
    {
        unset($this->listResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ListResponseMessage listResponseMessage = 39;</code>
     * @param \PhpWA\Protocol\Proto\Message\ListResponseMessage $var
     * @return $this
     */
    public function setListResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ListResponseMessage::class);
        $this->listResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage ephemeralMessage = 40;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getEphemeralMessage()
    {
        return $this->ephemeralMessage;
    }

    public function hasEphemeralMessage()
    {
        return isset($this->ephemeralMessage);
    }

    public function clearEphemeralMessage()
    {
        unset($this->ephemeralMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage ephemeralMessage = 40;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setEphemeralMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->ephemeralMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InvoiceMessage invoiceMessage = 41;</code>
     * @return \PhpWA\Protocol\Proto\Message\InvoiceMessage|null
     */
    public function getInvoiceMessage()
    {
        return $this->invoiceMessage;
    }

    public function hasInvoiceMessage()
    {
        return isset($this->invoiceMessage);
    }

    public function clearInvoiceMessage()
    {
        unset($this->invoiceMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InvoiceMessage invoiceMessage = 41;</code>
     * @param \PhpWA\Protocol\Proto\Message\InvoiceMessage $var
     * @return $this
     */
    public function setInvoiceMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\InvoiceMessage::class);
        $this->invoiceMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsMessage buttonsMessage = 42;</code>
     * @return \PhpWA\Protocol\Proto\Message\ButtonsMessage|null
     */
    public function getButtonsMessage()
    {
        return $this->buttonsMessage;
    }

    public function hasButtonsMessage()
    {
        return isset($this->buttonsMessage);
    }

    public function clearButtonsMessage()
    {
        unset($this->buttonsMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsMessage buttonsMessage = 42;</code>
     * @param \PhpWA\Protocol\Proto\Message\ButtonsMessage $var
     * @return $this
     */
    public function setButtonsMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ButtonsMessage::class);
        $this->buttonsMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsResponseMessage buttonsResponseMessage = 43;</code>
     * @return \PhpWA\Protocol\Proto\Message\ButtonsResponseMessage|null
     */
    public function getButtonsResponseMessage()
    {
        return $this->buttonsResponseMessage;
    }

    public function hasButtonsResponseMessage()
    {
        return isset($this->buttonsResponseMessage);
    }

    public function clearButtonsResponseMessage()
    {
        unset($this->buttonsResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ButtonsResponseMessage buttonsResponseMessage = 43;</code>
     * @param \PhpWA\Protocol\Proto\Message\ButtonsResponseMessage $var
     * @return $this
     */
    public function setButtonsResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ButtonsResponseMessage::class);
        $this->buttonsResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PaymentInviteMessage paymentInviteMessage = 44;</code>
     * @return \PhpWA\Protocol\Proto\Message\PaymentInviteMessage|null
     */
    public function getPaymentInviteMessage()
    {
        return $this->paymentInviteMessage;
    }

    public function hasPaymentInviteMessage()
    {
        return isset($this->paymentInviteMessage);
    }

    public function clearPaymentInviteMessage()
    {
        unset($this->paymentInviteMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PaymentInviteMessage paymentInviteMessage = 44;</code>
     * @param \PhpWA\Protocol\Proto\Message\PaymentInviteMessage $var
     * @return $this
     */
    public function setPaymentInviteMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PaymentInviteMessage::class);
        $this->paymentInviteMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveMessage interactiveMessage = 45;</code>
     * @return \PhpWA\Protocol\Proto\Message\InteractiveMessage|null
     */
    public function getInteractiveMessage()
    {
        return $this->interactiveMessage;
    }

    public function hasInteractiveMessage()
    {
        return isset($this->interactiveMessage);
    }

    public function clearInteractiveMessage()
    {
        unset($this->interactiveMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveMessage interactiveMessage = 45;</code>
     * @param \PhpWA\Protocol\Proto\Message\InteractiveMessage $var
     * @return $this
     */
    public function setInteractiveMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\InteractiveMessage::class);
        $this->interactiveMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ReactionMessage reactionMessage = 46;</code>
     * @return \PhpWA\Protocol\Proto\Message\ReactionMessage|null
     */
    public function getReactionMessage()
    {
        return $this->reactionMessage;
    }

    public function hasReactionMessage()
    {
        return isset($this->reactionMessage);
    }

    public function clearReactionMessage()
    {
        unset($this->reactionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ReactionMessage reactionMessage = 46;</code>
     * @param \PhpWA\Protocol\Proto\Message\ReactionMessage $var
     * @return $this
     */
    public function setReactionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ReactionMessage::class);
        $this->reactionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerSyncRMRMessage stickerSyncRmrMessage = 47;</code>
     * @return \PhpWA\Protocol\Proto\Message\StickerSyncRMRMessage|null
     */
    public function getStickerSyncRmrMessage()
    {
        return $this->stickerSyncRmrMessage;
    }

    public function hasStickerSyncRmrMessage()
    {
        return isset($this->stickerSyncRmrMessage);
    }

    public function clearStickerSyncRmrMessage()
    {
        unset($this->stickerSyncRmrMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerSyncRMRMessage stickerSyncRmrMessage = 47;</code>
     * @param \PhpWA\Protocol\Proto\Message\StickerSyncRMRMessage $var
     * @return $this
     */
    public function setStickerSyncRmrMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StickerSyncRMRMessage::class);
        $this->stickerSyncRmrMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveResponseMessage interactiveResponseMessage = 48;</code>
     * @return \PhpWA\Protocol\Proto\Message\InteractiveResponseMessage|null
     */
    public function getInteractiveResponseMessage()
    {
        return $this->interactiveResponseMessage;
    }

    public function hasInteractiveResponseMessage()
    {
        return isset($this->interactiveResponseMessage);
    }

    public function clearInteractiveResponseMessage()
    {
        unset($this->interactiveResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.InteractiveResponseMessage interactiveResponseMessage = 48;</code>
     * @param \PhpWA\Protocol\Proto\Message\InteractiveResponseMessage $var
     * @return $this
     */
    public function setInteractiveResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\InteractiveResponseMessage::class);
        $this->interactiveResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessage = 49;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollCreationMessage|null
     */
    public function getPollCreationMessage()
    {
        return $this->pollCreationMessage;
    }

    public function hasPollCreationMessage()
    {
        return isset($this->pollCreationMessage);
    }

    public function clearPollCreationMessage()
    {
        unset($this->pollCreationMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessage = 49;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollCreationMessage $var
     * @return $this
     */
    public function setPollCreationMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollCreationMessage::class);
        $this->pollCreationMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollUpdateMessage pollUpdateMessage = 50;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollUpdateMessage|null
     */
    public function getPollUpdateMessage()
    {
        return $this->pollUpdateMessage;
    }

    public function hasPollUpdateMessage()
    {
        return isset($this->pollUpdateMessage);
    }

    public function clearPollUpdateMessage()
    {
        unset($this->pollUpdateMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollUpdateMessage pollUpdateMessage = 50;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollUpdateMessage $var
     * @return $this
     */
    public function setPollUpdateMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollUpdateMessage::class);
        $this->pollUpdateMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.KeepInChatMessage keepInChatMessage = 51;</code>
     * @return \PhpWA\Protocol\Proto\Message\KeepInChatMessage|null
     */
    public function getKeepInChatMessage()
    {
        return $this->keepInChatMessage;
    }

    public function hasKeepInChatMessage()
    {
        return isset($this->keepInChatMessage);
    }

    public function clearKeepInChatMessage()
    {
        unset($this->keepInChatMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.KeepInChatMessage keepInChatMessage = 51;</code>
     * @param \PhpWA\Protocol\Proto\Message\KeepInChatMessage $var
     * @return $this
     */
    public function setKeepInChatMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\KeepInChatMessage::class);
        $this->keepInChatMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage documentWithCaptionMessage = 53;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getDocumentWithCaptionMessage()
    {
        return $this->documentWithCaptionMessage;
    }

    public function hasDocumentWithCaptionMessage()
    {
        return isset($this->documentWithCaptionMessage);
    }

    public function clearDocumentWithCaptionMessage()
    {
        unset($this->documentWithCaptionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage documentWithCaptionMessage = 53;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setDocumentWithCaptionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->documentWithCaptionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPhoneNumberMessage requestPhoneNumberMessage = 54;</code>
     * @return \PhpWA\Protocol\Proto\Message\RequestPhoneNumberMessage|null
     */
    public function getRequestPhoneNumberMessage()
    {
        return $this->requestPhoneNumberMessage;
    }

    public function hasRequestPhoneNumberMessage()
    {
        return isset($this->requestPhoneNumberMessage);
    }

    public function clearRequestPhoneNumberMessage()
    {
        unset($this->requestPhoneNumberMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestPhoneNumberMessage requestPhoneNumberMessage = 54;</code>
     * @param \PhpWA\Protocol\Proto\Message\RequestPhoneNumberMessage $var
     * @return $this
     */
    public function setRequestPhoneNumberMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\RequestPhoneNumberMessage::class);
        $this->requestPhoneNumberMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2 = 55;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getViewOnceMessageV2()
    {
        return $this->viewOnceMessageV2;
    }

    public function hasViewOnceMessageV2()
    {
        return isset($this->viewOnceMessageV2);
    }

    public function clearViewOnceMessageV2()
    {
        unset($this->viewOnceMessageV2);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2 = 55;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setViewOnceMessageV2($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->viewOnceMessageV2 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncReactionMessage encReactionMessage = 56;</code>
     * @return \PhpWA\Protocol\Proto\Message\EncReactionMessage|null
     */
    public function getEncReactionMessage()
    {
        return $this->encReactionMessage;
    }

    public function hasEncReactionMessage()
    {
        return isset($this->encReactionMessage);
    }

    public function clearEncReactionMessage()
    {
        unset($this->encReactionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncReactionMessage encReactionMessage = 56;</code>
     * @param \PhpWA\Protocol\Proto\Message\EncReactionMessage $var
     * @return $this
     */
    public function setEncReactionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\EncReactionMessage::class);
        $this->encReactionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage editedMessage = 58;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getEditedMessage()
    {
        return $this->editedMessage;
    }

    public function hasEditedMessage()
    {
        return isset($this->editedMessage);
    }

    public function clearEditedMessage()
    {
        unset($this->editedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage editedMessage = 58;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setEditedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->editedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2Extension = 59;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getViewOnceMessageV2Extension()
    {
        return $this->viewOnceMessageV2Extension;
    }

    public function hasViewOnceMessageV2Extension()
    {
        return isset($this->viewOnceMessageV2Extension);
    }

    public function clearViewOnceMessageV2Extension()
    {
        unset($this->viewOnceMessageV2Extension);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage viewOnceMessageV2Extension = 59;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setViewOnceMessageV2Extension($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->viewOnceMessageV2Extension = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV2 = 60;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollCreationMessage|null
     */
    public function getPollCreationMessageV2()
    {
        return $this->pollCreationMessageV2;
    }

    public function hasPollCreationMessageV2()
    {
        return isset($this->pollCreationMessageV2);
    }

    public function clearPollCreationMessageV2()
    {
        unset($this->pollCreationMessageV2);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV2 = 60;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollCreationMessage $var
     * @return $this
     */
    public function setPollCreationMessageV2($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollCreationMessage::class);
        $this->pollCreationMessageV2 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallCreationMessage scheduledCallCreationMessage = 61;</code>
     * @return \PhpWA\Protocol\Proto\Message\ScheduledCallCreationMessage|null
     */
    public function getScheduledCallCreationMessage()
    {
        return $this->scheduledCallCreationMessage;
    }

    public function hasScheduledCallCreationMessage()
    {
        return isset($this->scheduledCallCreationMessage);
    }

    public function clearScheduledCallCreationMessage()
    {
        unset($this->scheduledCallCreationMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallCreationMessage scheduledCallCreationMessage = 61;</code>
     * @param \PhpWA\Protocol\Proto\Message\ScheduledCallCreationMessage $var
     * @return $this
     */
    public function setScheduledCallCreationMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ScheduledCallCreationMessage::class);
        $this->scheduledCallCreationMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupMentionedMessage = 62;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getGroupMentionedMessage()
    {
        return $this->groupMentionedMessage;
    }

    public function hasGroupMentionedMessage()
    {
        return isset($this->groupMentionedMessage);
    }

    public function clearGroupMentionedMessage()
    {
        unset($this->groupMentionedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupMentionedMessage = 62;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setGroupMentionedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->groupMentionedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PinInChatMessage pinInChatMessage = 63;</code>
     * @return \PhpWA\Protocol\Proto\Message\PinInChatMessage|null
     */
    public function getPinInChatMessage()
    {
        return $this->pinInChatMessage;
    }

    public function hasPinInChatMessage()
    {
        return isset($this->pinInChatMessage);
    }

    public function clearPinInChatMessage()
    {
        unset($this->pinInChatMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PinInChatMessage pinInChatMessage = 63;</code>
     * @param \PhpWA\Protocol\Proto\Message\PinInChatMessage $var
     * @return $this
     */
    public function setPinInChatMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PinInChatMessage::class);
        $this->pinInChatMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV3 = 64;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollCreationMessage|null
     */
    public function getPollCreationMessageV3()
    {
        return $this->pollCreationMessageV3;
    }

    public function hasPollCreationMessageV3()
    {
        return isset($this->pollCreationMessageV3);
    }

    public function clearPollCreationMessageV3()
    {
        unset($this->pollCreationMessageV3);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV3 = 64;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollCreationMessage $var
     * @return $this
     */
    public function setPollCreationMessageV3($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollCreationMessage::class);
        $this->pollCreationMessageV3 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallEditMessage scheduledCallEditMessage = 65;</code>
     * @return \PhpWA\Protocol\Proto\Message\ScheduledCallEditMessage|null
     */
    public function getScheduledCallEditMessage()
    {
        return $this->scheduledCallEditMessage;
    }

    public function hasScheduledCallEditMessage()
    {
        return isset($this->scheduledCallEditMessage);
    }

    public function clearScheduledCallEditMessage()
    {
        unset($this->scheduledCallEditMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ScheduledCallEditMessage scheduledCallEditMessage = 65;</code>
     * @param \PhpWA\Protocol\Proto\Message\ScheduledCallEditMessage $var
     * @return $this
     */
    public function setScheduledCallEditMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\ScheduledCallEditMessage::class);
        $this->scheduledCallEditMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage ptvMessage = 66;</code>
     * @return \PhpWA\Protocol\Proto\Message\VideoMessage|null
     */
    public function getPtvMessage()
    {
        return $this->ptvMessage;
    }

    public function hasPtvMessage()
    {
        return isset($this->ptvMessage);
    }

    public function clearPtvMessage()
    {
        unset($this->ptvMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.VideoMessage ptvMessage = 66;</code>
     * @param \PhpWA\Protocol\Proto\Message\VideoMessage $var
     * @return $this
     */
    public function setPtvMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\VideoMessage::class);
        $this->ptvMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botInvokeMessage = 67;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getBotInvokeMessage()
    {
        return $this->botInvokeMessage;
    }

    public function hasBotInvokeMessage()
    {
        return isset($this->botInvokeMessage);
    }

    public function clearBotInvokeMessage()
    {
        unset($this->botInvokeMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botInvokeMessage = 67;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setBotInvokeMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->botInvokeMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CallLogMessage callLogMesssage = 69;</code>
     * @return \PhpWA\Protocol\Proto\Message\CallLogMessage|null
     */
    public function getCallLogMesssage()
    {
        return $this->callLogMesssage;
    }

    public function hasCallLogMesssage()
    {
        return isset($this->callLogMesssage);
    }

    public function clearCallLogMesssage()
    {
        unset($this->callLogMesssage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CallLogMessage callLogMesssage = 69;</code>
     * @param \PhpWA\Protocol\Proto\Message\CallLogMessage $var
     * @return $this
     */
    public function setCallLogMesssage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\CallLogMessage::class);
        $this->callLogMesssage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryBundle messageHistoryBundle = 70;</code>
     * @return \PhpWA\Protocol\Proto\Message\MessageHistoryBundle|null
     */
    public function getMessageHistoryBundle()
    {
        return $this->messageHistoryBundle;
    }

    public function hasMessageHistoryBundle()
    {
        return isset($this->messageHistoryBundle);
    }

    public function clearMessageHistoryBundle()
    {
        unset($this->messageHistoryBundle);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryBundle messageHistoryBundle = 70;</code>
     * @param \PhpWA\Protocol\Proto\Message\MessageHistoryBundle $var
     * @return $this
     */
    public function setMessageHistoryBundle($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\MessageHistoryBundle::class);
        $this->messageHistoryBundle = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncCommentMessage encCommentMessage = 71;</code>
     * @return \PhpWA\Protocol\Proto\Message\EncCommentMessage|null
     */
    public function getEncCommentMessage()
    {
        return $this->encCommentMessage;
    }

    public function hasEncCommentMessage()
    {
        return isset($this->encCommentMessage);
    }

    public function clearEncCommentMessage()
    {
        unset($this->encCommentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncCommentMessage encCommentMessage = 71;</code>
     * @param \PhpWA\Protocol\Proto\Message\EncCommentMessage $var
     * @return $this
     */
    public function setEncCommentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\EncCommentMessage::class);
        $this->encCommentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.BCallMessage bcallMessage = 72;</code>
     * @return \PhpWA\Protocol\Proto\Message\BCallMessage|null
     */
    public function getBcallMessage()
    {
        return $this->bcallMessage;
    }

    public function hasBcallMessage()
    {
        return isset($this->bcallMessage);
    }

    public function clearBcallMessage()
    {
        unset($this->bcallMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.BCallMessage bcallMessage = 72;</code>
     * @param \PhpWA\Protocol\Proto\Message\BCallMessage $var
     * @return $this
     */
    public function setBcallMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\BCallMessage::class);
        $this->bcallMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage lottieStickerMessage = 74;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getLottieStickerMessage()
    {
        return $this->lottieStickerMessage;
    }

    public function hasLottieStickerMessage()
    {
        return isset($this->lottieStickerMessage);
    }

    public function clearLottieStickerMessage()
    {
        unset($this->lottieStickerMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage lottieStickerMessage = 74;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setLottieStickerMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->lottieStickerMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EventMessage eventMessage = 75;</code>
     * @return \PhpWA\Protocol\Proto\Message\EventMessage|null
     */
    public function getEventMessage()
    {
        return $this->eventMessage;
    }

    public function hasEventMessage()
    {
        return isset($this->eventMessage);
    }

    public function clearEventMessage()
    {
        unset($this->eventMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EventMessage eventMessage = 75;</code>
     * @param \PhpWA\Protocol\Proto\Message\EventMessage $var
     * @return $this
     */
    public function setEventMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\EventMessage::class);
        $this->eventMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncEventResponseMessage encEventResponseMessage = 76;</code>
     * @return \PhpWA\Protocol\Proto\Message\EncEventResponseMessage|null
     */
    public function getEncEventResponseMessage()
    {
        return $this->encEventResponseMessage;
    }

    public function hasEncEventResponseMessage()
    {
        return isset($this->encEventResponseMessage);
    }

    public function clearEncEventResponseMessage()
    {
        unset($this->encEventResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.EncEventResponseMessage encEventResponseMessage = 76;</code>
     * @param \PhpWA\Protocol\Proto\Message\EncEventResponseMessage $var
     * @return $this
     */
    public function setEncEventResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\EncEventResponseMessage::class);
        $this->encEventResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CommentMessage commentMessage = 77;</code>
     * @return \PhpWA\Protocol\Proto\Message\CommentMessage|null
     */
    public function getCommentMessage()
    {
        return $this->commentMessage;
    }

    public function hasCommentMessage()
    {
        return isset($this->commentMessage);
    }

    public function clearCommentMessage()
    {
        unset($this->commentMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.CommentMessage commentMessage = 77;</code>
     * @param \PhpWA\Protocol\Proto\Message\CommentMessage $var
     * @return $this
     */
    public function setCommentMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\CommentMessage::class);
        $this->commentMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterAdminInviteMessage newsletterAdminInviteMessage = 78;</code>
     * @return \PhpWA\Protocol\Proto\Message\NewsletterAdminInviteMessage|null
     */
    public function getNewsletterAdminInviteMessage()
    {
        return $this->newsletterAdminInviteMessage;
    }

    public function hasNewsletterAdminInviteMessage()
    {
        return isset($this->newsletterAdminInviteMessage);
    }

    public function clearNewsletterAdminInviteMessage()
    {
        unset($this->newsletterAdminInviteMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterAdminInviteMessage newsletterAdminInviteMessage = 78;</code>
     * @param \PhpWA\Protocol\Proto\Message\NewsletterAdminInviteMessage $var
     * @return $this
     */
    public function setNewsletterAdminInviteMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\NewsletterAdminInviteMessage::class);
        $this->newsletterAdminInviteMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PlaceholderMessage placeholderMessage = 80;</code>
     * @return \PhpWA\Protocol\Proto\Message\PlaceholderMessage|null
     */
    public function getPlaceholderMessage()
    {
        return $this->placeholderMessage;
    }

    public function hasPlaceholderMessage()
    {
        return isset($this->placeholderMessage);
    }

    public function clearPlaceholderMessage()
    {
        unset($this->placeholderMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PlaceholderMessage placeholderMessage = 80;</code>
     * @param \PhpWA\Protocol\Proto\Message\PlaceholderMessage $var
     * @return $this
     */
    public function setPlaceholderMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PlaceholderMessage::class);
        $this->placeholderMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SecretEncryptedMessage secretEncryptedMessage = 82;</code>
     * @return \PhpWA\Protocol\Proto\Message\SecretEncryptedMessage|null
     */
    public function getSecretEncryptedMessage()
    {
        return $this->secretEncryptedMessage;
    }

    public function hasSecretEncryptedMessage()
    {
        return isset($this->secretEncryptedMessage);
    }

    public function clearSecretEncryptedMessage()
    {
        unset($this->secretEncryptedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.SecretEncryptedMessage secretEncryptedMessage = 82;</code>
     * @param \PhpWA\Protocol\Proto\Message\SecretEncryptedMessage $var
     * @return $this
     */
    public function setSecretEncryptedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\SecretEncryptedMessage::class);
        $this->secretEncryptedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.AlbumMessage albumMessage = 83;</code>
     * @return \PhpWA\Protocol\Proto\Message\AlbumMessage|null
     */
    public function getAlbumMessage()
    {
        return $this->albumMessage;
    }

    public function hasAlbumMessage()
    {
        return isset($this->albumMessage);
    }

    public function clearAlbumMessage()
    {
        unset($this->albumMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.AlbumMessage albumMessage = 83;</code>
     * @param \PhpWA\Protocol\Proto\Message\AlbumMessage $var
     * @return $this
     */
    public function setAlbumMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\AlbumMessage::class);
        $this->albumMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage eventCoverImage = 85;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getEventCoverImage()
    {
        return $this->eventCoverImage;
    }

    public function hasEventCoverImage()
    {
        return isset($this->eventCoverImage);
    }

    public function clearEventCoverImage()
    {
        unset($this->eventCoverImage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage eventCoverImage = 85;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setEventCoverImage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->eventCoverImage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerPackMessage stickerPackMessage = 86;</code>
     * @return \PhpWA\Protocol\Proto\Message\StickerPackMessage|null
     */
    public function getStickerPackMessage()
    {
        return $this->stickerPackMessage;
    }

    public function hasStickerPackMessage()
    {
        return isset($this->stickerPackMessage);
    }

    public function clearStickerPackMessage()
    {
        unset($this->stickerPackMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StickerPackMessage stickerPackMessage = 86;</code>
     * @param \PhpWA\Protocol\Proto\Message\StickerPackMessage $var
     * @return $this
     */
    public function setStickerPackMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StickerPackMessage::class);
        $this->stickerPackMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusMentionMessage = 87;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getStatusMentionMessage()
    {
        return $this->statusMentionMessage;
    }

    public function hasStatusMentionMessage()
    {
        return isset($this->statusMentionMessage);
    }

    public function clearStatusMentionMessage()
    {
        unset($this->statusMentionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusMentionMessage = 87;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setStatusMentionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->statusMentionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessage = 88;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage|null
     */
    public function getPollResultSnapshotMessage()
    {
        return $this->pollResultSnapshotMessage;
    }

    public function hasPollResultSnapshotMessage()
    {
        return isset($this->pollResultSnapshotMessage);
    }

    public function clearPollResultSnapshotMessage()
    {
        unset($this->pollResultSnapshotMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessage = 88;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage $var
     * @return $this
     */
    public function setPollResultSnapshotMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage::class);
        $this->pollResultSnapshotMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationOptionImageMessage = 90;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getPollCreationOptionImageMessage()
    {
        return $this->pollCreationOptionImageMessage;
    }

    public function hasPollCreationOptionImageMessage()
    {
        return isset($this->pollCreationOptionImageMessage);
    }

    public function clearPollCreationOptionImageMessage()
    {
        unset($this->pollCreationOptionImageMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationOptionImageMessage = 90;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setPollCreationOptionImageMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->pollCreationOptionImageMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage associatedChildMessage = 91;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getAssociatedChildMessage()
    {
        return $this->associatedChildMessage;
    }

    public function hasAssociatedChildMessage()
    {
        return isset($this->associatedChildMessage);
    }

    public function clearAssociatedChildMessage()
    {
        unset($this->associatedChildMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage associatedChildMessage = 91;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setAssociatedChildMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->associatedChildMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMentionMessage = 92;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getGroupStatusMentionMessage()
    {
        return $this->groupStatusMentionMessage;
    }

    public function hasGroupStatusMentionMessage()
    {
        return isset($this->groupStatusMentionMessage);
    }

    public function clearGroupStatusMentionMessage()
    {
        unset($this->groupStatusMentionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMentionMessage = 92;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setGroupStatusMentionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->groupStatusMentionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationMessageV4 = 93;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getPollCreationMessageV4()
    {
        return $this->pollCreationMessageV4;
    }

    public function hasPollCreationMessageV4()
    {
        return isset($this->pollCreationMessageV4);
    }

    public function clearPollCreationMessageV4()
    {
        unset($this->pollCreationMessageV4);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage pollCreationMessageV4 = 93;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setPollCreationMessageV4($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->pollCreationMessageV4 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusAddYours = 95;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getStatusAddYours()
    {
        return $this->statusAddYours;
    }

    public function hasStatusAddYours()
    {
        return isset($this->statusAddYours);
    }

    public function clearStatusAddYours()
    {
        unset($this->statusAddYours);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage statusAddYours = 95;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setStatusAddYours($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->statusAddYours = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessage = 96;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getGroupStatusMessage()
    {
        return $this->groupStatusMessage;
    }

    public function hasGroupStatusMessage()
    {
        return isset($this->groupStatusMessage);
    }

    public function clearGroupStatusMessage()
    {
        unset($this->groupStatusMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessage = 96;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setGroupStatusMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->groupStatusMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AIRichResponseMessage richResponseMessage = 97;</code>
     * @return \PhpWA\Protocol\Proto\AIRichResponseMessage|null
     */
    public function getRichResponseMessage()
    {
        return $this->richResponseMessage;
    }

    public function hasRichResponseMessage()
    {
        return isset($this->richResponseMessage);
    }

    public function clearRichResponseMessage()
    {
        unset($this->richResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.AIRichResponseMessage richResponseMessage = 97;</code>
     * @param \PhpWA\Protocol\Proto\AIRichResponseMessage $var
     * @return $this
     */
    public function setRichResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AIRichResponseMessage::class);
        $this->richResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusNotificationMessage statusNotificationMessage = 98;</code>
     * @return \PhpWA\Protocol\Proto\Message\StatusNotificationMessage|null
     */
    public function getStatusNotificationMessage()
    {
        return $this->statusNotificationMessage;
    }

    public function hasStatusNotificationMessage()
    {
        return isset($this->statusNotificationMessage);
    }

    public function clearStatusNotificationMessage()
    {
        unset($this->statusNotificationMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusNotificationMessage statusNotificationMessage = 98;</code>
     * @param \PhpWA\Protocol\Proto\Message\StatusNotificationMessage $var
     * @return $this
     */
    public function setStatusNotificationMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StatusNotificationMessage::class);
        $this->statusNotificationMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage limitSharingMessage = 99;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getLimitSharingMessage()
    {
        return $this->limitSharingMessage;
    }

    public function hasLimitSharingMessage()
    {
        return isset($this->limitSharingMessage);
    }

    public function clearLimitSharingMessage()
    {
        unset($this->limitSharingMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage limitSharingMessage = 99;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setLimitSharingMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->limitSharingMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botTaskMessage = 100;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getBotTaskMessage()
    {
        return $this->botTaskMessage;
    }

    public function hasBotTaskMessage()
    {
        return isset($this->botTaskMessage);
    }

    public function clearBotTaskMessage()
    {
        unset($this->botTaskMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botTaskMessage = 100;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setBotTaskMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->botTaskMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionMessage = 101;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getQuestionMessage()
    {
        return $this->questionMessage;
    }

    public function hasQuestionMessage()
    {
        return isset($this->questionMessage);
    }

    public function clearQuestionMessage()
    {
        unset($this->questionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionMessage = 101;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setQuestionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->questionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryNotice messageHistoryNotice = 102;</code>
     * @return \PhpWA\Protocol\Proto\Message\MessageHistoryNotice|null
     */
    public function getMessageHistoryNotice()
    {
        return $this->messageHistoryNotice;
    }

    public function hasMessageHistoryNotice()
    {
        return isset($this->messageHistoryNotice);
    }

    public function clearMessageHistoryNotice()
    {
        unset($this->messageHistoryNotice);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.MessageHistoryNotice messageHistoryNotice = 102;</code>
     * @param \PhpWA\Protocol\Proto\Message\MessageHistoryNotice $var
     * @return $this
     */
    public function setMessageHistoryNotice($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\MessageHistoryNotice::class);
        $this->messageHistoryNotice = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessageV2 = 103;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getGroupStatusMessageV2()
    {
        return $this->groupStatusMessageV2;
    }

    public function hasGroupStatusMessageV2()
    {
        return isset($this->groupStatusMessageV2);
    }

    public function clearGroupStatusMessageV2()
    {
        unset($this->groupStatusMessageV2);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage groupStatusMessageV2 = 103;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setGroupStatusMessageV2($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->groupStatusMessageV2 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botForwardedMessage = 104;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getBotForwardedMessage()
    {
        return $this->botForwardedMessage;
    }

    public function hasBotForwardedMessage()
    {
        return isset($this->botForwardedMessage);
    }

    public function clearBotForwardedMessage()
    {
        unset($this->botForwardedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage botForwardedMessage = 104;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setBotForwardedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->botForwardedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuestionAnswerMessage statusQuestionAnswerMessage = 105;</code>
     * @return \PhpWA\Protocol\Proto\Message\StatusQuestionAnswerMessage|null
     */
    public function getStatusQuestionAnswerMessage()
    {
        return $this->statusQuestionAnswerMessage;
    }

    public function hasStatusQuestionAnswerMessage()
    {
        return isset($this->statusQuestionAnswerMessage);
    }

    public function clearStatusQuestionAnswerMessage()
    {
        unset($this->statusQuestionAnswerMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuestionAnswerMessage statusQuestionAnswerMessage = 105;</code>
     * @param \PhpWA\Protocol\Proto\Message\StatusQuestionAnswerMessage $var
     * @return $this
     */
    public function setStatusQuestionAnswerMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StatusQuestionAnswerMessage::class);
        $this->statusQuestionAnswerMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionReplyMessage = 106;</code>
     * @return \PhpWA\Protocol\Proto\Message\FutureProofMessage|null
     */
    public function getQuestionReplyMessage()
    {
        return $this->questionReplyMessage;
    }

    public function hasQuestionReplyMessage()
    {
        return isset($this->questionReplyMessage);
    }

    public function clearQuestionReplyMessage()
    {
        unset($this->questionReplyMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.FutureProofMessage questionReplyMessage = 106;</code>
     * @param \PhpWA\Protocol\Proto\Message\FutureProofMessage $var
     * @return $this
     */
    public function setQuestionReplyMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\FutureProofMessage::class);
        $this->questionReplyMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.QuestionResponseMessage questionResponseMessage = 107;</code>
     * @return \PhpWA\Protocol\Proto\Message\QuestionResponseMessage|null
     */
    public function getQuestionResponseMessage()
    {
        return $this->questionResponseMessage;
    }

    public function hasQuestionResponseMessage()
    {
        return isset($this->questionResponseMessage);
    }

    public function clearQuestionResponseMessage()
    {
        unset($this->questionResponseMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.QuestionResponseMessage questionResponseMessage = 107;</code>
     * @param \PhpWA\Protocol\Proto\Message\QuestionResponseMessage $var
     * @return $this
     */
    public function setQuestionResponseMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\QuestionResponseMessage::class);
        $this->questionResponseMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuotedMessage statusQuotedMessage = 109;</code>
     * @return \PhpWA\Protocol\Proto\Message\StatusQuotedMessage|null
     */
    public function getStatusQuotedMessage()
    {
        return $this->statusQuotedMessage;
    }

    public function hasStatusQuotedMessage()
    {
        return isset($this->statusQuotedMessage);
    }

    public function clearStatusQuotedMessage()
    {
        unset($this->statusQuotedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusQuotedMessage statusQuotedMessage = 109;</code>
     * @param \PhpWA\Protocol\Proto\Message\StatusQuotedMessage $var
     * @return $this
     */
    public function setStatusQuotedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StatusQuotedMessage::class);
        $this->statusQuotedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusStickerInteractionMessage statusStickerInteractionMessage = 110;</code>
     * @return \PhpWA\Protocol\Proto\Message\StatusStickerInteractionMessage|null
     */
    public function getStatusStickerInteractionMessage()
    {
        return $this->statusStickerInteractionMessage;
    }

    public function hasStatusStickerInteractionMessage()
    {
        return isset($this->statusStickerInteractionMessage);
    }

    public function clearStatusStickerInteractionMessage()
    {
        unset($this->statusStickerInteractionMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.StatusStickerInteractionMessage statusStickerInteractionMessage = 110;</code>
     * @param \PhpWA\Protocol\Proto\Message\StatusStickerInteractionMessage $var
     * @return $this
     */
    public function setStatusStickerInteractionMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\StatusStickerInteractionMessage::class);
        $this->statusStickerInteractionMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV5 = 111;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollCreationMessage|null
     */
    public function getPollCreationMessageV5()
    {
        return $this->pollCreationMessageV5;
    }

    public function hasPollCreationMessageV5()
    {
        return isset($this->pollCreationMessageV5);
    }

    public function clearPollCreationMessageV5()
    {
        unset($this->pollCreationMessageV5);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollCreationMessage pollCreationMessageV5 = 111;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollCreationMessage $var
     * @return $this
     */
    public function setPollCreationMessageV5($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollCreationMessage::class);
        $this->pollCreationMessageV5 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113;</code>
     * @return \PhpWA\Protocol\Proto\Message\NewsletterFollowerInviteMessage|null
     */
    public function getNewsletterFollowerInviteMessageV2()
    {
        return $this->newsletterFollowerInviteMessageV2;
    }

    public function hasNewsletterFollowerInviteMessageV2()
    {
        return isset($this->newsletterFollowerInviteMessageV2);
    }

    public function clearNewsletterFollowerInviteMessageV2()
    {
        unset($this->newsletterFollowerInviteMessageV2);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113;</code>
     * @param \PhpWA\Protocol\Proto\Message\NewsletterFollowerInviteMessage $var
     * @return $this
     */
    public function setNewsletterFollowerInviteMessageV2($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\NewsletterFollowerInviteMessage::class);
        $this->newsletterFollowerInviteMessageV2 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessageV3 = 114;</code>
     * @return \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage|null
     */
    public function getPollResultSnapshotMessageV3()
    {
        return $this->pollResultSnapshotMessageV3;
    }

    public function hasPollResultSnapshotMessageV3()
    {
        return isset($this->pollResultSnapshotMessageV3);
    }

    public function clearPollResultSnapshotMessageV3()
    {
        unset($this->pollResultSnapshotMessageV3);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.PollResultSnapshotMessage pollResultSnapshotMessageV3 = 114;</code>
     * @param \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage $var
     * @return $this
     */
    public function setPollResultSnapshotMessageV3($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PollResultSnapshotMessage::class);
        $this->pollResultSnapshotMessageV3 = $var;

        return $this;
    }

}

