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

namespace PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata;

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

/**
 * Generated from protobuf message <code>proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData</code>
 */
class SidebySideSurveyMetaAiAnalyticsData extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional uint32 surveyId = 1;</code>
     */
    protected $surveyId = null;
    /**
     * Generated from protobuf field <code>optional string primaryResponseId = 2;</code>
     */
    protected $primaryResponseId = null;
    /**
     * Generated from protobuf field <code>optional string testArmName = 3;</code>
     */
    protected $testArmName = null;
    /**
     * Generated from protobuf field <code>optional string timestampMsString = 4;</code>
     */
    protected $timestampMsString = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData ctaImpressionEvent = 5;</code>
     */
    protected $ctaImpressionEvent = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData ctaClickEvent = 6;</code>
     */
    protected $ctaClickEvent = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData cardImpressionEvent = 7;</code>
     */
    protected $cardImpressionEvent = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData responseEvent = 8;</code>
     */
    protected $responseEvent = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData abandonEvent = 9;</code>
     */
    protected $abandonEvent = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $surveyId
     *     @type string $primaryResponseId
     *     @type string $testArmName
     *     @type string $timestampMsString
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCTAImpressionEventData $ctaImpressionEvent
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCTAClickEventData $ctaClickEvent
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCardImpressionEventData $cardImpressionEvent
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyResponseEventData $responseEvent
     *     @type \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyAbandonEventData $abandonEvent
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

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

    public function hasSurveyId()
    {
        return isset($this->surveyId);
    }

    public function clearSurveyId()
    {
        unset($this->surveyId);
    }

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

        return $this;
    }

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

    public function hasPrimaryResponseId()
    {
        return isset($this->primaryResponseId);
    }

    public function clearPrimaryResponseId()
    {
        unset($this->primaryResponseId);
    }

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

        return $this;
    }

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

    public function hasTestArmName()
    {
        return isset($this->testArmName);
    }

    public function clearTestArmName()
    {
        unset($this->testArmName);
    }

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

        return $this;
    }

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

    public function hasTimestampMsString()
    {
        return isset($this->timestampMsString);
    }

    public function clearTimestampMsString()
    {
        unset($this->timestampMsString);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData ctaImpressionEvent = 5;</code>
     * @return \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCTAImpressionEventData|null
     */
    public function getCtaImpressionEvent()
    {
        return $this->ctaImpressionEvent;
    }

    public function hasCtaImpressionEvent()
    {
        return isset($this->ctaImpressionEvent);
    }

    public function clearCtaImpressionEvent()
    {
        unset($this->ctaImpressionEvent);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData ctaClickEvent = 6;</code>
     * @return \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCTAClickEventData|null
     */
    public function getCtaClickEvent()
    {
        return $this->ctaClickEvent;
    }

    public function hasCtaClickEvent()
    {
        return isset($this->ctaClickEvent);
    }

    public function clearCtaClickEvent()
    {
        unset($this->ctaClickEvent);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData cardImpressionEvent = 7;</code>
     * @return \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyCardImpressionEventData|null
     */
    public function getCardImpressionEvent()
    {
        return $this->cardImpressionEvent;
    }

    public function hasCardImpressionEvent()
    {
        return isset($this->cardImpressionEvent);
    }

    public function clearCardImpressionEvent()
    {
        unset($this->cardImpressionEvent);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData responseEvent = 8;</code>
     * @return \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyResponseEventData|null
     */
    public function getResponseEvent()
    {
        return $this->responseEvent;
    }

    public function hasResponseEvent()
    {
        return isset($this->responseEvent);
    }

    public function clearResponseEvent()
    {
        unset($this->responseEvent);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData abandonEvent = 9;</code>
     * @return \PhpWA\Protocol\Proto\BotFeedbackMessage\SideBySideSurveyMetadata\SidebySideSurveyMetaAiAnalyticsData\SideBySideSurveyAbandonEventData|null
     */
    public function getAbandonEvent()
    {
        return $this->abandonEvent;
    }

    public function hasAbandonEvent()
    {
        return isset($this->abandonEvent);
    }

    public function clearAbandonEvent()
    {
        unset($this->abandonEvent);
    }

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

        return $this;
    }

}

