<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/compute/v1/compute.proto

namespace Google\Cloud\Compute\V1\Address;

use UnexpectedValueException;

/**
 * This signifies the networking tier used for configuring this address and can only take the following values: PREMIUM or STANDARD. Global forwarding rules can only be Premium Tier. Regional forwarding rules can be either Premium or Standard Tier. Standard Tier addresses applied to regional forwarding rules can be used with any external load balancer. Regional forwarding rules in Premium Tier can only be used with a network load balancer.
 * If this field is not specified, it is assumed to be PREMIUM.
 *
 * Protobuf type <code>google.cloud.compute.v1.Address.NetworkTier</code>
 */
class NetworkTier
{
    /**
     * A value indicating that the enum field is not set.
     *
     * Generated from protobuf enum <code>UNDEFINED_NETWORK_TIER = 0;</code>
     */
    const UNDEFINED_NETWORK_TIER = 0;
    /**
     * Generated from protobuf enum <code>PREMIUM = 399530551;</code>
     */
    const PREMIUM = 399530551;
    /**
     * Generated from protobuf enum <code>STANDARD = 484642493;</code>
     */
    const STANDARD = 484642493;

    private static $valueToName = [
        self::UNDEFINED_NETWORK_TIER => 'UNDEFINED_NETWORK_TIER',
        self::PREMIUM => 'PREMIUM',
        self::STANDARD => 'STANDARD',
    ];

    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);
    }
}


