<?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.BotMetadata</code>
 */
class BotMetadata extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.BotAvatarMetadata avatarMetadata = 1;</code>
     */
    protected $avatarMetadata = null;
    /**
     * Generated from protobuf field <code>optional string personaId = 2;</code>
     */
    protected $personaId = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotPluginMetadata pluginMetadata = 3;</code>
     */
    protected $pluginMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotSuggestedPromptMetadata suggestedPromptMetadata = 4;</code>
     */
    protected $suggestedPromptMetadata = null;
    /**
     * Generated from protobuf field <code>optional string invokerJid = 5;</code>
     */
    protected $invokerJid = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotSessionMetadata sessionMetadata = 6;</code>
     */
    protected $sessionMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotMemuMetadata memuMetadata = 7;</code>
     */
    protected $memuMetadata = null;
    /**
     * Generated from protobuf field <code>optional string timezone = 8;</code>
     */
    protected $timezone = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotReminderMetadata reminderMetadata = 9;</code>
     */
    protected $reminderMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotModelMetadata modelMetadata = 10;</code>
     */
    protected $modelMetadata = null;
    /**
     * Generated from protobuf field <code>optional string messageDisclaimerText = 11;</code>
     */
    protected $messageDisclaimerText = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotProgressIndicatorMetadata progressIndicatorMetadata = 12;</code>
     */
    protected $progressIndicatorMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotCapabilityMetadata capabilityMetadata = 13;</code>
     */
    protected $capabilityMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotImagineMetadata imagineMetadata = 14;</code>
     */
    protected $imagineMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotMemoryMetadata memoryMetadata = 15;</code>
     */
    protected $memoryMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotRenderingMetadata renderingMetadata = 16;</code>
     */
    protected $renderingMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotMetricsMetadata botMetricsMetadata = 17;</code>
     */
    protected $botMetricsMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotLinkedAccountsMetadata botLinkedAccountsMetadata = 18;</code>
     */
    protected $botLinkedAccountsMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotSourcesMetadata richResponseSourcesMetadata = 19;</code>
     */
    protected $richResponseSourcesMetadata = null;
    /**
     * Generated from protobuf field <code>optional bytes aiConversationContext = 20;</code>
     */
    protected $aiConversationContext = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotPromotionMessageMetadata botPromotionMessageMetadata = 21;</code>
     */
    protected $botPromotionMessageMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotModeSelectionMetadata botModeSelectionMetadata = 22;</code>
     */
    protected $botModeSelectionMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotQuotaMetadata botQuotaMetadata = 23;</code>
     */
    protected $botQuotaMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotAgeCollectionMetadata botAgeCollectionMetadata = 24;</code>
     */
    protected $botAgeCollectionMetadata = null;
    /**
     * Generated from protobuf field <code>optional string conversationStarterPromptId = 25;</code>
     */
    protected $conversationStarterPromptId = null;
    /**
     * Generated from protobuf field <code>optional string botResponseId = 26;</code>
     */
    protected $botResponseId = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotSignatureVerificationMetadata verificationMetadata = 27;</code>
     */
    protected $verificationMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotUnifiedResponseMutation unifiedResponseMutation = 28;</code>
     */
    protected $unifiedResponseMutation = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotMessageOriginMetadata botMessageOriginMetadata = 29;</code>
     */
    protected $botMessageOriginMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.InThreadSurveyMetadata inThreadSurveyMetadata = 30;</code>
     */
    protected $inThreadSurveyMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.AIThreadInfo botThreadInfo = 31;</code>
     */
    protected $botThreadInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.AIRegenerateMetadata regenerateMetadata = 32;</code>
     */
    protected $regenerateMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.SessionTransparencyMetadata sessionTransparencyMetadata = 33;</code>
     */
    protected $sessionTransparencyMetadata = null;
    /**
     * Generated from protobuf field <code>optional bytes internalMetadata = 999;</code>
     */
    protected $internalMetadata = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \PhpWA\Protocol\Proto\BotAvatarMetadata $avatarMetadata
     *     @type string $personaId
     *     @type \PhpWA\Protocol\Proto\BotPluginMetadata $pluginMetadata
     *     @type \PhpWA\Protocol\Proto\BotSuggestedPromptMetadata $suggestedPromptMetadata
     *     @type string $invokerJid
     *     @type \PhpWA\Protocol\Proto\BotSessionMetadata $sessionMetadata
     *     @type \PhpWA\Protocol\Proto\BotMemuMetadata $memuMetadata
     *     @type string $timezone
     *     @type \PhpWA\Protocol\Proto\BotReminderMetadata $reminderMetadata
     *     @type \PhpWA\Protocol\Proto\BotModelMetadata $modelMetadata
     *     @type string $messageDisclaimerText
     *     @type \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata $progressIndicatorMetadata
     *     @type \PhpWA\Protocol\Proto\BotCapabilityMetadata $capabilityMetadata
     *     @type \PhpWA\Protocol\Proto\BotImagineMetadata $imagineMetadata
     *     @type \PhpWA\Protocol\Proto\BotMemoryMetadata $memoryMetadata
     *     @type \PhpWA\Protocol\Proto\BotRenderingMetadata $renderingMetadata
     *     @type \PhpWA\Protocol\Proto\BotMetricsMetadata $botMetricsMetadata
     *     @type \PhpWA\Protocol\Proto\BotLinkedAccountsMetadata $botLinkedAccountsMetadata
     *     @type \PhpWA\Protocol\Proto\BotSourcesMetadata $richResponseSourcesMetadata
     *     @type string $aiConversationContext
     *     @type \PhpWA\Protocol\Proto\BotPromotionMessageMetadata $botPromotionMessageMetadata
     *     @type \PhpWA\Protocol\Proto\BotModeSelectionMetadata $botModeSelectionMetadata
     *     @type \PhpWA\Protocol\Proto\BotQuotaMetadata $botQuotaMetadata
     *     @type \PhpWA\Protocol\Proto\BotAgeCollectionMetadata $botAgeCollectionMetadata
     *     @type string $conversationStarterPromptId
     *     @type string $botResponseId
     *     @type \PhpWA\Protocol\Proto\BotSignatureVerificationMetadata $verificationMetadata
     *     @type \PhpWA\Protocol\Proto\BotUnifiedResponseMutation $unifiedResponseMutation
     *     @type \PhpWA\Protocol\Proto\BotMessageOriginMetadata $botMessageOriginMetadata
     *     @type \PhpWA\Protocol\Proto\InThreadSurveyMetadata $inThreadSurveyMetadata
     *     @type \PhpWA\Protocol\Proto\AIThreadInfo $botThreadInfo
     *     @type \PhpWA\Protocol\Proto\AIRegenerateMetadata $regenerateMetadata
     *     @type \PhpWA\Protocol\Proto\SessionTransparencyMetadata $sessionTransparencyMetadata
     *     @type string $internalMetadata
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string invokerJid = 5;</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 = 5;</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.BotSessionMetadata sessionMetadata = 6;</code>
     * @return \PhpWA\Protocol\Proto\BotSessionMetadata|null
     */
    public function getSessionMetadata()
    {
        return $this->sessionMetadata;
    }

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotSourcesMetadata richResponseSourcesMetadata = 19;</code>
     * @return \PhpWA\Protocol\Proto\BotSourcesMetadata|null
     */
    public function getRichResponseSourcesMetadata()
    {
        return $this->richResponseSourcesMetadata;
    }

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AIRegenerateMetadata regenerateMetadata = 32;</code>
     * @return \PhpWA\Protocol\Proto\AIRegenerateMetadata|null
     */
    public function getRegenerateMetadata()
    {
        return $this->regenerateMetadata;
    }

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

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.SessionTransparencyMetadata sessionTransparencyMetadata = 33;</code>
     * @return \PhpWA\Protocol\Proto\SessionTransparencyMetadata|null
     */
    public function getSessionTransparencyMetadata()
    {
        return $this->sessionTransparencyMetadata;
    }

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

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

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

        return $this;
    }

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

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

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

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

        return $this;
    }

}

