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

namespace PhpWA\Protocol\Proto\Message;

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

/**
 * Generated from protobuf message <code>proto.Message.ProtocolMessage</code>
 */
class ProtocolMessage extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.MessageKey key = 1;</code>
     */
    protected $key = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage.Type type = 2;</code>
     */
    protected $type = null;
    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 4;</code>
     */
    protected $ephemeralExpiration = null;
    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 5;</code>
     */
    protected $ephemeralSettingTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.HistorySyncNotification historySyncNotification = 6;</code>
     */
    protected $historySyncNotification = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.AppStateSyncKeyShare appStateSyncKeyShare = 7;</code>
     */
    protected $appStateSyncKeyShare = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.AppStateSyncKeyRequest appStateSyncKeyRequest = 8;</code>
     */
    protected $appStateSyncKeyRequest = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 9;</code>
     */
    protected $initialSecurityNotificationSettingSync = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.AppStateFatalExceptionNotification appStateFatalExceptionNotification = 10;</code>
     */
    protected $appStateFatalExceptionNotification = null;
    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 11;</code>
     */
    protected $disappearingMode = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message editedMessage = 14;</code>
     */
    protected $editedMessage = null;
    /**
     * Generated from protobuf field <code>optional int64 timestampMs = 15;</code>
     */
    protected $timestampMs = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PeerDataOperationRequestMessage peerDataOperationRequestMessage = 16;</code>
     */
    protected $peerDataOperationRequestMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.PeerDataOperationRequestResponseMessage peerDataOperationRequestResponseMessage = 17;</code>
     */
    protected $peerDataOperationRequestResponseMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage botFeedbackMessage = 18;</code>
     */
    protected $botFeedbackMessage = null;
    /**
     * Generated from protobuf field <code>optional string invokerJid = 19;</code>
     */
    protected $invokerJid = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.RequestWelcomeMessageMetadata requestWelcomeMessageMetadata = 20;</code>
     */
    protected $requestWelcomeMessageMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.MediaNotifyMessage mediaNotifyMessage = 21;</code>
     */
    protected $mediaNotifyMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.CloudAPIThreadControlNotification cloudApiThreadControlNotification = 22;</code>
     */
    protected $cloudApiThreadControlNotification = null;
    /**
     * Generated from protobuf field <code>optional .proto.LIDMigrationMappingSyncMessage lidMigrationMappingSyncMessage = 23;</code>
     */
    protected $lidMigrationMappingSyncMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.LimitSharing limitSharing = 24;</code>
     */
    protected $limitSharing = null;
    /**
     * Generated from protobuf field <code>optional bytes aiPsiMetadata = 25;</code>
     */
    protected $aiPsiMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.AIQueryFanout aiQueryFanout = 26;</code>
     */
    protected $aiQueryFanout = null;
    /**
     * Generated from protobuf field <code>optional .proto.MemberLabel memberLabel = 27;</code>
     */
    protected $memberLabel = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \PhpWA\Protocol\Proto\MessageKey $key
     *     @type int $type
     *     @type int $ephemeralExpiration
     *     @type int|string $ephemeralSettingTimestamp
     *     @type \PhpWA\Protocol\Proto\Message\HistorySyncNotification $historySyncNotification
     *     @type \PhpWA\Protocol\Proto\Message\AppStateSyncKeyShare $appStateSyncKeyShare
     *     @type \PhpWA\Protocol\Proto\Message\AppStateSyncKeyRequest $appStateSyncKeyRequest
     *     @type \PhpWA\Protocol\Proto\Message\InitialSecurityNotificationSettingSync $initialSecurityNotificationSettingSync
     *     @type \PhpWA\Protocol\Proto\Message\AppStateFatalExceptionNotification $appStateFatalExceptionNotification
     *     @type \PhpWA\Protocol\Proto\DisappearingMode $disappearingMode
     *     @type \PhpWA\Protocol\Proto\Message $editedMessage
     *     @type int|string $timestampMs
     *     @type \PhpWA\Protocol\Proto\Message\PeerDataOperationRequestMessage $peerDataOperationRequestMessage
     *     @type \PhpWA\Protocol\Proto\Message\PeerDataOperationRequestResponseMessage $peerDataOperationRequestResponseMessage
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage $botFeedbackMessage
     *     @type string $invokerJid
     *     @type \PhpWA\Protocol\Proto\Message\RequestWelcomeMessageMetadata $requestWelcomeMessageMetadata
     *     @type \PhpWA\Protocol\Proto\MediaNotifyMessage $mediaNotifyMessage
     *     @type \PhpWA\Protocol\Proto\Message\CloudAPIThreadControlNotification $cloudApiThreadControlNotification
     *     @type \PhpWA\Protocol\Proto\LIDMigrationMappingSyncMessage $lidMigrationMappingSyncMessage
     *     @type \PhpWA\Protocol\Proto\LimitSharing $limitSharing
     *     @type string $aiPsiMetadata
     *     @type \PhpWA\Protocol\Proto\AIQueryFanout $aiQueryFanout
     *     @type \PhpWA\Protocol\Proto\MemberLabel $memberLabel
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey key = 1;</code>
     * @return \PhpWA\Protocol\Proto\MessageKey|null
     */
    public function getKey()
    {
        return $this->key;
    }

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

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage.Type type = 2;</code>
     * @return int
     */
    public function getType()
    {
        return isset($this->type) ? $this->type : 0;
    }

    public function hasType()
    {
        return isset($this->type);
    }

    public function clearType()
    {
        unset($this->type);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.ProtocolMessage.Type type = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\Message\ProtocolMessage\Type::class);
        $this->type = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 4;</code>
     * @return int
     */
    public function getEphemeralExpiration()
    {
        return isset($this->ephemeralExpiration) ? $this->ephemeralExpiration : 0;
    }

    public function hasEphemeralExpiration()
    {
        return isset($this->ephemeralExpiration);
    }

    public function clearEphemeralExpiration()
    {
        unset($this->ephemeralExpiration);
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setEphemeralExpiration($var)
    {
        GPBUtil::checkUint32($var);
        $this->ephemeralExpiration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 5;</code>
     * @return int|string
     */
    public function getEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp) ? $this->ephemeralSettingTimestamp : 0;
    }

    public function hasEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp);
    }

    public function clearEphemeralSettingTimestamp()
    {
        unset($this->ephemeralSettingTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 5;</code>
     * @param int|string $var
     * @return $this
     */
    public function setEphemeralSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->ephemeralSettingTimestamp = $var;

        return $this;
    }

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

    public function hasHistorySyncNotification()
    {
        return isset($this->historySyncNotification);
    }

    public function clearHistorySyncNotification()
    {
        unset($this->historySyncNotification);
    }

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

        return $this;
    }

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

    public function hasAppStateSyncKeyShare()
    {
        return isset($this->appStateSyncKeyShare);
    }

    public function clearAppStateSyncKeyShare()
    {
        unset($this->appStateSyncKeyShare);
    }

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

        return $this;
    }

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

    public function hasAppStateSyncKeyRequest()
    {
        return isset($this->appStateSyncKeyRequest);
    }

    public function clearAppStateSyncKeyRequest()
    {
        unset($this->appStateSyncKeyRequest);
    }

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

        return $this;
    }

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

    public function hasInitialSecurityNotificationSettingSync()
    {
        return isset($this->initialSecurityNotificationSettingSync);
    }

    public function clearInitialSecurityNotificationSettingSync()
    {
        unset($this->initialSecurityNotificationSettingSync);
    }

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

        return $this;
    }

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

    public function hasAppStateFatalExceptionNotification()
    {
        return isset($this->appStateFatalExceptionNotification);
    }

    public function clearAppStateFatalExceptionNotification()
    {
        unset($this->appStateFatalExceptionNotification);
    }

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

        return $this;
    }

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

    public function hasDisappearingMode()
    {
        return isset($this->disappearingMode);
    }

    public function clearDisappearingMode()
    {
        unset($this->disappearingMode);
    }

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

        return $this;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 timestampMs = 15;</code>
     * @return int|string
     */
    public function getTimestampMs()
    {
        return isset($this->timestampMs) ? $this->timestampMs : 0;
    }

    public function hasTimestampMs()
    {
        return isset($this->timestampMs);
    }

    public function clearTimestampMs()
    {
        unset($this->timestampMs);
    }

    /**
     * Generated from protobuf field <code>optional int64 timestampMs = 15;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTimestampMs($var)
    {
        GPBUtil::checkInt64($var);
        $this->timestampMs = $var;

        return $this;
    }

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

    public function hasPeerDataOperationRequestMessage()
    {
        return isset($this->peerDataOperationRequestMessage);
    }

    public function clearPeerDataOperationRequestMessage()
    {
        unset($this->peerDataOperationRequestMessage);
    }

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

        return $this;
    }

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

    public function hasPeerDataOperationRequestResponseMessage()
    {
        return isset($this->peerDataOperationRequestResponseMessage);
    }

    public function clearPeerDataOperationRequestResponseMessage()
    {
        unset($this->peerDataOperationRequestResponseMessage);
    }

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

        return $this;
    }

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

    public function hasBotFeedbackMessage()
    {
        return isset($this->botFeedbackMessage);
    }

    public function clearBotFeedbackMessage()
    {
        unset($this->botFeedbackMessage);
    }

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

        return $this;
    }

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

    public function hasInvokerJid()
    {
        return isset($this->invokerJid);
    }

    public function clearInvokerJid()
    {
        unset($this->invokerJid);
    }

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

        return $this;
    }

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

    public function hasRequestWelcomeMessageMetadata()
    {
        return isset($this->requestWelcomeMessageMetadata);
    }

    public function clearRequestWelcomeMessageMetadata()
    {
        unset($this->requestWelcomeMessageMetadata);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaNotifyMessage mediaNotifyMessage = 21;</code>
     * @return \PhpWA\Protocol\Proto\MediaNotifyMessage|null
     */
    public function getMediaNotifyMessage()
    {
        return $this->mediaNotifyMessage;
    }

    public function hasMediaNotifyMessage()
    {
        return isset($this->mediaNotifyMessage);
    }

    public function clearMediaNotifyMessage()
    {
        unset($this->mediaNotifyMessage);
    }

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

        return $this;
    }

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

    public function hasCloudApiThreadControlNotification()
    {
        return isset($this->cloudApiThreadControlNotification);
    }

    public function clearCloudApiThreadControlNotification()
    {
        unset($this->cloudApiThreadControlNotification);
    }

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

        return $this;
    }

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

    public function hasLidMigrationMappingSyncMessage()
    {
        return isset($this->lidMigrationMappingSyncMessage);
    }

    public function clearLidMigrationMappingSyncMessage()
    {
        unset($this->lidMigrationMappingSyncMessage);
    }

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

        return $this;
    }

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

    public function hasLimitSharing()
    {
        return isset($this->limitSharing);
    }

    public function clearLimitSharing()
    {
        unset($this->limitSharing);
    }

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

        return $this;
    }

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

    public function hasAiPsiMetadata()
    {
        return isset($this->aiPsiMetadata);
    }

    public function clearAiPsiMetadata()
    {
        unset($this->aiPsiMetadata);
    }

    /**
     * Generated from protobuf field <code>optional bytes aiPsiMetadata = 25;</code>
     * @param string $var
     * @return $this
     */
    public function setAiPsiMetadata($var)
    {
        GPBUtil::checkString($var, False);
        $this->aiPsiMetadata = $var;

        return $this;
    }

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

    public function hasAiQueryFanout()
    {
        return isset($this->aiQueryFanout);
    }

    public function clearAiQueryFanout()
    {
        unset($this->aiQueryFanout);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MemberLabel memberLabel = 27;</code>
     * @return \PhpWA\Protocol\Proto\MemberLabel|null
     */
    public function getMemberLabel()
    {
        return $this->memberLabel;
    }

    public function hasMemberLabel()
    {
        return isset($this->memberLabel);
    }

    public function clearMemberLabel()
    {
        unset($this->memberLabel);
    }

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

        return $this;
    }

}

