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

namespace Google\Cloud\Compute\V1\AttachedDisk;

use UnexpectedValueException;

/**
 * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.
 *
 * Protobuf type <code>google.cloud.compute.v1.AttachedDisk.Interface</code>
 */
class PBInterface
{
    /**
     * A value indicating that the enum field is not set.
     *
     * Generated from protobuf enum <code>UNDEFINED_INTERFACE = 0;</code>
     */
    const UNDEFINED_INTERFACE = 0;
    /**
     * Generated from protobuf enum <code>NVME = 2408800;</code>
     */
    const NVME = 2408800;
    /**
     * Generated from protobuf enum <code>SCSI = 2539686;</code>
     */
    const SCSI = 2539686;

    private static $valueToName = [
        self::UNDEFINED_INTERFACE => 'UNDEFINED_INTERFACE',
        self::NVME => 'NVME',
        self::SCSI => 'SCSI',
    ];

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


