<?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 SoftwareMeteringOperator
 * The software metering operator
 */
final class SoftwareMeteringOperatorEnum implements EnumInterface
{
    public const EqualsString = 'EqualsString';
    public const ContainsString = 'ContainsString';
    public const StartsWith = 'StartsWith';
    public const EndsWith = 'EndsWith';
    public const ContainsRegEx = 'ContainsRegEx';
    public const MatchesRegEx = 'MatchesRegEx';
    public const EqualsInteger = 'EqualsInteger';
    public const NotEqualsInteger = 'NotEqualsInteger';
    public const GreaterThanInteger = 'GreaterThanInteger';
    public const GreaterThanOrEqualsInteger = 'GreaterThanOrEqualsInteger';
    public const LessThanInteger = 'LessThanInteger';
    public const LessThanOrEqualsInteger = 'LessThanOrEqualsInteger';
    public string $value;
    private static array $map = [
        self::EqualsString => true,
        self::ContainsString => true,
        self::StartsWith => true,
        self::EndsWith => true,
        self::ContainsRegEx => true,
        self::MatchesRegEx => true,
        self::EqualsInteger => true,
        self::NotEqualsInteger => true,
        self::GreaterThanInteger => true,
        self::GreaterThanOrEqualsInteger => true,
        self::LessThanInteger => true,
        self::LessThanOrEqualsInteger => 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;
    }
}