# 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,
        users,
        whatsapp,
        whatsapp_accounts,
    )
    from .agents import BodyPatchesAnAgentSettingsV1ConvaiAgentsAgentIdPatchProcedureRefsItem
    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 (
        TestsCreateRequestBody,
        TestsCreateRequestBody_Llm,
        TestsCreateRequestBody_Simulation,
        TestsCreateRequestBody_Tool,
        TestsGetResponse,
        TestsGetResponse_Llm,
        TestsGetResponse_Simulation,
        TestsGetResponse_Tool,
        TestsUpdateRequestBody,
        TestsUpdateRequestBody_Llm,
        TestsUpdateRequestBody_Simulation,
        TestsUpdateRequestBody_Tool,
        TestsUpdateResponse,
        TestsUpdateResponse_Llm,
        TestsUpdateResponse_Simulation,
        TestsUpdateResponse_Tool,
    )
    from .twilio import BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection
    from .whatsapp import (
        BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem,
        BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Body,
        BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Button,
        BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Header,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "BodyPatchesAnAgentSettingsV1ConvaiAgentsAgentIdPatchProcedureRefsItem": ".agents",
    "BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection": ".twilio",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem": ".whatsapp",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Body": ".whatsapp",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Button": ".whatsapp",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Header": ".whatsapp",
    "ConversationsListRequestSummaryMode": ".conversations",
    "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",
    "TestsCreateRequestBody": ".tests",
    "TestsCreateRequestBody_Llm": ".tests",
    "TestsCreateRequestBody_Simulation": ".tests",
    "TestsCreateRequestBody_Tool": ".tests",
    "TestsGetResponse": ".tests",
    "TestsGetResponse_Llm": ".tests",
    "TestsGetResponse_Simulation": ".tests",
    "TestsGetResponse_Tool": ".tests",
    "TestsUpdateRequestBody": ".tests",
    "TestsUpdateRequestBody_Llm": ".tests",
    "TestsUpdateRequestBody_Simulation": ".tests",
    "TestsUpdateRequestBody_Tool": ".tests",
    "TestsUpdateResponse": ".tests",
    "TestsUpdateResponse_Llm": ".tests",
    "TestsUpdateResponse_Simulation": ".tests",
    "TestsUpdateResponse_Tool": ".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",
    "users": ".users",
    "whatsapp": ".whatsapp",
    "whatsapp_accounts": ".whatsapp_accounts",
}


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__ = [
    "BodyPatchesAnAgentSettingsV1ConvaiAgentsAgentIdPatchProcedureRefsItem",
    "BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Body",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Button",
    "BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem_Header",
    "ConversationsListRequestSummaryMode",
    "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",
    "TestsCreateRequestBody",
    "TestsCreateRequestBody_Llm",
    "TestsCreateRequestBody_Simulation",
    "TestsCreateRequestBody_Tool",
    "TestsGetResponse",
    "TestsGetResponse_Llm",
    "TestsGetResponse_Simulation",
    "TestsGetResponse_Tool",
    "TestsUpdateRequestBody",
    "TestsUpdateRequestBody_Llm",
    "TestsUpdateRequestBody_Simulation",
    "TestsUpdateRequestBody_Tool",
    "TestsUpdateResponse",
    "TestsUpdateResponse_Llm",
    "TestsUpdateResponse_Simulation",
    "TestsUpdateResponse_Tool",
    "agents",
    "analytics",
    "batch_calls",
    "conversations",
    "dashboard",
    "knowledge_base",
    "llm_usage",
    "mcp_servers",
    "phone_numbers",
    "secrets",
    "settings",
    "sip_trunk",
    "tests",
    "tools",
    "twilio",
    "users",
    "whatsapp",
    "whatsapp_accounts",
]
