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

namespace PhpWA\Protocol\Proto\ContextInfo;

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

/**
 * Generated from protobuf message <code>proto.ContextInfo.ExternalAdReplyInfo</code>
 */
class ExternalAdReplyInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional string title = 1;</code>
     */
    protected $title = null;
    /**
     * Generated from protobuf field <code>optional string body = 2;</code>
     */
    protected $body = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.MediaType mediaType = 3;</code>
     */
    protected $mediaType = null;
    /**
     * Generated from protobuf field <code>optional string thumbnailUrl = 4;</code>
     */
    protected $thumbnailUrl = null;
    /**
     * Generated from protobuf field <code>optional string mediaUrl = 5;</code>
     */
    protected $mediaUrl = null;
    /**
     * Generated from protobuf field <code>optional bytes thumbnail = 6;</code>
     */
    protected $thumbnail = null;
    /**
     * Generated from protobuf field <code>optional string sourceType = 7;</code>
     */
    protected $sourceType = null;
    /**
     * Generated from protobuf field <code>optional string sourceId = 8;</code>
     */
    protected $sourceId = null;
    /**
     * Generated from protobuf field <code>optional string sourceUrl = 9;</code>
     */
    protected $sourceUrl = null;
    /**
     * Generated from protobuf field <code>optional bool containsAutoReply = 10;</code>
     */
    protected $containsAutoReply = null;
    /**
     * Generated from protobuf field <code>optional bool renderLargerThumbnail = 11;</code>
     */
    protected $renderLargerThumbnail = null;
    /**
     * Generated from protobuf field <code>optional bool showAdAttribution = 12;</code>
     */
    protected $showAdAttribution = null;
    /**
     * Generated from protobuf field <code>optional string ctwaClid = 13;</code>
     */
    protected $ctwaClid = null;
    /**
     * Generated from protobuf field <code>optional string ref = 14;</code>
     */
    protected $ref = null;
    /**
     * Generated from protobuf field <code>optional bool clickToWhatsappCall = 15;</code>
     */
    protected $clickToWhatsappCall = null;
    /**
     * Generated from protobuf field <code>optional bool adContextPreviewDismissed = 16;</code>
     */
    protected $adContextPreviewDismissed = null;
    /**
     * Generated from protobuf field <code>optional string sourceApp = 17;</code>
     */
    protected $sourceApp = null;
    /**
     * Generated from protobuf field <code>optional bool automatedGreetingMessageShown = 18;</code>
     */
    protected $automatedGreetingMessageShown = null;
    /**
     * Generated from protobuf field <code>optional string greetingMessageBody = 19;</code>
     */
    protected $greetingMessageBody = null;
    /**
     * Generated from protobuf field <code>optional string ctaPayload = 20;</code>
     */
    protected $ctaPayload = null;
    /**
     * Generated from protobuf field <code>optional bool disableNudge = 21;</code>
     */
    protected $disableNudge = null;
    /**
     * Generated from protobuf field <code>optional string originalImageUrl = 22;</code>
     */
    protected $originalImageUrl = null;
    /**
     * Generated from protobuf field <code>optional string automatedGreetingMessageCtaType = 23;</code>
     */
    protected $automatedGreetingMessageCtaType = null;
    /**
     * Generated from protobuf field <code>optional bool wtwaAdFormat = 24;</code>
     */
    protected $wtwaAdFormat = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.AdType adType = 25;</code>
     */
    protected $adType = null;
    /**
     * Generated from protobuf field <code>optional string wtwaWebsiteUrl = 26;</code>
     */
    protected $wtwaWebsiteUrl = null;
    /**
     * Generated from protobuf field <code>optional string adPreviewUrl = 27;</code>
     */
    protected $adPreviewUrl = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $title
     *     @type string $body
     *     @type int $mediaType
     *     @type string $thumbnailUrl
     *     @type string $mediaUrl
     *     @type string $thumbnail
     *     @type string $sourceType
     *     @type string $sourceId
     *     @type string $sourceUrl
     *     @type bool $containsAutoReply
     *     @type bool $renderLargerThumbnail
     *     @type bool $showAdAttribution
     *     @type string $ctwaClid
     *     @type string $ref
     *     @type bool $clickToWhatsappCall
     *     @type bool $adContextPreviewDismissed
     *     @type string $sourceApp
     *     @type bool $automatedGreetingMessageShown
     *     @type string $greetingMessageBody
     *     @type string $ctaPayload
     *     @type bool $disableNudge
     *     @type string $originalImageUrl
     *     @type string $automatedGreetingMessageCtaType
     *     @type bool $wtwaAdFormat
     *     @type int $adType
     *     @type string $wtwaWebsiteUrl
     *     @type string $adPreviewUrl
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

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

    public function hasTitle()
    {
        return isset($this->title);
    }

    public function clearTitle()
    {
        unset($this->title);
    }

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

        return $this;
    }

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

    public function hasBody()
    {
        return isset($this->body);
    }

    public function clearBody()
    {
        unset($this->body);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.MediaType mediaType = 3;</code>
     * @return int
     */
    public function getMediaType()
    {
        return isset($this->mediaType) ? $this->mediaType : 0;
    }

    public function hasMediaType()
    {
        return isset($this->mediaType);
    }

    public function clearMediaType()
    {
        unset($this->mediaType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.MediaType mediaType = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setMediaType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo\MediaType::class);
        $this->mediaType = $var;

        return $this;
    }

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

    public function hasThumbnailUrl()
    {
        return isset($this->thumbnailUrl);
    }

    public function clearThumbnailUrl()
    {
        unset($this->thumbnailUrl);
    }

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

        return $this;
    }

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

    public function hasMediaUrl()
    {
        return isset($this->mediaUrl);
    }

    public function clearMediaUrl()
    {
        unset($this->mediaUrl);
    }

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

        return $this;
    }

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

    public function hasThumbnail()
    {
        return isset($this->thumbnail);
    }

    public function clearThumbnail()
    {
        unset($this->thumbnail);
    }

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

        return $this;
    }

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

    public function hasSourceType()
    {
        return isset($this->sourceType);
    }

    public function clearSourceType()
    {
        unset($this->sourceType);
    }

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

        return $this;
    }

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

    public function hasSourceId()
    {
        return isset($this->sourceId);
    }

    public function clearSourceId()
    {
        unset($this->sourceId);
    }

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

        return $this;
    }

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

    public function hasSourceUrl()
    {
        return isset($this->sourceUrl);
    }

    public function clearSourceUrl()
    {
        unset($this->sourceUrl);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool containsAutoReply = 10;</code>
     * @return bool
     */
    public function getContainsAutoReply()
    {
        return isset($this->containsAutoReply) ? $this->containsAutoReply : false;
    }

    public function hasContainsAutoReply()
    {
        return isset($this->containsAutoReply);
    }

    public function clearContainsAutoReply()
    {
        unset($this->containsAutoReply);
    }

    /**
     * Generated from protobuf field <code>optional bool containsAutoReply = 10;</code>
     * @param bool $var
     * @return $this
     */
    public function setContainsAutoReply($var)
    {
        GPBUtil::checkBool($var);
        $this->containsAutoReply = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool renderLargerThumbnail = 11;</code>
     * @return bool
     */
    public function getRenderLargerThumbnail()
    {
        return isset($this->renderLargerThumbnail) ? $this->renderLargerThumbnail : false;
    }

    public function hasRenderLargerThumbnail()
    {
        return isset($this->renderLargerThumbnail);
    }

    public function clearRenderLargerThumbnail()
    {
        unset($this->renderLargerThumbnail);
    }

    /**
     * Generated from protobuf field <code>optional bool renderLargerThumbnail = 11;</code>
     * @param bool $var
     * @return $this
     */
    public function setRenderLargerThumbnail($var)
    {
        GPBUtil::checkBool($var);
        $this->renderLargerThumbnail = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool showAdAttribution = 12;</code>
     * @return bool
     */
    public function getShowAdAttribution()
    {
        return isset($this->showAdAttribution) ? $this->showAdAttribution : false;
    }

    public function hasShowAdAttribution()
    {
        return isset($this->showAdAttribution);
    }

    public function clearShowAdAttribution()
    {
        unset($this->showAdAttribution);
    }

    /**
     * Generated from protobuf field <code>optional bool showAdAttribution = 12;</code>
     * @param bool $var
     * @return $this
     */
    public function setShowAdAttribution($var)
    {
        GPBUtil::checkBool($var);
        $this->showAdAttribution = $var;

        return $this;
    }

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

    public function hasCtwaClid()
    {
        return isset($this->ctwaClid);
    }

    public function clearCtwaClid()
    {
        unset($this->ctwaClid);
    }

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

        return $this;
    }

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

    public function hasRef()
    {
        return isset($this->ref);
    }

    public function clearRef()
    {
        unset($this->ref);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool clickToWhatsappCall = 15;</code>
     * @return bool
     */
    public function getClickToWhatsappCall()
    {
        return isset($this->clickToWhatsappCall) ? $this->clickToWhatsappCall : false;
    }

    public function hasClickToWhatsappCall()
    {
        return isset($this->clickToWhatsappCall);
    }

    public function clearClickToWhatsappCall()
    {
        unset($this->clickToWhatsappCall);
    }

    /**
     * Generated from protobuf field <code>optional bool clickToWhatsappCall = 15;</code>
     * @param bool $var
     * @return $this
     */
    public function setClickToWhatsappCall($var)
    {
        GPBUtil::checkBool($var);
        $this->clickToWhatsappCall = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool adContextPreviewDismissed = 16;</code>
     * @return bool
     */
    public function getAdContextPreviewDismissed()
    {
        return isset($this->adContextPreviewDismissed) ? $this->adContextPreviewDismissed : false;
    }

    public function hasAdContextPreviewDismissed()
    {
        return isset($this->adContextPreviewDismissed);
    }

    public function clearAdContextPreviewDismissed()
    {
        unset($this->adContextPreviewDismissed);
    }

    /**
     * Generated from protobuf field <code>optional bool adContextPreviewDismissed = 16;</code>
     * @param bool $var
     * @return $this
     */
    public function setAdContextPreviewDismissed($var)
    {
        GPBUtil::checkBool($var);
        $this->adContextPreviewDismissed = $var;

        return $this;
    }

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

    public function hasSourceApp()
    {
        return isset($this->sourceApp);
    }

    public function clearSourceApp()
    {
        unset($this->sourceApp);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool automatedGreetingMessageShown = 18;</code>
     * @return bool
     */
    public function getAutomatedGreetingMessageShown()
    {
        return isset($this->automatedGreetingMessageShown) ? $this->automatedGreetingMessageShown : false;
    }

    public function hasAutomatedGreetingMessageShown()
    {
        return isset($this->automatedGreetingMessageShown);
    }

    public function clearAutomatedGreetingMessageShown()
    {
        unset($this->automatedGreetingMessageShown);
    }

    /**
     * Generated from protobuf field <code>optional bool automatedGreetingMessageShown = 18;</code>
     * @param bool $var
     * @return $this
     */
    public function setAutomatedGreetingMessageShown($var)
    {
        GPBUtil::checkBool($var);
        $this->automatedGreetingMessageShown = $var;

        return $this;
    }

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

    public function hasGreetingMessageBody()
    {
        return isset($this->greetingMessageBody);
    }

    public function clearGreetingMessageBody()
    {
        unset($this->greetingMessageBody);
    }

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

        return $this;
    }

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

    public function hasCtaPayload()
    {
        return isset($this->ctaPayload);
    }

    public function clearCtaPayload()
    {
        unset($this->ctaPayload);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool disableNudge = 21;</code>
     * @return bool
     */
    public function getDisableNudge()
    {
        return isset($this->disableNudge) ? $this->disableNudge : false;
    }

    public function hasDisableNudge()
    {
        return isset($this->disableNudge);
    }

    public function clearDisableNudge()
    {
        unset($this->disableNudge);
    }

    /**
     * Generated from protobuf field <code>optional bool disableNudge = 21;</code>
     * @param bool $var
     * @return $this
     */
    public function setDisableNudge($var)
    {
        GPBUtil::checkBool($var);
        $this->disableNudge = $var;

        return $this;
    }

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

    public function hasOriginalImageUrl()
    {
        return isset($this->originalImageUrl);
    }

    public function clearOriginalImageUrl()
    {
        unset($this->originalImageUrl);
    }

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

        return $this;
    }

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

    public function hasAutomatedGreetingMessageCtaType()
    {
        return isset($this->automatedGreetingMessageCtaType);
    }

    public function clearAutomatedGreetingMessageCtaType()
    {
        unset($this->automatedGreetingMessageCtaType);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool wtwaAdFormat = 24;</code>
     * @return bool
     */
    public function getWtwaAdFormat()
    {
        return isset($this->wtwaAdFormat) ? $this->wtwaAdFormat : false;
    }

    public function hasWtwaAdFormat()
    {
        return isset($this->wtwaAdFormat);
    }

    public function clearWtwaAdFormat()
    {
        unset($this->wtwaAdFormat);
    }

    /**
     * Generated from protobuf field <code>optional bool wtwaAdFormat = 24;</code>
     * @param bool $var
     * @return $this
     */
    public function setWtwaAdFormat($var)
    {
        GPBUtil::checkBool($var);
        $this->wtwaAdFormat = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.AdType adType = 25;</code>
     * @return int
     */
    public function getAdType()
    {
        return isset($this->adType) ? $this->adType : 0;
    }

    public function hasAdType()
    {
        return isset($this->adType);
    }

    public function clearAdType()
    {
        unset($this->adType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo.AdType adType = 25;</code>
     * @param int $var
     * @return $this
     */
    public function setAdType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo\AdType::class);
        $this->adType = $var;

        return $this;
    }

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

    public function hasWtwaWebsiteUrl()
    {
        return isset($this->wtwaWebsiteUrl);
    }

    public function clearWtwaWebsiteUrl()
    {
        unset($this->wtwaWebsiteUrl);
    }

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

        return $this;
    }

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

    public function hasAdPreviewUrl()
    {
        return isset($this->adPreviewUrl);
    }

    public function clearAdPreviewUrl()
    {
        unset($this->adPreviewUrl);
    }

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

        return $this;
    }

}

