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

namespace Keyapis\Ecosystem\V1\Service;

use UnexpectedValueException;

/**
 * Тип услуги
 *
 * Protobuf type <code>keyapis.ecosystem.v1.Service.Type</code>
 */
class Type
{
    /**
     * Значение не указано
     *
     * Generated from protobuf enum <code>TYPE_UNKNOWN = 0;</code>
     */
    const TYPE_UNKNOWN = 0;
    /**
     * Cотовая связь
     *
     * Generated from protobuf enum <code>SOTOVAYA_SVYAZ_MVNO = 1;</code>
     */
    const SOTOVAYA_SVYAZ_MVNO = 1;
    /**
     * Цифровое интерактивное ТВ
     *
     * Generated from protobuf enum <code>IPTV = 2;</code>
     */
    const IPTV = 2;
    /**
     * Домашний интернет
     *
     * Generated from protobuf enum <code>SHPD = 3;</code>
     */
    const SHPD = 3;
    /**
     * Кабельное цифровое ТВ
     *
     * Generated from protobuf enum <code>KABELNOE_TV = 4;</code>
     */
    const KABELNOE_TV = 4;
    /**
     * Стационарный телефон
     *
     * Generated from protobuf enum <code>FIKSIROVANNAYA_SVYAZ = 5;</code>
     */
    const FIKSIROVANNAYA_SVYAZ = 5;
    /**
     * Лицей
     *
     * Generated from protobuf enum <code>ROSTELECOM_LYCEUM = 6;</code>
     */
    const ROSTELECOM_LYCEUM = 6;
    /**
     * Умный дом
     *
     * Generated from protobuf enum <code>SMART_HOUSE = 7;</code>
     */
    const SMART_HOUSE = 7;
    /**
     * Юрист
     *
     * Generated from protobuf enum <code>JURIST = 8;</code>
     */
    const JURIST = 8;
    /**
     * WINK ТВ
     *
     * Generated from protobuf enum <code>WINK = 9;</code>
     */
    const WINK = 9;
    /**
     * Оборудование
     *
     * Generated from protobuf enum <code>SALE_EQUIPMENT = 10;</code>
     */
    const SALE_EQUIPMENT = 10;
    /**
     * Ключ
     *
     * Generated from protobuf enum <code>SMART_INTERCOM = 11;</code>
     */
    const SMART_INTERCOM = 11;
    /**
     * Шлагбаум
     *
     * Generated from protobuf enum <code>SMART_BARRIER = 12;</code>
     */
    const SMART_BARRIER = 12;
    /**
     * Гарантия плюс
     *
     * Generated from protobuf enum <code>WARRANTY_PLUS = 13;</code>
     */
    const WARRANTY_PLUS = 13;
    /**
     * Аналоговое цифровое ТВ
     *
     * Generated from protobuf enum <code>ANALOG_CABLE_TV = 14;</code>
     */
    const ANALOG_CABLE_TV = 14;
    /**
     * АЛЛЁ
     *
     * Generated from protobuf enum <code>OTT_PERSON = 15;</code>
     */
    const OTT_PERSON = 15;
    /**
     * Беспроводной интернет
     *
     * Generated from protobuf enum <code>WIFI = 16;</code>
     */
    const WIFI = 16;

    private static $valueToName = [
        self::TYPE_UNKNOWN => 'TYPE_UNKNOWN',
        self::SOTOVAYA_SVYAZ_MVNO => 'SOTOVAYA_SVYAZ_MVNO',
        self::IPTV => 'IPTV',
        self::SHPD => 'SHPD',
        self::KABELNOE_TV => 'KABELNOE_TV',
        self::FIKSIROVANNAYA_SVYAZ => 'FIKSIROVANNAYA_SVYAZ',
        self::ROSTELECOM_LYCEUM => 'ROSTELECOM_LYCEUM',
        self::SMART_HOUSE => 'SMART_HOUSE',
        self::JURIST => 'JURIST',
        self::WINK => 'WINK',
        self::SALE_EQUIPMENT => 'SALE_EQUIPMENT',
        self::SMART_INTERCOM => 'SMART_INTERCOM',
        self::SMART_BARRIER => 'SMART_BARRIER',
        self::WARRANTY_PLUS => 'WARRANTY_PLUS',
        self::ANALOG_CABLE_TV => 'ANALOG_CABLE_TV',
        self::OTT_PERSON => 'OTT_PERSON',
        self::WIFI => 'WIFI',
    ];

    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\Ecosystem\V1\Service_Type::class);

