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

namespace PhpWA\Protocol\Proto\ClientPayload\WebInfo;

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

/**
 * Generated from protobuf message <code>proto.ClientPayload.WebInfo.WebdPayload</code>
 */
class WebdPayload extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional bool usesParticipantInKey = 1;</code>
     */
    protected $usesParticipantInKey = null;
    /**
     * Generated from protobuf field <code>optional bool supportsStarredMessages = 2;</code>
     */
    protected $supportsStarredMessages = null;
    /**
     * Generated from protobuf field <code>optional bool supportsDocumentMessages = 3;</code>
     */
    protected $supportsDocumentMessages = null;
    /**
     * Generated from protobuf field <code>optional bool supportsUrlMessages = 4;</code>
     */
    protected $supportsUrlMessages = null;
    /**
     * Generated from protobuf field <code>optional bool supportsMediaRetry = 5;</code>
     */
    protected $supportsMediaRetry = null;
    /**
     * Generated from protobuf field <code>optional bool supportsE2EImage = 6;</code>
     */
    protected $supportsE2EImage = null;
    /**
     * Generated from protobuf field <code>optional bool supportsE2EVideo = 7;</code>
     */
    protected $supportsE2EVideo = null;
    /**
     * Generated from protobuf field <code>optional bool supportsE2EAudio = 8;</code>
     */
    protected $supportsE2EAudio = null;
    /**
     * Generated from protobuf field <code>optional bool supportsE2EDocument = 9;</code>
     */
    protected $supportsE2EDocument = null;
    /**
     * Generated from protobuf field <code>optional string documentTypes = 10;</code>
     */
    protected $documentTypes = null;
    /**
     * Generated from protobuf field <code>optional bytes features = 11;</code>
     */
    protected $features = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $usesParticipantInKey
     *     @type bool $supportsStarredMessages
     *     @type bool $supportsDocumentMessages
     *     @type bool $supportsUrlMessages
     *     @type bool $supportsMediaRetry
     *     @type bool $supportsE2EImage
     *     @type bool $supportsE2EVideo
     *     @type bool $supportsE2EAudio
     *     @type bool $supportsE2EDocument
     *     @type string $documentTypes
     *     @type string $features
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

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

    public function hasUsesParticipantInKey()
    {
        return isset($this->usesParticipantInKey);
    }

    public function clearUsesParticipantInKey()
    {
        unset($this->usesParticipantInKey);
    }

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

        return $this;
    }

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

    public function hasSupportsStarredMessages()
    {
        return isset($this->supportsStarredMessages);
    }

    public function clearSupportsStarredMessages()
    {
        unset($this->supportsStarredMessages);
    }

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

        return $this;
    }

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

    public function hasSupportsDocumentMessages()
    {
        return isset($this->supportsDocumentMessages);
    }

    public function clearSupportsDocumentMessages()
    {
        unset($this->supportsDocumentMessages);
    }

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

        return $this;
    }

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

    public function hasSupportsUrlMessages()
    {
        return isset($this->supportsUrlMessages);
    }

    public function clearSupportsUrlMessages()
    {
        unset($this->supportsUrlMessages);
    }

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

        return $this;
    }

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

    public function hasSupportsMediaRetry()
    {
        return isset($this->supportsMediaRetry);
    }

    public function clearSupportsMediaRetry()
    {
        unset($this->supportsMediaRetry);
    }

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

        return $this;
    }

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

    public function hasSupportsE2EImage()
    {
        return isset($this->supportsE2EImage);
    }

    public function clearSupportsE2EImage()
    {
        unset($this->supportsE2EImage);
    }

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

        return $this;
    }

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

    public function hasSupportsE2EVideo()
    {
        return isset($this->supportsE2EVideo);
    }

    public function clearSupportsE2EVideo()
    {
        unset($this->supportsE2EVideo);
    }

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

        return $this;
    }

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

    public function hasSupportsE2EAudio()
    {
        return isset($this->supportsE2EAudio);
    }

    public function clearSupportsE2EAudio()
    {
        unset($this->supportsE2EAudio);
    }

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

        return $this;
    }

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

    public function hasSupportsE2EDocument()
    {
        return isset($this->supportsE2EDocument);
    }

    public function clearSupportsE2EDocument()
    {
        unset($this->supportsE2EDocument);
    }

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

        return $this;
    }

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

    public function hasDocumentTypes()
    {
        return isset($this->documentTypes);
    }

    public function clearDocumentTypes()
    {
        unset($this->documentTypes);
    }

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

        return $this;
    }

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

    public function hasFeatures()
    {
        return isset($this->features);
    }

    public function clearFeatures()
    {
        unset($this->features);
    }

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

        return $this;
    }

}

