<?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 MeasureAggregateType
 * The measure aggregate type.
 */
final class MeasureAggregateTypeEnum implements EnumInterface
{
    public const NONE = 'NONE';
    public const AUDIT_TRAIL = 'AUDIT_TRAIL';
    public const ACTION_LOG = 'ACTION_LOG';
    public const ATTRIBUTE = 'ATTRIBUTE';
    public const DEVICE_INFO = 'DEVICE_INFO';
    public const INSTRUMENTATION = 'INSTRUMENTATION';
    public const POLLING = 'POLLING';
    public const IMPORT = 'IMPORT';
    public const INTERVAL_SCHEDULED = 'INTERVAL_SCHEDULED';
    public const CLEANUP = 'CLEANUP';
    public const RESUME = 'RESUME';
    public const PROVISION_STATUS = 'PROVISION_STATUS';
    public const PROVISION_DUMP = 'PROVISION_DUMP';
    public const PROVISION_INSTRUMENTATION = 'PROVISION_INSTRUMENTATION';
    public const CUSTOM_TEMPLATE = 'CUSTOM_TEMPLATE';
    public const TASK_QUALIFIER = 'TASK_QUALIFIER';
    public const UPDATE = 'UPDATE';
    public string $value;
    private static array $map = [
        self::NONE => true,
        self::AUDIT_TRAIL => true,
        self::ACTION_LOG => true,
        self::ATTRIBUTE => true,
        self::DEVICE_INFO => true,
        self::INSTRUMENTATION => true,
        self::POLLING => true,
        self::IMPORT => true,
        self::INTERVAL_SCHEDULED => true,
        self::CLEANUP => true,
        self::RESUME => true,
        self::PROVISION_STATUS => true,
        self::PROVISION_DUMP => true,
        self::PROVISION_INSTRUMENTATION => true,
        self::CUSTOM_TEMPLATE => true,
        self::TASK_QUALIFIER => true,
        self::UPDATE => 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;
    }
}