# 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 (
        AuthMethod,
        ClientSecretAuth,
        FhirProviderAddAuthConfigRequest,
        FhirProviderAddAuthConfigRequest_ClientSecret,
        FhirProviderAddAuthConfigRequest_GoogleHealthcare,
        FhirProviderAddAuthConfigRequest_Jwt,
        FhirProviderAddAuthConfigRequest_None,
        FhirProviderAddAuthConfigRequest_OnBehalfOf,
        FhirProviderAddAuthConfigRequest_TokenPassthrough,
        FhirProviderAuthConfig,
        FhirProviderCreateRequestAuth,
        FhirProviderCreateRequestAuth_ClientSecret,
        FhirProviderCreateRequestAuth_GoogleHealthcare,
        FhirProviderCreateRequestAuth_Jwt,
        FhirProviderCreateRequestAuth_None,
        FhirProviderCreateRequestAuth_OnBehalfOf,
        FhirProviderCreateRequestAuth_TokenPassthrough,
        FhirProviderDeleteResponse,
        FhirProviderListResponse,
        FhirProviderListResponseFhirProvidersItem,
        FhirProviderRemoveAuthConfigResponse,
        FhirProviderResponse,
        FhirProviderResponseData,
        FhirProviderSandboxInfo,
        FhirProviderTemplate,
        FhirQueryResponse,
        FhirQueryResponseData,
        GoogleHealthcareAuth,
        JsonWebKey,
        JwtAuth,
        NoAuth,
        OnBehalfOfAuth,
        Provider,
        Role,
        ServiceAccountKey,
        ServiceAccountMetadata,
        SmartConfiguration,
        TokenPassthroughAuth,
    )
    from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFoundError, UnauthorizedError
_dynamic_imports: typing.Dict[str, str] = {
    "AuthMethod": ".types",
    "BadRequestError": ".errors",
    "ClientSecretAuth": ".types",
    "FhirProviderAddAuthConfigRequest": ".types",
    "FhirProviderAddAuthConfigRequest_ClientSecret": ".types",
    "FhirProviderAddAuthConfigRequest_GoogleHealthcare": ".types",
    "FhirProviderAddAuthConfigRequest_Jwt": ".types",
    "FhirProviderAddAuthConfigRequest_None": ".types",
    "FhirProviderAddAuthConfigRequest_OnBehalfOf": ".types",
    "FhirProviderAddAuthConfigRequest_TokenPassthrough": ".types",
    "FhirProviderAuthConfig": ".types",
    "FhirProviderCreateRequestAuth": ".types",
    "FhirProviderCreateRequestAuth_ClientSecret": ".types",
    "FhirProviderCreateRequestAuth_GoogleHealthcare": ".types",
    "FhirProviderCreateRequestAuth_Jwt": ".types",
    "FhirProviderCreateRequestAuth_None": ".types",
    "FhirProviderCreateRequestAuth_OnBehalfOf": ".types",
    "FhirProviderCreateRequestAuth_TokenPassthrough": ".types",
    "FhirProviderDeleteResponse": ".types",
    "FhirProviderListResponse": ".types",
    "FhirProviderListResponseFhirProvidersItem": ".types",
    "FhirProviderRemoveAuthConfigResponse": ".types",
    "FhirProviderResponse": ".types",
    "FhirProviderResponseData": ".types",
    "FhirProviderSandboxInfo": ".types",
    "FhirProviderTemplate": ".types",
    "FhirQueryResponse": ".types",
    "FhirQueryResponseData": ".types",
    "ForbiddenError": ".errors",
    "GoogleHealthcareAuth": ".types",
    "InternalServerError": ".errors",
    "JsonWebKey": ".types",
    "JwtAuth": ".types",
    "NoAuth": ".types",
    "NotFoundError": ".errors",
    "OnBehalfOfAuth": ".types",
    "Provider": ".types",
    "Role": ".types",
    "ServiceAccountKey": ".types",
    "ServiceAccountMetadata": ".types",
    "SmartConfiguration": ".types",
    "TokenPassthroughAuth": ".types",
    "UnauthorizedError": ".errors",
}


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__ = [
    "AuthMethod",
    "BadRequestError",
    "ClientSecretAuth",
    "FhirProviderAddAuthConfigRequest",
    "FhirProviderAddAuthConfigRequest_ClientSecret",
    "FhirProviderAddAuthConfigRequest_GoogleHealthcare",
    "FhirProviderAddAuthConfigRequest_Jwt",
    "FhirProviderAddAuthConfigRequest_None",
    "FhirProviderAddAuthConfigRequest_OnBehalfOf",
    "FhirProviderAddAuthConfigRequest_TokenPassthrough",
    "FhirProviderAuthConfig",
    "FhirProviderCreateRequestAuth",
    "FhirProviderCreateRequestAuth_ClientSecret",
    "FhirProviderCreateRequestAuth_GoogleHealthcare",
    "FhirProviderCreateRequestAuth_Jwt",
    "FhirProviderCreateRequestAuth_None",
    "FhirProviderCreateRequestAuth_OnBehalfOf",
    "FhirProviderCreateRequestAuth_TokenPassthrough",
    "FhirProviderDeleteResponse",
    "FhirProviderListResponse",
    "FhirProviderListResponseFhirProvidersItem",
    "FhirProviderRemoveAuthConfigResponse",
    "FhirProviderResponse",
    "FhirProviderResponseData",
    "FhirProviderSandboxInfo",
    "FhirProviderTemplate",
    "FhirQueryResponse",
    "FhirQueryResponseData",
    "ForbiddenError",
    "GoogleHealthcareAuth",
    "InternalServerError",
    "JsonWebKey",
    "JwtAuth",
    "NoAuth",
    "NotFoundError",
    "OnBehalfOfAuth",
    "Provider",
    "Role",
    "ServiceAccountKey",
    "ServiceAccountMetadata",
    "SmartConfiguration",
    "TokenPassthroughAuth",
    "UnauthorizedError",
]
