# coding: utf-8

"""
    authentik

    Making authentication simple.

    The version of the OpenAPI document: 2025.10.0-rc1
    Contact: hello@goauthentik.io
    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 ModelEnum(str, Enum):
    """
    ModelEnum
    """

    """
    allowed enum values
    """
    AUTHENTIK_TENANTS_DOT_DOMAIN = 'authentik_tenants.domain'
    AUTHENTIK_CORE_DOT_GROUP = 'authentik_core.group'
    AUTHENTIK_CORE_DOT_USER = 'authentik_core.user'
    AUTHENTIK_CORE_DOT_APPLICATION = 'authentik_core.application'
    AUTHENTIK_CORE_DOT_APPLICATIONENTITLEMENT = 'authentik_core.applicationentitlement'
    AUTHENTIK_CORE_DOT_TOKEN = 'authentik_core.token'
    AUTHENTIK_CRYPTO_DOT_CERTIFICATEKEYPAIR = 'authentik_crypto.certificatekeypair'
    AUTHENTIK_ENTERPRISE_DOT_LICENSE = 'authentik_enterprise.license'
    AUTHENTIK_EVENTS_DOT_EVENT = 'authentik_events.event'
    AUTHENTIK_EVENTS_DOT_NOTIFICATIONTRANSPORT = 'authentik_events.notificationtransport'
    AUTHENTIK_EVENTS_DOT_NOTIFICATION = 'authentik_events.notification'
    AUTHENTIK_EVENTS_DOT_NOTIFICATIONRULE = 'authentik_events.notificationrule'
    AUTHENTIK_EVENTS_DOT_NOTIFICATIONWEBHOOKMAPPING = 'authentik_events.notificationwebhookmapping'
    AUTHENTIK_FLOWS_DOT_FLOW = 'authentik_flows.flow'
    AUTHENTIK_FLOWS_DOT_FLOWSTAGEBINDING = 'authentik_flows.flowstagebinding'
    AUTHENTIK_OUTPOSTS_DOT_DOCKERSERVICECONNECTION = 'authentik_outposts.dockerserviceconnection'
    AUTHENTIK_OUTPOSTS_DOT_KUBERNETESSERVICECONNECTION = 'authentik_outposts.kubernetesserviceconnection'
    AUTHENTIK_OUTPOSTS_DOT_OUTPOST = 'authentik_outposts.outpost'
    AUTHENTIK_POLICIES_DUMMY_DOT_DUMMYPOLICY = 'authentik_policies_dummy.dummypolicy'
    AUTHENTIK_POLICIES_EVENT_MATCHER_DOT_EVENTMATCHERPOLICY = 'authentik_policies_event_matcher.eventmatcherpolicy'
    AUTHENTIK_POLICIES_EXPIRY_DOT_PASSWORDEXPIRYPOLICY = 'authentik_policies_expiry.passwordexpirypolicy'
    AUTHENTIK_POLICIES_EXPRESSION_DOT_EXPRESSIONPOLICY = 'authentik_policies_expression.expressionpolicy'
    AUTHENTIK_POLICIES_GEOIP_DOT_GEOIPPOLICY = 'authentik_policies_geoip.geoippolicy'
    AUTHENTIK_POLICIES_PASSWORD_DOT_PASSWORDPOLICY = 'authentik_policies_password.passwordpolicy'
    AUTHENTIK_POLICIES_REPUTATION_DOT_REPUTATIONPOLICY = 'authentik_policies_reputation.reputationpolicy'
    AUTHENTIK_POLICIES_DOT_POLICYBINDING = 'authentik_policies.policybinding'
    AUTHENTIK_PROVIDERS_LDAP_DOT_LDAPPROVIDER = 'authentik_providers_ldap.ldapprovider'
    AUTHENTIK_PROVIDERS_OAUTH2_DOT_SCOPEMAPPING = 'authentik_providers_oauth2.scopemapping'
    AUTHENTIK_PROVIDERS_OAUTH2_DOT_OAUTH2PROVIDER = 'authentik_providers_oauth2.oauth2provider'
    AUTHENTIK_PROVIDERS_PROXY_DOT_PROXYPROVIDER = 'authentik_providers_proxy.proxyprovider'
    AUTHENTIK_PROVIDERS_RAC_DOT_RACPROVIDER = 'authentik_providers_rac.racprovider'
    AUTHENTIK_PROVIDERS_RAC_DOT_ENDPOINT = 'authentik_providers_rac.endpoint'
    AUTHENTIK_PROVIDERS_RAC_DOT_RACPROPERTYMAPPING = 'authentik_providers_rac.racpropertymapping'
    AUTHENTIK_PROVIDERS_RADIUS_DOT_RADIUSPROVIDER = 'authentik_providers_radius.radiusprovider'
    AUTHENTIK_PROVIDERS_RADIUS_DOT_RADIUSPROVIDERPROPERTYMAPPING = 'authentik_providers_radius.radiusproviderpropertymapping'
    AUTHENTIK_PROVIDERS_SAML_DOT_SAMLPROVIDER = 'authentik_providers_saml.samlprovider'
    AUTHENTIK_PROVIDERS_SAML_DOT_SAMLPROPERTYMAPPING = 'authentik_providers_saml.samlpropertymapping'
    AUTHENTIK_PROVIDERS_SCIM_DOT_SCIMPROVIDER = 'authentik_providers_scim.scimprovider'
    AUTHENTIK_PROVIDERS_SCIM_DOT_SCIMMAPPING = 'authentik_providers_scim.scimmapping'
    AUTHENTIK_RBAC_DOT_ROLE = 'authentik_rbac.role'
    AUTHENTIK_RBAC_DOT_INITIALPERMISSIONS = 'authentik_rbac.initialpermissions'
    AUTHENTIK_SOURCES_KERBEROS_DOT_KERBEROSSOURCE = 'authentik_sources_kerberos.kerberossource'
    AUTHENTIK_SOURCES_KERBEROS_DOT_KERBEROSSOURCEPROPERTYMAPPING = 'authentik_sources_kerberos.kerberossourcepropertymapping'
    AUTHENTIK_SOURCES_KERBEROS_DOT_USERKERBEROSSOURCECONNECTION = 'authentik_sources_kerberos.userkerberossourceconnection'
    AUTHENTIK_SOURCES_KERBEROS_DOT_GROUPKERBEROSSOURCECONNECTION = 'authentik_sources_kerberos.groupkerberossourceconnection'
    AUTHENTIK_SOURCES_LDAP_DOT_LDAPSOURCE = 'authentik_sources_ldap.ldapsource'
    AUTHENTIK_SOURCES_LDAP_DOT_LDAPSOURCEPROPERTYMAPPING = 'authentik_sources_ldap.ldapsourcepropertymapping'
    AUTHENTIK_SOURCES_LDAP_DOT_USERLDAPSOURCECONNECTION = 'authentik_sources_ldap.userldapsourceconnection'
    AUTHENTIK_SOURCES_LDAP_DOT_GROUPLDAPSOURCECONNECTION = 'authentik_sources_ldap.groupldapsourceconnection'
    AUTHENTIK_SOURCES_OAUTH_DOT_OAUTHSOURCE = 'authentik_sources_oauth.oauthsource'
    AUTHENTIK_SOURCES_OAUTH_DOT_OAUTHSOURCEPROPERTYMAPPING = 'authentik_sources_oauth.oauthsourcepropertymapping'
    AUTHENTIK_SOURCES_OAUTH_DOT_USEROAUTHSOURCECONNECTION = 'authentik_sources_oauth.useroauthsourceconnection'
    AUTHENTIK_SOURCES_OAUTH_DOT_GROUPOAUTHSOURCECONNECTION = 'authentik_sources_oauth.groupoauthsourceconnection'
    AUTHENTIK_SOURCES_PLEX_DOT_PLEXSOURCE = 'authentik_sources_plex.plexsource'
    AUTHENTIK_SOURCES_PLEX_DOT_PLEXSOURCEPROPERTYMAPPING = 'authentik_sources_plex.plexsourcepropertymapping'
    AUTHENTIK_SOURCES_PLEX_DOT_USERPLEXSOURCECONNECTION = 'authentik_sources_plex.userplexsourceconnection'
    AUTHENTIK_SOURCES_PLEX_DOT_GROUPPLEXSOURCECONNECTION = 'authentik_sources_plex.groupplexsourceconnection'
    AUTHENTIK_SOURCES_SAML_DOT_SAMLSOURCE = 'authentik_sources_saml.samlsource'
    AUTHENTIK_SOURCES_SAML_DOT_SAMLSOURCEPROPERTYMAPPING = 'authentik_sources_saml.samlsourcepropertymapping'
    AUTHENTIK_SOURCES_SAML_DOT_USERSAMLSOURCECONNECTION = 'authentik_sources_saml.usersamlsourceconnection'
    AUTHENTIK_SOURCES_SAML_DOT_GROUPSAMLSOURCECONNECTION = 'authentik_sources_saml.groupsamlsourceconnection'
    AUTHENTIK_SOURCES_SCIM_DOT_SCIMSOURCE = 'authentik_sources_scim.scimsource'
    AUTHENTIK_SOURCES_SCIM_DOT_SCIMSOURCEPROPERTYMAPPING = 'authentik_sources_scim.scimsourcepropertymapping'
    AUTHENTIK_STAGES_AUTHENTICATOR_DUO_DOT_AUTHENTICATORDUOSTAGE = 'authentik_stages_authenticator_duo.authenticatorduostage'
    AUTHENTIK_STAGES_AUTHENTICATOR_DUO_DOT_DUODEVICE = 'authentik_stages_authenticator_duo.duodevice'
    AUTHENTIK_STAGES_AUTHENTICATOR_EMAIL_DOT_AUTHENTICATOREMAILSTAGE = 'authentik_stages_authenticator_email.authenticatoremailstage'
    AUTHENTIK_STAGES_AUTHENTICATOR_EMAIL_DOT_EMAILDEVICE = 'authentik_stages_authenticator_email.emaildevice'
    AUTHENTIK_STAGES_AUTHENTICATOR_SMS_DOT_AUTHENTICATORSMSSTAGE = 'authentik_stages_authenticator_sms.authenticatorsmsstage'
    AUTHENTIK_STAGES_AUTHENTICATOR_SMS_DOT_SMSDEVICE = 'authentik_stages_authenticator_sms.smsdevice'
    AUTHENTIK_STAGES_AUTHENTICATOR_STATIC_DOT_AUTHENTICATORSTATICSTAGE = 'authentik_stages_authenticator_static.authenticatorstaticstage'
    AUTHENTIK_STAGES_AUTHENTICATOR_STATIC_DOT_STATICDEVICE = 'authentik_stages_authenticator_static.staticdevice'
    AUTHENTIK_STAGES_AUTHENTICATOR_TOTP_DOT_AUTHENTICATORTOTPSTAGE = 'authentik_stages_authenticator_totp.authenticatortotpstage'
    AUTHENTIK_STAGES_AUTHENTICATOR_TOTP_DOT_TOTPDEVICE = 'authentik_stages_authenticator_totp.totpdevice'
    AUTHENTIK_STAGES_AUTHENTICATOR_VALIDATE_DOT_AUTHENTICATORVALIDATESTAGE = 'authentik_stages_authenticator_validate.authenticatorvalidatestage'
    AUTHENTIK_STAGES_AUTHENTICATOR_WEBAUTHN_DOT_AUTHENTICATORWEBAUTHNSTAGE = 'authentik_stages_authenticator_webauthn.authenticatorwebauthnstage'
    AUTHENTIK_STAGES_AUTHENTICATOR_WEBAUTHN_DOT_WEBAUTHNDEVICE = 'authentik_stages_authenticator_webauthn.webauthndevice'
    AUTHENTIK_STAGES_CAPTCHA_DOT_CAPTCHASTAGE = 'authentik_stages_captcha.captchastage'
    AUTHENTIK_STAGES_CONSENT_DOT_CONSENTSTAGE = 'authentik_stages_consent.consentstage'
    AUTHENTIK_STAGES_DENY_DOT_DENYSTAGE = 'authentik_stages_deny.denystage'
    AUTHENTIK_STAGES_DUMMY_DOT_DUMMYSTAGE = 'authentik_stages_dummy.dummystage'
    AUTHENTIK_STAGES_EMAIL_DOT_EMAILSTAGE = 'authentik_stages_email.emailstage'
    AUTHENTIK_STAGES_IDENTIFICATION_DOT_IDENTIFICATIONSTAGE = 'authentik_stages_identification.identificationstage'
    AUTHENTIK_STAGES_INVITATION_DOT_INVITATIONSTAGE = 'authentik_stages_invitation.invitationstage'
    AUTHENTIK_STAGES_INVITATION_DOT_INVITATION = 'authentik_stages_invitation.invitation'
    AUTHENTIK_STAGES_PASSWORD_DOT_PASSWORDSTAGE = 'authentik_stages_password.passwordstage'
    AUTHENTIK_STAGES_PROMPT_DOT_PROMPT = 'authentik_stages_prompt.prompt'
    AUTHENTIK_STAGES_PROMPT_DOT_PROMPTSTAGE = 'authentik_stages_prompt.promptstage'
    AUTHENTIK_STAGES_REDIRECT_DOT_REDIRECTSTAGE = 'authentik_stages_redirect.redirectstage'
    AUTHENTIK_STAGES_USER_DELETE_DOT_USERDELETESTAGE = 'authentik_stages_user_delete.userdeletestage'
    AUTHENTIK_STAGES_USER_LOGIN_DOT_USERLOGINSTAGE = 'authentik_stages_user_login.userloginstage'
    AUTHENTIK_STAGES_USER_LOGOUT_DOT_USERLOGOUTSTAGE = 'authentik_stages_user_logout.userlogoutstage'
    AUTHENTIK_STAGES_USER_WRITE_DOT_USERWRITESTAGE = 'authentik_stages_user_write.userwritestage'
    AUTHENTIK_TASKS_SCHEDULES_DOT_SCHEDULE = 'authentik_tasks_schedules.schedule'
    AUTHENTIK_BRANDS_DOT_BRAND = 'authentik_brands.brand'
    AUTHENTIK_BLUEPRINTS_DOT_BLUEPRINTINSTANCE = 'authentik_blueprints.blueprintinstance'
    AUTHENTIK_POLICIES_UNIQUE_PASSWORD_DOT_UNIQUEPASSWORDPOLICY = 'authentik_policies_unique_password.uniquepasswordpolicy'
    AUTHENTIK_PROVIDERS_GOOGLE_WORKSPACE_DOT_GOOGLEWORKSPACEPROVIDER = 'authentik_providers_google_workspace.googleworkspaceprovider'
    AUTHENTIK_PROVIDERS_GOOGLE_WORKSPACE_DOT_GOOGLEWORKSPACEPROVIDERMAPPING = 'authentik_providers_google_workspace.googleworkspaceprovidermapping'
    AUTHENTIK_PROVIDERS_MICROSOFT_ENTRA_DOT_MICROSOFTENTRAPROVIDER = 'authentik_providers_microsoft_entra.microsoftentraprovider'
    AUTHENTIK_PROVIDERS_MICROSOFT_ENTRA_DOT_MICROSOFTENTRAPROVIDERMAPPING = 'authentik_providers_microsoft_entra.microsoftentraprovidermapping'
    AUTHENTIK_PROVIDERS_SSF_DOT_SSFPROVIDER = 'authentik_providers_ssf.ssfprovider'
    AUTHENTIK_STAGES_AUTHENTICATOR_ENDPOINT_GDTC_DOT_AUTHENTICATORENDPOINTGDTCSTAGE = 'authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage'
    AUTHENTIK_STAGES_MTLS_DOT_MUTUALTLSSTAGE = 'authentik_stages_mtls.mutualtlsstage'
    AUTHENTIK_STAGES_SOURCE_DOT_SOURCESTAGE = 'authentik_stages_source.sourcestage'

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


