<?php

declare (strict_types=1);
namespace idoit\Module\JDisc\Graphql\Schema\Model;

use Axtiva\FlexibleGraphql\Generator\Exception\UnknownEnumValue;
use Axtiva\FlexibleGraphql\Type\EnumInterface;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * and will be regenerated. Do not edit it manually
 * PHP representation of graphql enum ContextMenuItemKey
 * The context menu item key
 */
final class ContextMenuItemKeyEnum implements EnumInterface
{
    public const APPLICATIONS = 'APPLICATIONS';
    public const INSTALLED_APPLICATIONS = 'INSTALLED_APPLICATIONS';
    public const CONNECTED_DEVICES = 'CONNECTED_DEVICES';
    public const NETWORK_DEVICES = 'NETWORK_DEVICES';
    public const PHYSICAL_DISK_SLOTS = 'PHYSICAL_DISK_SLOTS';
    public const MEMORY_MODULES = 'MEMORY_MODULES';
    public const MEMORY_MODULE_SLOTS = 'MEMORY_MODULE_SLOTS';
    public const MODULE_SLOTS = 'MODULE_SLOTS';
    public const DEVICE_DISK_PARTITIONS = 'DEVICE_DISK_PARTITIONS';
    public const PHYSICAL_DISK_PARTITIONS = 'PHYSICAL_DISK_PARTITIONS';
    public const PHYSICAL_DISK = 'PHYSICAL_DISK';
    public const DEVICE_LOGICAL_DISKS = 'DEVICE_LOGICAL_DISKS';
    public const PROCESSORS = 'PROCESSORS';
    public const PROCESSOR_SLOTS = 'PROCESSOR_SLOTS';
    public const OS = 'OS';
    public const PROPERTIES = 'PROPERTIES';
    public const ConnectMSTSC = 'ConnectMSTSC';
    public const ConnectHTTP = 'ConnectHTTP';
    public const ConnectHTTPS = 'ConnectHTTPS';
    public const VIRTUALIZATION_TOPOLOGY = 'VIRTUALIZATION_TOPOLOGY';
    public const NETWORK_TOPOLOGY = 'NETWORK_TOPOLOGY';
    public const V_CENTERS_MEMBERSHIP = 'V_CENTERS_MEMBERSHIP';
    public const MANAGED_V_CENTERS = 'MANAGED_V_CENTERS';
    public const V_CENTER = 'V_CENTER';
    public const HOSTED_VIRTUAL_MACHINES = 'HOSTED_VIRTUAL_MACHINES';
    public const CLUSTERS = 'CLUSTERS';
    public const CLUSTER_DEVICES = 'CLUSTER_DEVICES';
    public const CLUSTER_VIRTUAL_MACHINES = 'CLUSTER_VIRTUAL_MACHINES';
    public const CLUSTERS_MEMBERSHIP = 'CLUSTERS_MEMBERSHIP';
    public const ALL_HARDWARE = 'ALL_HARDWARE';
    public const STACKED_SWITCH_MEMBERS = 'STACKED_SWITCH_MEMBERS';
    public string $value;
    private static array $map = [
        self::APPLICATIONS => true,
        self::INSTALLED_APPLICATIONS => true,
        self::CONNECTED_DEVICES => true,
        self::NETWORK_DEVICES => true,
        self::PHYSICAL_DISK_SLOTS => true,
        self::MEMORY_MODULES => true,
        self::MEMORY_MODULE_SLOTS => true,
        self::MODULE_SLOTS => true,
        self::DEVICE_DISK_PARTITIONS => true,
        self::PHYSICAL_DISK_PARTITIONS => true,
        self::PHYSICAL_DISK => true,
        self::DEVICE_LOGICAL_DISKS => true,
        self::PROCESSORS => true,
        self::PROCESSOR_SLOTS => true,
        self::OS => true,
        self::PROPERTIES => true,
        self::ConnectMSTSC => true,
        self::ConnectHTTP => true,
        self::ConnectHTTPS => true,
        self::VIRTUALIZATION_TOPOLOGY => true,
        self::NETWORK_TOPOLOGY => true,
        self::V_CENTERS_MEMBERSHIP => true,
        self::MANAGED_V_CENTERS => true,
        self::V_CENTER => true,
        self::HOSTED_VIRTUAL_MACHINES => true,
        self::CLUSTERS => true,
        self::CLUSTER_DEVICES => true,
        self::CLUSTER_VIRTUAL_MACHINES => true,
        self::CLUSTERS_MEMBERSHIP => true,
        self::ALL_HARDWARE => true,
        self::STACKED_SWITCH_MEMBERS => true,
    ];

    public function __construct($value)
    {
        if (!isset(self::$map[$value])) {
            throw new UnknownEnumValue(__CLASS__, $value);
        }
        $this->value = $value;
    }

    public function __toString(): string
    {
        return $this->value;
    }
}