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

namespace OS\PB;

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

/**
 * Generated from protobuf message <code>OS.PB.AccessRightsConfig</code>
 */
class AccessRightsConfig extends \Google\Protobuf\Internal\Message
{
    /**
     * The Id referred to in AccessMethod, cannot be 0
     *
     * Generated from protobuf field <code>uint64 Id = 1;</code>
     */
    protected $Id = 0;
    /**
     * Local Time. 0 is all week, bit 0 to 7 (8) indicates, Monday through to Sunday, bit 7 is Holidays
     *
     * Generated from protobuf field <code>uint32 DaysOfWeekBits = 2;</code>
     */
    protected $DaysOfWeekBits = 0;
    /**
     * Local Time. 0 is all day, bit 0 to 47 indicates 24 hours in 30 minute intervals of allowed access time
     *
     * Generated from protobuf field <code>uint64 TimesOfDayBits = 3;</code>
     */
    protected $TimesOfDayBits = 0;
    /**
     * list of AccessReaderIds this AccessRights is permitted on
     *
     * Generated from protobuf field <code>repeated uint64 ReaderIds = 8;</code>
     */
    private $ReaderIds;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int|string $Id
     *           The Id referred to in AccessMethod, cannot be 0
     *     @type int $DaysOfWeekBits
     *           Local Time. 0 is all week, bit 0 to 7 (8) indicates, Monday through to Sunday, bit 7 is Holidays
     *     @type int|string $TimesOfDayBits
     *           Local Time. 0 is all day, bit 0 to 47 indicates 24 hours in 30 minute intervals of allowed access time
     *     @type int[]|string[] $ReaderIds
     *           list of AccessReaderIds this AccessRights is permitted on
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Access::initOnce();
        parent::__construct($data);
    }

    /**
     * The Id referred to in AccessMethod, cannot be 0
     *
     * Generated from protobuf field <code>uint64 Id = 1;</code>
     * @return int|string
     */
    public function getId()
    {
        return $this->Id;
    }

    /**
     * The Id referred to in AccessMethod, cannot be 0
     *
     * Generated from protobuf field <code>uint64 Id = 1;</code>
     * @param int|string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkUint64($var);
        $this->Id = $var;

        return $this;
    }

    /**
     * Local Time. 0 is all week, bit 0 to 7 (8) indicates, Monday through to Sunday, bit 7 is Holidays
     *
     * Generated from protobuf field <code>uint32 DaysOfWeekBits = 2;</code>
     * @return int
     */
    public function getDaysOfWeekBits()
    {
        return $this->DaysOfWeekBits;
    }

    /**
     * Local Time. 0 is all week, bit 0 to 7 (8) indicates, Monday through to Sunday, bit 7 is Holidays
     *
     * Generated from protobuf field <code>uint32 DaysOfWeekBits = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setDaysOfWeekBits($var)
    {
        GPBUtil::checkUint32($var);
        $this->DaysOfWeekBits = $var;

        return $this;
    }

    /**
     * Local Time. 0 is all day, bit 0 to 47 indicates 24 hours in 30 minute intervals of allowed access time
     *
     * Generated from protobuf field <code>uint64 TimesOfDayBits = 3;</code>
     * @return int|string
     */
    public function getTimesOfDayBits()
    {
        return $this->TimesOfDayBits;
    }

    /**
     * Local Time. 0 is all day, bit 0 to 47 indicates 24 hours in 30 minute intervals of allowed access time
     *
     * Generated from protobuf field <code>uint64 TimesOfDayBits = 3;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTimesOfDayBits($var)
    {
        GPBUtil::checkUint64($var);
        $this->TimesOfDayBits = $var;

        return $this;
    }

    /**
     * list of AccessReaderIds this AccessRights is permitted on
     *
     * Generated from protobuf field <code>repeated uint64 ReaderIds = 8;</code>
     * @return RepeatedField<int>|RepeatedField<string>
     */
    public function getReaderIds()
    {
        return $this->ReaderIds;
    }

    /**
     * list of AccessReaderIds this AccessRights is permitted on
     *
     * Generated from protobuf field <code>repeated uint64 ReaderIds = 8;</code>
     * @param int[]|string[] $var
     * @return $this
     */
    public function setReaderIds($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::UINT64);
        $this->ReaderIds = $arr;

        return $this;
    }

}

