# 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 .auth_method import AuthMethod
    from .client_secret_auth import ClientSecretAuth
    from .fhir_provider_add_auth_config_request import (
        FhirProviderAddAuthConfigRequest,
        FhirProviderAddAuthConfigRequest_ClientSecret,
        FhirProviderAddAuthConfigRequest_GoogleHealthcare,
        FhirProviderAddAuthConfigRequest_Jwt,
        FhirProviderAddAuthConfigRequest_None,
        FhirProviderAddAuthConfigRequest_OnBehalfOf,
        FhirProviderAddAuthConfigRequest_TokenPassthrough,
    )
    from .fhir_provider_auth_config import FhirProviderAuthConfig
    from .fhir_provider_create_request_auth import (
        FhirProviderCreateRequestAuth,
        FhirProviderCreateRequestAuth_ClientSecret,
        FhirProviderCreateRequestAuth_GoogleHealthcare,
        FhirProviderCreateRequestAuth_Jwt,
        FhirProviderCreateRequestAuth_None,
        FhirProviderCreateRequestAuth_OnBehalfOf,
        FhirProviderCreateRequestAuth_TokenPassthrough,
    )
    from .fhir_provider_delete_response import FhirProviderDeleteResponse
    from .fhir_provider_list_response import FhirProviderListResponse
    from .fhir_provider_list_response_fhir_providers_item import FhirProviderListResponseFhirProvidersItem
    from .fhir_provider_remove_auth_config_response import FhirProviderRemoveAuthConfigResponse
    from .fhir_provider_response import FhirProviderResponse
    from .fhir_provider_response_data import FhirProviderResponseData
    from .fhir_provider_sandbox_info import FhirProviderSandboxInfo
    from .fhir_provider_template import FhirProviderTemplate
    from .fhir_query_response import FhirQueryResponse
    from .fhir_query_response_data import FhirQueryResponseData
    from .google_healthcare_auth import GoogleHealthcareAuth
    from .json_web_key import JsonWebKey
    from .jwt_auth import JwtAuth
    from .no_auth import NoAuth
    from .on_behalf_of_auth import OnBehalfOfAuth
    from .provider import Provider
    from .role import Role
    from .service_account_key import ServiceAccountKey
    from .service_account_metadata import ServiceAccountMetadata
    from .smart_configuration import SmartConfiguration
    from .token_passthrough_auth import TokenPassthroughAuth
_dynamic_imports: typing.Dict[str, str] = {
    "AuthMethod": ".auth_method",
    "ClientSecretAuth": ".client_secret_auth",
    "FhirProviderAddAuthConfigRequest": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_ClientSecret": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_GoogleHealthcare": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_Jwt": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_None": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_OnBehalfOf": ".fhir_provider_add_auth_config_request",
    "FhirProviderAddAuthConfigRequest_TokenPassthrough": ".fhir_provider_add_auth_config_request",
    "FhirProviderAuthConfig": ".fhir_provider_auth_config",
    "FhirProviderCreateRequestAuth": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_ClientSecret": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_GoogleHealthcare": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_Jwt": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_None": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_OnBehalfOf": ".fhir_provider_create_request_auth",
    "FhirProviderCreateRequestAuth_TokenPassthrough": ".fhir_provider_create_request_auth",
    "FhirProviderDeleteResponse": ".fhir_provider_delete_response",
    "FhirProviderListResponse": ".fhir_provider_list_response",
    "FhirProviderListResponseFhirProvidersItem": ".fhir_provider_list_response_fhir_providers_item",
    "FhirProviderRemoveAuthConfigResponse": ".fhir_provider_remove_auth_config_response",
    "FhirProviderResponse": ".fhir_provider_response",
    "FhirProviderResponseData": ".fhir_provider_response_data",
    "FhirProviderSandboxInfo": ".fhir_provider_sandbox_info",
    "FhirProviderTemplate": ".fhir_provider_template",
    "FhirQueryResponse": ".fhir_query_response",
    "FhirQueryResponseData": ".fhir_query_response_data",
    "GoogleHealthcareAuth": ".google_healthcare_auth",
    "JsonWebKey": ".json_web_key",
    "JwtAuth": ".jwt_auth",
    "NoAuth": ".no_auth",
    "OnBehalfOfAuth": ".on_behalf_of_auth",
    "Provider": ".provider",
    "Role": ".role",
    "ServiceAccountKey": ".service_account_key",
    "ServiceAccountMetadata": ".service_account_metadata",
    "SmartConfiguration": ".smart_configuration",
    "TokenPassthroughAuth": ".token_passthrough_auth",
}


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",
    "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",
]
