# 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 .health_status import HealthStatus
    from .product import Product
    from .product_config import ProductConfig
    from .product_config_add_on1tb import ProductConfigAddOn1Tb
    from .product_config_add_on1tb_id import ProductConfigAddOn1TbId
    from .product_config_add_on200gb import ProductConfigAddOn200Gb
    from .product_config_add_on200gb_id import ProductConfigAddOn200GbId
    from .product_config_add_on500gb import ProductConfigAddOn500Gb
    from .product_config_add_on500gb_id import ProductConfigAddOn500GbId
    from .product_config_chat_agent import ProductConfigChatAgent
    from .product_config_chat_agent_id import ProductConfigChatAgentId
    from .product_config_chatintegration_professional import ProductConfigChatintegrationProfessional
    from .product_config_chatintegration_professional_id import ProductConfigChatintegrationProfessionalId
    from .product_config_chatintegration_starter import ProductConfigChatintegrationStarter
    from .product_config_chatintegration_starter_id import ProductConfigChatintegrationStarterId
    from .product_config_developer import ProductConfigDeveloper
    from .product_config_developer_id import ProductConfigDeveloperId
    from .product_config_projectroom import ProductConfigProjectroom
    from .product_config_projectroom_id import ProductConfigProjectroomId
    from .upload_response import UploadResponse
    from .vector_update_response import VectorUpdateResponse
_dynamic_imports: typing.Dict[str, str] = {
    "HealthStatus": ".health_status",
    "Product": ".product",
    "ProductConfig": ".product_config",
    "ProductConfigAddOn1Tb": ".product_config_add_on1tb",
    "ProductConfigAddOn1TbId": ".product_config_add_on1tb_id",
    "ProductConfigAddOn200Gb": ".product_config_add_on200gb",
    "ProductConfigAddOn200GbId": ".product_config_add_on200gb_id",
    "ProductConfigAddOn500Gb": ".product_config_add_on500gb",
    "ProductConfigAddOn500GbId": ".product_config_add_on500gb_id",
    "ProductConfigChatAgent": ".product_config_chat_agent",
    "ProductConfigChatAgentId": ".product_config_chat_agent_id",
    "ProductConfigChatintegrationProfessional": ".product_config_chatintegration_professional",
    "ProductConfigChatintegrationProfessionalId": ".product_config_chatintegration_professional_id",
    "ProductConfigChatintegrationStarter": ".product_config_chatintegration_starter",
    "ProductConfigChatintegrationStarterId": ".product_config_chatintegration_starter_id",
    "ProductConfigDeveloper": ".product_config_developer",
    "ProductConfigDeveloperId": ".product_config_developer_id",
    "ProductConfigProjectroom": ".product_config_projectroom",
    "ProductConfigProjectroomId": ".product_config_projectroom_id",
    "UploadResponse": ".upload_response",
    "VectorUpdateResponse": ".vector_update_response",
}


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__ = [
    "HealthStatus",
    "Product",
    "ProductConfig",
    "ProductConfigAddOn1Tb",
    "ProductConfigAddOn1TbId",
    "ProductConfigAddOn200Gb",
    "ProductConfigAddOn200GbId",
    "ProductConfigAddOn500Gb",
    "ProductConfigAddOn500GbId",
    "ProductConfigChatAgent",
    "ProductConfigChatAgentId",
    "ProductConfigChatintegrationProfessional",
    "ProductConfigChatintegrationProfessionalId",
    "ProductConfigChatintegrationStarter",
    "ProductConfigChatintegrationStarterId",
    "ProductConfigDeveloper",
    "ProductConfigDeveloperId",
    "ProductConfigProjectroom",
    "ProductConfigProjectroomId",
    "UploadResponse",
    "VectorUpdateResponse",
]
