# coding: utf-8

"""
    Arthur Scope

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    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 PermissionName(str, Enum):
    """
    PermissionName
    """

    """
    allowed enum values
    """
    ORGANIZATION_READ = 'organization_read'
    ORGANIZATION_DELETE = 'organization_delete'
    ORGANIZATION_UPDATE = 'organization_update'
    ORGANIZATION_LIST_WORKSPACES = 'organization_list_workspaces'
    ORGANIZATION_CREATE_WORKSPACE = 'organization_create_workspace'
    ORGANIZATION_LIST_GROUP_MEMBERSHIPS = 'organization_list_group_memberships'
    ORGANIZATION_CREATE_USER = 'organization_create_user'
    ORGANIZATION_INVITE_USER = 'organization_invite_user'
    ORGANIZATION_CREATE_SERVICE_ACCOUNT = 'organization_create_service_account'
    DELETE_USER = 'delete_user'
    USER_UPDATE = 'user_update'
    ORGANIZATION_ROLE_BINDING_DELETE = 'organization_role_binding_delete'
    ORGANIZATION_CREATE_ROLE_BINDING = 'organization_create_role_binding'
    ORGANIZATION_LIST_ROLE_BINDINGS = 'organization_list_role_bindings'
    ORGANIZATION_LIST_USERS = 'organization_list_users'
    ORGANIZATION_CREATE_GROUP = 'organization_create_group'
    ORGANIZATION_LIST_GROUPS = 'organization_list_groups'
    ORGANIZATION_LIST_ROLES = 'organization_list_roles'
    GROUP_LIST_ROLE_BINDINGS = 'group_list_role_bindings'
    GROUP_READ = 'group_read'
    GROUP_LIST_USERS = 'group_list_users'
    GROUP_UPDATE = 'group_update'
    GROUP_DELETE = 'group_delete'
    GROUP_CREATE_GROUP_MEMBERSHIP = 'group_create_group_membership'
    GROUP_DELETE_GROUP_MEMBERSHIP = 'group_delete_group_membership'
    USER_LIST_ROLE_BINDINGS = 'user_list_role_bindings'
    USER_REGENERATE_CREDS = 'user_regenerate_creds'
    WORKSPACE_READ = 'workspace_read'
    WORKSPACE_UPDATE = 'workspace_update'
    WORKSPACE_DELETE = 'workspace_delete'
    WORKSPACE_LIST_PROJECTS = 'workspace_list_projects'
    WORKSPACE_CREATE_PROJECT = 'workspace_create_project'
    WORKSPACE_CREATE_DATA_PLANE = 'workspace_create_data_plane'
    WORKSPACE_LIST_DATA_PLANES = 'workspace_list_data_planes'
    WORKSPACE_LIST_DATA_PLANE_ASSOCIATIONS = 'workspace_list_data_plane_associations'
    WORKSPACE_CREATE_DATA_PLANE_ASSOCIATION = 'workspace_create_data_plane_association'
    WORKSPACE_ROLE_BINDING_DELETE = 'workspace_role_binding_delete'
    WORKSPACE_CREATE_ROLE_BINDING = 'workspace_create_role_binding'
    WORKSPACE_LIST_ROLE_BINDINGS = 'workspace_list_role_bindings'
    WORKSPACE_CREATE_WEBHOOK = 'workspace_create_webhook'
    WORKSPACE_LIST_WEBHOOKS = 'workspace_list_webhooks'
    WORKSPACE_TEST_WEBHOOK = 'workspace_test_webhook'
    WORKSPACE_CREATE_CUSTOM_AGGREGATION = 'workspace_create_custom_aggregation'
    WORKSPACE_VALIDATE_CUSTOM_AGGREGATION = 'workspace_validate_custom_aggregation'
    WORKSPACE_LIST_DATASETS = 'workspace_list_datasets'
    PROJECT_READ = 'project_read'
    PROJECT_UPDATE = 'project_update'
    PROJECT_DELETE = 'project_delete'
    PROJECT_LIST_MODELS = 'project_list_models'
    PROJECT_CREATE_MODEL = 'project_create_model'
    PROJECT_LIST_CONNECTORS = 'project_list_connectors'
    PROJECT_CREATE_CONNECTOR = 'project_create_connector'
    PROJECT_LIST_DATASETS = 'project_list_datasets'
    PROJECT_LIST_JOBS = 'project_list_jobs'
    PROJECT_CREATE_JOB = 'project_create_job'
    PROJECT_CREATE_DATASET = 'project_create_dataset'
    PROJECT_CREATE_AVAILABLE_DATASET = 'project_create_available_dataset'
    PROJECT_LIST_DATA_PLANE_ASSOCIATIONS = 'project_list_data_plane_associations'
    PROJECT_ROLE_BINDING_DELETE = 'project_role_binding_delete'
    PROJECT_CREATE_ROLE_BINDING = 'project_create_role_binding'
    PROJECT_LIST_ROLE_BINDINGS = 'project_list_role_bindings'
    PROJECT_GENERATE_METRICS_SPEC = 'project_generate_metrics_spec'
    PROJECT_CREATE_MODEL_TASK = 'project_create_model_task'
    PROJECT_CREATE_MODEL_LINK_TASK = 'project_create_model_link_task'
    MODEL_READ = 'model_read'
    MODEL_UPDATE = 'model_update'
    MODEL_DELETE = 'model_delete'
    MODEL_PUT_METRIC_CONFIG = 'model_put_metric_config'
    MODEL_LIST_METRIC_VERSIONS = 'model_list_metric_versions'
    MODEL_CREATE_METRIC_VERSION = 'model_create_metric_version'
    MODEL_ADD_METRICS_FOR_VERSION = 'model_add_metrics_for_version'
    MODEL_EDIT_DASHBOARD = 'model_edit_dashboard'
    MODEL_CREATE_ALERT = 'model_create_alert'
    MODEL_LIST_ALERTS = 'model_list_alerts'
    MODEL_CREATE_ALERT_RULE = 'model_create_alert_rule'
    MODEL_LIST_ALERT_RULES = 'model_list_alert_rules'
    MODEL_QUERY_METRICS = 'model_query_metrics'
    MODEL_METRICS_SCHEDULE_UPDATE = 'model_metrics_schedule_update'
    MODEL_METRICS_SCHEDULE_DELETE = 'model_metrics_schedule_delete'
    MODEL_TASK_READ = 'model_task_read'
    MODEL_TASK_UPDATE = 'model_task_update'
    MODEL_TASK_DELETE = 'model_task_delete'
    MODEL_TASK_SYNC = 'model_task_sync'
    MODEL_TASK_PUT_STATE_CACHE = 'model_task_put_state_cache'
    MODEL_TASK_PUT_CONNECTION_INFO = 'model_task_put_connection_info'
    MODEL_TASK_GET_CONNECTION_INFO = 'model_task_get_connection_info'
    MODEL_TASK_DELETE_CONNECTION_INFO = 'model_task_delete_connection_info'
    MODEL_TASK_REGENERATE_VALIDATION_KEY = 'model_task_regenerate_validation_key'
    CONNECTOR_READ = 'connector_read'
    CONNECTOR_UPDATE = 'connector_update'
    CONNECTOR_DELETE = 'connector_delete'
    CONNECTOR_GET_SENSITIVE_FIELDS = 'connector_get_sensitive_fields'
    CONNECTOR_PUT_CHECK_RESULT = 'connector_put_check_result'
    CONNECTOR_LIST_DATASETS = 'connector_list_datasets'
    CONNECTOR_CREATE_DATASET = 'connector_create_dataset'
    CONNECTOR_LIST_AVAILABLE_DATASETS = 'connector_list_available_datasets'
    CONNECTOR_PUT_AVAILABLE_DATASETS = 'connector_put_available_datasets'
    CONNECTOR_CREATE_AVAILABLE_DATASET = 'connector_create_available_dataset'
    AVAILABLE_DATASET_READ = 'available_dataset_read'
    AVAILABLE_DATASET_PUT_SCHEMA = 'available_dataset_put_schema'
    AVAILABLE_DATASET_CREATE_DATA_RETRIEVAL = 'available_dataset_create_data_retrieval'
    AVAILABLE_DATASET_GET_DATA_RETRIEVAL = 'available_dataset_get_data_retrieval'
    AVAILABLE_DATASET_PUT_DATA_RETRIEVAL = 'available_dataset_put_data_retrieval'
    AVAILABLE_DATASET_DELETE_DATA_RETRIEVAL = 'available_dataset_delete_data_retrieval'
    DATASET_READ = 'dataset_read'
    DATASET_UPDATE = 'dataset_update'
    DATASET_PUT_SCHEMA = 'dataset_put_schema'
    DATASET_DELETE = 'dataset_delete'
    DATASET_CREATE_DATA_RETRIEVAL = 'dataset_create_data_retrieval'
    DATASET_GET_DATA_RETRIEVAL = 'dataset_get_data_retrieval'
    DATASET_PUT_DATA_RETRIEVAL = 'dataset_put_data_retrieval'
    DATASET_DELETE_DATA_RETRIEVAL = 'dataset_delete_data_retrieval'
    PROJECT_JOB_READ = 'project_job_read'
    PROJECT_JOB_UPDATE = 'project_job_update'
    PROJECT_JOB_PUT_STATE = 'project_job_put_state'
    PROJECT_JOB_READ_LOGS = 'project_job_read_logs'
    PROJECT_JOB_READ_RUNS = 'project_job_read_runs'
    PROJECT_JOB_APPEND_LOGS = 'project_job_append_logs'
    PROJECT_JOB_READ_ERRORS = 'project_job_read_errors'
    PROJECT_JOB_APPEND_ERRORS = 'project_job_append_errors'
    DATA_PLANE_DELETE = 'data_plane_delete'
    DATA_PLANE_UPDATE = 'data_plane_update'
    DATA_PLANE_READ = 'data_plane_read'
    DATA_PLANE_REGENERATE_CREDS = 'data_plane_regenerate_creds'
    DATA_PLANE_LIST_ASSOCIATIONS = 'data_plane_list_associations'
    DATA_PLANE_JOBS_DEQUEUE_NEXT = 'data_plane_jobs_dequeue_next'
    DATA_PLANE_ASSOCIATION_DELETE = 'data_plane_association_delete'
    ALERT_RULE_READ = 'alert_rule_read'
    ALERT_RULE_UPDATE = 'alert_rule_update'
    ALERT_RULE_DELETE = 'alert_rule_delete'
    MODEL_ALERT_READ = 'model_alert_read'
    WEBHOOK_READ = 'webhook_read'
    WEBHOOK_UPDATE = 'webhook_update'
    WEBHOOK_DELETE = 'webhook_delete'
    ROLE_READ = 'role_read'
    CUSTOM_AGGREGATION_READ = 'custom_aggregation_read'
    CUSTOM_AGGREGATION_PUT = 'custom_aggregation_put'
    CUSTOM_AGGREGATION_DELETE = 'custom_aggregation_delete'

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


