<?php
 
 
 

namespace PhpWA\Protocol\Proto\ClientPayload\WebInfo;

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




class WebdPayload extends \Google\Protobuf\Internal\Message
{
    


    protected $usesParticipantInKey = null;
    


    protected $supportsStarredMessages = null;
    


    protected $supportsDocumentMessages = null;
    


    protected $supportsUrlMessages = null;
    


    protected $supportsMediaRetry = null;
    


    protected $supportsE2EImage = null;
    


    protected $supportsE2EVideo = null;
    


    protected $supportsE2EAudio = null;
    


    protected $supportsE2EDocument = null;
    


    protected $documentTypes = null;
    


    protected $features = null;

    


















    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



    public function getUsesParticipantInKey()
    {
        return isset($this->usesParticipantInKey) ? $this->usesParticipantInKey : false;
    }

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

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

    




    public function setUsesParticipantInKey($var)
    {
        GPBUtil::checkBool($var);
        $this->usesParticipantInKey = $var;

        return $this;
    }

    



    public function getSupportsStarredMessages()
    {
        return isset($this->supportsStarredMessages) ? $this->supportsStarredMessages : false;
    }

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

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

    




    public function setSupportsStarredMessages($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsStarredMessages = $var;

        return $this;
    }

    



    public function getSupportsDocumentMessages()
    {
        return isset($this->supportsDocumentMessages) ? $this->supportsDocumentMessages : false;
    }

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

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

    




    public function setSupportsDocumentMessages($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsDocumentMessages = $var;

        return $this;
    }

    



    public function getSupportsUrlMessages()
    {
        return isset($this->supportsUrlMessages) ? $this->supportsUrlMessages : false;
    }

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

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

    




    public function setSupportsUrlMessages($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsUrlMessages = $var;

        return $this;
    }

    



    public function getSupportsMediaRetry()
    {
        return isset($this->supportsMediaRetry) ? $this->supportsMediaRetry : false;
    }

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

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

    




    public function setSupportsMediaRetry($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsMediaRetry = $var;

        return $this;
    }

    



    public function getSupportsE2EImage()
    {
        return isset($this->supportsE2EImage) ? $this->supportsE2EImage : false;
    }

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

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

    




    public function setSupportsE2EImage($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsE2EImage = $var;

        return $this;
    }

    



    public function getSupportsE2EVideo()
    {
        return isset($this->supportsE2EVideo) ? $this->supportsE2EVideo : false;
    }

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

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

    




    public function setSupportsE2EVideo($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsE2EVideo = $var;

        return $this;
    }

    



    public function getSupportsE2EAudio()
    {
        return isset($this->supportsE2EAudio) ? $this->supportsE2EAudio : false;
    }

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

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

    




    public function setSupportsE2EAudio($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsE2EAudio = $var;

        return $this;
    }

    



    public function getSupportsE2EDocument()
    {
        return isset($this->supportsE2EDocument) ? $this->supportsE2EDocument : false;
    }

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

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

    




    public function setSupportsE2EDocument($var)
    {
        GPBUtil::checkBool($var);
        $this->supportsE2EDocument = $var;

        return $this;
    }

    



    public function getDocumentTypes()
    {
        return isset($this->documentTypes) ? $this->documentTypes : '';
    }

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

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

    




    public function setDocumentTypes($var)
    {
        GPBUtil::checkString($var, True);
        $this->documentTypes = $var;

        return $this;
    }

    



    public function getFeatures()
    {
        return isset($this->features) ? $this->features : '';
    }

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

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

    




    public function setFeatures($var)
    {
        GPBUtil::checkString($var, False);
        $this->features = $var;

        return $this;
    }

}

