# 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 (
        agents,
        analytics,
        batch_calls,
        conversations,
        dashboard,
        knowledge_base,
        llm_usage,
        mcp_servers,
        phone_numbers,
        secrets,
        settings,
        sip_trunk,
        tests,
        tools,
        twilio,
    )
    from .conversations import ConversationsListRequestSummaryMode
    from .knowledge_base import (
        KnowledgeBaseGetOrCreateRagIndexesResponseValue,
        KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure,
        KnowledgeBaseGetOrCreateRagIndexesResponseValue_Success,
    )
    from .mcp_servers import McpServerConfigUpdateRequestModelRequestHeadersValue
    from .phone_numbers import (
        PhoneNumbersCreateRequestBody,
        PhoneNumbersCreateRequestBody_SipTrunk,
        PhoneNumbersCreateRequestBody_Twilio,
        PhoneNumbersGetResponse,
        PhoneNumbersGetResponse_SipTrunk,
        PhoneNumbersGetResponse_Twilio,
        PhoneNumbersListResponseItem,
        PhoneNumbersListResponseItem_SipTrunk,
        PhoneNumbersListResponseItem_Twilio,
        PhoneNumbersUpdateResponse,
        PhoneNumbersUpdateResponse_SipTrunk,
        PhoneNumbersUpdateResponse_Twilio,
    )
    from .tests import CreateUnitTestRequestDynamicVariablesValue, UpdateUnitTestRequestDynamicVariablesValue
    from .twilio import BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection
_dynamic_imports: typing.Dict[str, str] = {
    "BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection": ".twilio",
    "ConversationsListRequestSummaryMode": ".conversations",
    "CreateUnitTestRequestDynamicVariablesValue": ".tests",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue": ".knowledge_base",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure": ".knowledge_base",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Success": ".knowledge_base",
    "McpServerConfigUpdateRequestModelRequestHeadersValue": ".mcp_servers",
    "PhoneNumbersCreateRequestBody": ".phone_numbers",
    "PhoneNumbersCreateRequestBody_SipTrunk": ".phone_numbers",
    "PhoneNumbersCreateRequestBody_Twilio": ".phone_numbers",
    "PhoneNumbersGetResponse": ".phone_numbers",
    "PhoneNumbersGetResponse_SipTrunk": ".phone_numbers",
    "PhoneNumbersGetResponse_Twilio": ".phone_numbers",
    "PhoneNumbersListResponseItem": ".phone_numbers",
    "PhoneNumbersListResponseItem_SipTrunk": ".phone_numbers",
    "PhoneNumbersListResponseItem_Twilio": ".phone_numbers",
    "PhoneNumbersUpdateResponse": ".phone_numbers",
    "PhoneNumbersUpdateResponse_SipTrunk": ".phone_numbers",
    "PhoneNumbersUpdateResponse_Twilio": ".phone_numbers",
    "UpdateUnitTestRequestDynamicVariablesValue": ".tests",
    "agents": ".agents",
    "analytics": ".analytics",
    "batch_calls": ".batch_calls",
    "conversations": ".conversations",
    "dashboard": ".dashboard",
    "knowledge_base": ".knowledge_base",
    "llm_usage": ".llm_usage",
    "mcp_servers": ".mcp_servers",
    "phone_numbers": ".phone_numbers",
    "secrets": ".secrets",
    "settings": ".settings",
    "sip_trunk": ".sip_trunk",
    "tests": ".tests",
    "tools": ".tools",
    "twilio": ".twilio",
}


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__ = [
    "BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection",
    "ConversationsListRequestSummaryMode",
    "CreateUnitTestRequestDynamicVariablesValue",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Failure",
    "KnowledgeBaseGetOrCreateRagIndexesResponseValue_Success",
    "McpServerConfigUpdateRequestModelRequestHeadersValue",
    "PhoneNumbersCreateRequestBody",
    "PhoneNumbersCreateRequestBody_SipTrunk",
    "PhoneNumbersCreateRequestBody_Twilio",
    "PhoneNumbersGetResponse",
    "PhoneNumbersGetResponse_SipTrunk",
    "PhoneNumbersGetResponse_Twilio",
    "PhoneNumbersListResponseItem",
    "PhoneNumbersListResponseItem_SipTrunk",
    "PhoneNumbersListResponseItem_Twilio",
    "PhoneNumbersUpdateResponse",
    "PhoneNumbersUpdateResponse_SipTrunk",
    "PhoneNumbersUpdateResponse_Twilio",
    "UpdateUnitTestRequestDynamicVariablesValue",
    "agents",
    "analytics",
    "batch_calls",
    "conversations",
    "dashboard",
    "knowledge_base",
    "llm_usage",
    "mcp_servers",
    "phone_numbers",
    "secrets",
    "settings",
    "sip_trunk",
    "tests",
    "tools",
    "twilio",
]
