<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/access_control/v1/keyapis_access_control_access_control_v1.proto

namespace Keyapis\AccessControl\V1\Room;

use UnexpectedValueException;

/**
 * Тип
 *
 * Protobuf type <code>keyapis.access_control.v1.Room.Type</code>
 */
class Type
{
    /**
     * Значение не указано
     *
     * Generated from protobuf enum <code>TYPE_UNKNOWN = 0;</code>
     */
    const TYPE_UNKNOWN = 0;
    /**
     * Этаж
     *
     * Generated from protobuf enum <code>FLOOR = 1;</code>
     */
    const FLOOR = 1;
    /**
     * Подъезд
     *
     * Generated from protobuf enum <code>ENTRANCE = 2;</code>
     */
    const ENTRANCE = 2;
    /**
     * Апартаменты
     *
     * Generated from protobuf enum <code>APARTMENT = 3;</code>
     */
    const APARTMENT = 3;
    /**
     * Вводно-распределительные устройства
     *
     * Generated from protobuf enum <code>WATER_DISTRIBUTION = 4;</code>
     */
    const WATER_DISTRIBUTION = 4;
    /**
     * Индивидуальный тепловой пункт
     *
     * Generated from protobuf enum <code>HEAT_POINT = 5;</code>
     */
    const HEAT_POINT = 5;
    /**
     * Кладовая
     *
     * Generated from protobuf enum <code>PANTRY = 6;</code>
     */
    const PANTRY = 6;
    /**
     * Колясочная
     *
     * Generated from protobuf enum <code>WHEELCHAIR = 7;</code>
     */
    const WHEELCHAIR = 7;
    /**
     * Коммутационный шкаф
     *
     * Generated from protobuf enum <code>WIRING_CLOSET = 8;</code>
     */
    const WIRING_CLOSET = 8;
    /**
     * Консьержная
     *
     * Generated from protobuf enum <code>CONCIERGE = 9;</code>
     */
    const CONCIERGE = 9;
    /**
     * КПП
     *
     * Generated from protobuf enum <code>CHECKPOINT = 10;</code>
     */
    const CHECKPOINT = 10;
    /**
     * Машиноместо
     *
     * Generated from protobuf enum <code>PARKING_PLACE = 11;</code>
     */
    const PARKING_PLACE = 11;
    /**
     * Офис
     *
     * Generated from protobuf enum <code>OFFICE = 12;</code>
     */
    const OFFICE = 12;
    /**
     * Подвал
     *
     * Generated from protobuf enum <code>BASEMENT = 13;</code>
     */
    const BASEMENT = 13;
    /**
     * Подстанция
     *
     * Generated from protobuf enum <code>SUBSTATION = 14;</code>
     */
    const SUBSTATION = 14;
    /**
     * Помещение правления ТСЖ
     *
     * Generated from protobuf enum <code>HOMEOWNERS_ROOM = 15;</code>
     */
    const HOMEOWNERS_ROOM = 15;
    /**
     * Тамбур
     *
     * Generated from protobuf enum <code>TAMBOUR = 16;</code>
     */
    const TAMBOUR = 16;
    /**
     * Узел ввода
     *
     * Generated from protobuf enum <code>INPUT_NODE = 17;</code>
     */
    const INPUT_NODE = 17;
    /**
     * Лобби
     *
     * Generated from protobuf enum <code>LOBBY = 18;</code>
     */
    const LOBBY = 18;
    /**
     * Чердак
     *
     * Generated from protobuf enum <code>ATTIC = 19;</code>
     */
    const ATTIC = 19;
    /**
     * Шахта лифта
     *
     * Generated from protobuf enum <code>ELEVATOR_SHAFT = 20;</code>
     */
    const ELEVATOR_SHAFT = 20;
    /**
     * Электрощитовая
     *
     * Generated from protobuf enum <code>SWITCHBOARD = 21;</code>
     */
    const SWITCHBOARD = 21;
    /**
     * Квартира по умолчанию
     *
     * Generated from protobuf enum <code>DEFAULT_ROOM = 22;</code>
     */
    const DEFAULT_ROOM = 22;

    private static $valueToName = [
        self::TYPE_UNKNOWN => 'TYPE_UNKNOWN',
        self::FLOOR => 'FLOOR',
        self::ENTRANCE => 'ENTRANCE',
        self::APARTMENT => 'APARTMENT',
        self::WATER_DISTRIBUTION => 'WATER_DISTRIBUTION',
        self::HEAT_POINT => 'HEAT_POINT',
        self::PANTRY => 'PANTRY',
        self::WHEELCHAIR => 'WHEELCHAIR',
        self::WIRING_CLOSET => 'WIRING_CLOSET',
        self::CONCIERGE => 'CONCIERGE',
        self::CHECKPOINT => 'CHECKPOINT',
        self::PARKING_PLACE => 'PARKING_PLACE',
        self::OFFICE => 'OFFICE',
        self::BASEMENT => 'BASEMENT',
        self::SUBSTATION => 'SUBSTATION',
        self::HOMEOWNERS_ROOM => 'HOMEOWNERS_ROOM',
        self::TAMBOUR => 'TAMBOUR',
        self::INPUT_NODE => 'INPUT_NODE',
        self::LOBBY => 'LOBBY',
        self::ATTIC => 'ATTIC',
        self::ELEVATOR_SHAFT => 'ELEVATOR_SHAFT',
        self::SWITCHBOARD => 'SWITCHBOARD',
        self::DEFAULT_ROOM => 'DEFAULT_ROOM',
    ];

    public static function name($value)
    {
        if (!isset(self::$valueToName[$value])) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no name defined for value %s', __CLASS__, $value));
        }
        return self::$valueToName[$value];
    }


    public static function value($name)
    {
        $const = __CLASS__ . '::' . strtoupper($name);
        if (!defined($const)) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no value defined for name %s', __CLASS__, $name));
        }
        return constant($const);
    }
}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(Type::class, \Keyapis\AccessControl\V1\Room_Type::class);

