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

namespace OS\PB;

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

/**
 **
 * \@brief   A action is an abstraction layer for the action engine on a device to carry out a certain task when it involves non-persistent data.
 * \@details When a device receives an action, it is processed immediately for the application.
 *          An action differs from an RPC as an action requires no response
 *          An action differs from an Config as an action does not store persistent data.
 *
 * Generated from protobuf message <code>OS.PB.ActionMessage</code>
 */
class ActionMessage extends \Google\Protobuf\Internal\Message
{
    /**
     * Used for a particular inteface
     *
     * Generated from protobuf field <code>uint32 InterfaceIndex = 1;</code>
     */
    protected $InterfaceIndex = 0;
    protected $ActionType;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $InterfaceIndex
     *           Used for a particular inteface
     *     @type \OS\PB\RelayAction $RelayActivate
     *           high usage actions
     *     @type \OS\PB\WiegandAction $WiegandOkActivate
     *           1.4 Activate and/or blink the Wiegand green line
     *     @type \OS\PB\WiegandAction $WiegandErrorActivate
     *           1.4 Activate and/or blink the Wiegand red line
     *     @type \OS\PB\WiegandAction $WiegandBuzzerActivate
     *           1.4 Activate and/or blink the buzzer line 
     *     @type \OS\PB\CodeHopAction $CodeHopSetCounter
     *           Sets the synchronization counter for a codehop remote or clears all/serial's counter
     *     @type \OS\PB\DFUAction $DFUTransferBlock
     *           1.1 Writes a block of data to DFU Image Slot 1
     *     @type \OS\PB\AccessAction $AccessUserAdjust
     *           low usage actions
     *     @type \OS\PB\AccessEraseAction $AccessErase
     *           1.4 Erase OneAccess configurations
     *     @type \OS\PB\AccessAction $AccessOverride
     *           Instruct a gateway to ignore normal access control logic and allow entry on any Access Method, except pins
     *     @type \OS\PB\ConfigSyncAction $AccessSyncBegin
     *           Tells OneAccess to begin synchronizing its database
     *     @type \OS\PB\ConfigSyncAction $AccessSyncEnd
     *           Tells OneAccess that this is the end of synchronizing its database
     *     @type \OS\PB\HealthAction $HealthButtonAcknowledge
     *           Tells OneHealth button that its alert has been acknowledged 
     *     @type \OS\PB\HealthAction $HealthLinkActivateAlert
     *     @type \OS\PB\HealthAction $HealthLinkDeactivateAlert
     *     @type \OS\PB\DeviceRestartAction $DeviceRestartDEPRECIATED
     *           DEPRECIATED in Beta+62
     *     @type \OS\PB\DeviceAction $DeviceRestart
     *           Tells a device to restart
     *     @type \OS\PB\DeviceFormatAction $DeviceFormatDEPRECIATED
     *           DEPRECIATED in Beta+62
     *     @type \OS\PB\DeviceAction $DeviceFormat
     *           1.0 Tells a device to format its filesystem
     *     @type \OS\PB\DeviceAction $DeviceErase
     *           1.0 Tells a device to purge a queue by a device id. Use 0 to purge all queues.
     *     @type \OS\PB\DeviceAction $DeviceExecute
     *           Tells a device to run a certain process
     *     @type \OS\PB\DeviceNetworkAction $DeviceDiscoveryRefresh
     *           1.4 Tells the device to reset its discovery timeouts so new DeviceDiscoveryEvents appear
     *     @type \OS\PB\DeviceNetworkAction $DeviceQueuePurge
     *           1.4 Tells the device to purge a queue by device id
     *     @type \OS\PB\DeviceNetworkAction $DeviceRouteForce
     *           1.4 Force a connection by SerialAddress on an Interface to drain a queue based on routing config
     *     @type \OS\PB\OSDPAction $RS485OSDPDiscovery
     *           2.0 Runs through 0..127 OSDP logical addresses and sees which addresses responds to polls
     *     @type \OS\PB\OSDPAction $RS485OSDPLED
     *           1.0 Tells a reader to change its led color
     *     @type \OS\PB\OSDPAction $RS485OSDPBuzzer
     *           1.0 Tells a reader to drive its buzzer
     *     @type \OS\PB\OSDPAction $RS485OSDPText
     *           1.0 Tells a reader to display some text
     *     @type \OS\PB\OSDPAction $RS485OSDPOutput
     *           1.4 Tells a reader to drive an output
     *     @type \OS\PB\TestAction $Test
     *           used for unit testing 
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Action::initOnce();
        parent::__construct($data);
    }

    /**
     * Used for a particular inteface
     *
     * Generated from protobuf field <code>uint32 InterfaceIndex = 1;</code>
     * @return int
     */
    public function getInterfaceIndex()
    {
        return $this->InterfaceIndex;
    }

    /**
     * Used for a particular inteface
     *
     * Generated from protobuf field <code>uint32 InterfaceIndex = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setInterfaceIndex($var)
    {
        GPBUtil::checkUint32($var);
        $this->InterfaceIndex = $var;

        return $this;
    }

    /**
     * high usage actions
     *
     * Generated from protobuf field <code>.OS.PB.RelayAction RelayActivate = 2;</code>
     * @return \OS\PB\RelayAction|null
     */
    public function getRelayActivate()
    {
        return $this->readOneof(2);
    }

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

    /**
     * high usage actions
     *
     * Generated from protobuf field <code>.OS.PB.RelayAction RelayActivate = 2;</code>
     * @param \OS\PB\RelayAction $var
     * @return $this
     */
    public function setRelayActivate($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\RelayAction::class);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * 1.4 Activate and/or blink the Wiegand green line
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandOkActivate = 3;</code>
     * @return \OS\PB\WiegandAction|null
     */
    public function getWiegandOkActivate()
    {
        return $this->readOneof(3);
    }

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

    /**
     * 1.4 Activate and/or blink the Wiegand green line
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandOkActivate = 3;</code>
     * @param \OS\PB\WiegandAction $var
     * @return $this
     */
    public function setWiegandOkActivate($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\WiegandAction::class);
        $this->writeOneof(3, $var);

        return $this;
    }

    /**
     * 1.4 Activate and/or blink the Wiegand red line
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandErrorActivate = 4;</code>
     * @return \OS\PB\WiegandAction|null
     */
    public function getWiegandErrorActivate()
    {
        return $this->readOneof(4);
    }

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

    /**
     * 1.4 Activate and/or blink the Wiegand red line
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandErrorActivate = 4;</code>
     * @param \OS\PB\WiegandAction $var
     * @return $this
     */
    public function setWiegandErrorActivate($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\WiegandAction::class);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * 1.4 Activate and/or blink the buzzer line 
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandBuzzerActivate = 5;</code>
     * @return \OS\PB\WiegandAction|null
     */
    public function getWiegandBuzzerActivate()
    {
        return $this->readOneof(5);
    }

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

    /**
     * 1.4 Activate and/or blink the buzzer line 
     *
     * Generated from protobuf field <code>.OS.PB.WiegandAction WiegandBuzzerActivate = 5;</code>
     * @param \OS\PB\WiegandAction $var
     * @return $this
     */
    public function setWiegandBuzzerActivate($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\WiegandAction::class);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * Sets the synchronization counter for a codehop remote or clears all/serial's counter
     *
     * Generated from protobuf field <code>.OS.PB.CodeHopAction CodeHopSetCounter = 8;</code>
     * @return \OS\PB\CodeHopAction|null
     */
    public function getCodeHopSetCounter()
    {
        return $this->readOneof(8);
    }

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

    /**
     * Sets the synchronization counter for a codehop remote or clears all/serial's counter
     *
     * Generated from protobuf field <code>.OS.PB.CodeHopAction CodeHopSetCounter = 8;</code>
     * @param \OS\PB\CodeHopAction $var
     * @return $this
     */
    public function setCodeHopSetCounter($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\CodeHopAction::class);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * 1.1 Writes a block of data to DFU Image Slot 1
     *
     * Generated from protobuf field <code>.OS.PB.DFUAction DFUTransferBlock = 14;</code>
     * @return \OS\PB\DFUAction|null
     */
    public function getDFUTransferBlock()
    {
        return $this->readOneof(14);
    }

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

    /**
     * 1.1 Writes a block of data to DFU Image Slot 1
     *
     * Generated from protobuf field <code>.OS.PB.DFUAction DFUTransferBlock = 14;</code>
     * @param \OS\PB\DFUAction $var
     * @return $this
     */
    public function setDFUTransferBlock($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DFUAction::class);
        $this->writeOneof(14, $var);

        return $this;
    }

    /**
     * low usage actions
     *
     * Generated from protobuf field <code>.OS.PB.AccessAction AccessUserAdjust = 20;</code>
     * @return \OS\PB\AccessAction|null
     */
    public function getAccessUserAdjust()
    {
        return $this->readOneof(20);
    }

    public function hasAccessUserAdjust()
    {
        return $this->hasOneof(20);
    }

    /**
     * low usage actions
     *
     * Generated from protobuf field <code>.OS.PB.AccessAction AccessUserAdjust = 20;</code>
     * @param \OS\PB\AccessAction $var
     * @return $this
     */
    public function setAccessUserAdjust($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\AccessAction::class);
        $this->writeOneof(20, $var);

        return $this;
    }

    /**
     * 1.4 Erase OneAccess configurations
     *
     * Generated from protobuf field <code>.OS.PB.AccessEraseAction AccessErase = 30;</code>
     * @return \OS\PB\AccessEraseAction|null
     */
    public function getAccessErase()
    {
        return $this->readOneof(30);
    }

    public function hasAccessErase()
    {
        return $this->hasOneof(30);
    }

    /**
     * 1.4 Erase OneAccess configurations
     *
     * Generated from protobuf field <code>.OS.PB.AccessEraseAction AccessErase = 30;</code>
     * @param \OS\PB\AccessEraseAction $var
     * @return $this
     */
    public function setAccessErase($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\AccessEraseAction::class);
        $this->writeOneof(30, $var);

        return $this;
    }

    /**
     * Instruct a gateway to ignore normal access control logic and allow entry on any Access Method, except pins
     *
     * Generated from protobuf field <code>.OS.PB.AccessAction AccessOverride = 31;</code>
     * @return \OS\PB\AccessAction|null
     */
    public function getAccessOverride()
    {
        return $this->readOneof(31);
    }

    public function hasAccessOverride()
    {
        return $this->hasOneof(31);
    }

    /**
     * Instruct a gateway to ignore normal access control logic and allow entry on any Access Method, except pins
     *
     * Generated from protobuf field <code>.OS.PB.AccessAction AccessOverride = 31;</code>
     * @param \OS\PB\AccessAction $var
     * @return $this
     */
    public function setAccessOverride($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\AccessAction::class);
        $this->writeOneof(31, $var);

        return $this;
    }

    /**
     * Tells OneAccess to begin synchronizing its database
     *
     * Generated from protobuf field <code>.OS.PB.ConfigSyncAction AccessSyncBegin = 40;</code>
     * @return \OS\PB\ConfigSyncAction|null
     */
    public function getAccessSyncBegin()
    {
        return $this->readOneof(40);
    }

    public function hasAccessSyncBegin()
    {
        return $this->hasOneof(40);
    }

    /**
     * Tells OneAccess to begin synchronizing its database
     *
     * Generated from protobuf field <code>.OS.PB.ConfigSyncAction AccessSyncBegin = 40;</code>
     * @param \OS\PB\ConfigSyncAction $var
     * @return $this
     */
    public function setAccessSyncBegin($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\ConfigSyncAction::class);
        $this->writeOneof(40, $var);

        return $this;
    }

    /**
     * Tells OneAccess that this is the end of synchronizing its database
     *
     * Generated from protobuf field <code>.OS.PB.ConfigSyncAction AccessSyncEnd = 41;</code>
     * @return \OS\PB\ConfigSyncAction|null
     */
    public function getAccessSyncEnd()
    {
        return $this->readOneof(41);
    }

    public function hasAccessSyncEnd()
    {
        return $this->hasOneof(41);
    }

    /**
     * Tells OneAccess that this is the end of synchronizing its database
     *
     * Generated from protobuf field <code>.OS.PB.ConfigSyncAction AccessSyncEnd = 41;</code>
     * @param \OS\PB\ConfigSyncAction $var
     * @return $this
     */
    public function setAccessSyncEnd($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\ConfigSyncAction::class);
        $this->writeOneof(41, $var);

        return $this;
    }

    /**
     * Tells OneHealth button that its alert has been acknowledged 
     *
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthButtonAcknowledge = 100;</code>
     * @return \OS\PB\HealthAction|null
     */
    public function getHealthButtonAcknowledge()
    {
        return $this->readOneof(100);
    }

    public function hasHealthButtonAcknowledge()
    {
        return $this->hasOneof(100);
    }

    /**
     * Tells OneHealth button that its alert has been acknowledged 
     *
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthButtonAcknowledge = 100;</code>
     * @param \OS\PB\HealthAction $var
     * @return $this
     */
    public function setHealthButtonAcknowledge($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\HealthAction::class);
        $this->writeOneof(100, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthLinkActivateAlert = 110;</code>
     * @return \OS\PB\HealthAction|null
     */
    public function getHealthLinkActivateAlert()
    {
        return $this->readOneof(110);
    }

    public function hasHealthLinkActivateAlert()
    {
        return $this->hasOneof(110);
    }

    /**
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthLinkActivateAlert = 110;</code>
     * @param \OS\PB\HealthAction $var
     * @return $this
     */
    public function setHealthLinkActivateAlert($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\HealthAction::class);
        $this->writeOneof(110, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthLinkDeactivateAlert = 111;</code>
     * @return \OS\PB\HealthAction|null
     */
    public function getHealthLinkDeactivateAlert()
    {
        return $this->readOneof(111);
    }

    public function hasHealthLinkDeactivateAlert()
    {
        return $this->hasOneof(111);
    }

    /**
     * Generated from protobuf field <code>.OS.PB.HealthAction HealthLinkDeactivateAlert = 111;</code>
     * @param \OS\PB\HealthAction $var
     * @return $this
     */
    public function setHealthLinkDeactivateAlert($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\HealthAction::class);
        $this->writeOneof(111, $var);

        return $this;
    }

    /**
     * DEPRECIATED in Beta+62
     *
     * Generated from protobuf field <code>.OS.PB.DeviceRestartAction DeviceRestartDEPRECIATED = 300;</code>
     * @return \OS\PB\DeviceRestartAction|null
     */
    public function getDeviceRestartDEPRECIATED()
    {
        return $this->readOneof(300);
    }

    public function hasDeviceRestartDEPRECIATED()
    {
        return $this->hasOneof(300);
    }

    /**
     * DEPRECIATED in Beta+62
     *
     * Generated from protobuf field <code>.OS.PB.DeviceRestartAction DeviceRestartDEPRECIATED = 300;</code>
     * @param \OS\PB\DeviceRestartAction $var
     * @return $this
     */
    public function setDeviceRestartDEPRECIATED($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceRestartAction::class);
        $this->writeOneof(300, $var);

        return $this;
    }

    /**
     * Tells a device to restart
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceRestart = 301;</code>
     * @return \OS\PB\DeviceAction|null
     */
    public function getDeviceRestart()
    {
        return $this->readOneof(301);
    }

    public function hasDeviceRestart()
    {
        return $this->hasOneof(301);
    }

    /**
     * Tells a device to restart
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceRestart = 301;</code>
     * @param \OS\PB\DeviceAction $var
     * @return $this
     */
    public function setDeviceRestart($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceAction::class);
        $this->writeOneof(301, $var);

        return $this;
    }

    /**
     * DEPRECIATED in Beta+62
     *
     * Generated from protobuf field <code>.OS.PB.DeviceFormatAction DeviceFormatDEPRECIATED = 302;</code>
     * @return \OS\PB\DeviceFormatAction|null
     */
    public function getDeviceFormatDEPRECIATED()
    {
        return $this->readOneof(302);
    }

    public function hasDeviceFormatDEPRECIATED()
    {
        return $this->hasOneof(302);
    }

    /**
     * DEPRECIATED in Beta+62
     *
     * Generated from protobuf field <code>.OS.PB.DeviceFormatAction DeviceFormatDEPRECIATED = 302;</code>
     * @param \OS\PB\DeviceFormatAction $var
     * @return $this
     */
    public function setDeviceFormatDEPRECIATED($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceFormatAction::class);
        $this->writeOneof(302, $var);

        return $this;
    }

    /**
     * 1.0 Tells a device to format its filesystem
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceFormat = 305;</code>
     * @return \OS\PB\DeviceAction|null
     */
    public function getDeviceFormat()
    {
        return $this->readOneof(305);
    }

    public function hasDeviceFormat()
    {
        return $this->hasOneof(305);
    }

    /**
     * 1.0 Tells a device to format its filesystem
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceFormat = 305;</code>
     * @param \OS\PB\DeviceAction $var
     * @return $this
     */
    public function setDeviceFormat($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceAction::class);
        $this->writeOneof(305, $var);

        return $this;
    }

    /**
     * 1.0 Tells a device to purge a queue by a device id. Use 0 to purge all queues.
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceErase = 303;</code>
     * @return \OS\PB\DeviceAction|null
     */
    public function getDeviceErase()
    {
        return $this->readOneof(303);
    }

    public function hasDeviceErase()
    {
        return $this->hasOneof(303);
    }

    /**
     * 1.0 Tells a device to purge a queue by a device id. Use 0 to purge all queues.
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceErase = 303;</code>
     * @param \OS\PB\DeviceAction $var
     * @return $this
     */
    public function setDeviceErase($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceAction::class);
        $this->writeOneof(303, $var);

        return $this;
    }

    /**
     * Tells a device to run a certain process
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceExecute = 304;</code>
     * @return \OS\PB\DeviceAction|null
     */
    public function getDeviceExecute()
    {
        return $this->readOneof(304);
    }

    public function hasDeviceExecute()
    {
        return $this->hasOneof(304);
    }

    /**
     * Tells a device to run a certain process
     *
     * Generated from protobuf field <code>.OS.PB.DeviceAction DeviceExecute = 304;</code>
     * @param \OS\PB\DeviceAction $var
     * @return $this
     */
    public function setDeviceExecute($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceAction::class);
        $this->writeOneof(304, $var);

        return $this;
    }

    /**
     * 1.4 Tells the device to reset its discovery timeouts so new DeviceDiscoveryEvents appear
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceDiscoveryRefresh = 310;</code>
     * @return \OS\PB\DeviceNetworkAction|null
     */
    public function getDeviceDiscoveryRefresh()
    {
        return $this->readOneof(310);
    }

    public function hasDeviceDiscoveryRefresh()
    {
        return $this->hasOneof(310);
    }

    /**
     * 1.4 Tells the device to reset its discovery timeouts so new DeviceDiscoveryEvents appear
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceDiscoveryRefresh = 310;</code>
     * @param \OS\PB\DeviceNetworkAction $var
     * @return $this
     */
    public function setDeviceDiscoveryRefresh($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceNetworkAction::class);
        $this->writeOneof(310, $var);

        return $this;
    }

    /**
     * 1.4 Tells the device to purge a queue by device id
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceQueuePurge = 315;</code>
     * @return \OS\PB\DeviceNetworkAction|null
     */
    public function getDeviceQueuePurge()
    {
        return $this->readOneof(315);
    }

    public function hasDeviceQueuePurge()
    {
        return $this->hasOneof(315);
    }

    /**
     * 1.4 Tells the device to purge a queue by device id
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceQueuePurge = 315;</code>
     * @param \OS\PB\DeviceNetworkAction $var
     * @return $this
     */
    public function setDeviceQueuePurge($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceNetworkAction::class);
        $this->writeOneof(315, $var);

        return $this;
    }

    /**
     * 1.4 Force a connection by SerialAddress on an Interface to drain a queue based on routing config
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceRouteForce = 320;</code>
     * @return \OS\PB\DeviceNetworkAction|null
     */
    public function getDeviceRouteForce()
    {
        return $this->readOneof(320);
    }

    public function hasDeviceRouteForce()
    {
        return $this->hasOneof(320);
    }

    /**
     * 1.4 Force a connection by SerialAddress on an Interface to drain a queue based on routing config
     *
     * Generated from protobuf field <code>.OS.PB.DeviceNetworkAction DeviceRouteForce = 320;</code>
     * @param \OS\PB\DeviceNetworkAction $var
     * @return $this
     */
    public function setDeviceRouteForce($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\DeviceNetworkAction::class);
        $this->writeOneof(320, $var);

        return $this;
    }

    /**
     * 2.0 Runs through 0..127 OSDP logical addresses and sees which addresses responds to polls
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPDiscovery = 360;</code>
     * @return \OS\PB\OSDPAction|null
     */
    public function getRS485OSDPDiscovery()
    {
        return $this->readOneof(360);
    }

    public function hasRS485OSDPDiscovery()
    {
        return $this->hasOneof(360);
    }

    /**
     * 2.0 Runs through 0..127 OSDP logical addresses and sees which addresses responds to polls
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPDiscovery = 360;</code>
     * @param \OS\PB\OSDPAction $var
     * @return $this
     */
    public function setRS485OSDPDiscovery($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\OSDPAction::class);
        $this->writeOneof(360, $var);

        return $this;
    }

    /**
     * 1.0 Tells a reader to change its led color
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPLED = 361;</code>
     * @return \OS\PB\OSDPAction|null
     */
    public function getRS485OSDPLED()
    {
        return $this->readOneof(361);
    }

    public function hasRS485OSDPLED()
    {
        return $this->hasOneof(361);
    }

    /**
     * 1.0 Tells a reader to change its led color
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPLED = 361;</code>
     * @param \OS\PB\OSDPAction $var
     * @return $this
     */
    public function setRS485OSDPLED($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\OSDPAction::class);
        $this->writeOneof(361, $var);

        return $this;
    }

    /**
     * 1.0 Tells a reader to drive its buzzer
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPBuzzer = 362;</code>
     * @return \OS\PB\OSDPAction|null
     */
    public function getRS485OSDPBuzzer()
    {
        return $this->readOneof(362);
    }

    public function hasRS485OSDPBuzzer()
    {
        return $this->hasOneof(362);
    }

    /**
     * 1.0 Tells a reader to drive its buzzer
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPBuzzer = 362;</code>
     * @param \OS\PB\OSDPAction $var
     * @return $this
     */
    public function setRS485OSDPBuzzer($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\OSDPAction::class);
        $this->writeOneof(362, $var);

        return $this;
    }

    /**
     * 1.0 Tells a reader to display some text
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPText = 363;</code>
     * @return \OS\PB\OSDPAction|null
     */
    public function getRS485OSDPText()
    {
        return $this->readOneof(363);
    }

    public function hasRS485OSDPText()
    {
        return $this->hasOneof(363);
    }

    /**
     * 1.0 Tells a reader to display some text
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPText = 363;</code>
     * @param \OS\PB\OSDPAction $var
     * @return $this
     */
    public function setRS485OSDPText($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\OSDPAction::class);
        $this->writeOneof(363, $var);

        return $this;
    }

    /**
     * 1.4 Tells a reader to drive an output
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPOutput = 364;</code>
     * @return \OS\PB\OSDPAction|null
     */
    public function getRS485OSDPOutput()
    {
        return $this->readOneof(364);
    }

    public function hasRS485OSDPOutput()
    {
        return $this->hasOneof(364);
    }

    /**
     * 1.4 Tells a reader to drive an output
     *
     * Generated from protobuf field <code>.OS.PB.OSDPAction RS485OSDPOutput = 364;</code>
     * @param \OS\PB\OSDPAction $var
     * @return $this
     */
    public function setRS485OSDPOutput($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\OSDPAction::class);
        $this->writeOneof(364, $var);

        return $this;
    }

    /**
     * used for unit testing 
     *
     * Generated from protobuf field <code>.OS.PB.TestAction Test = 10000;</code>
     * @return \OS\PB\TestAction|null
     */
    public function getTest()
    {
        return $this->readOneof(10000);
    }

    public function hasTest()
    {
        return $this->hasOneof(10000);
    }

    /**
     * used for unit testing 
     *
     * Generated from protobuf field <code>.OS.PB.TestAction Test = 10000;</code>
     * @param \OS\PB\TestAction $var
     * @return $this
     */
    public function setTest($var)
    {
        GPBUtil::checkMessage($var, \OS\PB\TestAction::class);
        $this->writeOneof(10000, $var);

        return $this;
    }

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

}

