# 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 .types import (
        Contract,
        ContractBase,
        ContractCreate,
        ContractCreateUnion,
        ContractCreateUnion_Institutional,
        ContractCreateUnion_Professional,
        ContractId,
        ContractServiceFacility,
        ContractServiceFacilityBase,
        ContractServiceFacilityId,
        ContractType,
        ContractUnion,
        ContractUnion_Institutional,
        ContractUnion_Professional,
        ContractUpdate,
        ContractUpdateUnion,
        ContractUpdateUnion_Institutional,
        ContractUpdateUnion_Professional,
        ContractWithProvidersUnion,
        ContractWithProvidersUnion_Institutional,
        ContractWithProvidersUnion_Professional,
        ContractingProviderId,
        ContractsPage,
        InstitutionalContract,
        InstitutionalContractCreate,
        InstitutionalContractUpdate,
        ProfessionalContract,
        ProfessionalContractCreate,
        ProfessionalContractUpdate,
        RenderingProviderid,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "Contract": ".types",
    "ContractBase": ".types",
    "ContractCreate": ".types",
    "ContractCreateUnion": ".types",
    "ContractCreateUnion_Institutional": ".types",
    "ContractCreateUnion_Professional": ".types",
    "ContractId": ".types",
    "ContractServiceFacility": ".types",
    "ContractServiceFacilityBase": ".types",
    "ContractServiceFacilityId": ".types",
    "ContractType": ".types",
    "ContractUnion": ".types",
    "ContractUnion_Institutional": ".types",
    "ContractUnion_Professional": ".types",
    "ContractUpdate": ".types",
    "ContractUpdateUnion": ".types",
    "ContractUpdateUnion_Institutional": ".types",
    "ContractUpdateUnion_Professional": ".types",
    "ContractWithProvidersUnion": ".types",
    "ContractWithProvidersUnion_Institutional": ".types",
    "ContractWithProvidersUnion_Professional": ".types",
    "ContractingProviderId": ".types",
    "ContractsPage": ".types",
    "InstitutionalContract": ".types",
    "InstitutionalContractCreate": ".types",
    "InstitutionalContractUpdate": ".types",
    "ProfessionalContract": ".types",
    "ProfessionalContractCreate": ".types",
    "ProfessionalContractUpdate": ".types",
    "RenderingProviderid": ".types",
}


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__ = [
    "Contract",
    "ContractBase",
    "ContractCreate",
    "ContractCreateUnion",
    "ContractCreateUnion_Institutional",
    "ContractCreateUnion_Professional",
    "ContractId",
    "ContractServiceFacility",
    "ContractServiceFacilityBase",
    "ContractServiceFacilityId",
    "ContractType",
    "ContractUnion",
    "ContractUnion_Institutional",
    "ContractUnion_Professional",
    "ContractUpdate",
    "ContractUpdateUnion",
    "ContractUpdateUnion_Institutional",
    "ContractUpdateUnion_Professional",
    "ContractWithProvidersUnion",
    "ContractWithProvidersUnion_Institutional",
    "ContractWithProvidersUnion_Professional",
    "ContractingProviderId",
    "ContractsPage",
    "InstitutionalContract",
    "InstitutionalContractCreate",
    "InstitutionalContractUpdate",
    "ProfessionalContract",
    "ProfessionalContractCreate",
    "ProfessionalContractUpdate",
    "RenderingProviderid",
]
