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

namespace PhpWA\Protocol\Proto\Message;

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

/**
 * Generated from protobuf message <code>proto.Message.LinkPreviewMetadata</code>
 */
class LinkPreviewMetadata extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.Message.PaymentLinkMetadata paymentLinkMetadata = 1;</code>
     */
    protected $paymentLinkMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.URLMetadata urlMetadata = 2;</code>
     */
    protected $urlMetadata = null;
    /**
     * Generated from protobuf field <code>optional uint32 fbExperimentId = 3;</code>
     */
    protected $fbExperimentId = null;
    /**
     * Generated from protobuf field <code>optional uint32 linkMediaDuration = 4;</code>
     */
    protected $linkMediaDuration = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.LinkPreviewMetadata.SocialMediaPostType socialMediaPostType = 5;</code>
     */
    protected $socialMediaPostType = null;
    /**
     * Generated from protobuf field <code>optional bool linkInlineVideoMuted = 6;</code>
     */
    protected $linkInlineVideoMuted = null;
    /**
     * Generated from protobuf field <code>optional string videoContentUrl = 7;</code>
     */
    protected $videoContentUrl = null;
    /**
     * Generated from protobuf field <code>optional .proto.EmbeddedMusic musicMetadata = 8;</code>
     */
    protected $musicMetadata = null;
    /**
     * Generated from protobuf field <code>optional string videoContentCaption = 9;</code>
     */
    protected $videoContentCaption = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \PhpWA\Protocol\Proto\Message\PaymentLinkMetadata $paymentLinkMetadata
     *     @type \PhpWA\Protocol\Proto\Message\URLMetadata $urlMetadata
     *     @type int $fbExperimentId
     *     @type int $linkMediaDuration
     *     @type int $socialMediaPostType
     *     @type bool $linkInlineVideoMuted
     *     @type string $videoContentUrl
     *     @type \PhpWA\Protocol\Proto\EmbeddedMusic $musicMetadata
     *     @type string $videoContentCaption
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

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

    public function hasPaymentLinkMetadata()
    {
        return isset($this->paymentLinkMetadata);
    }

    public function clearPaymentLinkMetadata()
    {
        unset($this->paymentLinkMetadata);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.URLMetadata urlMetadata = 2;</code>
     * @return \PhpWA\Protocol\Proto\Message\URLMetadata|null
     */
    public function getUrlMetadata()
    {
        return $this->urlMetadata;
    }

    public function hasUrlMetadata()
    {
        return isset($this->urlMetadata);
    }

    public function clearUrlMetadata()
    {
        unset($this->urlMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.URLMetadata urlMetadata = 2;</code>
     * @param \PhpWA\Protocol\Proto\Message\URLMetadata $var
     * @return $this
     */
    public function setUrlMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\URLMetadata::class);
        $this->urlMetadata = $var;

        return $this;
    }

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

    public function hasFbExperimentId()
    {
        return isset($this->fbExperimentId);
    }

    public function clearFbExperimentId()
    {
        unset($this->fbExperimentId);
    }

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

        return $this;
    }

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

    public function hasLinkMediaDuration()
    {
        return isset($this->linkMediaDuration);
    }

    public function clearLinkMediaDuration()
    {
        unset($this->linkMediaDuration);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LinkPreviewMetadata.SocialMediaPostType socialMediaPostType = 5;</code>
     * @return int
     */
    public function getSocialMediaPostType()
    {
        return isset($this->socialMediaPostType) ? $this->socialMediaPostType : 0;
    }

    public function hasSocialMediaPostType()
    {
        return isset($this->socialMediaPostType);
    }

    public function clearSocialMediaPostType()
    {
        unset($this->socialMediaPostType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LinkPreviewMetadata.SocialMediaPostType socialMediaPostType = 5;</code>
     * @param int $var
     * @return $this
     */
    public function setSocialMediaPostType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\Message\LinkPreviewMetadata\SocialMediaPostType::class);
        $this->socialMediaPostType = $var;

        return $this;
    }

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

    public function hasLinkInlineVideoMuted()
    {
        return isset($this->linkInlineVideoMuted);
    }

    public function clearLinkInlineVideoMuted()
    {
        unset($this->linkInlineVideoMuted);
    }

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

        return $this;
    }

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

    public function hasVideoContentUrl()
    {
        return isset($this->videoContentUrl);
    }

    public function clearVideoContentUrl()
    {
        unset($this->videoContentUrl);
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.EmbeddedMusic musicMetadata = 8;</code>
     * @return \PhpWA\Protocol\Proto\EmbeddedMusic|null
     */
    public function getMusicMetadata()
    {
        return $this->musicMetadata;
    }

    public function hasMusicMetadata()
    {
        return isset($this->musicMetadata);
    }

    public function clearMusicMetadata()
    {
        unset($this->musicMetadata);
    }

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

        return $this;
    }

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

    public function hasVideoContentCaption()
    {
        return isset($this->videoContentCaption);
    }

    public function clearVideoContentCaption()
    {
        unset($this->videoContentCaption);
    }

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

        return $this;
    }

}

