# 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 .adverse_effect import AdverseEffect
    from .adverse_effect_frequency_detail import AdverseEffectFrequencyDetail
    from .alert import Alert
    from .alert_severity import AlertSeverity
    from .alert_type import AlertType
    from .bad_request_error_body import BadRequestErrorBody
    from .black_box_warning import BlackBoxWarning
    from .blocked_response import BlockedResponse
    from .clinical_alert import ClinicalAlert
    from .clinical_alert_special_notes import ClinicalAlertSpecialNotes
    from .clinical_concern import ClinicalConcern
    from .clinical_data import ClinicalData
    from .condition import Condition
    from .daily_limit import DailyLimit
    from .daily_limit_confidence import DailyLimitConfidence
    from .domain_code import DomainCode
    from .dose_classification import DoseClassification
    from .dose_classification_confidence import DoseClassificationConfidence
    from .dose_classification_reaction_type import DoseClassificationReactionType
    from .dose_component import DoseComponent
    from .dose_component_confidence import DoseComponentConfidence
    from .dosing_data import DosingData
    from .dosing_data_source import DosingDataSource
    from .drug_clinical_data import DrugClinicalData
    from .drug_safety_check_response import DrugSafetyCheckResponse
    from .drug_safety_check_response_status import DrugSafetyCheckResponseStatus
    from .error_response import ErrorResponse
    from .error_response_error import ErrorResponseError
    from .food_conflict import FoodConflict
    from .food_data import FoodData
    from .forbidden_error_body import ForbiddenErrorBody
    from .interaction import Interaction
    from .interaction_severity_name import InteractionSeverityName
    from .interaction_summary import InteractionSummary
    from .interactions_data import InteractionsData
    from .internal_server_error_body import InternalServerErrorBody
    from .meal_timing import MealTiming
    from .meta import Meta
    from .meta_tier import MetaTier
    from .metadata_response import MetadataResponse
    from .metadata_response_database_stats import MetadataResponseDatabaseStats
    from .metadata_response_database_versions import MetadataResponseDatabaseVersions
    from .metadata_response_patient_profile_options import MetadataResponsePatientProfileOptions
    from .metadata_response_risk_scales import MetadataResponseRiskScales
    from .metadata_response_status import MetadataResponseStatus
    from .metadata_response_tier import MetadataResponseTier
    from .monitoring import Monitoring
    from .patient_profile import PatientProfile
    from .population import Population
    from .population_monitoring import PopulationMonitoring
    from .population_monitoring_liver_function_grades import PopulationMonitoringLiverFunctionGrades
    from .rate_limit_response import RateLimitResponse
    from .rate_limit_response_tier import RateLimitResponseTier
    from .reference_dose import ReferenceDose
    from .reproductive_safety_data import ReproductiveSafetyData
    from .reproductive_warning import ReproductiveWarning
    from .resolved_drug import ResolvedDrug
    from .safety_data import SafetyData
    from .side_effects_data import SideEffectsData
    from .side_effects_data_risk_level import SideEffectsDataRiskLevel
    from .too_many_requests_error_body import TooManyRequestsErrorBody
_dynamic_imports: typing.Dict[str, str] = {
    "AdverseEffect": ".adverse_effect",
    "AdverseEffectFrequencyDetail": ".adverse_effect_frequency_detail",
    "Alert": ".alert",
    "AlertSeverity": ".alert_severity",
    "AlertType": ".alert_type",
    "BadRequestErrorBody": ".bad_request_error_body",
    "BlackBoxWarning": ".black_box_warning",
    "BlockedResponse": ".blocked_response",
    "ClinicalAlert": ".clinical_alert",
    "ClinicalAlertSpecialNotes": ".clinical_alert_special_notes",
    "ClinicalConcern": ".clinical_concern",
    "ClinicalData": ".clinical_data",
    "Condition": ".condition",
    "DailyLimit": ".daily_limit",
    "DailyLimitConfidence": ".daily_limit_confidence",
    "DomainCode": ".domain_code",
    "DoseClassification": ".dose_classification",
    "DoseClassificationConfidence": ".dose_classification_confidence",
    "DoseClassificationReactionType": ".dose_classification_reaction_type",
    "DoseComponent": ".dose_component",
    "DoseComponentConfidence": ".dose_component_confidence",
    "DosingData": ".dosing_data",
    "DosingDataSource": ".dosing_data_source",
    "DrugClinicalData": ".drug_clinical_data",
    "DrugSafetyCheckResponse": ".drug_safety_check_response",
    "DrugSafetyCheckResponseStatus": ".drug_safety_check_response_status",
    "ErrorResponse": ".error_response",
    "ErrorResponseError": ".error_response_error",
    "FoodConflict": ".food_conflict",
    "FoodData": ".food_data",
    "ForbiddenErrorBody": ".forbidden_error_body",
    "Interaction": ".interaction",
    "InteractionSeverityName": ".interaction_severity_name",
    "InteractionSummary": ".interaction_summary",
    "InteractionsData": ".interactions_data",
    "InternalServerErrorBody": ".internal_server_error_body",
    "MealTiming": ".meal_timing",
    "Meta": ".meta",
    "MetaTier": ".meta_tier",
    "MetadataResponse": ".metadata_response",
    "MetadataResponseDatabaseStats": ".metadata_response_database_stats",
    "MetadataResponseDatabaseVersions": ".metadata_response_database_versions",
    "MetadataResponsePatientProfileOptions": ".metadata_response_patient_profile_options",
    "MetadataResponseRiskScales": ".metadata_response_risk_scales",
    "MetadataResponseStatus": ".metadata_response_status",
    "MetadataResponseTier": ".metadata_response_tier",
    "Monitoring": ".monitoring",
    "PatientProfile": ".patient_profile",
    "Population": ".population",
    "PopulationMonitoring": ".population_monitoring",
    "PopulationMonitoringLiverFunctionGrades": ".population_monitoring_liver_function_grades",
    "RateLimitResponse": ".rate_limit_response",
    "RateLimitResponseTier": ".rate_limit_response_tier",
    "ReferenceDose": ".reference_dose",
    "ReproductiveSafetyData": ".reproductive_safety_data",
    "ReproductiveWarning": ".reproductive_warning",
    "ResolvedDrug": ".resolved_drug",
    "SafetyData": ".safety_data",
    "SideEffectsData": ".side_effects_data",
    "SideEffectsDataRiskLevel": ".side_effects_data_risk_level",
    "TooManyRequestsErrorBody": ".too_many_requests_error_body",
}


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__ = [
    "AdverseEffect",
    "AdverseEffectFrequencyDetail",
    "Alert",
    "AlertSeverity",
    "AlertType",
    "BadRequestErrorBody",
    "BlackBoxWarning",
    "BlockedResponse",
    "ClinicalAlert",
    "ClinicalAlertSpecialNotes",
    "ClinicalConcern",
    "ClinicalData",
    "Condition",
    "DailyLimit",
    "DailyLimitConfidence",
    "DomainCode",
    "DoseClassification",
    "DoseClassificationConfidence",
    "DoseClassificationReactionType",
    "DoseComponent",
    "DoseComponentConfidence",
    "DosingData",
    "DosingDataSource",
    "DrugClinicalData",
    "DrugSafetyCheckResponse",
    "DrugSafetyCheckResponseStatus",
    "ErrorResponse",
    "ErrorResponseError",
    "FoodConflict",
    "FoodData",
    "ForbiddenErrorBody",
    "Interaction",
    "InteractionSeverityName",
    "InteractionSummary",
    "InteractionsData",
    "InternalServerErrorBody",
    "MealTiming",
    "Meta",
    "MetaTier",
    "MetadataResponse",
    "MetadataResponseDatabaseStats",
    "MetadataResponseDatabaseVersions",
    "MetadataResponsePatientProfileOptions",
    "MetadataResponseRiskScales",
    "MetadataResponseStatus",
    "MetadataResponseTier",
    "Monitoring",
    "PatientProfile",
    "Population",
    "PopulationMonitoring",
    "PopulationMonitoringLiverFunctionGrades",
    "RateLimitResponse",
    "RateLimitResponseTier",
    "ReferenceDose",
    "ReproductiveSafetyData",
    "ReproductiveWarning",
    "ResolvedDrug",
    "SafetyData",
    "SideEffectsData",
    "SideEffectsDataRiskLevel",
    "TooManyRequestsErrorBody",
]
