<?php

declare (strict_types=1);
namespace idoit\Module\SyneticsJdisc\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 CONNECTED_NETWORK_INTERFACES = 'CONNECTED_NETWORK_INTERFACES';
    public const NETWORK_INTERFACE_OWNER = 'NETWORK_INTERFACE_OWNER';
    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 DEVICE_NETWORK_INTERFACES = 'DEVICE_NETWORK_INTERFACES';
    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 PORT_CONNECTIONS = 'PORT_CONNECTIONS';
    public const DEVICE_INBOUND_PORT_CONNECTIONS = 'DEVICE_INBOUND_PORT_CONNECTIONS';
    public const NETWORK_INTERFACE_CONNECTIONS = 'NETWORK_INTERFACE_CONNECTIONS';
    public const DEVICE_OUTBOUND_PORT_CONNECTIONS = 'DEVICE_OUTBOUND_PORT_CONNECTIONS';
    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 const DEVICE_OPEN_PORTS = 'DEVICE_OPEN_PORTS';
    public const DEVICE_OUTBOUND_CONNECTIONS = 'DEVICE_OUTBOUND_CONNECTIONS';
    public const LISTENING_PORT_CONNECTED_DEVICES = 'LISTENING_PORT_CONNECTED_DEVICES';
    public const LISTENING_PORT_PROCESS = 'LISTENING_PORT_PROCESS';
    public const LISTENING_PORT_APPLICATION_INSTANCE = 'LISTENING_PORT_APPLICATION_INSTANCE';
    public const LISTENING_PORT_OWNER = 'LISTENING_PORT_OWNER';
    public string $value;
    private static array $map = [
        self::APPLICATIONS => true,
        self::INSTALLED_APPLICATIONS => true,
        self::CONNECTED_DEVICES => true,
        self::CONNECTED_NETWORK_INTERFACES => true,
        self::NETWORK_INTERFACE_OWNER => 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::DEVICE_NETWORK_INTERFACES => 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::PORT_CONNECTIONS => true,
        self::DEVICE_INBOUND_PORT_CONNECTIONS => true,
        self::NETWORK_INTERFACE_CONNECTIONS => true,
        self::DEVICE_OUTBOUND_PORT_CONNECTIONS => 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,
        self::DEVICE_OPEN_PORTS => true,
        self::DEVICE_OUTBOUND_CONNECTIONS => true,
        self::LISTENING_PORT_CONNECTED_DEVICES => true,
        self::LISTENING_PORT_PROCESS => true,
        self::LISTENING_PORT_APPLICATION_INSTANCE => true,
        self::LISTENING_PORT_OWNER => 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;
    }
}