<?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 EventType
 * The event type
 */
final class EventTypeEnum implements EnumInterface
{
    public const DiscoveryStarted = 'DiscoveryStarted';
    public const DiscoveryCompleted = 'DiscoveryCompleted';
    public const DiscoveryStopped = 'DiscoveryStopped';
    public const DiscoveryPaused = 'DiscoveryPaused';
    public const DiscoveryResumed = 'DiscoveryResumed';
    public const BackupStarted = 'BackupStarted';
    public const BackupFinished = 'BackupFinished';
    public const BackupFailed = 'BackupFailed';
    public const CompactStarted = 'CompactStarted';
    public const CompactFinished = 'CompactFinished';
    public const CompactTableFailed = 'CompactTableFailed';
    public const DeviceHistoryStarted = 'DeviceHistoryStarted';
    public const DeviceHistoryFinished = 'DeviceHistoryFinished';
    public const ReportExportFailed = 'ReportExportFailed';
    public const DeviceDiscoveryFailed = 'DeviceDiscoveryFailed';
    public const DeviceNotWrittenToDatabase = 'DeviceNotWrittenToDatabase';
    public const DeviceFilterFailed = 'DeviceFilterFailed';
    public const ReportExportStarted = 'ReportExportStarted';
    public const MigrationEvent = 'MigrationEvent';
    public const DrsMigrationEvent = 'DrsMigrationEvent';
    public const LiveMigrationEvent = 'LiveMigrationEvent';
    public const OfflineMigrationEvent = 'OfflineMigrationEvent';
    public const RelocatedEvent = 'RelocatedEvent';
    public const ShiExportEvent = 'ShiExportEvent';
    public const MeasurementInstrumentationStarted = 'MeasurementInstrumentationStarted';
    public const MeasurementInstrumentationFinished = 'MeasurementInstrumentationFinished';
    public const MeasurementDataTransferStarted = 'MeasurementDataTransferStarted';
    public const MeasurementDataTransferFinished = 'MeasurementDataTransferFinished';
    public const MeasurementDataImportStarted = 'MeasurementDataImportStarted';
    public const MeasurementDataImportFinished = 'MeasurementDataImportFinished';
    public string $value;
    private static array $map = [
        self::DiscoveryStarted => true,
        self::DiscoveryCompleted => true,
        self::DiscoveryStopped => true,
        self::DiscoveryPaused => true,
        self::DiscoveryResumed => true,
        self::BackupStarted => true,
        self::BackupFinished => true,
        self::BackupFailed => true,
        self::CompactStarted => true,
        self::CompactFinished => true,
        self::CompactTableFailed => true,
        self::DeviceHistoryStarted => true,
        self::DeviceHistoryFinished => true,
        self::ReportExportFailed => true,
        self::DeviceDiscoveryFailed => true,
        self::DeviceNotWrittenToDatabase => true,
        self::DeviceFilterFailed => true,
        self::ReportExportStarted => true,
        self::MigrationEvent => true,
        self::DrsMigrationEvent => true,
        self::LiveMigrationEvent => true,
        self::OfflineMigrationEvent => true,
        self::RelocatedEvent => true,
        self::ShiExportEvent => true,
        self::MeasurementInstrumentationStarted => true,
        self::MeasurementInstrumentationFinished => true,
        self::MeasurementDataTransferStarted => true,
        self::MeasurementDataTransferFinished => true,
        self::MeasurementDataImportStarted => true,
        self::MeasurementDataImportFinished => 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;
    }
}