<?php
 
 
 

namespace PhpWA\Protocol\Proto;

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




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


    protected $id = null;
    


    private $messages;
    


    protected $newJid = null;
    


    protected $oldJid = null;
    


    protected $lastMsgTimestamp = null;
    


    protected $unreadCount = null;
    


    protected $readOnly = null;
    


    protected $endOfHistoryTransfer = null;
    


    protected $ephemeralExpiration = null;
    


    protected $ephemeralSettingTimestamp = null;
    


    protected $endOfHistoryTransferType = null;
    


    protected $conversationTimestamp = null;
    


    protected $name = null;
    


    protected $pHash = null;
    


    protected $notSpam = null;
    


    protected $archived = null;
    


    protected $disappearingMode = null;
    


    protected $unreadMentionCount = null;
    


    protected $markedAsUnread = null;
    


    private $participant;
    


    protected $tcToken = null;
    


    protected $tcTokenTimestamp = null;
    


    protected $contactPrimaryIdentityKey = null;
    


    protected $pinned = null;
    


    protected $muteEndTime = null;
    


    protected $wallpaper = null;
    


    protected $mediaVisibility = null;
    


    protected $tcTokenSenderTimestamp = null;
    


    protected $suspended = null;
    


    protected $terminated = null;
    


    protected $createdAt = null;
    


    protected $createdBy = null;
    


    protected $description = null;
    


    protected $support = null;
    


    protected $isParentGroup = null;
    


    protected $parentGroupId = null;
    


    protected $isDefaultSubgroup = null;
    


    protected $displayName = null;
    


    protected $pnJid = null;
    


    protected $shareOwnPn = null;
    


    protected $pnhDuplicateLidThread = null;
    


    protected $lidJid = null;
    


    protected $username = null;
    


    protected $lidOriginType = null;
    


    protected $commentsCount = null;
    


    protected $locked = null;
    


    protected $systemMessageToInsert = null;
    


    protected $capiCreatedGroup = null;
    


    protected $accountLid = null;
    


    protected $limitSharing = null;
    


    protected $limitSharingSettingTimestamp = null;
    


    protected $limitSharingTrigger = null;
    


    protected $limitSharingInitiatedByMe = null;
    


    protected $maibaAiThreadEnabled = null;

    





























































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

    



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

    public function hasId()
    {
        return isset($this->id);
    }

    public function clearId()
    {
        unset($this->id);
    }

    




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

        return $this;
    }

    



    public function getMessages()
    {
        return $this->messages;
    }

    




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

        return $this;
    }

    



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

    public function hasNewJid()
    {
        return isset($this->newJid);
    }

    public function clearNewJid()
    {
        unset($this->newJid);
    }

    




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

        return $this;
    }

    



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

    public function hasOldJid()
    {
        return isset($this->oldJid);
    }

    public function clearOldJid()
    {
        unset($this->oldJid);
    }

    




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

        return $this;
    }

    



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

    public function hasLastMsgTimestamp()
    {
        return isset($this->lastMsgTimestamp);
    }

    public function clearLastMsgTimestamp()
    {
        unset($this->lastMsgTimestamp);
    }

    




    public function setLastMsgTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->lastMsgTimestamp = $var;

        return $this;
    }

    



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

    public function hasUnreadCount()
    {
        return isset($this->unreadCount);
    }

    public function clearUnreadCount()
    {
        unset($this->unreadCount);
    }

    




    public function setUnreadCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->unreadCount = $var;

        return $this;
    }

    



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

    public function hasReadOnly()
    {
        return isset($this->readOnly);
    }

    public function clearReadOnly()
    {
        unset($this->readOnly);
    }

    




    public function setReadOnly($var)
    {
        GPBUtil::checkBool($var);
        $this->readOnly = $var;

        return $this;
    }

    



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

    public function hasEndOfHistoryTransfer()
    {
        return isset($this->endOfHistoryTransfer);
    }

    public function clearEndOfHistoryTransfer()
    {
        unset($this->endOfHistoryTransfer);
    }

    




    public function setEndOfHistoryTransfer($var)
    {
        GPBUtil::checkBool($var);
        $this->endOfHistoryTransfer = $var;

        return $this;
    }

    



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

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

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

    




    public function setEphemeralExpiration($var)
    {
        GPBUtil::checkUint32($var);
        $this->ephemeralExpiration = $var;

        return $this;
    }

    



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

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

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

    




    public function setEphemeralSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->ephemeralSettingTimestamp = $var;

        return $this;
    }

    



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

    public function hasEndOfHistoryTransferType()
    {
        return isset($this->endOfHistoryTransferType);
    }

    public function clearEndOfHistoryTransferType()
    {
        unset($this->endOfHistoryTransferType);
    }

    




    public function setEndOfHistoryTransferType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\Conversation\EndOfHistoryTransferType::class);
        $this->endOfHistoryTransferType = $var;

        return $this;
    }

    



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

    public function hasConversationTimestamp()
    {
        return isset($this->conversationTimestamp);
    }

    public function clearConversationTimestamp()
    {
        unset($this->conversationTimestamp);
    }

    




    public function setConversationTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->conversationTimestamp = $var;

        return $this;
    }

    



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

    public function hasName()
    {
        return isset($this->name);
    }

    public function clearName()
    {
        unset($this->name);
    }

    




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

        return $this;
    }

    



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

    public function hasPHash()
    {
        return isset($this->pHash);
    }

    public function clearPHash()
    {
        unset($this->pHash);
    }

    




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

        return $this;
    }

    



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

    public function hasNotSpam()
    {
        return isset($this->notSpam);
    }

    public function clearNotSpam()
    {
        unset($this->notSpam);
    }

    




    public function setNotSpam($var)
    {
        GPBUtil::checkBool($var);
        $this->notSpam = $var;

        return $this;
    }

    



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

    public function hasArchived()
    {
        return isset($this->archived);
    }

    public function clearArchived()
    {
        unset($this->archived);
    }

    




    public function setArchived($var)
    {
        GPBUtil::checkBool($var);
        $this->archived = $var;

        return $this;
    }

    



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

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

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

    




    public function setDisappearingMode($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\DisappearingMode::class);
        $this->disappearingMode = $var;

        return $this;
    }

    



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

    public function hasUnreadMentionCount()
    {
        return isset($this->unreadMentionCount);
    }

    public function clearUnreadMentionCount()
    {
        unset($this->unreadMentionCount);
    }

    




    public function setUnreadMentionCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->unreadMentionCount = $var;

        return $this;
    }

    



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

    public function hasMarkedAsUnread()
    {
        return isset($this->markedAsUnread);
    }

    public function clearMarkedAsUnread()
    {
        unset($this->markedAsUnread);
    }

    




    public function setMarkedAsUnread($var)
    {
        GPBUtil::checkBool($var);
        $this->markedAsUnread = $var;

        return $this;
    }

    



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

    




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

        return $this;
    }

    



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

    public function hasTcToken()
    {
        return isset($this->tcToken);
    }

    public function clearTcToken()
    {
        unset($this->tcToken);
    }

    




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

        return $this;
    }

    



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

    public function hasTcTokenTimestamp()
    {
        return isset($this->tcTokenTimestamp);
    }

    public function clearTcTokenTimestamp()
    {
        unset($this->tcTokenTimestamp);
    }

    




    public function setTcTokenTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->tcTokenTimestamp = $var;

        return $this;
    }

    



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

    public function hasContactPrimaryIdentityKey()
    {
        return isset($this->contactPrimaryIdentityKey);
    }

    public function clearContactPrimaryIdentityKey()
    {
        unset($this->contactPrimaryIdentityKey);
    }

    




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

        return $this;
    }

    



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

    public function hasPinned()
    {
        return isset($this->pinned);
    }

    public function clearPinned()
    {
        unset($this->pinned);
    }

    




    public function setPinned($var)
    {
        GPBUtil::checkUint32($var);
        $this->pinned = $var;

        return $this;
    }

    



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

    public function hasMuteEndTime()
    {
        return isset($this->muteEndTime);
    }

    public function clearMuteEndTime()
    {
        unset($this->muteEndTime);
    }

    




    public function setMuteEndTime($var)
    {
        GPBUtil::checkUint64($var);
        $this->muteEndTime = $var;

        return $this;
    }

    



    public function getWallpaper()
    {
        return $this->wallpaper;
    }

    public function hasWallpaper()
    {
        return isset($this->wallpaper);
    }

    public function clearWallpaper()
    {
        unset($this->wallpaper);
    }

    




    public function setWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->wallpaper = $var;

        return $this;
    }

    



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

    public function hasMediaVisibility()
    {
        return isset($this->mediaVisibility);
    }

    public function clearMediaVisibility()
    {
        unset($this->mediaVisibility);
    }

    




    public function setMediaVisibility($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MediaVisibility::class);
        $this->mediaVisibility = $var;

        return $this;
    }

    



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

    public function hasTcTokenSenderTimestamp()
    {
        return isset($this->tcTokenSenderTimestamp);
    }

    public function clearTcTokenSenderTimestamp()
    {
        unset($this->tcTokenSenderTimestamp);
    }

    




    public function setTcTokenSenderTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->tcTokenSenderTimestamp = $var;

        return $this;
    }

    



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

    public function hasSuspended()
    {
        return isset($this->suspended);
    }

    public function clearSuspended()
    {
        unset($this->suspended);
    }

    




    public function setSuspended($var)
    {
        GPBUtil::checkBool($var);
        $this->suspended = $var;

        return $this;
    }

    



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

    public function hasTerminated()
    {
        return isset($this->terminated);
    }

    public function clearTerminated()
    {
        unset($this->terminated);
    }

    




    public function setTerminated($var)
    {
        GPBUtil::checkBool($var);
        $this->terminated = $var;

        return $this;
    }

    



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

    public function hasCreatedAt()
    {
        return isset($this->createdAt);
    }

    public function clearCreatedAt()
    {
        unset($this->createdAt);
    }

    




    public function setCreatedAt($var)
    {
        GPBUtil::checkUint64($var);
        $this->createdAt = $var;

        return $this;
    }

    



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

    public function hasCreatedBy()
    {
        return isset($this->createdBy);
    }

    public function clearCreatedBy()
    {
        unset($this->createdBy);
    }

    




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

        return $this;
    }

    



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

    public function hasDescription()
    {
        return isset($this->description);
    }

    public function clearDescription()
    {
        unset($this->description);
    }

    




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

        return $this;
    }

    



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

    public function hasSupport()
    {
        return isset($this->support);
    }

    public function clearSupport()
    {
        unset($this->support);
    }

    




    public function setSupport($var)
    {
        GPBUtil::checkBool($var);
        $this->support = $var;

        return $this;
    }

    



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

    public function hasIsParentGroup()
    {
        return isset($this->isParentGroup);
    }

    public function clearIsParentGroup()
    {
        unset($this->isParentGroup);
    }

    




    public function setIsParentGroup($var)
    {
        GPBUtil::checkBool($var);
        $this->isParentGroup = $var;

        return $this;
    }

    



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

    public function hasParentGroupId()
    {
        return isset($this->parentGroupId);
    }

    public function clearParentGroupId()
    {
        unset($this->parentGroupId);
    }

    




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

        return $this;
    }

    



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

    public function hasIsDefaultSubgroup()
    {
        return isset($this->isDefaultSubgroup);
    }

    public function clearIsDefaultSubgroup()
    {
        unset($this->isDefaultSubgroup);
    }

    




    public function setIsDefaultSubgroup($var)
    {
        GPBUtil::checkBool($var);
        $this->isDefaultSubgroup = $var;

        return $this;
    }

    



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

    public function hasDisplayName()
    {
        return isset($this->displayName);
    }

    public function clearDisplayName()
    {
        unset($this->displayName);
    }

    




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

        return $this;
    }

    



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

    public function hasPnJid()
    {
        return isset($this->pnJid);
    }

    public function clearPnJid()
    {
        unset($this->pnJid);
    }

    




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

        return $this;
    }

    



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

    public function hasShareOwnPn()
    {
        return isset($this->shareOwnPn);
    }

    public function clearShareOwnPn()
    {
        unset($this->shareOwnPn);
    }

    




    public function setShareOwnPn($var)
    {
        GPBUtil::checkBool($var);
        $this->shareOwnPn = $var;

        return $this;
    }

    



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

    public function hasPnhDuplicateLidThread()
    {
        return isset($this->pnhDuplicateLidThread);
    }

    public function clearPnhDuplicateLidThread()
    {
        unset($this->pnhDuplicateLidThread);
    }

    




    public function setPnhDuplicateLidThread($var)
    {
        GPBUtil::checkBool($var);
        $this->pnhDuplicateLidThread = $var;

        return $this;
    }

    



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

    public function hasLidJid()
    {
        return isset($this->lidJid);
    }

    public function clearLidJid()
    {
        unset($this->lidJid);
    }

    




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

        return $this;
    }

    



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

    public function hasUsername()
    {
        return isset($this->username);
    }

    public function clearUsername()
    {
        unset($this->username);
    }

    




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

        return $this;
    }

    



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

    public function hasLidOriginType()
    {
        return isset($this->lidOriginType);
    }

    public function clearLidOriginType()
    {
        unset($this->lidOriginType);
    }

    




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

        return $this;
    }

    



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

    public function hasCommentsCount()
    {
        return isset($this->commentsCount);
    }

    public function clearCommentsCount()
    {
        unset($this->commentsCount);
    }

    




    public function setCommentsCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->commentsCount = $var;

        return $this;
    }

    



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

    public function hasLocked()
    {
        return isset($this->locked);
    }

    public function clearLocked()
    {
        unset($this->locked);
    }

    




    public function setLocked($var)
    {
        GPBUtil::checkBool($var);
        $this->locked = $var;

        return $this;
    }

    



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

    public function hasSystemMessageToInsert()
    {
        return isset($this->systemMessageToInsert);
    }

    public function clearSystemMessageToInsert()
    {
        unset($this->systemMessageToInsert);
    }

    




    public function setSystemMessageToInsert($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\PrivacySystemMessage::class);
        $this->systemMessageToInsert = $var;

        return $this;
    }

    



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

    public function hasCapiCreatedGroup()
    {
        return isset($this->capiCreatedGroup);
    }

    public function clearCapiCreatedGroup()
    {
        unset($this->capiCreatedGroup);
    }

    




    public function setCapiCreatedGroup($var)
    {
        GPBUtil::checkBool($var);
        $this->capiCreatedGroup = $var;

        return $this;
    }

    



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

    public function hasAccountLid()
    {
        return isset($this->accountLid);
    }

    public function clearAccountLid()
    {
        unset($this->accountLid);
    }

    




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

        return $this;
    }

    



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

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

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

    




    public function setLimitSharing($var)
    {
        GPBUtil::checkBool($var);
        $this->limitSharing = $var;

        return $this;
    }

    



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

    public function hasLimitSharingSettingTimestamp()
    {
        return isset($this->limitSharingSettingTimestamp);
    }

    public function clearLimitSharingSettingTimestamp()
    {
        unset($this->limitSharingSettingTimestamp);
    }

    




    public function setLimitSharingSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->limitSharingSettingTimestamp = $var;

        return $this;
    }

    



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

    public function hasLimitSharingTrigger()
    {
        return isset($this->limitSharingTrigger);
    }

    public function clearLimitSharingTrigger()
    {
        unset($this->limitSharingTrigger);
    }

    




    public function setLimitSharingTrigger($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\LimitSharing\TriggerType::class);
        $this->limitSharingTrigger = $var;

        return $this;
    }

    



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

    public function hasLimitSharingInitiatedByMe()
    {
        return isset($this->limitSharingInitiatedByMe);
    }

    public function clearLimitSharingInitiatedByMe()
    {
        unset($this->limitSharingInitiatedByMe);
    }

    




    public function setLimitSharingInitiatedByMe($var)
    {
        GPBUtil::checkBool($var);
        $this->limitSharingInitiatedByMe = $var;

        return $this;
    }

    



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

    public function hasMaibaAiThreadEnabled()
    {
        return isset($this->maibaAiThreadEnabled);
    }

    public function clearMaibaAiThreadEnabled()
    {
        unset($this->maibaAiThreadEnabled);
    }

    




    public function setMaibaAiThreadEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->maibaAiThreadEnabled = $var;

        return $this;
    }

}

