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

namespace Google\Cloud\Compute\V1\NetworkRoutingConfig;

use UnexpectedValueException;

/**
 * The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions.
 *
 * Protobuf type <code>google.cloud.compute.v1.NetworkRoutingConfig.RoutingMode</code>
 */
class RoutingMode
{
    /**
     * A value indicating that the enum field is not set.
     *
     * Generated from protobuf enum <code>UNDEFINED_ROUTING_MODE = 0;</code>
     */
    const UNDEFINED_ROUTING_MODE = 0;
    /**
     * Generated from protobuf enum <code>GLOBAL = 494663587;</code>
     */
    const PBGLOBAL = 494663587;
    /**
     * Generated from protobuf enum <code>REGIONAL = 92288543;</code>
     */
    const REGIONAL = 92288543;

    private static $valueToName = [
        self::UNDEFINED_ROUTING_MODE => 'UNDEFINED_ROUTING_MODE',
        self::PBGLOBAL => 'GLOBAL',
        self::REGIONAL => 'REGIONAL',
    ];

    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)) {
            $pbconst =  __CLASS__. '::PB' . strtoupper($name);
            if (!defined($pbconst)) {
                throw new UnexpectedValueException(sprintf(
                        'Enum %s has no value defined for name %s', __CLASS__, $name));
            }
            return constant($pbconst);
        }
        return constant($const);
    }
}


