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

namespace Keyapis\TelemetryControl\V1\Device\MetricPoint;

use UnexpectedValueException;

/**
 * Справочник типов номиналов первичных токов.
 * У выпускаемых трансформаторов тока (А)
 *
 * Protobuf type <code>keyapis.telemetry_control.v1.Device.MetricPoint.PrimaryCurrentType</code>
 */
class PrimaryCurrentType
{
    /**
     * Значение не указано
     *
     * Generated from protobuf enum <code>PRIMARY_CURRENT_TYPE_UNKNOWN = 0;</code>
     */
    const PRIMARY_CURRENT_TYPE_UNKNOWN = 0;
    /**
     * 1 (А)
     *
     * Generated from protobuf enum <code>TT1A = 1;</code>
     */
    const TT1A = 1;
    /**
     * 5 (А)
     *
     * Generated from protobuf enum <code>TT5A = 2;</code>
     */
    const TT5A = 2;
    /**
     * 10 (А)
     *
     * Generated from protobuf enum <code>TT10A = 3;</code>
     */
    const TT10A = 3;
    /**
     * 15 (А)
     *
     * Generated from protobuf enum <code>TT15A = 4;</code>
     */
    const TT15A = 4;
    /**
     * 20 (А)
     *
     * Generated from protobuf enum <code>TT20A = 5;</code>
     */
    const TT20A = 5;
    /**
     * 30 (А)
     *
     * Generated from protobuf enum <code>TT30A = 6;</code>
     */
    const TT30A = 6;
    /**
     * 40 (А)
     *
     * Generated from protobuf enum <code>TT40A = 7;</code>
     */
    const TT40A = 7;
    /**
     * 50 (А)
     *
     * Generated from protobuf enum <code>TT50A = 8;</code>
     */
    const TT50A = 8;
    /**
     * 75 (А)
     *
     * Generated from protobuf enum <code>TT75A = 9;</code>
     */
    const TT75A = 9;
    /**
     * 80 (А)
     *
     * Generated from protobuf enum <code>TT80A = 10;</code>
     */
    const TT80A = 10;
    /**
     * 100 (А)
     *
     * Generated from protobuf enum <code>TT100A = 11;</code>
     */
    const TT100A = 11;
    /**
     * 150 (А)
     *
     * Generated from protobuf enum <code>TT150A = 12;</code>
     */
    const TT150A = 12;
    /**
     * 200 (А)
     *
     * Generated from protobuf enum <code>TT200A = 13;</code>
     */
    const TT200A = 13;
    /**
     * 300 (А)
     *
     * Generated from protobuf enum <code>TT300A = 14;</code>
     */
    const TT300A = 14;
    /**
     * 400 (А)
     *
     * Generated from protobuf enum <code>TT400A = 15;</code>
     */
    const TT400A = 15;
    /**
     * 500 (А)
     *
     * Generated from protobuf enum <code>TT500A = 16;</code>
     */
    const TT500A = 16;
    /**
     * 600 (А)
     *
     * Generated from protobuf enum <code>TT600A = 17;</code>
     */
    const TT600A = 17;
    /**
     * 750 (А)
     *
     * Generated from protobuf enum <code>TT750A = 18;</code>
     */
    const TT750A = 18;
    /**
     * 800 (А)
     *
     * Generated from protobuf enum <code>TT800A = 19;</code>
     */
    const TT800A = 19;
    /**
     * 1000 (А)
     *
     * Generated from protobuf enum <code>TT1000A = 20;</code>
     */
    const TT1000A = 20;
    /**
     * 1200 (А)
     *
     * Generated from protobuf enum <code>TT1200A = 21;</code>
     */
    const TT1200A = 21;
    /**
     * 1500 (А)
     *
     * Generated from protobuf enum <code>TT1500A = 22;</code>
     */
    const TT1500A = 22;
    /**
     * 2000 (А)
     *
     * Generated from protobuf enum <code>TT2000A = 23;</code>
     */
    const TT2000A = 23;

    private static $valueToName = [
        self::PRIMARY_CURRENT_TYPE_UNKNOWN => 'PRIMARY_CURRENT_TYPE_UNKNOWN',
        self::TT1A => 'TT1A',
        self::TT5A => 'TT5A',
        self::TT10A => 'TT10A',
        self::TT15A => 'TT15A',
        self::TT20A => 'TT20A',
        self::TT30A => 'TT30A',
        self::TT40A => 'TT40A',
        self::TT50A => 'TT50A',
        self::TT75A => 'TT75A',
        self::TT80A => 'TT80A',
        self::TT100A => 'TT100A',
        self::TT150A => 'TT150A',
        self::TT200A => 'TT200A',
        self::TT300A => 'TT300A',
        self::TT400A => 'TT400A',
        self::TT500A => 'TT500A',
        self::TT600A => 'TT600A',
        self::TT750A => 'TT750A',
        self::TT800A => 'TT800A',
        self::TT1000A => 'TT1000A',
        self::TT1200A => 'TT1200A',
        self::TT1500A => 'TT1500A',
        self::TT2000A => 'TT2000A',
    ];

    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(PrimaryCurrentType::class, \Keyapis\TelemetryControl\V1\Device_MetricPoint_PrimaryCurrentType::class);

