# coding: utf-8

"""
    Platform API

    _OpenAPI specification for the **Platform API** of **Helix**, the nomination platform of ElecLink_  ---  Additional documentation available in the API's [GitHub repository](https://github.com/eleclink-helix/platform-api) 

    The version of the OpenAPI document: 0.0.116
    Contact: team.eleclink@eleclink.co.uk
    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import json
import pprint
import re  # noqa: F401
from aenum import Enum, no_arg





class Permission(str, Enum):
    """
    Permission
    """

    """
    allowed enum values
    """
    VIEW_CAPACITY_OVERVIEW = 'VIEW_CAPACITY_OVERVIEW'
    VIEW_NTC_OVERVIEW = 'VIEW_NTC_OVERVIEW'
    VIEW_ATC_OVERVIEW = 'VIEW_ATC_OVERVIEW'
    MANAGE_NTC = 'MANAGE_NTC'
    MANAGE_ATC = 'MANAGE_ATC'
    VIEW_UNPLANNED_OUTAGES = 'VIEW_UNPLANNED_OUTAGES'
    MANAGE_UNPLANNED_OUTAGES = 'MANAGE_UNPLANNED_OUTAGES'
    VIEW_PLANNED_OUTAGES = 'VIEW_PLANNED_OUTAGES'
    MANAGE_PLANNED_OUTAGES = 'MANAGE_PLANNED_OUTAGES'
    VIEW_OWN_TRANSMISSION_RIGHTS = 'VIEW_OWN_TRANSMISSION_RIGHTS'
    VIEW_ANY_TRANSMISSION_RIGHTS = 'VIEW_ANY_TRANSMISSION_RIGHTS'
    VIEW_OWN_NOMINATIONS = 'VIEW_OWN_NOMINATIONS'
    VIEW_ANY_NOMINATIONS = 'VIEW_ANY_NOMINATIONS'
    MANAGE_OWN_NOMINATIONS = 'MANAGE_OWN_NOMINATIONS'
    MANAGE_ANY_NOMINATIONS = 'MANAGE_ANY_NOMINATIONS'
    VIEW_NOMINATION_GATES_OVERVIEW = 'VIEW_NOMINATION_GATES_OVERVIEW'
    MANAGE_NOMINATION_CANCELLATION = 'MANAGE_NOMINATION_CANCELLATION'
    VIEW_CURTAILMENT = 'VIEW_CURTAILMENT'
    MANAGE_CURTAILMENT = 'MANAGE_CURTAILMENT'
    VIEW_OWN_AGGREGATED_NOMINATIONS = 'VIEW_OWN_AGGREGATED_NOMINATIONS'
    VIEW_ANY_AGGREGATED_NOMINATIONS = 'VIEW_ANY_AGGREGATED_NOMINATIONS'
    VIEW_OWN_DEFAULT_NOMINATIONS = 'VIEW_OWN_DEFAULT_NOMINATIONS'
    MANAGE_OWN_DEFAULT_NOMINATIONS = 'MANAGE_OWN_DEFAULT_NOMINATIONS'
    VIEW_ANY_DEFAULT_NOMINATIONS = 'VIEW_ANY_DEFAULT_NOMINATIONS'
    MANAGE_ANY_DEFAULT_NOMINATIONS = 'MANAGE_ANY_DEFAULT_NOMINATIONS'
    VIEW_CRISIS = 'VIEW_CRISIS'
    MANAGE_CRISIS_ACTIONS = 'MANAGE_CRISIS_ACTIONS'
    MANAGE_CRISIS_MESSAGES = 'MANAGE_CRISIS_MESSAGES'
    MANAGE_ANY_ORGANISATIONS = 'MANAGE_ANY_ORGANISATIONS'
    VIEW_OWN_ORGANISATIONS = 'VIEW_OWN_ORGANISATIONS'
    VIEW_ANY_ORGANISATIONS = 'VIEW_ANY_ORGANISATIONS'
    VIEW_OWN_USERS = 'VIEW_OWN_USERS'
    VIEW_ANY_USERS = 'VIEW_ANY_USERS'
    MANAGE_OWN_USERS = 'MANAGE_OWN_USERS'
    MANAGE_ANY_USERS = 'MANAGE_ANY_USERS'
    INVITE_OWN_USERS = 'INVITE_OWN_USERS'
    INVITE_ANY_USERS = 'INVITE_ANY_USERS'
    IMPERSONATE_USERS = 'IMPERSONATE_USERS'
    VIEW_ICO_DASHBOARD = 'VIEW_ICO_DASHBOARD'
    VIEW_PARTICIPANT_DASHBOARD = 'VIEW_PARTICIPANT_DASHBOARD'
    VIEW_GENERAL_SYSTEM_MESSAGES = 'VIEW_GENERAL_SYSTEM_MESSAGES'
    VIEW_OPERATIONAL_SYSTEM_MESSAGES = 'VIEW_OPERATIONAL_SYSTEM_MESSAGES'
    VIEW_PARTICIPANT_MESSAGES = 'VIEW_PARTICIPANT_MESSAGES'
    VIEW_BPP = 'VIEW_BPP'
    MANAGE_BPP = 'MANAGE_BPP'
    VIEW_BUSINESS_PROCESSES = 'VIEW_BUSINESS_PROCESSES'
    MANAGE_BUSINESS_PROCESSES = 'MANAGE_BUSINESS_PROCESSES'
    MANAGE_SENSITIVE_BUSINESS_PROCESSES = 'MANAGE_SENSITIVE_BUSINESS_PROCESSES'
    VIEW_DATA_FLOWS = 'VIEW_DATA_FLOWS'
    MANAGE_DATA_FLOWS = 'MANAGE_DATA_FLOWS'
    MANAGE_OWN_MANUAL_FILE_UPLOAD = 'MANAGE_OWN_MANUAL_FILE_UPLOAD'
    MANAGE_ANY_MANUAL_FILE_UPLOAD = 'MANAGE_ANY_MANUAL_FILE_UPLOAD'
    VIEW_OWN_AUDIT_LOGS = 'VIEW_OWN_AUDIT_LOGS'
    VIEW_ANY_AUDIT_LOGS = 'VIEW_ANY_AUDIT_LOGS'
    VIEW_BUSINESS_SETTINGS = 'VIEW_BUSINESS_SETTINGS'
    MANAGE_BUSINESS_SETTINGS = 'MANAGE_BUSINESS_SETTINGS'
    VIEW_PROTECTED_CONFIG_VARIABLES = 'VIEW_PROTECTED_CONFIG_VARIABLES'
    VIEW_HELP_FAQ = 'VIEW_HELP_FAQ'

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


