# This file was auto-generated by Fern from our API Definition.

# isort: skip_file

import typing
from importlib import import_module

if typing.TYPE_CHECKING:
    from . import (
        authentication_methods,
        authenticators,
        connected_accounts,
        effective_permissions,
        effective_roles,
        enrollments,
        groups,
        identities,
        logs,
        multifactor,
        organizations,
        permissions,
        refresh_token,
        risk_assessments,
        roles,
        sessions,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "authentication_methods": ".authentication_methods",
    "authenticators": ".authenticators",
    "connected_accounts": ".connected_accounts",
    "effective_permissions": ".effective_permissions",
    "effective_roles": ".effective_roles",
    "enrollments": ".enrollments",
    "groups": ".groups",
    "identities": ".identities",
    "logs": ".logs",
    "multifactor": ".multifactor",
    "organizations": ".organizations",
    "permissions": ".permissions",
    "refresh_token": ".refresh_token",
    "risk_assessments": ".risk_assessments",
    "roles": ".roles",
    "sessions": ".sessions",
}


def __getattr__(attr_name: str) -> typing.Any:
    module_name = _dynamic_imports.get(attr_name)
    if module_name is None:
        raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
    try:
        module = import_module(module_name, __package__)
        if module_name == f".{attr_name}":
            return module
        else:
            return getattr(module, attr_name)
    except ImportError as e:
        raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
    except AttributeError as e:
        raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e


def __dir__():
    lazy_attrs = list(_dynamic_imports.keys())
    return sorted(lazy_attrs)


__all__ = [
    "authentication_methods",
    "authenticators",
    "connected_accounts",
    "effective_permissions",
    "effective_roles",
    "enrollments",
    "groups",
    "identities",
    "logs",
    "multifactor",
    "organizations",
    "permissions",
    "refresh_token",
    "risk_assessments",
    "roles",
    "sessions",
]
