<?php
 
 
 

namespace PhpWA\Protocol\Proto;

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




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


    protected $avatarMetadata = null;
    


    protected $personaId = null;
    


    protected $pluginMetadata = null;
    


    protected $suggestedPromptMetadata = null;
    


    protected $invokerJid = null;
    


    protected $sessionMetadata = null;
    


    protected $memuMetadata = null;
    


    protected $timezone = null;
    


    protected $reminderMetadata = null;
    


    protected $modelMetadata = null;
    


    protected $messageDisclaimerText = null;
    


    protected $progressIndicatorMetadata = null;
    


    protected $capabilityMetadata = null;
    


    protected $imagineMetadata = null;
    


    protected $memoryMetadata = null;
    


    protected $renderingMetadata = null;
    


    protected $botMetricsMetadata = null;
    


    protected $botLinkedAccountsMetadata = null;
    


    protected $richResponseSourcesMetadata = null;
    


    protected $aiConversationContext = null;
    


    protected $botPromotionMessageMetadata = null;
    


    protected $botModeSelectionMetadata = null;
    


    protected $botQuotaMetadata = null;
    


    protected $botAgeCollectionMetadata = null;
    


    protected $conversationStarterPromptId = null;
    


    protected $botResponseId = null;
    


    protected $verificationMetadata = null;
    


    protected $unifiedResponseMutation = null;
    


    protected $botMessageOriginMetadata = null;
    


    protected $inThreadSurveyMetadata = null;
    


    protected $botThreadInfo = null;
    


    protected $regenerateMetadata = null;
    


    protected $sessionTransparencyMetadata = null;
    


    protected $internalMetadata = null;

    









































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

    



    public function getAvatarMetadata()
    {
        return $this->avatarMetadata;
    }

    public function hasAvatarMetadata()
    {
        return isset($this->avatarMetadata);
    }

    public function clearAvatarMetadata()
    {
        unset($this->avatarMetadata);
    }

    




    public function setAvatarMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotAvatarMetadata::class);
        $this->avatarMetadata = $var;

        return $this;
    }

    



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

    public function hasPersonaId()
    {
        return isset($this->personaId);
    }

    public function clearPersonaId()
    {
        unset($this->personaId);
    }

    




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

        return $this;
    }

    



    public function getPluginMetadata()
    {
        return $this->pluginMetadata;
    }

    public function hasPluginMetadata()
    {
        return isset($this->pluginMetadata);
    }

    public function clearPluginMetadata()
    {
        unset($this->pluginMetadata);
    }

    




    public function setPluginMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotPluginMetadata::class);
        $this->pluginMetadata = $var;

        return $this;
    }

    



    public function getSuggestedPromptMetadata()
    {
        return $this->suggestedPromptMetadata;
    }

    public function hasSuggestedPromptMetadata()
    {
        return isset($this->suggestedPromptMetadata);
    }

    public function clearSuggestedPromptMetadata()
    {
        unset($this->suggestedPromptMetadata);
    }

    




    public function setSuggestedPromptMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotSuggestedPromptMetadata::class);
        $this->suggestedPromptMetadata = $var;

        return $this;
    }

    



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

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

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

    




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

        return $this;
    }

    



    public function getSessionMetadata()
    {
        return $this->sessionMetadata;
    }

    public function hasSessionMetadata()
    {
        return isset($this->sessionMetadata);
    }

    public function clearSessionMetadata()
    {
        unset($this->sessionMetadata);
    }

    




    public function setSessionMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotSessionMetadata::class);
        $this->sessionMetadata = $var;

        return $this;
    }

    



    public function getMemuMetadata()
    {
        return $this->memuMetadata;
    }

    public function hasMemuMetadata()
    {
        return isset($this->memuMetadata);
    }

    public function clearMemuMetadata()
    {
        unset($this->memuMetadata);
    }

    




    public function setMemuMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotMemuMetadata::class);
        $this->memuMetadata = $var;

        return $this;
    }

    



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

    public function hasTimezone()
    {
        return isset($this->timezone);
    }

    public function clearTimezone()
    {
        unset($this->timezone);
    }

    




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

        return $this;
    }

    



    public function getReminderMetadata()
    {
        return $this->reminderMetadata;
    }

    public function hasReminderMetadata()
    {
        return isset($this->reminderMetadata);
    }

    public function clearReminderMetadata()
    {
        unset($this->reminderMetadata);
    }

    




    public function setReminderMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotReminderMetadata::class);
        $this->reminderMetadata = $var;

        return $this;
    }

    



    public function getModelMetadata()
    {
        return $this->modelMetadata;
    }

    public function hasModelMetadata()
    {
        return isset($this->modelMetadata);
    }

    public function clearModelMetadata()
    {
        unset($this->modelMetadata);
    }

    




    public function setModelMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotModelMetadata::class);
        $this->modelMetadata = $var;

        return $this;
    }

    



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

    public function hasMessageDisclaimerText()
    {
        return isset($this->messageDisclaimerText);
    }

    public function clearMessageDisclaimerText()
    {
        unset($this->messageDisclaimerText);
    }

    




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

        return $this;
    }

    



    public function getProgressIndicatorMetadata()
    {
        return $this->progressIndicatorMetadata;
    }

    public function hasProgressIndicatorMetadata()
    {
        return isset($this->progressIndicatorMetadata);
    }

    public function clearProgressIndicatorMetadata()
    {
        unset($this->progressIndicatorMetadata);
    }

    




    public function setProgressIndicatorMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata::class);
        $this->progressIndicatorMetadata = $var;

        return $this;
    }

    



    public function getCapabilityMetadata()
    {
        return $this->capabilityMetadata;
    }

    public function hasCapabilityMetadata()
    {
        return isset($this->capabilityMetadata);
    }

    public function clearCapabilityMetadata()
    {
        unset($this->capabilityMetadata);
    }

    




    public function setCapabilityMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotCapabilityMetadata::class);
        $this->capabilityMetadata = $var;

        return $this;
    }

    



    public function getImagineMetadata()
    {
        return $this->imagineMetadata;
    }

    public function hasImagineMetadata()
    {
        return isset($this->imagineMetadata);
    }

    public function clearImagineMetadata()
    {
        unset($this->imagineMetadata);
    }

    




    public function setImagineMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotImagineMetadata::class);
        $this->imagineMetadata = $var;

        return $this;
    }

    



    public function getMemoryMetadata()
    {
        return $this->memoryMetadata;
    }

    public function hasMemoryMetadata()
    {
        return isset($this->memoryMetadata);
    }

    public function clearMemoryMetadata()
    {
        unset($this->memoryMetadata);
    }

    




    public function setMemoryMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotMemoryMetadata::class);
        $this->memoryMetadata = $var;

        return $this;
    }

    



    public function getRenderingMetadata()
    {
        return $this->renderingMetadata;
    }

    public function hasRenderingMetadata()
    {
        return isset($this->renderingMetadata);
    }

    public function clearRenderingMetadata()
    {
        unset($this->renderingMetadata);
    }

    




    public function setRenderingMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotRenderingMetadata::class);
        $this->renderingMetadata = $var;

        return $this;
    }

    



    public function getBotMetricsMetadata()
    {
        return $this->botMetricsMetadata;
    }

    public function hasBotMetricsMetadata()
    {
        return isset($this->botMetricsMetadata);
    }

    public function clearBotMetricsMetadata()
    {
        unset($this->botMetricsMetadata);
    }

    




    public function setBotMetricsMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotMetricsMetadata::class);
        $this->botMetricsMetadata = $var;

        return $this;
    }

    



    public function getBotLinkedAccountsMetadata()
    {
        return $this->botLinkedAccountsMetadata;
    }

    public function hasBotLinkedAccountsMetadata()
    {
        return isset($this->botLinkedAccountsMetadata);
    }

    public function clearBotLinkedAccountsMetadata()
    {
        unset($this->botLinkedAccountsMetadata);
    }

    




    public function setBotLinkedAccountsMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotLinkedAccountsMetadata::class);
        $this->botLinkedAccountsMetadata = $var;

        return $this;
    }

    



    public function getRichResponseSourcesMetadata()
    {
        return $this->richResponseSourcesMetadata;
    }

    public function hasRichResponseSourcesMetadata()
    {
        return isset($this->richResponseSourcesMetadata);
    }

    public function clearRichResponseSourcesMetadata()
    {
        unset($this->richResponseSourcesMetadata);
    }

    




    public function setRichResponseSourcesMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotSourcesMetadata::class);
        $this->richResponseSourcesMetadata = $var;

        return $this;
    }

    



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

    public function hasAiConversationContext()
    {
        return isset($this->aiConversationContext);
    }

    public function clearAiConversationContext()
    {
        unset($this->aiConversationContext);
    }

    




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

        return $this;
    }

    



    public function getBotPromotionMessageMetadata()
    {
        return $this->botPromotionMessageMetadata;
    }

    public function hasBotPromotionMessageMetadata()
    {
        return isset($this->botPromotionMessageMetadata);
    }

    public function clearBotPromotionMessageMetadata()
    {
        unset($this->botPromotionMessageMetadata);
    }

    




    public function setBotPromotionMessageMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotPromotionMessageMetadata::class);
        $this->botPromotionMessageMetadata = $var;

        return $this;
    }

    



    public function getBotModeSelectionMetadata()
    {
        return $this->botModeSelectionMetadata;
    }

    public function hasBotModeSelectionMetadata()
    {
        return isset($this->botModeSelectionMetadata);
    }

    public function clearBotModeSelectionMetadata()
    {
        unset($this->botModeSelectionMetadata);
    }

    




    public function setBotModeSelectionMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotModeSelectionMetadata::class);
        $this->botModeSelectionMetadata = $var;

        return $this;
    }

    



    public function getBotQuotaMetadata()
    {
        return $this->botQuotaMetadata;
    }

    public function hasBotQuotaMetadata()
    {
        return isset($this->botQuotaMetadata);
    }

    public function clearBotQuotaMetadata()
    {
        unset($this->botQuotaMetadata);
    }

    




    public function setBotQuotaMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotQuotaMetadata::class);
        $this->botQuotaMetadata = $var;

        return $this;
    }

    



    public function getBotAgeCollectionMetadata()
    {
        return $this->botAgeCollectionMetadata;
    }

    public function hasBotAgeCollectionMetadata()
    {
        return isset($this->botAgeCollectionMetadata);
    }

    public function clearBotAgeCollectionMetadata()
    {
        unset($this->botAgeCollectionMetadata);
    }

    




    public function setBotAgeCollectionMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotAgeCollectionMetadata::class);
        $this->botAgeCollectionMetadata = $var;

        return $this;
    }

    



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

    public function hasConversationStarterPromptId()
    {
        return isset($this->conversationStarterPromptId);
    }

    public function clearConversationStarterPromptId()
    {
        unset($this->conversationStarterPromptId);
    }

    




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

        return $this;
    }

    



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

    public function hasBotResponseId()
    {
        return isset($this->botResponseId);
    }

    public function clearBotResponseId()
    {
        unset($this->botResponseId);
    }

    




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

        return $this;
    }

    



    public function getVerificationMetadata()
    {
        return $this->verificationMetadata;
    }

    public function hasVerificationMetadata()
    {
        return isset($this->verificationMetadata);
    }

    public function clearVerificationMetadata()
    {
        unset($this->verificationMetadata);
    }

    




    public function setVerificationMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotSignatureVerificationMetadata::class);
        $this->verificationMetadata = $var;

        return $this;
    }

    



    public function getUnifiedResponseMutation()
    {
        return $this->unifiedResponseMutation;
    }

    public function hasUnifiedResponseMutation()
    {
        return isset($this->unifiedResponseMutation);
    }

    public function clearUnifiedResponseMutation()
    {
        unset($this->unifiedResponseMutation);
    }

    




    public function setUnifiedResponseMutation($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotUnifiedResponseMutation::class);
        $this->unifiedResponseMutation = $var;

        return $this;
    }

    



    public function getBotMessageOriginMetadata()
    {
        return $this->botMessageOriginMetadata;
    }

    public function hasBotMessageOriginMetadata()
    {
        return isset($this->botMessageOriginMetadata);
    }

    public function clearBotMessageOriginMetadata()
    {
        unset($this->botMessageOriginMetadata);
    }

    




    public function setBotMessageOriginMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotMessageOriginMetadata::class);
        $this->botMessageOriginMetadata = $var;

        return $this;
    }

    



    public function getInThreadSurveyMetadata()
    {
        return $this->inThreadSurveyMetadata;
    }

    public function hasInThreadSurveyMetadata()
    {
        return isset($this->inThreadSurveyMetadata);
    }

    public function clearInThreadSurveyMetadata()
    {
        unset($this->inThreadSurveyMetadata);
    }

    




    public function setInThreadSurveyMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\InThreadSurveyMetadata::class);
        $this->inThreadSurveyMetadata = $var;

        return $this;
    }

    



    public function getBotThreadInfo()
    {
        return $this->botThreadInfo;
    }

    public function hasBotThreadInfo()
    {
        return isset($this->botThreadInfo);
    }

    public function clearBotThreadInfo()
    {
        unset($this->botThreadInfo);
    }

    




    public function setBotThreadInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AIThreadInfo::class);
        $this->botThreadInfo = $var;

        return $this;
    }

    



    public function getRegenerateMetadata()
    {
        return $this->regenerateMetadata;
    }

    public function hasRegenerateMetadata()
    {
        return isset($this->regenerateMetadata);
    }

    public function clearRegenerateMetadata()
    {
        unset($this->regenerateMetadata);
    }

    




    public function setRegenerateMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AIRegenerateMetadata::class);
        $this->regenerateMetadata = $var;

        return $this;
    }

    



    public function getSessionTransparencyMetadata()
    {
        return $this->sessionTransparencyMetadata;
    }

    public function hasSessionTransparencyMetadata()
    {
        return isset($this->sessionTransparencyMetadata);
    }

    public function clearSessionTransparencyMetadata()
    {
        unset($this->sessionTransparencyMetadata);
    }

    




    public function setSessionTransparencyMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\SessionTransparencyMetadata::class);
        $this->sessionTransparencyMetadata = $var;

        return $this;
    }

    



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

    public function hasInternalMetadata()
    {
        return isset($this->internalMetadata);
    }

    public function clearInternalMetadata()
    {
        unset($this->internalMetadata);
    }

    




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

        return $this;
    }

}

