# coding: utf-8

"""
    File Service API v2

    File Service API v2 - Main endpoints (excludes token and tenant management)

    The version of the OpenAPI document: 0.1.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self


class PermissionSubjectType(str, Enum):
    """
    INTERNAL: Subject types that can have permissions assigned to them.
    """

    """
    allowed enum values
    """
    USER = 'user'
    MODEL = 'model'
    AGENT = 'agent'
    AGENTPOOL = 'agentpool'
    ARTIFACT = 'artifact'
    FILE = 'file'
    COMMENT = 'comment'
    FILEREVISION = 'filerevision'
    TOKEN = 'token'
    JOB = 'job'
    TOOL = 'tool'
    FUNCTION = 'function'
    FUNCTIONVERSION = 'functionversion'
    SYSTEM = 'system'
    TENANT = 'tenant'
    CONTROLTAG = 'controltag'
    INFOSECLEVEL = 'infoseclevel'
    FUNCTIONAUTHSECRET = 'functionauthsecret'
    AUTHINTEGRATION = 'authintegration'
    UPSTREAMREMOTE = 'upstreamremote'
    DOCUMENT = 'document'
    RESOURCE = 'resource'

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of PermissionSubjectType from a JSON string"""
        return cls(json.loads(json_str))
