<?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 ACEAccessMask
 * The bit mask for different access levels
 */
final class ACEAccessMaskEnum implements EnumInterface
{
    public const FILE_READ_DATA = 'FILE_READ_DATA';
    public const FILE_WRITE_DATA = 'FILE_WRITE_DATA';
    public const FILE_APPEND_DATA = 'FILE_APPEND_DATA';
    public const FILE_READ_EA = 'FILE_READ_EA';
    public const FILE_WRITE_EA = 'FILE_WRITE_EA';
    public const FILE_EXECUTE = 'FILE_EXECUTE';
    public const FILE_DELETE_CHILD = 'FILE_DELETE_CHILD';
    public const FILE_READ_ATTRIBUTES = 'FILE_READ_ATTRIBUTES';
    public const FILE_WRITE_ATTRIBUTES = 'FILE_WRITE_ATTRIBUTES';
    public const DELETE = 'DELETE';
    public const READ_CONTROL = 'READ_CONTROL';
    public const WRITE_DAC = 'WRITE_DAC';
    public const WRITE_OWNER = 'WRITE_OWNER';
    public const SYNCHRONIZE = 'SYNCHRONIZE';
    public const FullControl = 'FullControl';
    public const Modify = 'Modify';
    public const Read = 'Read';
    public string $value;
    private static array $map = [
        self::FILE_READ_DATA => true,
        self::FILE_WRITE_DATA => true,
        self::FILE_APPEND_DATA => true,
        self::FILE_READ_EA => true,
        self::FILE_WRITE_EA => true,
        self::FILE_EXECUTE => true,
        self::FILE_DELETE_CHILD => true,
        self::FILE_READ_ATTRIBUTES => true,
        self::FILE_WRITE_ATTRIBUTES => true,
        self::DELETE => true,
        self::READ_CONTROL => true,
        self::WRITE_DAC => true,
        self::WRITE_OWNER => true,
        self::SYNCHRONIZE => true,
        self::FullControl => true,
        self::Modify => true,
        self::Read => 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;
    }
}