<?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 DevicePlatform
 * THe device platform
 */
final class DevicePlatformEnum implements EnumInterface
{
    public const Unknown = 'Unknown';
    public const Windows = 'Windows';
    public const HPUX = 'HPUX';
    public const SunSolaris = 'SunSolaris';
    public const AIX = 'AIX';
    public const Linux = 'Linux';
    public const VMwareESX = 'VMwareESX';
    public const MacOSX = 'MacOSX';
    public const UnixWare = 'UnixWare';
    public const CiscoIOS = 'CiscoIOS';
    public const GenericUnix = 'GenericUnix';
    public const ProCurve = 'ProCurve';
    public const CiscoPixOs = 'CiscoPixOs';
    public const CiscoAsa = 'CiscoAsa';
    public const CiscoCatOs = 'CiscoCatOs';
    public const CitrixXenServer = 'CitrixXenServer';
    public const FreeBSD = 'FreeBSD';
    public const OracleDataBase = 'OracleDataBase';
    public const PostgresDatabase = 'PostgresDatabase';
    public const SAPMaxDb = 'SAPMaxDb';
    public const IBMDb2 = 'IBMDb2';
    public const MySQL = 'MySQL';
    public const MariaDB = 'MariaDB';
    public const MSSqlServer = 'MSSqlServer';
    public const SybaseDb = 'SybaseDb';
    public const MongoDB = 'MongoDB';
    public const VerticaDb = 'VerticaDb';
    public const OpenEdgeDb = 'OpenEdgeDb';
    public const InformixDb = 'InformixDb';
    public const NetApp = 'NetApp';
    public const HPE3Par = 'HPE3Par';
    public const HPEStoreOnce = 'HPEStoreOnce';
    public const ShortelBusyboxPhone = 'ShortelBusyboxPhone';
    public const IBMLenovoStorewize = 'IBMLenovoStorewize';
    public const BrocadeIcx = 'BrocadeIcx';
    public const BrocadeVdx = 'BrocadeVdx';
    public const Http = 'Http';
    public const CiscoSupportEntitlement = 'CiscoSupportEntitlement';
    public const HitachiSVP = 'HitachiSVP';
    public const CiscoIOSXE = 'CiscoIOSXE';
    public const FujitsuEternus = 'FujitsuEternus';
    public const ArubaOS = 'ArubaOS';
    public const AristaEOS = 'AristaEOS';
    public const FortiOS = 'FortiOS';
    public const OVirt = 'OVirt';
    public const CiscoNXOS = 'CiscoNXOS';
    public const Redfish = 'Redfish';
    public const Kubernetes = 'Kubernetes';
    public const IBMOS400 = 'IBMOS400';
    public string $value;
    private static array $map = [
        self::Unknown => true,
        self::Windows => true,
        self::HPUX => true,
        self::SunSolaris => true,
        self::AIX => true,
        self::Linux => true,
        self::VMwareESX => true,
        self::MacOSX => true,
        self::UnixWare => true,
        self::CiscoIOS => true,
        self::GenericUnix => true,
        self::ProCurve => true,
        self::CiscoPixOs => true,
        self::CiscoAsa => true,
        self::CiscoCatOs => true,
        self::CitrixXenServer => true,
        self::FreeBSD => true,
        self::OracleDataBase => true,
        self::PostgresDatabase => true,
        self::SAPMaxDb => true,
        self::IBMDb2 => true,
        self::MySQL => true,
        self::MariaDB => true,
        self::MSSqlServer => true,
        self::SybaseDb => true,
        self::MongoDB => true,
        self::VerticaDb => true,
        self::OpenEdgeDb => true,
        self::InformixDb => true,
        self::NetApp => true,
        self::HPE3Par => true,
        self::HPEStoreOnce => true,
        self::ShortelBusyboxPhone => true,
        self::IBMLenovoStorewize => true,
        self::BrocadeIcx => true,
        self::BrocadeVdx => true,
        self::Http => true,
        self::CiscoSupportEntitlement => true,
        self::HitachiSVP => true,
        self::CiscoIOSXE => true,
        self::FujitsuEternus => true,
        self::ArubaOS => true,
        self::AristaEOS => true,
        self::FortiOS => true,
        self::OVirt => true,
        self::CiscoNXOS => true,
        self::Redfish => true,
        self::Kubernetes => true,
        self::IBMOS400 => 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;
    }
}