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