# 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 (
        CountCompaniesForAdvancedFilterParams,
        CountCompaniesForAdvancedFilterRequestSortOrderDirection,
        CountCompaniesForAdvancedFilterResponse,
        CountCompaniesForAdvancedFilterResponseParamsSortOrderDirection,
        CountCompaniesParams,
        CountCompaniesResponse,
        CountEntityKeyDefinitionsParams,
        CountEntityKeyDefinitionsRequestEntityType,
        CountEntityKeyDefinitionsResponse,
        CountEntityKeyDefinitionsResponseParamsEntityType,
        CountEntityTraitDefinitionsParams,
        CountEntityTraitDefinitionsRequestEntityType,
        CountEntityTraitDefinitionsRequestTraitType,
        CountEntityTraitDefinitionsResponse,
        CountEntityTraitDefinitionsResponseParamsEntityType,
        CountEntityTraitDefinitionsResponseParamsTraitType,
        CountPlanTraitsParams,
        CountPlanTraitsResponse,
        CountUsersParams,
        CountUsersResponse,
        CreateCompanyResponse,
        CreateEntityTraitDefinitionRequestBodyEntityType,
        CreateEntityTraitDefinitionRequestBodyTraitType,
        CreatePlanTraitResponse,
        CreateUserResponse,
        DeleteCompanyByKeysResponse,
        DeleteCompanyMembershipResponse,
        DeleteCompanyResponse,
        DeletePlanTraitResponse,
        DeleteUserByKeysResponse,
        DeleteUserResponse,
        GetActiveCompanySubscriptionParams,
        GetActiveCompanySubscriptionResponse,
        GetActiveDealsParams,
        GetActiveDealsResponse,
        GetCompanyResponse,
        GetEntityTraitDefinitionResponse,
        GetEntityTraitValuesParams,
        GetEntityTraitValuesResponse,
        GetOrCreateCompanyMembershipResponse,
        GetOrCreateEntityTraitDefinitionResponse,
        GetPlanChangeResponse,
        GetPlanTraitResponse,
        GetUserResponse,
        ListCompaniesForAdvancedFilterParams,
        ListCompaniesForAdvancedFilterRequestSortOrderDirection,
        ListCompaniesForAdvancedFilterResponse,
        ListCompaniesForAdvancedFilterResponseParamsSortOrderDirection,
        ListCompaniesParams,
        ListCompaniesResponse,
        ListCompanyMembershipsParams,
        ListCompanyMembershipsResponse,
        ListEntityKeyDefinitionsParams,
        ListEntityKeyDefinitionsRequestEntityType,
        ListEntityKeyDefinitionsResponse,
        ListEntityKeyDefinitionsResponseParamsEntityType,
        ListEntityTraitDefinitionsParams,
        ListEntityTraitDefinitionsRequestEntityType,
        ListEntityTraitDefinitionsRequestTraitType,
        ListEntityTraitDefinitionsResponse,
        ListEntityTraitDefinitionsResponseParamsEntityType,
        ListEntityTraitDefinitionsResponseParamsTraitType,
        ListPlanChangesParams,
        ListPlanChangesResponse,
        ListPlanTraitsParams,
        ListPlanTraitsResponse,
        ListUsersParams,
        ListUsersResponse,
        LookupCompanyParams,
        LookupCompanyResponse,
        LookupUserParams,
        LookupUserResponse,
        UpdateEntityTraitDefinitionRequestBodyTraitType,
        UpdateEntityTraitDefinitionResponse,
        UpdatePlanTraitResponse,
        UpdatePlanTraitsBulkResponse,
        UpsertCompanyResponse,
        UpsertCompanyTraitResponse,
        UpsertUserResponse,
        UpsertUserTraitResponse,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "CountCompaniesForAdvancedFilterParams": ".types",
    "CountCompaniesForAdvancedFilterRequestSortOrderDirection": ".types",
    "CountCompaniesForAdvancedFilterResponse": ".types",
    "CountCompaniesForAdvancedFilterResponseParamsSortOrderDirection": ".types",
    "CountCompaniesParams": ".types",
    "CountCompaniesResponse": ".types",
    "CountEntityKeyDefinitionsParams": ".types",
    "CountEntityKeyDefinitionsRequestEntityType": ".types",
    "CountEntityKeyDefinitionsResponse": ".types",
    "CountEntityKeyDefinitionsResponseParamsEntityType": ".types",
    "CountEntityTraitDefinitionsParams": ".types",
    "CountEntityTraitDefinitionsRequestEntityType": ".types",
    "CountEntityTraitDefinitionsRequestTraitType": ".types",
    "CountEntityTraitDefinitionsResponse": ".types",
    "CountEntityTraitDefinitionsResponseParamsEntityType": ".types",
    "CountEntityTraitDefinitionsResponseParamsTraitType": ".types",
    "CountPlanTraitsParams": ".types",
    "CountPlanTraitsResponse": ".types",
    "CountUsersParams": ".types",
    "CountUsersResponse": ".types",
    "CreateCompanyResponse": ".types",
    "CreateEntityTraitDefinitionRequestBodyEntityType": ".types",
    "CreateEntityTraitDefinitionRequestBodyTraitType": ".types",
    "CreatePlanTraitResponse": ".types",
    "CreateUserResponse": ".types",
    "DeleteCompanyByKeysResponse": ".types",
    "DeleteCompanyMembershipResponse": ".types",
    "DeleteCompanyResponse": ".types",
    "DeletePlanTraitResponse": ".types",
    "DeleteUserByKeysResponse": ".types",
    "DeleteUserResponse": ".types",
    "GetActiveCompanySubscriptionParams": ".types",
    "GetActiveCompanySubscriptionResponse": ".types",
    "GetActiveDealsParams": ".types",
    "GetActiveDealsResponse": ".types",
    "GetCompanyResponse": ".types",
    "GetEntityTraitDefinitionResponse": ".types",
    "GetEntityTraitValuesParams": ".types",
    "GetEntityTraitValuesResponse": ".types",
    "GetOrCreateCompanyMembershipResponse": ".types",
    "GetOrCreateEntityTraitDefinitionResponse": ".types",
    "GetPlanChangeResponse": ".types",
    "GetPlanTraitResponse": ".types",
    "GetUserResponse": ".types",
    "ListCompaniesForAdvancedFilterParams": ".types",
    "ListCompaniesForAdvancedFilterRequestSortOrderDirection": ".types",
    "ListCompaniesForAdvancedFilterResponse": ".types",
    "ListCompaniesForAdvancedFilterResponseParamsSortOrderDirection": ".types",
    "ListCompaniesParams": ".types",
    "ListCompaniesResponse": ".types",
    "ListCompanyMembershipsParams": ".types",
    "ListCompanyMembershipsResponse": ".types",
    "ListEntityKeyDefinitionsParams": ".types",
    "ListEntityKeyDefinitionsRequestEntityType": ".types",
    "ListEntityKeyDefinitionsResponse": ".types",
    "ListEntityKeyDefinitionsResponseParamsEntityType": ".types",
    "ListEntityTraitDefinitionsParams": ".types",
    "ListEntityTraitDefinitionsRequestEntityType": ".types",
    "ListEntityTraitDefinitionsRequestTraitType": ".types",
    "ListEntityTraitDefinitionsResponse": ".types",
    "ListEntityTraitDefinitionsResponseParamsEntityType": ".types",
    "ListEntityTraitDefinitionsResponseParamsTraitType": ".types",
    "ListPlanChangesParams": ".types",
    "ListPlanChangesResponse": ".types",
    "ListPlanTraitsParams": ".types",
    "ListPlanTraitsResponse": ".types",
    "ListUsersParams": ".types",
    "ListUsersResponse": ".types",
    "LookupCompanyParams": ".types",
    "LookupCompanyResponse": ".types",
    "LookupUserParams": ".types",
    "LookupUserResponse": ".types",
    "UpdateEntityTraitDefinitionRequestBodyTraitType": ".types",
    "UpdateEntityTraitDefinitionResponse": ".types",
    "UpdatePlanTraitResponse": ".types",
    "UpdatePlanTraitsBulkResponse": ".types",
    "UpsertCompanyResponse": ".types",
    "UpsertCompanyTraitResponse": ".types",
    "UpsertUserResponse": ".types",
    "UpsertUserTraitResponse": ".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__ = [
    "CountCompaniesForAdvancedFilterParams",
    "CountCompaniesForAdvancedFilterRequestSortOrderDirection",
    "CountCompaniesForAdvancedFilterResponse",
    "CountCompaniesForAdvancedFilterResponseParamsSortOrderDirection",
    "CountCompaniesParams",
    "CountCompaniesResponse",
    "CountEntityKeyDefinitionsParams",
    "CountEntityKeyDefinitionsRequestEntityType",
    "CountEntityKeyDefinitionsResponse",
    "CountEntityKeyDefinitionsResponseParamsEntityType",
    "CountEntityTraitDefinitionsParams",
    "CountEntityTraitDefinitionsRequestEntityType",
    "CountEntityTraitDefinitionsRequestTraitType",
    "CountEntityTraitDefinitionsResponse",
    "CountEntityTraitDefinitionsResponseParamsEntityType",
    "CountEntityTraitDefinitionsResponseParamsTraitType",
    "CountPlanTraitsParams",
    "CountPlanTraitsResponse",
    "CountUsersParams",
    "CountUsersResponse",
    "CreateCompanyResponse",
    "CreateEntityTraitDefinitionRequestBodyEntityType",
    "CreateEntityTraitDefinitionRequestBodyTraitType",
    "CreatePlanTraitResponse",
    "CreateUserResponse",
    "DeleteCompanyByKeysResponse",
    "DeleteCompanyMembershipResponse",
    "DeleteCompanyResponse",
    "DeletePlanTraitResponse",
    "DeleteUserByKeysResponse",
    "DeleteUserResponse",
    "GetActiveCompanySubscriptionParams",
    "GetActiveCompanySubscriptionResponse",
    "GetActiveDealsParams",
    "GetActiveDealsResponse",
    "GetCompanyResponse",
    "GetEntityTraitDefinitionResponse",
    "GetEntityTraitValuesParams",
    "GetEntityTraitValuesResponse",
    "GetOrCreateCompanyMembershipResponse",
    "GetOrCreateEntityTraitDefinitionResponse",
    "GetPlanChangeResponse",
    "GetPlanTraitResponse",
    "GetUserResponse",
    "ListCompaniesForAdvancedFilterParams",
    "ListCompaniesForAdvancedFilterRequestSortOrderDirection",
    "ListCompaniesForAdvancedFilterResponse",
    "ListCompaniesForAdvancedFilterResponseParamsSortOrderDirection",
    "ListCompaniesParams",
    "ListCompaniesResponse",
    "ListCompanyMembershipsParams",
    "ListCompanyMembershipsResponse",
    "ListEntityKeyDefinitionsParams",
    "ListEntityKeyDefinitionsRequestEntityType",
    "ListEntityKeyDefinitionsResponse",
    "ListEntityKeyDefinitionsResponseParamsEntityType",
    "ListEntityTraitDefinitionsParams",
    "ListEntityTraitDefinitionsRequestEntityType",
    "ListEntityTraitDefinitionsRequestTraitType",
    "ListEntityTraitDefinitionsResponse",
    "ListEntityTraitDefinitionsResponseParamsEntityType",
    "ListEntityTraitDefinitionsResponseParamsTraitType",
    "ListPlanChangesParams",
    "ListPlanChangesResponse",
    "ListPlanTraitsParams",
    "ListPlanTraitsResponse",
    "ListUsersParams",
    "ListUsersResponse",
    "LookupCompanyParams",
    "LookupCompanyResponse",
    "LookupUserParams",
    "LookupUserResponse",
    "UpdateEntityTraitDefinitionRequestBodyTraitType",
    "UpdateEntityTraitDefinitionResponse",
    "UpdatePlanTraitResponse",
    "UpdatePlanTraitsBulkResponse",
    "UpsertCompanyResponse",
    "UpsertCompanyTraitResponse",
    "UpsertUserResponse",
    "UpsertUserTraitResponse",
]
