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

namespace Keyapis\Subscription\V1\Privilege;

use UnexpectedValueException;

/**
 * Типы привилегий
 *
 * Protobuf type <code>keyapis.subscription.v1.Privilege.Type</code>
 */
class Type
{
    /**
     * Значение не указано
     *
     * Generated from protobuf enum <code>TYPE_UNKNOWN = 0;</code>
     */
    const TYPE_UNKNOWN = 0;
    /**
     * Умный домофон.
     * Базовые функции.
     * Право доступа к разделу с домофонами и калиткаи.
     * Действие.
     * Закрывает услуги: get_devices_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_USE = 1;</code>
     */
    const INTERCOM_USE = 1;
    /**
     * Умный домофон.
     * Базовые функции.
     * Право использовать функционал открытия двери домофона и калитки.
     * Действие.
     * Закрывает услуги: post_devices_open_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_OPEN = 2;</code>
     */
    const INTERCOM_OPEN = 2;
    /**
     * Умный домофон.
     * Коды.
     * Право использовать функционал кодов домофонов и калиток.
     * Действие.
     * Закрывает услуги: get_devices_codes_intercom, post_devices_codes_intercom, delete_devices_codes_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_CODE_USE = 3;</code>
     */
    const INTERCOM_CODE_USE = 3;
    /**
     * Умный домофон.
     * Ключи.
     * Право использовать функционал физических ключей домофонов и калиток.
     * Действие.
     * Закрывает услуги: get_devices_rfids_intercom, post_devices_rfids_barrier, delete_devices_rfids_barrier
     *
     * Generated from protobuf enum <code>INTERCOM_RFID_USE = 4;</code>
     */
    const INTERCOM_RFID_USE = 4;
    /**
     * Умный домофон.
     * События.
     * Право использовать функционал журнала событий домофонов и калиток.
     * Действие.
     * Закрывает услуги: get_events_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_EVENT_USE = 5;</code>
     */
    const INTERCOM_EVENT_USE = 5;
    /**
     * Умный домофон.
     * Камеры.
     * Право использовать функционал просмотра камер и лайв видео с домофонов и калиток.
     * Действие.
     * Закрывает услуги: get_devices_camera_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_CAMERA_USE = 6;</code>
     */
    const INTERCOM_CAMERA_USE = 6;
    /**
     * Умный домофон.
     * Камеры.
     * Право использовать функционал архива видео с камер домофонов и калиток.
     * Действие.
     * Закрывает услуги: get_video_archive_intercom
     *
     * Generated from protobuf enum <code>INTERCOM_CAMERA_ARCHIVE = 7;</code>
     */
    const INTERCOM_CAMERA_ARCHIVE = 7;
    /**
     * Умный домофон.
     * Переадресация.
     * Право перенаправления входящих вызова от домофона в приложения, используется только на сервере.
     * Поведение.
     * Закрывает услуги: devices_call_redirect_to_mobile_app_behavior
     *
     * Generated from protobuf enum <code>INTERCOM_CALLREDIRECT_APP = 8;</code>
     */
    const INTERCOM_CALLREDIRECT_APP = 8;
    /**
     * Умный домофон.
     * Переадресация.
     * Право перенаправление входящих вызовов от домофона на номера ТФОП, используется только на сервере.
     * Поведение.
     * Закрывает услуги: devices_call_redirect_to_pstn_behavior
     *
     * Generated from protobuf enum <code>INTERCOM_CALLREDIRECT_PSTN = 9;</code>
     */
    const INTERCOM_CALLREDIRECT_PSTN = 9;
    /**
     * Умный домофон.
     * Переадресация.
     * Право перенаправление входящих вызовов от домофона на номера SIP, используется только на сервере.
     * Поведение.
     * Закрывает услуги: devices_call_redirect_to_sip_behavior
     *
     * Generated from protobuf enum <code>INTERCOM_CALLREDIRECT_SIP = 10;</code>
     */
    const INTERCOM_CALLREDIRECT_SIP = 10;
    /**
     * Умный шлагбаум.
     * Базовые функции.
     * Право доступа к разделу шлагбаумов.
     * Действие.
     * Закрывает услуги: get_devices_barrier
     *
     * Generated from protobuf enum <code>BARRIER_USE = 11;</code>
     */
    const BARRIER_USE = 11;
    /**
     * Умный шлагбаум.
     * Базовые функции.
     * Право использовать функционала поднятия стрелы шлагбаума.
     * Действие.
     * Закрывает услуги: post_devices_open_barrier
     *
     * Generated from protobuf enum <code>BARRIER_OPEN = 12;</code>
     */
    const BARRIER_OPEN = 12;
    /**
     * Умный шлагбаум.
     * Коды.
     * Право использовать функционал открытия шлагбаума по звонку на короткий номер.
     * Действие.
     * Закрывает услуги: get_devices_codes_barrier, post_devices_codes_barrier, delete_devices_codes_barrier
     *
     * Generated from protobuf enum <code>BARRIER_CODE_USE = 13;</code>
     */
    const BARRIER_CODE_USE = 13;
    /**
     * Умный шлагбаум.
     * События.
     * Право использовать функционал журнала событий шлагбаума.
     * Действие.
     * Закрывает услуги: get_events_barrier
     *
     * Generated from protobuf enum <code>BARRIER_EVENT_USE = 14;</code>
     */
    const BARRIER_EVENT_USE = 14;
    /**
     * Умный шлагбаум.
     * Камеры.
     * Право использовать функционал просмотра камер и лайв видео с шлагбаумов.
     * Действие.
     * Закрывает услуги: get_devices_camera_barrier
     *
     * Generated from protobuf enum <code>BARRIER_CAMERA_USE = 15;</code>
     */
    const BARRIER_CAMERA_USE = 15;
    /**
     * Умный шлагбаум.
     * Камеры.
     * Право использовать функционал архива видео с камер, направленных на шлагбаум.
     * Действие.
     * Закрывает услуги: get_video_archive_barrier
     *
     * Generated from protobuf enum <code>BARRIER_CAMERA_ARCHIVE = 16;</code>
     */
    const BARRIER_CAMERA_ARCHIVE = 16;
    /**
     * Распознавание лица.
     * Фото.
     * Право доступа к разделу распознавания лиц.
     * Действие.
     * Закрывает услуги: get_photo_fr_intercom, fr_intercom_access_behavior, post_photo_fr_intercom, delete_photo_fr_intercom
     *
     * Generated from protobuf enum <code>FR_USE = 17;</code>
     */
    const FR_USE = 17;
    /**
     * Телеметрия.
     * Базовые функции.
     * Право доступа к разделу показаний приборов учёта.
     * Действие.
     * Закрывает услуги: get_telemetry_rooms_layout
     *
     * Generated from protobuf enum <code>TELEMETRY_USE = 18;</code>
     */
    const TELEMETRY_USE = 18;
    /**
     * Камеры.
     * Базовые функции.
     * Право доступа к разделу камер и лайв видео с них.
     * Действие.
     * Закрывает услуги: get_devices_camera, get_events_camera, get_devices_camera_access_control_panel, get_devices_camera_barrier, get_devices_camera_intercom
     *
     * Generated from protobuf enum <code>CAMERA_USE = 19;</code>
     */
    const CAMERA_USE = 19;
    /**
     * Камеры.
     * Базовые функции.
     * Право использовать функционал архива видео с камер видеонаблюдения.
     * Действие.
     * Закрывает услуги: get_video_archive, get_video_archive_access_control_panel
     *
     * Generated from protobuf enum <code>CAMERA_ARCHIVE = 20;</code>
     */
    const CAMERA_ARCHIVE = 20;
    /**
     * Умный домофон.
     * Переадресация.
     * Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.
     * Поведение.
     * Закрывает услуги: devices_call_to_cms_phones_behavior
     *
     * Generated from protobuf enum <code>INTERCOM_CMS_PHONES_USE = 21;</code>
     */
    const INTERCOM_CMS_PHONES_USE = 21;
    /**
     * Умный домофон.
     * Переадресация.
     * Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.
     * Поведение.
     * Закрывает услуги: get_events_camera
     *
     * Generated from protobuf enum <code>CAMERA_EVENT_USE = 22;</code>
     */
    const CAMERA_EVENT_USE = 22;

    private static $valueToName = [
        self::TYPE_UNKNOWN => 'TYPE_UNKNOWN',
        self::INTERCOM_USE => 'INTERCOM_USE',
        self::INTERCOM_OPEN => 'INTERCOM_OPEN',
        self::INTERCOM_CODE_USE => 'INTERCOM_CODE_USE',
        self::INTERCOM_RFID_USE => 'INTERCOM_RFID_USE',
        self::INTERCOM_EVENT_USE => 'INTERCOM_EVENT_USE',
        self::INTERCOM_CAMERA_USE => 'INTERCOM_CAMERA_USE',
        self::INTERCOM_CAMERA_ARCHIVE => 'INTERCOM_CAMERA_ARCHIVE',
        self::INTERCOM_CALLREDIRECT_APP => 'INTERCOM_CALLREDIRECT_APP',
        self::INTERCOM_CALLREDIRECT_PSTN => 'INTERCOM_CALLREDIRECT_PSTN',
        self::INTERCOM_CALLREDIRECT_SIP => 'INTERCOM_CALLREDIRECT_SIP',
        self::BARRIER_USE => 'BARRIER_USE',
        self::BARRIER_OPEN => 'BARRIER_OPEN',
        self::BARRIER_CODE_USE => 'BARRIER_CODE_USE',
        self::BARRIER_EVENT_USE => 'BARRIER_EVENT_USE',
        self::BARRIER_CAMERA_USE => 'BARRIER_CAMERA_USE',
        self::BARRIER_CAMERA_ARCHIVE => 'BARRIER_CAMERA_ARCHIVE',
        self::FR_USE => 'FR_USE',
        self::TELEMETRY_USE => 'TELEMETRY_USE',
        self::CAMERA_USE => 'CAMERA_USE',
        self::CAMERA_ARCHIVE => 'CAMERA_ARCHIVE',
        self::INTERCOM_CMS_PHONES_USE => 'INTERCOM_CMS_PHONES_USE',
        self::CAMERA_EVENT_USE => 'CAMERA_EVENT_USE',
    ];

    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\Subscription\V1\Privilege_Type::class);

