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

namespace Registration\Core;

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

/**
 * Generated from protobuf message <code>registration.core.Request</code>
 */
class Request extends \Google\Protobuf\Internal\Message
{
    protected $request;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Registration\Core\Register $register
     *     @type \Registration\Core\Unregister $unregister
     *     @type \Registration\Core\ChangeSeatType $change_seat_type
     *     @type \Registration\Core\GetFreeBibles $get_free_bibles
     *     @type \Registration\Core\GetPurchasedBibles $get_purchased_bibles
     *     @type \Registration\Core\ActivateBible $activate_bible
     *     @type \Registration\Core\DeactivateBible $deactivate_bible
     *     @type \Registration\Core\DownloadBible $download_bible
     *     @type \Registration\Core\RegistrationData $registration_data
     *     @type \Registration\Core\ProductInformation $product_information
     *     @type \Registration\Core\GetAvailableVersion $get_upgrades_available
     *     @type \Registration\Core\GetAvailableVersion $get_downgrade_available
     *     @type \Registration\Core\DownloadNewVersion $download_new_version
     *     @type \Registration\Core\Refresh $refresh
     *     @type \Registration\Core\ActivateLink $activate_link
     *     @type \Registration\Core\UpdateToken $update_token
     *     @type \Registration\Core\OldTokenData $old_token_data
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Registration::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.registration.core.Register register = 1;</code>
     * @return \Registration\Core\Register|null
     */
    public function getRegister()
    {
        return $this->readOneof(1);
    }

    public function hasRegister()
    {
        return $this->hasOneof(1);
    }

    /**
     * Generated from protobuf field <code>.registration.core.Register register = 1;</code>
     * @param \Registration\Core\Register $var
     * @return $this
     */
    public function setRegister($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\Register::class);
        $this->writeOneof(1, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.Unregister unregister = 2;</code>
     * @return \Registration\Core\Unregister|null
     */
    public function getUnregister()
    {
        return $this->readOneof(2);
    }

    public function hasUnregister()
    {
        return $this->hasOneof(2);
    }

    /**
     * Generated from protobuf field <code>.registration.core.Unregister unregister = 2;</code>
     * @param \Registration\Core\Unregister $var
     * @return $this
     */
    public function setUnregister($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\Unregister::class);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.ChangeSeatType change_seat_type = 3;</code>
     * @return \Registration\Core\ChangeSeatType|null
     */
    public function getChangeSeatType()
    {
        return $this->readOneof(3);
    }

    public function hasChangeSeatType()
    {
        return $this->hasOneof(3);
    }

    /**
     * Generated from protobuf field <code>.registration.core.ChangeSeatType change_seat_type = 3;</code>
     * @param \Registration\Core\ChangeSeatType $var
     * @return $this
     */
    public function setChangeSeatType($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\ChangeSeatType::class);
        $this->writeOneof(3, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetFreeBibles get_free_bibles = 4;</code>
     * @return \Registration\Core\GetFreeBibles|null
     */
    public function getGetFreeBibles()
    {
        return $this->readOneof(4);
    }

    public function hasGetFreeBibles()
    {
        return $this->hasOneof(4);
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetFreeBibles get_free_bibles = 4;</code>
     * @param \Registration\Core\GetFreeBibles $var
     * @return $this
     */
    public function setGetFreeBibles($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\GetFreeBibles::class);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetPurchasedBibles get_purchased_bibles = 5;</code>
     * @return \Registration\Core\GetPurchasedBibles|null
     */
    public function getGetPurchasedBibles()
    {
        return $this->readOneof(5);
    }

    public function hasGetPurchasedBibles()
    {
        return $this->hasOneof(5);
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetPurchasedBibles get_purchased_bibles = 5;</code>
     * @param \Registration\Core\GetPurchasedBibles $var
     * @return $this
     */
    public function setGetPurchasedBibles($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\GetPurchasedBibles::class);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.ActivateBible activate_bible = 6;</code>
     * @return \Registration\Core\ActivateBible|null
     */
    public function getActivateBible()
    {
        return $this->readOneof(6);
    }

    public function hasActivateBible()
    {
        return $this->hasOneof(6);
    }

    /**
     * Generated from protobuf field <code>.registration.core.ActivateBible activate_bible = 6;</code>
     * @param \Registration\Core\ActivateBible $var
     * @return $this
     */
    public function setActivateBible($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\ActivateBible::class);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.DeactivateBible deactivate_bible = 7;</code>
     * @return \Registration\Core\DeactivateBible|null
     */
    public function getDeactivateBible()
    {
        return $this->readOneof(7);
    }

    public function hasDeactivateBible()
    {
        return $this->hasOneof(7);
    }

    /**
     * Generated from protobuf field <code>.registration.core.DeactivateBible deactivate_bible = 7;</code>
     * @param \Registration\Core\DeactivateBible $var
     * @return $this
     */
    public function setDeactivateBible($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\DeactivateBible::class);
        $this->writeOneof(7, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.DownloadBible download_bible = 8;</code>
     * @return \Registration\Core\DownloadBible|null
     */
    public function getDownloadBible()
    {
        return $this->readOneof(8);
    }

    public function hasDownloadBible()
    {
        return $this->hasOneof(8);
    }

    /**
     * Generated from protobuf field <code>.registration.core.DownloadBible download_bible = 8;</code>
     * @param \Registration\Core\DownloadBible $var
     * @return $this
     */
    public function setDownloadBible($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\DownloadBible::class);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.RegistrationData registration_data = 9;</code>
     * @return \Registration\Core\RegistrationData|null
     */
    public function getRegistrationData()
    {
        return $this->readOneof(9);
    }

    public function hasRegistrationData()
    {
        return $this->hasOneof(9);
    }

    /**
     * Generated from protobuf field <code>.registration.core.RegistrationData registration_data = 9;</code>
     * @param \Registration\Core\RegistrationData $var
     * @return $this
     */
    public function setRegistrationData($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\RegistrationData::class);
        $this->writeOneof(9, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.ProductInformation product_information = 10;</code>
     * @return \Registration\Core\ProductInformation|null
     */
    public function getProductInformation()
    {
        return $this->readOneof(10);
    }

    public function hasProductInformation()
    {
        return $this->hasOneof(10);
    }

    /**
     * Generated from protobuf field <code>.registration.core.ProductInformation product_information = 10;</code>
     * @param \Registration\Core\ProductInformation $var
     * @return $this
     */
    public function setProductInformation($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\ProductInformation::class);
        $this->writeOneof(10, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetAvailableVersion get_upgrades_available = 11;</code>
     * @return \Registration\Core\GetAvailableVersion|null
     */
    public function getGetUpgradesAvailable()
    {
        return $this->readOneof(11);
    }

    public function hasGetUpgradesAvailable()
    {
        return $this->hasOneof(11);
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetAvailableVersion get_upgrades_available = 11;</code>
     * @param \Registration\Core\GetAvailableVersion $var
     * @return $this
     */
    public function setGetUpgradesAvailable($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\GetAvailableVersion::class);
        $this->writeOneof(11, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetAvailableVersion get_downgrade_available = 12;</code>
     * @return \Registration\Core\GetAvailableVersion|null
     */
    public function getGetDowngradeAvailable()
    {
        return $this->readOneof(12);
    }

    public function hasGetDowngradeAvailable()
    {
        return $this->hasOneof(12);
    }

    /**
     * Generated from protobuf field <code>.registration.core.GetAvailableVersion get_downgrade_available = 12;</code>
     * @param \Registration\Core\GetAvailableVersion $var
     * @return $this
     */
    public function setGetDowngradeAvailable($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\GetAvailableVersion::class);
        $this->writeOneof(12, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.DownloadNewVersion download_new_version = 13;</code>
     * @return \Registration\Core\DownloadNewVersion|null
     */
    public function getDownloadNewVersion()
    {
        return $this->readOneof(13);
    }

    public function hasDownloadNewVersion()
    {
        return $this->hasOneof(13);
    }

    /**
     * Generated from protobuf field <code>.registration.core.DownloadNewVersion download_new_version = 13;</code>
     * @param \Registration\Core\DownloadNewVersion $var
     * @return $this
     */
    public function setDownloadNewVersion($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\DownloadNewVersion::class);
        $this->writeOneof(13, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.Refresh refresh = 14;</code>
     * @return \Registration\Core\Refresh|null
     */
    public function getRefresh()
    {
        return $this->readOneof(14);
    }

    public function hasRefresh()
    {
        return $this->hasOneof(14);
    }

    /**
     * Generated from protobuf field <code>.registration.core.Refresh refresh = 14;</code>
     * @param \Registration\Core\Refresh $var
     * @return $this
     */
    public function setRefresh($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\Refresh::class);
        $this->writeOneof(14, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.ActivateLink activate_link = 15;</code>
     * @return \Registration\Core\ActivateLink|null
     */
    public function getActivateLink()
    {
        return $this->readOneof(15);
    }

    public function hasActivateLink()
    {
        return $this->hasOneof(15);
    }

    /**
     * Generated from protobuf field <code>.registration.core.ActivateLink activate_link = 15;</code>
     * @param \Registration\Core\ActivateLink $var
     * @return $this
     */
    public function setActivateLink($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\ActivateLink::class);
        $this->writeOneof(15, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.UpdateToken update_token = 16;</code>
     * @return \Registration\Core\UpdateToken|null
     */
    public function getUpdateToken()
    {
        return $this->readOneof(16);
    }

    public function hasUpdateToken()
    {
        return $this->hasOneof(16);
    }

    /**
     * Generated from protobuf field <code>.registration.core.UpdateToken update_token = 16;</code>
     * @param \Registration\Core\UpdateToken $var
     * @return $this
     */
    public function setUpdateToken($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\UpdateToken::class);
        $this->writeOneof(16, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.registration.core.OldTokenData old_token_data = 17;</code>
     * @return \Registration\Core\OldTokenData|null
     */
    public function getOldTokenData()
    {
        return $this->readOneof(17);
    }

    public function hasOldTokenData()
    {
        return $this->hasOneof(17);
    }

    /**
     * Generated from protobuf field <code>.registration.core.OldTokenData old_token_data = 17;</code>
     * @param \Registration\Core\OldTokenData $var
     * @return $this
     */
    public function setOldTokenData($var)
    {
        GPBUtil::checkMessage($var, \Registration\Core\OldTokenData::class);
        $this->writeOneof(17, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getRequest()
    {
        return $this->whichOneof("request");
    }

}

