<?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 ApplicationSource
 * The application source
 */
final class ApplicationSourceEnum implements EnumInterface
{
    public const AddRemovePrograms = 'AddRemovePrograms';
    public const App = 'App';
    public const RPM = 'RPM';
    public const DPKG = 'DPKG';
    public const SWLIST = 'SWLIST';
    public const LSPP = 'LSPP';
    public const PKGINFO = 'PKGINFO';
    public const WindowsComponent = 'WindowsComponent';
    public const SystemComponent = 'SystemComponent';
    public const Pacman = 'Pacman';
    public const Equery = 'Equery';
    public const SWIDTAG = 'SWIDTAG';
    public const OracleCompsXmlFile = 'OracleCompsXmlFile';
    public const WSUS = 'WSUS';
    public const RemoteDesktopApp = 'RemoteDesktopApp';
    public const Intune = 'Intune';
    public const AppFolder = 'AppFolder';
    public const BinaryFoundOnFileSystem = 'BinaryFoundOnFileSystem';
    public string $value;
    private static array $map = [
        self::AddRemovePrograms => true,
        self::App => true,
        self::RPM => true,
        self::DPKG => true,
        self::SWLIST => true,
        self::LSPP => true,
        self::PKGINFO => true,
        self::WindowsComponent => true,
        self::SystemComponent => true,
        self::Pacman => true,
        self::Equery => true,
        self::SWIDTAG => true,
        self::OracleCompsXmlFile => true,
        self::WSUS => true,
        self::RemoteDesktopApp => true,
        self::Intune => true,
        self::AppFolder => true,
        self::BinaryFoundOnFileSystem => 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;
    }
}