diff --git a/homeassistant/components/config/config_entries.py b/homeassistant/components/config/config_entries.py
index 5794819995dd945c4e8da2bd145eb984e6368091..da50f7e93a119f883001d8b6eb7f982ba97e583d 100644
--- a/homeassistant/components/config/config_entries.py
+++ b/homeassistant/components/config/config_entries.py
@@ -46,13 +46,6 @@ def async_setup(hass: HomeAssistant) -> bool:
     hass.http.register_view(OptionManagerFlowIndexView(hass.config_entries.options))
     hass.http.register_view(OptionManagerFlowResourceView(hass.config_entries.options))
 
-    hass.http.register_view(
-        SubentryManagerFlowIndexView(hass.config_entries.subentries)
-    )
-    hass.http.register_view(
-        SubentryManagerFlowResourceView(hass.config_entries.subentries)
-    )
-
     websocket_api.async_register_command(hass, config_entries_get)
     websocket_api.async_register_command(hass, config_entry_disable)
     websocket_api.async_register_command(hass, config_entry_get_single)
@@ -61,9 +54,6 @@ def async_setup(hass: HomeAssistant) -> bool:
     websocket_api.async_register_command(hass, config_entries_progress)
     websocket_api.async_register_command(hass, ignore_config_flow)
 
-    websocket_api.async_register_command(hass, config_subentry_delete)
-    websocket_api.async_register_command(hass, config_subentry_list)
-
     return True
 
 
@@ -295,63 +285,6 @@ class OptionManagerFlowResourceView(
         return await super().post(request, flow_id)
 
 
-class SubentryManagerFlowIndexView(
-    FlowManagerIndexView[config_entries.ConfigSubentryFlowManager]
-):
-    """View to create subentry flows."""
-
-    url = "/api/config/config_entries/subentries/flow"
-    name = "api:config:config_entries:subentries:flow"
-
-    @require_admin(
-        error=Unauthorized(perm_category=CAT_CONFIG_ENTRIES, permission=POLICY_EDIT)
-    )
-    @RequestDataValidator(
-        vol.Schema(
-            {
-                vol.Required("handler"): vol.All(vol.Coerce(tuple), (str, str)),
-                vol.Optional("show_advanced_options", default=False): cv.boolean,
-            },
-            extra=vol.ALLOW_EXTRA,
-        )
-    )
-    async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response:
-        """Handle a POST request.
-
-        handler in request is [entry_id, subentry_type].
-        """
-        return await super()._post_impl(request, data)
-
-    def get_context(self, data: dict[str, Any]) -> dict[str, Any]:
-        """Return context."""
-        context = super().get_context(data)
-        context["source"] = config_entries.SOURCE_USER
-        return context
-
-
-class SubentryManagerFlowResourceView(
-    FlowManagerResourceView[config_entries.ConfigSubentryFlowManager]
-):
-    """View to interact with the subentry flow manager."""
-
-    url = "/api/config/config_entries/subentries/flow/{flow_id}"
-    name = "api:config:config_entries:subentries:flow:resource"
-
-    @require_admin(
-        error=Unauthorized(perm_category=CAT_CONFIG_ENTRIES, permission=POLICY_EDIT)
-    )
-    async def get(self, request: web.Request, /, flow_id: str) -> web.Response:
-        """Get the current state of a data_entry_flow."""
-        return await super().get(request, flow_id)
-
-    @require_admin(
-        error=Unauthorized(perm_category=CAT_CONFIG_ENTRIES, permission=POLICY_EDIT)
-    )
-    async def post(self, request: web.Request, flow_id: str) -> web.Response:
-        """Handle a POST request."""
-        return await super().post(request, flow_id)
-
-
 @websocket_api.require_admin
 @websocket_api.websocket_command({"type": "config_entries/flow/progress"})
 def config_entries_progress(
@@ -655,62 +588,3 @@ async def _async_matching_config_entries_json_fragments(
         )
         or (filter_is_not_helper and entry.domain not in integrations)
     ]
-
-
-@websocket_api.require_admin
-@websocket_api.websocket_command(
-    {
-        "type": "config_entries/subentries/list",
-        "entry_id": str,
-    }
-)
-@websocket_api.async_response
-async def config_subentry_list(
-    hass: HomeAssistant,
-    connection: websocket_api.ActiveConnection,
-    msg: dict[str, Any],
-) -> None:
-    """List subentries of a config entry."""
-    entry = get_entry(hass, connection, msg["entry_id"], msg["id"])
-    if entry is None:
-        return
-
-    result = [
-        {
-            "subentry_id": subentry.subentry_id,
-            "title": subentry.title,
-            "unique_id": subentry.unique_id,
-        }
-        for subentry_id, subentry in entry.subentries.items()
-    ]
-    connection.send_result(msg["id"], result)
-
-
-@websocket_api.require_admin
-@websocket_api.websocket_command(
-    {
-        "type": "config_entries/subentries/delete",
-        "entry_id": str,
-        "subentry_id": str,
-    }
-)
-@websocket_api.async_response
-async def config_subentry_delete(
-    hass: HomeAssistant,
-    connection: websocket_api.ActiveConnection,
-    msg: dict[str, Any],
-) -> None:
-    """Delete a subentry of a config entry."""
-    entry = get_entry(hass, connection, msg["entry_id"], msg["id"])
-    if entry is None:
-        return
-
-    try:
-        hass.config_entries.async_remove_subentry(entry, msg["subentry_id"])
-    except config_entries.UnknownSubEntry:
-        connection.send_error(
-            msg["id"], websocket_api.const.ERR_NOT_FOUND, "Config subentry not found"
-        )
-        return
-
-    connection.send_result(msg["id"])
diff --git a/homeassistant/config_entries.py b/homeassistant/config_entries.py
index d34828f5e46a154ec0c54e467cb08eb88e67e870..ade4cd855cac21c9e7f484adae4384f4aa4aaa04 100644
--- a/homeassistant/config_entries.py
+++ b/homeassistant/config_entries.py
@@ -15,7 +15,6 @@ from collections.abc import (
 )
 from contextvars import ContextVar
 from copy import deepcopy
-from dataclasses import dataclass, field
 from datetime import datetime
 from enum import Enum, StrEnum
 import functools
@@ -23,7 +22,7 @@ from functools import cache
 import logging
 from random import randint
 from types import MappingProxyType
-from typing import TYPE_CHECKING, Any, Generic, Self, TypedDict, cast
+from typing import TYPE_CHECKING, Any, Generic, Self, cast
 
 from async_interrupt import interrupt
 from propcache import cached_property
@@ -129,7 +128,7 @@ HANDLERS: Registry[str, type[ConfigFlow]] = Registry()
 
 STORAGE_KEY = "core.config_entries"
 STORAGE_VERSION = 1
-STORAGE_VERSION_MINOR = 5
+STORAGE_VERSION_MINOR = 4
 
 SAVE_DELAY = 1
 
@@ -257,10 +256,6 @@ class UnknownEntry(ConfigError):
     """Unknown entry specified."""
 
 
-class UnknownSubEntry(ConfigError):
-    """Unknown subentry specified."""
-
-
 class OperationNotAllowed(ConfigError):
     """Raised when a config entry operation is not allowed."""
 
@@ -305,7 +300,6 @@ class ConfigFlowResult(FlowResult[ConfigFlowContext, str], total=False):
 
     minor_version: int
     options: Mapping[str, Any]
-    subentries: Iterable[ConfigSubentryData]
     version: int
 
 
@@ -319,51 +313,6 @@ def _validate_item(*, disabled_by: ConfigEntryDisabler | Any | None = None) -> N
         )
 
 
-class ConfigSubentryData(TypedDict):
-    """Container for configuration subentry data.
-
-    Returned by integrations, a subentry_id will be assigned automatically.
-    """
-
-    data: Mapping[str, Any]
-    title: str
-    unique_id: str | None
-
-
-class ConfigSubentryDataWithId(ConfigSubentryData):
-    """Container for configuration subentry data.
-
-    This type is used when loading existing subentries from storage.
-    """
-
-    subentry_id: str
-
-
-class SubentryFlowResult(FlowResult[FlowContext, tuple[str, str]], total=False):
-    """Typed result dict for subentry flow."""
-
-    unique_id: str | None
-
-
-@dataclass(frozen=True, kw_only=True)
-class ConfigSubentry:
-    """Container for a configuration subentry."""
-
-    data: MappingProxyType[str, Any]
-    subentry_id: str = field(default_factory=ulid_util.ulid_now)
-    title: str
-    unique_id: str | None
-
-    def as_dict(self) -> ConfigSubentryDataWithId:
-        """Return dictionary version of this subentry."""
-        return {
-            "data": dict(self.data),
-            "subentry_id": self.subentry_id,
-            "title": self.title,
-            "unique_id": self.unique_id,
-        }
-
-
 class ConfigEntry(Generic[_DataT]):
     """Hold a configuration entry."""
 
@@ -373,7 +322,6 @@ class ConfigEntry(Generic[_DataT]):
     data: MappingProxyType[str, Any]
     runtime_data: _DataT
     options: MappingProxyType[str, Any]
-    subentries: MappingProxyType[str, ConfigSubentry]
     unique_id: str | None
     state: ConfigEntryState
     reason: str | None
@@ -389,7 +337,6 @@ class ConfigEntry(Generic[_DataT]):
     supports_remove_device: bool | None
     _supports_options: bool | None
     _supports_reconfigure: bool | None
-    _supported_subentries: tuple[str, ...] | None
     update_listeners: list[UpdateListenerType]
     _async_cancel_retry_setup: Callable[[], Any] | None
     _on_unload: list[Callable[[], Coroutine[Any, Any, None] | None]] | None
@@ -419,7 +366,6 @@ class ConfigEntry(Generic[_DataT]):
         pref_disable_polling: bool | None = None,
         source: str,
         state: ConfigEntryState = ConfigEntryState.NOT_LOADED,
-        subentries_data: Iterable[ConfigSubentryData | ConfigSubentryDataWithId] | None,
         title: str,
         unique_id: str | None,
         version: int,
@@ -445,24 +391,6 @@ class ConfigEntry(Generic[_DataT]):
         # Entry options
         _setter(self, "options", MappingProxyType(options or {}))
 
-        # Subentries
-        subentries_data = subentries_data or ()
-        subentries = {}
-        for subentry_data in subentries_data:
-            subentry_kwargs = {}
-            if "subentry_id" in subentry_data:
-                # If subentry_data has key "subentry_id", we're loading from storage
-                subentry_kwargs["subentry_id"] = subentry_data["subentry_id"]  # type: ignore[typeddict-item]
-            subentry = ConfigSubentry(
-                data=MappingProxyType(subentry_data["data"]),
-                title=subentry_data["title"],
-                unique_id=subentry_data.get("unique_id"),
-                **subentry_kwargs,
-            )
-            subentries[subentry.subentry_id] = subentry
-
-        _setter(self, "subentries", MappingProxyType(subentries))
-
         # Entry system options
         if pref_disable_new_entities is None:
             pref_disable_new_entities = False
@@ -499,9 +427,6 @@ class ConfigEntry(Generic[_DataT]):
         # Supports reconfigure
         _setter(self, "_supports_reconfigure", None)
 
-        # Supports subentries
-        _setter(self, "_supported_subentries", None)
-
         # Listeners to call on update
         _setter(self, "update_listeners", [])
 
@@ -574,18 +499,6 @@ class ConfigEntry(Generic[_DataT]):
             )
         return self._supports_reconfigure or False
 
-    @property
-    def supported_subentries(self) -> tuple[str, ...]:
-        """Return supported subentries."""
-        if self._supported_subentries is None and (
-            handler := HANDLERS.get(self.domain)
-        ):
-            # work out sub entries supported by the handler
-            object.__setattr__(
-                self, "_supported_subentries", handler.async_supported_subentries(self)
-            )
-        return self._supported_subentries or ()
-
     def clear_state_cache(self) -> None:
         """Clear cached properties that are included in as_json_fragment."""
         self.__dict__.pop("as_json_fragment", None)
@@ -605,14 +518,12 @@ class ConfigEntry(Generic[_DataT]):
             "supports_remove_device": self.supports_remove_device or False,
             "supports_unload": self.supports_unload or False,
             "supports_reconfigure": self.supports_reconfigure,
-            "supported_subentries": self.supported_subentries,
             "pref_disable_new_entities": self.pref_disable_new_entities,
             "pref_disable_polling": self.pref_disable_polling,
             "disabled_by": self.disabled_by,
             "reason": self.reason,
             "error_reason_translation_key": self.error_reason_translation_key,
             "error_reason_translation_placeholders": self.error_reason_translation_placeholders,
-            "num_subentries": len(self.subentries),
         }
         return json_fragment(json_bytes(json_repr))
 
@@ -1107,7 +1018,6 @@ class ConfigEntry(Generic[_DataT]):
             "pref_disable_new_entities": self.pref_disable_new_entities,
             "pref_disable_polling": self.pref_disable_polling,
             "source": self.source,
-            "subentries": [subentry.as_dict() for subentry in self.subentries.values()],
             "title": self.title,
             "unique_id": self.unique_id,
             "version": self.version,
@@ -1593,7 +1503,6 @@ class ConfigEntriesFlowManager(
             minor_version=result["minor_version"],
             options=result["options"],
             source=flow.context["source"],
-            subentries_data=result["subentries"],
             title=result["title"],
             unique_id=flow.unique_id,
             version=result["version"],
@@ -1884,11 +1793,6 @@ class ConfigEntryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
                 for entry in data["entries"]:
                     entry["discovery_keys"] = {}
 
-            if old_minor_version < 5:
-                # Version 1.4 adds config subentries
-                for entry in data["entries"]:
-                    entry.setdefault("subentries", entry.get("subentries", {}))
-
         if old_major_version > 1:
             raise NotImplementedError
         return data
@@ -1905,7 +1809,6 @@ class ConfigEntries:
         self.hass = hass
         self.flow = ConfigEntriesFlowManager(hass, self, hass_config)
         self.options = OptionsFlowManager(hass)
-        self.subentries = ConfigSubentryFlowManager(hass)
         self._hass_config = hass_config
         self._entries = ConfigEntryItems(hass)
         self._store = ConfigEntryStore(hass)
@@ -2108,7 +2011,6 @@ class ConfigEntries:
                 pref_disable_new_entities=entry["pref_disable_new_entities"],
                 pref_disable_polling=entry["pref_disable_polling"],
                 source=entry["source"],
-                subentries_data=entry["subentries"],
                 title=entry["title"],
                 unique_id=entry["unique_id"],
                 version=entry["version"],
@@ -2268,44 +2170,6 @@ class ConfigEntries:
         If the entry was changed, the update_listeners are
         fired and this function returns True
 
-        If the entry was not changed, the update_listeners are
-        not fired and this function returns False
-        """
-        return self._async_update_entry(
-            entry,
-            data=data,
-            discovery_keys=discovery_keys,
-            minor_version=minor_version,
-            options=options,
-            pref_disable_new_entities=pref_disable_new_entities,
-            pref_disable_polling=pref_disable_polling,
-            title=title,
-            unique_id=unique_id,
-            version=version,
-        )
-
-    @callback
-    def _async_update_entry(
-        self,
-        entry: ConfigEntry,
-        *,
-        data: Mapping[str, Any] | UndefinedType = UNDEFINED,
-        discovery_keys: MappingProxyType[str, tuple[DiscoveryKey, ...]]
-        | UndefinedType = UNDEFINED,
-        minor_version: int | UndefinedType = UNDEFINED,
-        options: Mapping[str, Any] | UndefinedType = UNDEFINED,
-        pref_disable_new_entities: bool | UndefinedType = UNDEFINED,
-        pref_disable_polling: bool | UndefinedType = UNDEFINED,
-        subentries: dict[str, ConfigSubentry] | UndefinedType = UNDEFINED,
-        title: str | UndefinedType = UNDEFINED,
-        unique_id: str | None | UndefinedType = UNDEFINED,
-        version: int | UndefinedType = UNDEFINED,
-    ) -> bool:
-        """Update a config entry.
-
-        If the entry was changed, the update_listeners are
-        fired and this function returns True
-
         If the entry was not changed, the update_listeners are
         not fired and this function returns False
         """
@@ -2368,11 +2232,6 @@ class ConfigEntries:
             changed = True
             _setter(entry, "options", MappingProxyType(options))
 
-        if subentries is not UNDEFINED:
-            if entry.subentries != subentries:
-                changed = True
-                _setter(entry, "subentries", MappingProxyType(subentries))
-
         if not changed:
             return False
 
@@ -2390,37 +2249,6 @@ class ConfigEntries:
         self._async_dispatch(ConfigEntryChange.UPDATED, entry)
         return True
 
-    @callback
-    def async_add_subentry(self, entry: ConfigEntry, subentry: ConfigSubentry) -> bool:
-        """Add a subentry to a config entry."""
-        self._raise_if_subentry_unique_id_exists(entry, subentry.unique_id)
-
-        return self._async_update_entry(
-            entry,
-            subentries=entry.subentries | {subentry.subentry_id: subentry},
-        )
-
-    @callback
-    def async_remove_subentry(self, entry: ConfigEntry, subentry_id: str) -> bool:
-        """Remove a subentry from a config entry."""
-        subentries = dict(entry.subentries)
-        try:
-            subentries.pop(subentry_id)
-        except KeyError as err:
-            raise UnknownSubEntry from err
-
-        return self._async_update_entry(entry, subentries=subentries)
-
-    def _raise_if_subentry_unique_id_exists(
-        self, entry: ConfigEntry, unique_id: str | None
-    ) -> None:
-        """Raise if a subentry with the same unique_id exists."""
-        if unique_id is None:
-            return
-        for existing_subentry in entry.subentries.values():
-            if existing_subentry.unique_id == unique_id:
-                raise data_entry_flow.AbortFlow("already_configured")
-
     @callback
     def _async_dispatch(
         self, change_type: ConfigEntryChange, entry: ConfigEntry
@@ -2757,20 +2585,6 @@ class ConfigFlow(ConfigEntryBaseFlow):
         """Return options flow support for this handler."""
         return cls.async_get_options_flow is not ConfigFlow.async_get_options_flow
 
-    @staticmethod
-    @callback
-    def async_get_subentry_flow(
-        config_entry: ConfigEntry, subentry_type: str
-    ) -> ConfigSubentryFlow:
-        """Get the subentry flow for this handler."""
-        raise NotImplementedError
-
-    @classmethod
-    @callback
-    def async_supported_subentries(cls, config_entry: ConfigEntry) -> tuple[str, ...]:
-        """Return subentries supported by this handler."""
-        return ()
-
     @callback
     def _async_abort_entries_match(
         self, match_dict: dict[str, Any] | None = None
@@ -3079,7 +2893,6 @@ class ConfigFlow(ConfigEntryBaseFlow):
         description: str | None = None,
         description_placeholders: Mapping[str, str] | None = None,
         options: Mapping[str, Any] | None = None,
-        subentries: Iterable[ConfigSubentryData] | None = None,
     ) -> ConfigFlowResult:
         """Finish config flow and create a config entry."""
         if self.source in {SOURCE_REAUTH, SOURCE_RECONFIGURE}:
@@ -3099,7 +2912,6 @@ class ConfigFlow(ConfigEntryBaseFlow):
 
         result["minor_version"] = self.MINOR_VERSION
         result["options"] = options or {}
-        result["subentries"] = subentries or ()
         result["version"] = self.VERSION
 
         return result
@@ -3214,126 +3026,17 @@ class ConfigFlow(ConfigEntryBaseFlow):
         )
 
 
-class _ConfigSubFlowManager:
-    """Mixin class for flow managers which manage flows tied to a config entry."""
+class OptionsFlowManager(
+    data_entry_flow.FlowManager[ConfigFlowContext, ConfigFlowResult]
+):
+    """Flow to set options for a configuration entry."""
 
-    hass: HomeAssistant
+    _flow_result = ConfigFlowResult
 
     def _async_get_config_entry(self, config_entry_id: str) -> ConfigEntry:
         """Return config entry or raise if not found."""
         return self.hass.config_entries.async_get_known_entry(config_entry_id)
 
-
-class ConfigSubentryFlowManager(
-    data_entry_flow.FlowManager[FlowContext, SubentryFlowResult, tuple[str, str]],
-    _ConfigSubFlowManager,
-):
-    """Manage all the config subentry flows that are in progress."""
-
-    _flow_result = SubentryFlowResult
-
-    async def async_create_flow(
-        self,
-        handler_key: tuple[str, str],
-        *,
-        context: FlowContext | None = None,
-        data: dict[str, Any] | None = None,
-    ) -> ConfigSubentryFlow:
-        """Create a subentry flow for a config entry.
-
-        The entry_id and flow.handler[0] is the same thing to map entry with flow.
-        """
-        if not context or "source" not in context:
-            raise KeyError("Context not set or doesn't have a source set")
-
-        entry_id, subentry_type = handler_key
-        entry = self._async_get_config_entry(entry_id)
-        handler = await _async_get_flow_handler(self.hass, entry.domain, {})
-        if subentry_type not in handler.async_supported_subentries(entry):
-            raise data_entry_flow.UnknownHandler(
-                f"Config entry '{entry.domain}' does not support subentry '{subentry_type}'"
-            )
-        subentry_flow = handler.async_get_subentry_flow(entry, subentry_type)
-        subentry_flow.init_step = context["source"]
-        return subentry_flow
-
-    async def async_finish_flow(
-        self,
-        flow: data_entry_flow.FlowHandler[
-            FlowContext, SubentryFlowResult, tuple[str, str]
-        ],
-        result: SubentryFlowResult,
-    ) -> SubentryFlowResult:
-        """Finish a subentry flow and add a new subentry to the configuration entry.
-
-        The flow.handler[0] and entry_id is the same thing to map flow with entry.
-        """
-        flow = cast(ConfigSubentryFlow, flow)
-
-        if result["type"] != data_entry_flow.FlowResultType.CREATE_ENTRY:
-            return result
-
-        entry_id = flow.handler[0]
-        entry = self.hass.config_entries.async_get_entry(entry_id)
-        if entry is None:
-            raise UnknownEntry(entry_id)
-
-        unique_id = result.get("unique_id")
-        if unique_id is not None and not isinstance(unique_id, str):
-            raise HomeAssistantError("unique_id must be a string")
-
-        self.hass.config_entries.async_add_subentry(
-            entry,
-            ConfigSubentry(
-                data=MappingProxyType(result["data"]),
-                title=result["title"],
-                unique_id=unique_id,
-            ),
-        )
-
-        result["result"] = True
-        return result
-
-
-class ConfigSubentryFlow(
-    data_entry_flow.FlowHandler[FlowContext, SubentryFlowResult, tuple[str, str]]
-):
-    """Base class for config subentry flows."""
-
-    _flow_result = SubentryFlowResult
-    handler: tuple[str, str]
-
-    @callback
-    def async_create_entry(
-        self,
-        *,
-        title: str | None = None,
-        data: Mapping[str, Any],
-        description: str | None = None,
-        description_placeholders: Mapping[str, str] | None = None,
-        unique_id: str | None = None,
-    ) -> SubentryFlowResult:
-        """Finish config flow and create a config entry."""
-        result = super().async_create_entry(
-            title=title,
-            data=data,
-            description=description,
-            description_placeholders=description_placeholders,
-        )
-
-        result["unique_id"] = unique_id
-
-        return result
-
-
-class OptionsFlowManager(
-    data_entry_flow.FlowManager[ConfigFlowContext, ConfigFlowResult],
-    _ConfigSubFlowManager,
-):
-    """Manage all the config entry option flows that are in progress."""
-
-    _flow_result = ConfigFlowResult
-
     async def async_create_flow(
         self,
         handler_key: str,
@@ -3343,7 +3046,7 @@ class OptionsFlowManager(
     ) -> OptionsFlow:
         """Create an options flow for a config entry.
 
-        The entry_id and the flow.handler is the same thing to map entry with flow.
+        Entry_id and flow.handler is the same thing to map entry with flow.
         """
         entry = self._async_get_config_entry(handler_key)
         handler = await _async_get_flow_handler(self.hass, entry.domain, {})
@@ -3359,7 +3062,7 @@ class OptionsFlowManager(
         This method is called when a flow step returns FlowResultType.ABORT or
         FlowResultType.CREATE_ENTRY.
 
-        The flow.handler and the entry_id is the same thing to map flow with entry.
+        Flow.handler and entry_id is the same thing to map flow with entry.
         """
         flow = cast(OptionsFlow, flow)
 
diff --git a/homeassistant/helpers/data_entry_flow.py b/homeassistant/helpers/data_entry_flow.py
index e98061d50b7bac3f7131093ee4c9453a3929a8c4..adb2062a8ea58ead60d7d5049fee8f20861f4629 100644
--- a/homeassistant/helpers/data_entry_flow.py
+++ b/homeassistant/helpers/data_entry_flow.py
@@ -18,7 +18,7 @@ from . import config_validation as cv
 
 _FlowManagerT = TypeVar(
     "_FlowManagerT",
-    bound=data_entry_flow.FlowManager[Any, Any, Any],
+    bound=data_entry_flow.FlowManager[Any, Any],
     default=data_entry_flow.FlowManager,
 )
 
@@ -71,7 +71,7 @@ class FlowManagerIndexView(_BaseFlowManagerView[_FlowManagerT]):
     async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response:
         """Initialize a POST request.
 
-        Override `post` and call `_post_impl` in subclasses which need
+        Override `_post_impl` in subclasses which need
         to implement their own `RequestDataValidator`
         """
         return await self._post_impl(request, data)
diff --git a/script/hassfest/translations.py b/script/hassfest/translations.py
index 078c649666da69b4b07561e1fcac281d315a11ca..2fb70b6e0beff97ee12fa621e07aaae7f788658a 100644
--- a/script/hassfest/translations.py
+++ b/script/hassfest/translations.py
@@ -285,15 +285,6 @@ def gen_strings_schema(config: Config, integration: Integration) -> vol.Schema:
                     "user" if integration.integration_type == "helper" else None
                 ),
             ),
-            vol.Optional("config_subentries"): cv.schema_with_slug_keys(
-                gen_data_entry_schema(
-                    config=config,
-                    integration=integration,
-                    flow_title=REQUIRED,
-                    require_step_title=False,
-                ),
-                slug_validator=vol.Any("_", cv.slug),
-            ),
             vol.Optional("options"): gen_data_entry_schema(
                 config=config,
                 integration=integration,
diff --git a/tests/common.py b/tests/common.py
index d2b0dff8faa9825e5e9859057964c1b0eb388154..ac6f10b8c44ef8b8a196a2f0a92f83b094046dfd 100644
--- a/tests/common.py
+++ b/tests/common.py
@@ -1000,7 +1000,6 @@ class MockConfigEntry(config_entries.ConfigEntry):
         reason=None,
         source=config_entries.SOURCE_USER,
         state=None,
-        subentries_data=None,
         title="Mock Title",
         unique_id=None,
         version=1,
@@ -1017,7 +1016,6 @@ class MockConfigEntry(config_entries.ConfigEntry):
             "options": options or {},
             "pref_disable_new_entities": pref_disable_new_entities,
             "pref_disable_polling": pref_disable_polling,
-            "subentries_data": subentries_data or (),
             "title": title,
             "unique_id": unique_id,
             "version": version,
diff --git a/tests/components/aemet/snapshots/test_diagnostics.ambr b/tests/components/aemet/snapshots/test_diagnostics.ambr
index 1e09a3723522a6deb55bb8db45e4795886cc253d..54546507dfa5d3906907cee7e200a9087fdd8d72 100644
--- a/tests/components/aemet/snapshots/test_diagnostics.ambr
+++ b/tests/components/aemet/snapshots/test_diagnostics.ambr
@@ -21,8 +21,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/airly/snapshots/test_diagnostics.ambr b/tests/components/airly/snapshots/test_diagnostics.ambr
index 1c760eaec52244ec8e5f3778679c1e45f7ab160a..ec501b2fd7eb6da0c793990cc740674878769628 100644
--- a/tests/components/airly/snapshots/test_diagnostics.ambr
+++ b/tests/components/airly/snapshots/test_diagnostics.ambr
@@ -19,8 +19,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Home',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/airnow/snapshots/test_diagnostics.ambr b/tests/components/airnow/snapshots/test_diagnostics.ambr
index 73ba6a7123fad6cc5917912d838c880067b11f29..3dd4788dc610370c77d9ebd8e8a94e2d087f875f 100644
--- a/tests/components/airnow/snapshots/test_diagnostics.ambr
+++ b/tests/components/airnow/snapshots/test_diagnostics.ambr
@@ -35,8 +35,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 2,
diff --git a/tests/components/airvisual/snapshots/test_diagnostics.ambr b/tests/components/airvisual/snapshots/test_diagnostics.ambr
index 0dbdef1d5080a3e6f7356c8316409e0ba56b6a30..606d6082351077c326a58a180c7bcb3709ca34e0 100644
--- a/tests/components/airvisual/snapshots/test_diagnostics.ambr
+++ b/tests/components/airvisual/snapshots/test_diagnostics.ambr
@@ -47,8 +47,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 3,
diff --git a/tests/components/airvisual_pro/snapshots/test_diagnostics.ambr b/tests/components/airvisual_pro/snapshots/test_diagnostics.ambr
index 113db6e3b96145d8a4d76ca4b1a4bd0c8ad8be57..cb1d3a7aee767444a3cc82e60186d54bbed9bac5 100644
--- a/tests/components/airvisual_pro/snapshots/test_diagnostics.ambr
+++ b/tests/components/airvisual_pro/snapshots/test_diagnostics.ambr
@@ -101,8 +101,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'XXXXXXX',
       'version': 1,
diff --git a/tests/components/airzone/snapshots/test_diagnostics.ambr b/tests/components/airzone/snapshots/test_diagnostics.ambr
index 39668e3d19fb6d0b6bf1d37a54ff080849d1aef8..fb4f6530b1e053e71e91c593072f4dae46e77603 100644
--- a/tests/components/airzone/snapshots/test_diagnostics.ambr
+++ b/tests/components/airzone/snapshots/test_diagnostics.ambr
@@ -287,8 +287,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/airzone_cloud/snapshots/test_diagnostics.ambr b/tests/components/airzone_cloud/snapshots/test_diagnostics.ambr
index 4bd7bfaccdd8ee99ac5bd4acac5c00a75235253f..c6ad36916bf17b9bf0dd3ca3f5f77b1a82864157 100644
--- a/tests/components/airzone_cloud/snapshots/test_diagnostics.ambr
+++ b/tests/components/airzone_cloud/snapshots/test_diagnostics.ambr
@@ -101,8 +101,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'installation1',
       'version': 1,
diff --git a/tests/components/ambient_station/snapshots/test_diagnostics.ambr b/tests/components/ambient_station/snapshots/test_diagnostics.ambr
index 07db19101abf4ac20e8367af1930bfaec6fd0294..2f90b09d39fea849dafeb26d20ac4ce23d211e4b 100644
--- a/tests/components/ambient_station/snapshots/test_diagnostics.ambr
+++ b/tests/components/ambient_station/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 2,
diff --git a/tests/components/axis/snapshots/test_diagnostics.ambr b/tests/components/axis/snapshots/test_diagnostics.ambr
index b475c796d2b8b6c9a54481db7df0cfaa8d4ed381..ebd0061f41674162645032be23ffa39f6d999b9a 100644
--- a/tests/components/axis/snapshots/test_diagnostics.ambr
+++ b/tests/components/axis/snapshots/test_diagnostics.ambr
@@ -47,8 +47,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 3,
diff --git a/tests/components/bang_olufsen/snapshots/test_diagnostics.ambr b/tests/components/bang_olufsen/snapshots/test_diagnostics.ambr
index d7f9a045921bede46d2864f395bf08db32417a07..e9540b5cec6ecfa85d1cca0e4b2518ed2d91ae00 100644
--- a/tests/components/bang_olufsen/snapshots/test_diagnostics.ambr
+++ b/tests/components/bang_olufsen/snapshots/test_diagnostics.ambr
@@ -18,8 +18,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Beosound Balance-11111111',
       'unique_id': '11111111',
       'version': 1,
diff --git a/tests/components/blink/snapshots/test_diagnostics.ambr b/tests/components/blink/snapshots/test_diagnostics.ambr
index 54df2b48cdbbca08b69034c18bd16b457a6b4880..edc2879a66bbac7aa0606c492414a3add57d7724 100644
--- a/tests/components/blink/snapshots/test_diagnostics.ambr
+++ b/tests/components/blink/snapshots/test_diagnostics.ambr
@@ -48,8 +48,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 3,
diff --git a/tests/components/braviatv/snapshots/test_diagnostics.ambr b/tests/components/braviatv/snapshots/test_diagnostics.ambr
index de76c00cd2372ba39899818415da8516fa955f97..cd29c647df77ea618182f3de6787f4c1afb7f463 100644
--- a/tests/components/braviatv/snapshots/test_diagnostics.ambr
+++ b/tests/components/braviatv/snapshots/test_diagnostics.ambr
@@ -19,8 +19,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'very_unique_string',
       'version': 1,
diff --git a/tests/components/co2signal/snapshots/test_diagnostics.ambr b/tests/components/co2signal/snapshots/test_diagnostics.ambr
index 4159c8ec1a11003d6949e8e691e2944605579285..9218e7343ecea24660641ba8121b3d9da7dbfd5d 100644
--- a/tests/components/co2signal/snapshots/test_diagnostics.ambr
+++ b/tests/components/co2signal/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/coinbase/snapshots/test_diagnostics.ambr b/tests/components/coinbase/snapshots/test_diagnostics.ambr
index 3eab18fb9f38afddf867c8ad638978d838c136eb..51bd946f140bd9d380641d16c4681fd7d5d95438 100644
--- a/tests/components/coinbase/snapshots/test_diagnostics.ambr
+++ b/tests/components/coinbase/snapshots/test_diagnostics.ambr
@@ -44,8 +44,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/comelit/snapshots/test_diagnostics.ambr b/tests/components/comelit/snapshots/test_diagnostics.ambr
index 877f48a46116dbfbc8ec26123d82906defac4e50..58ce74035f93db1161201d09b20d99e071249721 100644
--- a/tests/components/comelit/snapshots/test_diagnostics.ambr
+++ b/tests/components/comelit/snapshots/test_diagnostics.ambr
@@ -71,8 +71,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
@@ -137,8 +135,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/config/test_config_entries.py b/tests/components/config/test_config_entries.py
index 0a1ffbe87b3bfa6fa802284e0e7d33289a0e3833..ee000c5ada206961a3f987886f8010e77ea0b192 100644
--- a/tests/components/config/test_config_entries.py
+++ b/tests/components/config/test_config_entries.py
@@ -137,13 +137,11 @@ async def test_get_entries(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla",
             "state": core_ce.ConfigEntryState.NOT_LOADED.value,
-            "supported_subentries": [],
             "supports_options": True,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -157,13 +155,11 @@ async def test_get_entries(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": "Unsupported API",
             "source": "bla2",
             "state": core_ce.ConfigEntryState.SETUP_ERROR.value,
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -177,13 +173,11 @@ async def test_get_entries(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla3",
             "state": core_ce.ConfigEntryState.NOT_LOADED.value,
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -197,13 +191,11 @@ async def test_get_entries(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla4",
             "state": core_ce.ConfigEntryState.NOT_LOADED.value,
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -217,13 +209,11 @@ async def test_get_entries(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla5",
             "state": core_ce.ConfigEntryState.NOT_LOADED.value,
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -581,13 +571,11 @@ async def test_create_account(hass: HomeAssistant, client: TestClient) -> None:
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": core_ce.SOURCE_USER,
             "state": core_ce.ConfigEntryState.LOADED.value,
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -598,7 +586,6 @@ async def test_create_account(hass: HomeAssistant, client: TestClient) -> None:
         "description_placeholders": None,
         "options": {},
         "minor_version": 1,
-        "subentries": [],
     }
 
 
@@ -667,13 +654,11 @@ async def test_two_step_flow(hass: HomeAssistant, client: TestClient) -> None:
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": timestamp,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": core_ce.SOURCE_USER,
                 "state": core_ce.ConfigEntryState.LOADED.value,
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -684,7 +669,6 @@ async def test_two_step_flow(hass: HomeAssistant, client: TestClient) -> None:
             "description_placeholders": None,
             "options": {},
             "minor_version": 1,
-            "subentries": [],
         }
 
 
@@ -1104,273 +1088,6 @@ async def test_options_flow_with_invalid_data(
         assert data == {"errors": {"choices": "invalid is not a valid option"}}
 
 
-async def test_subentry_flow(hass: HomeAssistant, client) -> None:
-    """Test we can start a subentry flow."""
-
-    class TestFlow(core_ce.ConfigFlow):
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            class SubentryFlowHandler(core_ce.ConfigSubentryFlow):
-                async def async_step_init(self, user_input=None):
-                    raise NotImplementedError
-
-                async def async_step_user(self, user_input=None):
-                    schema = OrderedDict()
-                    schema[vol.Required("enabled")] = bool
-                    return self.async_show_form(
-                        step_id="user",
-                        data_schema=schema,
-                        description_placeholders={"enabled": "Set to true to be true"},
-                    )
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(cls, config_entry):
-            return ("test",)
-
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    MockConfigEntry(
-        domain="test",
-        entry_id="test1",
-        source="bla",
-    ).add_to_hass(hass)
-    entry = hass.config_entries.async_entries()[0]
-
-    with patch.dict(HANDLERS, {"test": TestFlow}):
-        url = "/api/config/config_entries/subentries/flow"
-        resp = await client.post(url, json={"handler": [entry.entry_id, "test"]})
-
-    assert resp.status == HTTPStatus.OK
-    data = await resp.json()
-
-    data.pop("flow_id")
-    assert data == {
-        "type": "form",
-        "handler": ["test1", "test"],
-        "step_id": "user",
-        "data_schema": [{"name": "enabled", "required": True, "type": "boolean"}],
-        "description_placeholders": {"enabled": "Set to true to be true"},
-        "errors": None,
-        "last_step": None,
-        "preview": None,
-    }
-
-
-@pytest.mark.parametrize(
-    ("endpoint", "method"),
-    [
-        ("/api/config/config_entries/subentries/flow", "post"),
-        ("/api/config/config_entries/subentries/flow/1", "get"),
-        ("/api/config/config_entries/subentries/flow/1", "post"),
-    ],
-)
-async def test_subentry_flow_unauth(
-    hass: HomeAssistant, client, hass_admin_user: MockUser, endpoint: str, method: str
-) -> None:
-    """Test unauthorized on subentry flow."""
-
-    class TestFlow(core_ce.ConfigFlow):
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            class SubentryFlowHandler(core_ce.ConfigSubentryFlow):
-                async def async_step_init(self, user_input=None):
-                    schema = OrderedDict()
-                    schema[vol.Required("enabled")] = bool
-                    return self.async_show_form(
-                        step_id="user",
-                        data_schema=schema,
-                        description_placeholders={"enabled": "Set to true to be true"},
-                    )
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(cls, config_entry):
-            return ("test",)
-
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    MockConfigEntry(
-        domain="test",
-        entry_id="test1",
-        source="bla",
-    ).add_to_hass(hass)
-    entry = hass.config_entries.async_entries()[0]
-
-    hass_admin_user.groups = []
-
-    with patch.dict(HANDLERS, {"test": TestFlow}):
-        resp = await getattr(client, method)(endpoint, json={"handler": entry.entry_id})
-
-    assert resp.status == HTTPStatus.UNAUTHORIZED
-
-
-async def test_two_step_subentry_flow(hass: HomeAssistant, client) -> None:
-    """Test we can finish a two step subentry flow."""
-    mock_integration(
-        hass, MockModule("test", async_setup_entry=AsyncMock(return_value=True))
-    )
-    mock_platform(hass, "test.config_flow", None)
-
-    class TestFlow(core_ce.ConfigFlow):
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            class SubentryFlowHandler(core_ce.ConfigSubentryFlow):
-                async def async_step_user(self, user_input=None):
-                    return await self.async_step_finish()
-
-                async def async_step_finish(self, user_input=None):
-                    if user_input:
-                        return self.async_create_entry(
-                            title="Mock title", data=user_input, unique_id="test"
-                        )
-
-                    return self.async_show_form(
-                        step_id="finish", data_schema=vol.Schema({"enabled": bool})
-                    )
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(cls, config_entry):
-            return ("test",)
-
-    MockConfigEntry(
-        domain="test",
-        entry_id="test1",
-        source="bla",
-    ).add_to_hass(hass)
-    entry = hass.config_entries.async_entries()[0]
-
-    with patch.dict(HANDLERS, {"test": TestFlow}):
-        url = "/api/config/config_entries/subentries/flow"
-        resp = await client.post(url, json={"handler": [entry.entry_id, "test"]})
-
-        assert resp.status == HTTPStatus.OK
-        data = await resp.json()
-        flow_id = data["flow_id"]
-        expected_data = {
-            "data_schema": [{"name": "enabled", "type": "boolean"}],
-            "description_placeholders": None,
-            "errors": None,
-            "flow_id": flow_id,
-            "handler": ["test1", "test"],
-            "last_step": None,
-            "preview": None,
-            "step_id": "finish",
-            "type": "form",
-        }
-        assert data == expected_data
-
-        resp = await client.get(f"/api/config/config_entries/subentries/flow/{flow_id}")
-        assert resp.status == HTTPStatus.OK
-        data = await resp.json()
-        assert data == expected_data
-
-        resp = await client.post(
-            f"/api/config/config_entries/subentries/flow/{flow_id}",
-            json={"enabled": True},
-        )
-        assert resp.status == HTTPStatus.OK
-        data = await resp.json()
-        assert data == {
-            "description_placeholders": None,
-            "description": None,
-            "flow_id": flow_id,
-            "handler": ["test1", "test"],
-            "title": "Mock title",
-            "type": "create_entry",
-            "unique_id": "test",
-        }
-
-
-async def test_subentry_flow_with_invalid_data(hass: HomeAssistant, client) -> None:
-    """Test a subentry flow with invalid_data."""
-    mock_integration(
-        hass, MockModule("test", async_setup_entry=AsyncMock(return_value=True))
-    )
-    mock_platform(hass, "test.config_flow", None)
-
-    class TestFlow(core_ce.ConfigFlow):
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            class SubentryFlowHandler(core_ce.ConfigSubentryFlow):
-                async def async_step_user(self, user_input=None):
-                    return self.async_show_form(
-                        step_id="finish",
-                        data_schema=vol.Schema(
-                            {
-                                vol.Required(
-                                    "choices", default=["invalid", "valid"]
-                                ): cv.multi_select({"valid": "Valid"})
-                            }
-                        ),
-                    )
-
-                async def async_step_finish(self, user_input=None):
-                    return self.async_create_entry(
-                        title="Enable disable", data=user_input
-                    )
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(cls, config_entry):
-            return ("test",)
-
-    MockConfigEntry(
-        domain="test",
-        entry_id="test1",
-        source="bla",
-    ).add_to_hass(hass)
-    entry = hass.config_entries.async_entries()[0]
-
-    with patch.dict(HANDLERS, {"test": TestFlow}):
-        url = "/api/config/config_entries/subentries/flow"
-        resp = await client.post(url, json={"handler": [entry.entry_id, "test"]})
-
-        assert resp.status == HTTPStatus.OK
-        data = await resp.json()
-        flow_id = data.pop("flow_id")
-        assert data == {
-            "type": "form",
-            "handler": ["test1", "test"],
-            "step_id": "finish",
-            "data_schema": [
-                {
-                    "default": ["invalid", "valid"],
-                    "name": "choices",
-                    "options": {"valid": "Valid"},
-                    "required": True,
-                    "type": "multi_select",
-                }
-            ],
-            "description_placeholders": None,
-            "errors": None,
-            "last_step": None,
-            "preview": None,
-        }
-
-    with patch.dict(HANDLERS, {"test": TestFlow}):
-        resp = await client.post(
-            f"/api/config/config_entries/subentries/flow/{flow_id}",
-            json={"choices": ["valid", "invalid"]},
-        )
-        assert resp.status == HTTPStatus.BAD_REQUEST
-        data = await resp.json()
-        assert data == {"errors": {"choices": "invalid is not a valid option"}}
-
-
 @pytest.mark.usefixtures("freezer")
 async def test_get_single(
     hass: HomeAssistant, hass_ws_client: WebSocketGenerator
@@ -1403,13 +1120,11 @@ async def test_get_single(
         "error_reason_translation_key": None,
         "error_reason_translation_placeholders": None,
         "modified_at": timestamp,
-        "num_subentries": 0,
         "pref_disable_new_entities": False,
         "pref_disable_polling": False,
         "reason": None,
         "source": "user",
         "state": "loaded",
-        "supported_subentries": [],
         "supports_options": False,
         "supports_reconfigure": False,
         "supports_remove_device": False,
@@ -1765,13 +1480,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1786,13 +1499,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": "Unsupported API",
             "source": "bla2",
             "state": "setup_error",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1807,13 +1518,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla3",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1828,13 +1537,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla4",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1849,13 +1556,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla5",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1881,13 +1586,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1912,13 +1615,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla4",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1933,13 +1634,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla5",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1964,13 +1663,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -1985,13 +1682,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla3",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2022,13 +1717,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2043,13 +1736,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": "Unsupported API",
             "source": "bla2",
             "state": "setup_error",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2064,13 +1755,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla3",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2085,13 +1774,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla4",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2106,13 +1793,11 @@ async def test_get_matching_entries_ws(
             "error_reason_translation_key": None,
             "error_reason_translation_placeholders": None,
             "modified_at": timestamp,
-            "num_subentries": 0,
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "reason": None,
             "source": "bla5",
             "state": "not_loaded",
-            "supported_subentries": [],
             "supports_options": False,
             "supports_reconfigure": False,
             "supports_remove_device": False,
@@ -2215,13 +1900,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": created,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2239,13 +1922,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": created,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": "Unsupported API",
                 "source": "bla2",
                 "state": "setup_error",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2263,13 +1944,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": created,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla3",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2293,13 +1972,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": modified,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2324,13 +2001,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": modified,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2354,13 +2029,11 @@ async def test_subscribe_entries_ws(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": entry.modified_at.timestamp(),
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2446,13 +2119,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": created,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2470,13 +2141,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": created,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla3",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2502,13 +2171,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": modified,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2530,13 +2197,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": modified,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla3",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2562,13 +2227,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": modified,
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2592,13 +2255,11 @@ async def test_subscribe_entries_ws_filtered(
                 "error_reason_translation_key": None,
                 "error_reason_translation_placeholders": None,
                 "modified_at": entry.modified_at.timestamp(),
-                "num_subentries": 0,
                 "pref_disable_new_entities": False,
                 "pref_disable_polling": False,
                 "reason": None,
                 "source": "bla",
                 "state": "not_loaded",
-                "supported_subentries": [],
                 "supports_options": False,
                 "supports_reconfigure": False,
                 "supports_remove_device": False,
@@ -2809,133 +2470,3 @@ async def test_does_not_support_reconfigure(
         response
         == '{"message":"Handler ConfigEntriesFlowManager doesn\'t support step reconfigure"}'
     )
-
-
-async def test_list_subentries(
-    hass: HomeAssistant, hass_ws_client: WebSocketGenerator
-) -> None:
-    """Test that we can list subentries."""
-    assert await async_setup_component(hass, "config", {})
-    ws_client = await hass_ws_client(hass)
-
-    entry = MockConfigEntry(
-        domain="test",
-        state=core_ce.ConfigEntryState.LOADED,
-        subentries_data=[
-            core_ce.ConfigSubentryData(
-                data={"test": "test"},
-                subentry_id="mock_id",
-                title="Mock title",
-                unique_id="test",
-            )
-        ],
-    )
-    entry.add_to_hass(hass)
-
-    assert entry.pref_disable_new_entities is False
-    assert entry.pref_disable_polling is False
-
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/list",
-            "entry_id": entry.entry_id,
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert response["success"]
-    assert response["result"] == [
-        {"subentry_id": "mock_id", "title": "Mock title", "unique_id": "test"},
-    ]
-
-    # Try listing subentries for an unknown entry
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/list",
-            "entry_id": "no_such_entry",
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert not response["success"]
-    assert response["error"] == {
-        "code": "not_found",
-        "message": "Config entry not found",
-    }
-
-
-async def test_delete_subentry(
-    hass: HomeAssistant, hass_ws_client: WebSocketGenerator
-) -> None:
-    """Test that we can delete a subentry."""
-    assert await async_setup_component(hass, "config", {})
-    ws_client = await hass_ws_client(hass)
-
-    entry = MockConfigEntry(
-        domain="test",
-        state=core_ce.ConfigEntryState.LOADED,
-        subentries_data=[
-            core_ce.ConfigSubentryData(
-                data={"test": "test"}, subentry_id="mock_id", title="Mock title"
-            )
-        ],
-    )
-    entry.add_to_hass(hass)
-
-    assert entry.pref_disable_new_entities is False
-    assert entry.pref_disable_polling is False
-
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/delete",
-            "entry_id": entry.entry_id,
-            "subentry_id": "mock_id",
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert response["success"]
-    assert response["result"] is None
-
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/list",
-            "entry_id": entry.entry_id,
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert response["success"]
-    assert response["result"] == []
-
-    # Try deleting the subentry again
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/delete",
-            "entry_id": entry.entry_id,
-            "subentry_id": "mock_id",
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert not response["success"]
-    assert response["error"] == {
-        "code": "not_found",
-        "message": "Config subentry not found",
-    }
-
-    # Try deleting subentry from an unknown entry
-    await ws_client.send_json_auto_id(
-        {
-            "type": "config_entries/subentries/delete",
-            "entry_id": "no_such_entry",
-            "subentry_id": "mock_id",
-        }
-    )
-    response = await ws_client.receive_json()
-
-    assert not response["success"]
-    assert response["error"] == {
-        "code": "not_found",
-        "message": "Config entry not found",
-    }
diff --git a/tests/components/deconz/snapshots/test_diagnostics.ambr b/tests/components/deconz/snapshots/test_diagnostics.ambr
index 20558b4bbbd3b60af81bc175ce257cb16398eb93..1ca674a4fbec20f04dba1b17d5af8c672489bd7c 100644
--- a/tests/components/deconz/snapshots/test_diagnostics.ambr
+++ b/tests/components/deconz/snapshots/test_diagnostics.ambr
@@ -21,8 +21,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/devolo_home_control/snapshots/test_diagnostics.ambr b/tests/components/devolo_home_control/snapshots/test_diagnostics.ambr
index 0e507ca0b28a614383117618f40e7d0a51cb883c..abedc128756a7632399261d0ae0baa9ef63cbea9 100644
--- a/tests/components/devolo_home_control/snapshots/test_diagnostics.ambr
+++ b/tests/components/devolo_home_control/snapshots/test_diagnostics.ambr
@@ -47,8 +47,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '123456',
       'version': 1,
diff --git a/tests/components/devolo_home_network/snapshots/test_diagnostics.ambr b/tests/components/devolo_home_network/snapshots/test_diagnostics.ambr
index 1288b7f3ef6db3462eb266e2c8e21bcaf7f2d2fa..53940bf5119757d11a11d174180d54820f8757ce 100644
--- a/tests/components/devolo_home_network/snapshots/test_diagnostics.ambr
+++ b/tests/components/devolo_home_network/snapshots/test_diagnostics.ambr
@@ -32,8 +32,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '1234567890',
       'version': 1,
diff --git a/tests/components/dsmr_reader/snapshots/test_diagnostics.ambr b/tests/components/dsmr_reader/snapshots/test_diagnostics.ambr
index 0a46dd7f47667764b166f5640f1d1e411699e13e..d407fe2dc5ba351689ea077fa09c8c5a386f234b 100644
--- a/tests/components/dsmr_reader/snapshots/test_diagnostics.ambr
+++ b/tests/components/dsmr_reader/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'dsmr_reader',
       'unique_id': 'UNIQUE_TEST_ID',
       'version': 1,
diff --git a/tests/components/ecovacs/snapshots/test_diagnostics.ambr b/tests/components/ecovacs/snapshots/test_diagnostics.ambr
index f9540e06038ceddee4dc40e1782d43079a64886b..38c8a9a5ab91296b091f76dca0b63b9417c406f8 100644
--- a/tests/components/ecovacs/snapshots/test_diagnostics.ambr
+++ b/tests/components/ecovacs/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': None,
       'version': 1,
@@ -72,8 +70,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/energyzero/snapshots/test_config_flow.ambr b/tests/components/energyzero/snapshots/test_config_flow.ambr
index 88b0af6dc7b865565da6873ae3c5624f3df3b066..72e504c97c8311ad31de98f67a919bd23cb3086d 100644
--- a/tests/components/energyzero/snapshots/test_config_flow.ambr
+++ b/tests/components/energyzero/snapshots/test_config_flow.ambr
@@ -28,14 +28,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'EnergyZero',
       'unique_id': 'energyzero',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'EnergyZero',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/enphase_envoy/snapshots/test_diagnostics.ambr b/tests/components/enphase_envoy/snapshots/test_diagnostics.ambr
index 3cacd3a8518780335cc9127ced189b0cd78083d7..76835098f27e00e686c13e4b1b7c8c7ba623600f 100644
--- a/tests/components/enphase_envoy/snapshots/test_diagnostics.ambr
+++ b/tests/components/enphase_envoy/snapshots/test_diagnostics.ambr
@@ -20,8 +20,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
@@ -456,8 +454,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
@@ -932,8 +928,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/esphome/snapshots/test_diagnostics.ambr b/tests/components/esphome/snapshots/test_diagnostics.ambr
index 8f1711e829eb80048d0a896af595dd099bbae3fc..4f7ea679b20bc0b423982f3007bd465cb1daa294 100644
--- a/tests/components/esphome/snapshots/test_diagnostics.ambr
+++ b/tests/components/esphome/snapshots/test_diagnostics.ambr
@@ -20,8 +20,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'ESPHome Device',
       'unique_id': '11:22:33:44:55:aa',
       'version': 1,
diff --git a/tests/components/esphome/test_diagnostics.py b/tests/components/esphome/test_diagnostics.py
index 0beeae71df332a199947ea84cb79cbad9fa75008..832e7d6572f0a3535f7ceedd440186c4decbcaa5 100644
--- a/tests/components/esphome/test_diagnostics.py
+++ b/tests/components/esphome/test_diagnostics.py
@@ -79,7 +79,6 @@ async def test_diagnostics_with_bluetooth(
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "source": "user",
-            "subentries": [],
             "title": "Mock Title",
             "unique_id": "11:22:33:44:55:aa",
             "version": 1,
diff --git a/tests/components/forecast_solar/snapshots/test_init.ambr b/tests/components/forecast_solar/snapshots/test_init.ambr
index c0db54c2d4e68a384e1aceeb8deda8df4be19277..6ae4c2f619897bfe04d08a2e9f5f5d2f46ee902e 100644
--- a/tests/components/forecast_solar/snapshots/test_init.ambr
+++ b/tests/components/forecast_solar/snapshots/test_init.ambr
@@ -23,8 +23,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Green House',
     'unique_id': 'unique',
     'version': 2,
diff --git a/tests/components/fritz/snapshots/test_diagnostics.ambr b/tests/components/fritz/snapshots/test_diagnostics.ambr
index 9b5b8c9353ad77dddbb6c67204aa8838bec804b7..53f7093a21bb0dbb541d4f57674bacc1140449fb 100644
--- a/tests/components/fritz/snapshots/test_diagnostics.ambr
+++ b/tests/components/fritz/snapshots/test_diagnostics.ambr
@@ -61,8 +61,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/fronius/snapshots/test_diagnostics.ambr b/tests/components/fronius/snapshots/test_diagnostics.ambr
index b112839835aa01f7c9e609302fa3be399dc4c2e6..010de06e2769d9bb8dddc46fbaf34584c0e76056 100644
--- a/tests/components/fronius/snapshots/test_diagnostics.ambr
+++ b/tests/components/fronius/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/fyta/snapshots/test_diagnostics.ambr b/tests/components/fyta/snapshots/test_diagnostics.ambr
index f1792cb7535c6dd3921293f2b939afbd29365f60..eb19797e5b1a79dd77e6afba66d5db3ae771e345 100644
--- a/tests/components/fyta/snapshots/test_diagnostics.ambr
+++ b/tests/components/fyta/snapshots/test_diagnostics.ambr
@@ -19,8 +19,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'fyta_user',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/gardena_bluetooth/snapshots/test_config_flow.ambr b/tests/components/gardena_bluetooth/snapshots/test_config_flow.ambr
index 10f23759fae4e51c7b44499f5929569e55c51e55..6d521b1f2c8d62f34f7bc9df0a93787ae8a2ba90 100644
--- a/tests/components/gardena_bluetooth/snapshots/test_config_flow.ambr
+++ b/tests/components/gardena_bluetooth/snapshots/test_config_flow.ambr
@@ -66,14 +66,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'bluetooth',
-      'subentries': list([
-      ]),
       'title': 'Gardena Water Computer',
       'unique_id': '00000000-0000-0000-0000-000000000001',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Gardena Water Computer',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -227,14 +223,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Gardena Water Computer',
       'unique_id': '00000000-0000-0000-0000-000000000001',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Gardena Water Computer',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/gios/snapshots/test_diagnostics.ambr b/tests/components/gios/snapshots/test_diagnostics.ambr
index 890edc0048260e171d6e69cd0cc5281ac79cb912..71e0afdc495e2f0cca1bd7de53fc834b3a422b5c 100644
--- a/tests/components/gios/snapshots/test_diagnostics.ambr
+++ b/tests/components/gios/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Home',
       'unique_id': '123',
       'version': 1,
diff --git a/tests/components/goodwe/snapshots/test_diagnostics.ambr b/tests/components/goodwe/snapshots/test_diagnostics.ambr
index 40ed22195d5f1922990605f7a2122f37aeb439e8..f52e47688e8bfe5ad96099dee46ea49b8d0c18bf 100644
--- a/tests/components/goodwe/snapshots/test_diagnostics.ambr
+++ b/tests/components/goodwe/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/google_assistant/snapshots/test_diagnostics.ambr b/tests/components/google_assistant/snapshots/test_diagnostics.ambr
index 1ecedbd11736eab67121eeee90e8b80b89f011b0..edbbdb1ba28adb9b72bca3dcbe74fe470c6f6be0 100644
--- a/tests/components/google_assistant/snapshots/test_diagnostics.ambr
+++ b/tests/components/google_assistant/snapshots/test_diagnostics.ambr
@@ -15,8 +15,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'import',
-      'subentries': list([
-      ]),
       'title': '1234',
       'unique_id': '1234',
       'version': 1,
diff --git a/tests/components/guardian/test_diagnostics.py b/tests/components/guardian/test_diagnostics.py
index 4487d0b6ac6b1069ef59ead77789912461d355c7..faba2103000341d3fbe1e21a632fb274ef817494 100644
--- a/tests/components/guardian/test_diagnostics.py
+++ b/tests/components/guardian/test_diagnostics.py
@@ -42,7 +42,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "data": {
             "valve_controller": {
diff --git a/tests/components/homewizard/snapshots/test_config_flow.ambr b/tests/components/homewizard/snapshots/test_config_flow.ambr
index 71e70f3a153c183510d3d7049168b4df09d94df7..0a301fc39410ebf45ef6ddb561f03236d029705e 100644
--- a/tests/components/homewizard/snapshots/test_config_flow.ambr
+++ b/tests/components/homewizard/snapshots/test_config_flow.ambr
@@ -30,14 +30,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'zeroconf',
-      'subentries': list([
-      ]),
       'title': 'P1 meter',
       'unique_id': 'HWE-P1_5c2fafabcdef',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'P1 meter',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -78,14 +74,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'zeroconf',
-      'subentries': list([
-      ]),
       'title': 'P1 meter',
       'unique_id': 'HWE-P1_5c2fafabcdef',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'P1 meter',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -126,14 +118,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'zeroconf',
-      'subentries': list([
-      ]),
       'title': 'Energy Socket',
       'unique_id': 'HWE-SKT_5c2fafabcdef',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Energy Socket',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -170,14 +158,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'P1 meter',
       'unique_id': 'HWE-P1_5c2fafabcdef',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'P1 meter',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/husqvarna_automower/snapshots/test_diagnostics.ambr b/tests/components/husqvarna_automower/snapshots/test_diagnostics.ambr
index 2dab82451a6e98def182cec952b7eea8d0a6d7fc..a4dc986c2f9c4e9f37d8331f0883bbf89c21e1dd 100644
--- a/tests/components/husqvarna_automower/snapshots/test_diagnostics.ambr
+++ b/tests/components/husqvarna_automower/snapshots/test_diagnostics.ambr
@@ -183,8 +183,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Husqvarna Automower of Erika Mustermann',
     'unique_id': '123',
     'version': 1,
diff --git a/tests/components/imgw_pib/snapshots/test_diagnostics.ambr b/tests/components/imgw_pib/snapshots/test_diagnostics.ambr
index f15fc706d7e25cb802be5634d7043fbab5d3fa79..494980ba4ce22cb430776d564648cacc78298f1e 100644
--- a/tests/components/imgw_pib/snapshots/test_diagnostics.ambr
+++ b/tests/components/imgw_pib/snapshots/test_diagnostics.ambr
@@ -15,8 +15,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'River Name (Station Name)',
       'unique_id': '123',
       'version': 1,
diff --git a/tests/components/iqvia/snapshots/test_diagnostics.ambr b/tests/components/iqvia/snapshots/test_diagnostics.ambr
index 41cfedb0e29e530f760f65eb1b216a15ce7ae795..f2fa656cb0fef00e92def1461c828c6548be650b 100644
--- a/tests/components/iqvia/snapshots/test_diagnostics.ambr
+++ b/tests/components/iqvia/snapshots/test_diagnostics.ambr
@@ -358,8 +358,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/kostal_plenticore/test_diagnostics.py b/tests/components/kostal_plenticore/test_diagnostics.py
index 3a99a7f681d9c9344c526ca11769af5b573acffa..08f06684d9a4da34daf24f83845e9ea489b5aaf6 100644
--- a/tests/components/kostal_plenticore/test_diagnostics.py
+++ b/tests/components/kostal_plenticore/test_diagnostics.py
@@ -57,7 +57,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "client": {
             "version": "api_version='0.2.0' hostname='scb' name='PUCK RESTful API' sw_version='01.16.05025'",
diff --git a/tests/components/lacrosse_view/snapshots/test_diagnostics.ambr b/tests/components/lacrosse_view/snapshots/test_diagnostics.ambr
index 640726e2355cfdd5df48f0eb5035917093d3139d..201bbbc971e70889808ed932a7d44ca8928fcb78 100644
--- a/tests/components/lacrosse_view/snapshots/test_diagnostics.ambr
+++ b/tests/components/lacrosse_view/snapshots/test_diagnostics.ambr
@@ -25,8 +25,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/linear_garage_door/snapshots/test_diagnostics.ambr b/tests/components/linear_garage_door/snapshots/test_diagnostics.ambr
index db82f41eb73b555f96a85250c557a9aa1ca3e7b2..c689d04949a59c4ec77ee9354f502d106e410fdf 100644
--- a/tests/components/linear_garage_door/snapshots/test_diagnostics.ambr
+++ b/tests/components/linear_garage_door/snapshots/test_diagnostics.ambr
@@ -73,8 +73,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'test-site-name',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/madvr/snapshots/test_diagnostics.ambr b/tests/components/madvr/snapshots/test_diagnostics.ambr
index 92d0578dba80534f1b84d7a63c97c45b718cf82b..3a2813918603fb1a87d3355f24734c41f3c5ef39 100644
--- a/tests/components/madvr/snapshots/test_diagnostics.ambr
+++ b/tests/components/madvr/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'envy',
       'unique_id': '00:11:22:33:44:55',
       'version': 1,
diff --git a/tests/components/melcloud/snapshots/test_diagnostics.ambr b/tests/components/melcloud/snapshots/test_diagnostics.ambr
index 671f5afcc5223f7326b093b72202ee796c303775..e6a432de07ee18c4513d6039f39f1206a9c3f8fb 100644
--- a/tests/components/melcloud/snapshots/test_diagnostics.ambr
+++ b/tests/components/melcloud/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'melcloud',
       'unique_id': 'UNIQUE_TEST_ID',
       'version': 1,
diff --git a/tests/components/modern_forms/snapshots/test_diagnostics.ambr b/tests/components/modern_forms/snapshots/test_diagnostics.ambr
index 1b4090ca5a4a338b1f421865ca748830db7afcc9..f8897a4a47fe9b8a7a1e9b4da63d1530f366a96b 100644
--- a/tests/components/modern_forms/snapshots/test_diagnostics.ambr
+++ b/tests/components/modern_forms/snapshots/test_diagnostics.ambr
@@ -16,8 +16,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'AA:BB:CC:DD:EE:FF',
       'version': 1,
diff --git a/tests/components/motionblinds_ble/snapshots/test_diagnostics.ambr b/tests/components/motionblinds_ble/snapshots/test_diagnostics.ambr
index d042dc02ac37474a005985b45e0c4d8949a67554..5b4b169c0fe968f1e57ad1b23480f25de804849d 100644
--- a/tests/components/motionblinds_ble/snapshots/test_diagnostics.ambr
+++ b/tests/components/motionblinds_ble/snapshots/test_diagnostics.ambr
@@ -28,8 +28,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/netatmo/snapshots/test_diagnostics.ambr b/tests/components/netatmo/snapshots/test_diagnostics.ambr
index 4ea7e30bcf957e603d11602e1a572fdf138d89cd..463556ec657c23eda4d3aa0d879eeb8976a93807 100644
--- a/tests/components/netatmo/snapshots/test_diagnostics.ambr
+++ b/tests/components/netatmo/snapshots/test_diagnostics.ambr
@@ -646,8 +646,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'netatmo',
       'version': 1,
diff --git a/tests/components/nextdns/snapshots/test_diagnostics.ambr b/tests/components/nextdns/snapshots/test_diagnostics.ambr
index 23f42fee077c1e36a9ec4874447cbb1c679e5aec..827d6aeb6e556878c6f3eee994ba42aa47b990be 100644
--- a/tests/components/nextdns/snapshots/test_diagnostics.ambr
+++ b/tests/components/nextdns/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Fake Profile',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/nice_go/snapshots/test_diagnostics.ambr b/tests/components/nice_go/snapshots/test_diagnostics.ambr
index b33726d2b72e6e1aa0e1594f9ab28cb330629e14..f4ba363a4214d091aad2404936526975f3eacd13 100644
--- a/tests/components/nice_go/snapshots/test_diagnostics.ambr
+++ b/tests/components/nice_go/snapshots/test_diagnostics.ambr
@@ -60,8 +60,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/notion/test_diagnostics.py b/tests/components/notion/test_diagnostics.py
index c1d1bd1bb2e9e790dedbdf8b533e48ca4f083c69..890ce2dfc4af60d7084c4a8bda74bace273bd4f6 100644
--- a/tests/components/notion/test_diagnostics.py
+++ b/tests/components/notion/test_diagnostics.py
@@ -37,7 +37,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "data": {
             "bridges": [
diff --git a/tests/components/onvif/snapshots/test_diagnostics.ambr b/tests/components/onvif/snapshots/test_diagnostics.ambr
index c3938efcbb616876055f05a5d115a253e02d2696..c8a9ff75d626c7f7ea3f36bb1f16f7dbedac1fc6 100644
--- a/tests/components/onvif/snapshots/test_diagnostics.ambr
+++ b/tests/components/onvif/snapshots/test_diagnostics.ambr
@@ -24,8 +24,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'aa:bb:cc:dd:ee:ff',
       'version': 1,
diff --git a/tests/components/openuv/test_diagnostics.py b/tests/components/openuv/test_diagnostics.py
index 03b392b3e7b1ab4358e3d6fcb50b6d27a98c14c8..61b68b5ad903bb2309007f95043d684785c99e9e 100644
--- a/tests/components/openuv/test_diagnostics.py
+++ b/tests/components/openuv/test_diagnostics.py
@@ -39,7 +39,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "data": {
             "protection_window": {
diff --git a/tests/components/p1_monitor/snapshots/test_init.ambr b/tests/components/p1_monitor/snapshots/test_init.ambr
index 83684e153c9f6c2f0e387f4a84afb0176e39860d..d0a676fce1b3d82989f06fdf3f5f1a5d13fa671e 100644
--- a/tests/components/p1_monitor/snapshots/test_init.ambr
+++ b/tests/components/p1_monitor/snapshots/test_init.ambr
@@ -16,8 +16,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Mock Title',
     'unique_id': 'unique_thingy',
     'version': 2,
@@ -40,8 +38,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Mock Title',
     'unique_id': 'unique_thingy',
     'version': 2,
diff --git a/tests/components/pegel_online/snapshots/test_diagnostics.ambr b/tests/components/pegel_online/snapshots/test_diagnostics.ambr
index d0fdc81acb42b37631159fcc68c95f483efd5608..1e55805f86768d22f30bec58a63b53e6c560f193 100644
--- a/tests/components/pegel_online/snapshots/test_diagnostics.ambr
+++ b/tests/components/pegel_online/snapshots/test_diagnostics.ambr
@@ -31,8 +31,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '70272185-xxxx-xxxx-xxxx-43bea330dcae',
       'version': 1,
diff --git a/tests/components/philips_js/snapshots/test_diagnostics.ambr b/tests/components/philips_js/snapshots/test_diagnostics.ambr
index 53db95f0534b7015e70607adcac438a2312f286d..4f7a6176634acdf3c5f3a694879f1c8a5f01f4db 100644
--- a/tests/components/philips_js/snapshots/test_diagnostics.ambr
+++ b/tests/components/philips_js/snapshots/test_diagnostics.ambr
@@ -94,8 +94,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/philips_js/test_config_flow.py b/tests/components/philips_js/test_config_flow.py
index 4b8048a8ebe70f58e36efc2969a6073559e91848..80d059618133d5479e638e6739488213afb43d1d 100644
--- a/tests/components/philips_js/test_config_flow.py
+++ b/tests/components/philips_js/test_config_flow.py
@@ -155,7 +155,6 @@ async def test_pairing(hass: HomeAssistant, mock_tv_pairable, mock_setup_entry)
         "version": 1,
         "options": {},
         "minor_version": 1,
-        "subentries": (),
     }
 
     await hass.async_block_till_done()
diff --git a/tests/components/pi_hole/snapshots/test_diagnostics.ambr b/tests/components/pi_hole/snapshots/test_diagnostics.ambr
index 2d6f6687d04021d6b635a846895235e74fb0b3b3..3094fcef24b7e7573602071f5eb340bd841b6c0e 100644
--- a/tests/components/pi_hole/snapshots/test_diagnostics.ambr
+++ b/tests/components/pi_hole/snapshots/test_diagnostics.ambr
@@ -33,8 +33,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/proximity/snapshots/test_diagnostics.ambr b/tests/components/proximity/snapshots/test_diagnostics.ambr
index 42ec74710f968bbfb1c2a83b09d5990e294ee38a..3d9673ffd903d4aa8a3c1e8488c3348713dadbfb 100644
--- a/tests/components/proximity/snapshots/test_diagnostics.ambr
+++ b/tests/components/proximity/snapshots/test_diagnostics.ambr
@@ -102,8 +102,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'home',
       'unique_id': 'proximity_home',
       'version': 1,
diff --git a/tests/components/ps4/test_init.py b/tests/components/ps4/test_init.py
index 24d45fee5b96224c93c2db10f092150b64f5a5e1..d14f367b2bd6a229824e917fbd8d20568f7fc677 100644
--- a/tests/components/ps4/test_init.py
+++ b/tests/components/ps4/test_init.py
@@ -52,7 +52,6 @@ MOCK_FLOW_RESULT = {
     "title": "test_ps4",
     "data": MOCK_DATA,
     "options": {},
-    "subentries": (),
 }
 
 MOCK_ENTRY_ID = "SomeID"
diff --git a/tests/components/purpleair/test_diagnostics.py b/tests/components/purpleair/test_diagnostics.py
index 6271a63d652d1284b383d615ba7e7fb6bf3db0f2..ae4b28567be0ad1d806e8d42532c2cf3d000632a 100644
--- a/tests/components/purpleair/test_diagnostics.py
+++ b/tests/components/purpleair/test_diagnostics.py
@@ -38,7 +38,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "data": {
             "fields": [
diff --git a/tests/components/rainforest_raven/snapshots/test_diagnostics.ambr b/tests/components/rainforest_raven/snapshots/test_diagnostics.ambr
index abf8e380916bb3a1419c9cfb4facfa52cc987c77..e131bf3d952b0d9daf548b05043e6d6cd5628579 100644
--- a/tests/components/rainforest_raven/snapshots/test_diagnostics.ambr
+++ b/tests/components/rainforest_raven/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
@@ -86,8 +84,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/rainmachine/snapshots/test_diagnostics.ambr b/tests/components/rainmachine/snapshots/test_diagnostics.ambr
index 681805996f1a6421109a4c1b85f5d4f52bca1828..acd5fd165b4027e413b7be88ade7f8dcaa0ad994 100644
--- a/tests/components/rainmachine/snapshots/test_diagnostics.ambr
+++ b/tests/components/rainmachine/snapshots/test_diagnostics.ambr
@@ -1144,8 +1144,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 2,
@@ -2277,8 +2275,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 2,
diff --git a/tests/components/recollect_waste/test_diagnostics.py b/tests/components/recollect_waste/test_diagnostics.py
index a57e289ec046276e62ce1c4644930c5dcbfa0cc1..24c690bcb37985f444c5041350ffb58a8bdb8f14 100644
--- a/tests/components/recollect_waste/test_diagnostics.py
+++ b/tests/components/recollect_waste/test_diagnostics.py
@@ -34,7 +34,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "data": [
             {
diff --git a/tests/components/ridwell/snapshots/test_diagnostics.ambr b/tests/components/ridwell/snapshots/test_diagnostics.ambr
index 4b4dda7227d5c4a47a2662709e8fb297736bce51..b03d87c7a8931b5311a6bd098f4b971fd6411111 100644
--- a/tests/components/ridwell/snapshots/test_diagnostics.ambr
+++ b/tests/components/ridwell/snapshots/test_diagnostics.ambr
@@ -44,8 +44,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 2,
diff --git a/tests/components/samsungtv/test_diagnostics.py b/tests/components/samsungtv/test_diagnostics.py
index e8e0b699a7e1edb63fd76cec700e45860b560d11..0319d5dd8dd13f5fbb7606b41756b1507954283c 100644
--- a/tests/components/samsungtv/test_diagnostics.py
+++ b/tests/components/samsungtv/test_diagnostics.py
@@ -51,7 +51,6 @@ async def test_entry_diagnostics(
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "source": "user",
-            "subentries": [],
             "title": "Mock Title",
             "unique_id": "any",
             "version": 2,
@@ -92,7 +91,6 @@ async def test_entry_diagnostics_encrypted(
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "source": "user",
-            "subentries": [],
             "title": "Mock Title",
             "unique_id": "any",
             "version": 2,
@@ -132,7 +130,6 @@ async def test_entry_diagnostics_encrypte_offline(
             "pref_disable_new_entities": False,
             "pref_disable_polling": False,
             "source": "user",
-            "subentries": [],
             "title": "Mock Title",
             "unique_id": "any",
             "version": 2,
diff --git a/tests/components/screenlogic/snapshots/test_diagnostics.ambr b/tests/components/screenlogic/snapshots/test_diagnostics.ambr
index c7db7a33959980a3fc3b6e99caf9b6af6d27a141..237d3eab257deb13752965dbf68712fbe7e05fcf 100644
--- a/tests/components/screenlogic/snapshots/test_diagnostics.ambr
+++ b/tests/components/screenlogic/snapshots/test_diagnostics.ambr
@@ -18,8 +18,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Pentair: DD-EE-FF',
       'unique_id': 'aa:bb:cc:dd:ee:ff',
       'version': 1,
diff --git a/tests/components/simplisafe/test_diagnostics.py b/tests/components/simplisafe/test_diagnostics.py
index 13c1e28aa3621bd49411e1bc132619753ad2116b..d5479f00b061299c40c07e5ac45c7ac5ecf86068 100644
--- a/tests/components/simplisafe/test_diagnostics.py
+++ b/tests/components/simplisafe/test_diagnostics.py
@@ -32,7 +32,6 @@ async def test_entry_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
         "subscription_data": {
             "12345": {
diff --git a/tests/components/solarlog/snapshots/test_diagnostics.ambr b/tests/components/solarlog/snapshots/test_diagnostics.ambr
index 6aef72ebbd59355824ad799e89e6c2ff6b2f4fdc..e0f1bc2623c5bda28712ec08d13dac0cd06cb0fe 100644
--- a/tests/components/solarlog/snapshots/test_diagnostics.ambr
+++ b/tests/components/solarlog/snapshots/test_diagnostics.ambr
@@ -18,8 +18,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'solarlog',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/subaru/test_config_flow.py b/tests/components/subaru/test_config_flow.py
index 0b45546902b31d898ae80dbe29a01d47c066d32a..6abc544c92a4e22b338d9f1f05d92d5e0bb907aa 100644
--- a/tests/components/subaru/test_config_flow.py
+++ b/tests/components/subaru/test_config_flow.py
@@ -136,7 +136,6 @@ async def test_user_form_pin_not_required(
         "data": deepcopy(TEST_CONFIG),
         "options": {},
         "minor_version": 1,
-        "subentries": (),
     }
 
     expected["data"][CONF_PIN] = None
@@ -342,7 +341,6 @@ async def test_pin_form_success(hass: HomeAssistant, pin_form) -> None:
         "data": TEST_CONFIG,
         "options": {},
         "minor_version": 1,
-        "subentries": (),
     }
     result["data"][CONF_DEVICE_ID] = TEST_DEVICE_ID
     assert result == expected
diff --git a/tests/components/switcher_kis/test_diagnostics.py b/tests/components/switcher_kis/test_diagnostics.py
index f59958420c464b4e5c60f6b3b0e5f9f238299a31..53572085f9b0b4dd2106b4e714b7eb74cb73a0c5 100644
--- a/tests/components/switcher_kis/test_diagnostics.py
+++ b/tests/components/switcher_kis/test_diagnostics.py
@@ -69,6 +69,5 @@ async def test_diagnostics(
             "created_at": ANY,
             "modified_at": ANY,
             "discovery_keys": {},
-            "subentries": [],
         },
     }
diff --git a/tests/components/systemmonitor/snapshots/test_diagnostics.ambr b/tests/components/systemmonitor/snapshots/test_diagnostics.ambr
index afa508cc0048ce9d54bda08e91112d01a9b884c8..75d942fc601184a99894601d8192a7667a991fb4 100644
--- a/tests/components/systemmonitor/snapshots/test_diagnostics.ambr
+++ b/tests/components/systemmonitor/snapshots/test_diagnostics.ambr
@@ -56,8 +56,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'System Monitor',
       'unique_id': None,
       'version': 1,
@@ -113,8 +111,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'System Monitor',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/tankerkoenig/snapshots/test_diagnostics.ambr b/tests/components/tankerkoenig/snapshots/test_diagnostics.ambr
index b5b33d7c2463b85e04b1adabab2c4afbb573c51b..3180c7c0b1dedc8f963480e0ca3d53bbbd063bcb 100644
--- a/tests/components/tankerkoenig/snapshots/test_diagnostics.ambr
+++ b/tests/components/tankerkoenig/snapshots/test_diagnostics.ambr
@@ -37,8 +37,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/tractive/snapshots/test_diagnostics.ambr b/tests/components/tractive/snapshots/test_diagnostics.ambr
index 3613f7e59970b2ff462799c995364b52d560853b..11427a84801a27aee3969078f5fdd9ab8f2e4d18 100644
--- a/tests/components/tractive/snapshots/test_diagnostics.ambr
+++ b/tests/components/tractive/snapshots/test_diagnostics.ambr
@@ -17,8 +17,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': 'very_unique_string',
       'version': 1,
diff --git a/tests/components/tuya/snapshots/test_config_flow.ambr b/tests/components/tuya/snapshots/test_config_flow.ambr
index 90d83d69814642be7abf91ee89c1ebeb9d361f0d..a5a68a12a2222564e940de3434b7883a92d3f111 100644
--- a/tests/components/tuya/snapshots/test_config_flow.ambr
+++ b/tests/components/tuya/snapshots/test_config_flow.ambr
@@ -24,8 +24,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': '12345',
     'unique_id': '12345',
     'version': 1,
@@ -56,8 +54,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Old Tuya configuration entry',
     'unique_id': '12345',
     'version': 1,
@@ -111,14 +107,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'mocked_username',
       'unique_id': None,
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'mocked_username',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/twinkly/snapshots/test_diagnostics.ambr b/tests/components/twinkly/snapshots/test_diagnostics.ambr
index e52f76634fd6531fefd26008376566c1bb38b1ea..28ec98cf5724320bb2f937bc58fff7a5dafed1af 100644
--- a/tests/components/twinkly/snapshots/test_diagnostics.ambr
+++ b/tests/components/twinkly/snapshots/test_diagnostics.ambr
@@ -37,8 +37,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Twinkly',
       'unique_id': '4c8fccf5-e08a-4173-92d5-49bf479252a2',
       'version': 1,
diff --git a/tests/components/unifi/snapshots/test_diagnostics.ambr b/tests/components/unifi/snapshots/test_diagnostics.ambr
index aa7337be0ba4f8cd1de95c129fa2c704bc62d8e3..4ba90a00113217929e9d9b2586509ae194f89b54 100644
--- a/tests/components/unifi/snapshots/test_diagnostics.ambr
+++ b/tests/components/unifi/snapshots/test_diagnostics.ambr
@@ -42,8 +42,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': '1',
       'version': 1,
diff --git a/tests/components/uptime/snapshots/test_config_flow.ambr b/tests/components/uptime/snapshots/test_config_flow.ambr
index 93b1da609985f2382a7de39e3675300ef425ec90..38312667375c503cf204ce3263e54391327b2391 100644
--- a/tests/components/uptime/snapshots/test_config_flow.ambr
+++ b/tests/components/uptime/snapshots/test_config_flow.ambr
@@ -27,14 +27,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Uptime',
       'unique_id': None,
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Uptime',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/utility_meter/snapshots/test_diagnostics.ambr b/tests/components/utility_meter/snapshots/test_diagnostics.ambr
index ef235bba99dc882806a217b5d91191a93e1ca89a..6cdf121d7e38867d85f933b670d9b8ff777c719d 100644
--- a/tests/components/utility_meter/snapshots/test_diagnostics.ambr
+++ b/tests/components/utility_meter/snapshots/test_diagnostics.ambr
@@ -25,8 +25,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Energy Bill',
       'unique_id': None,
       'version': 2,
diff --git a/tests/components/v2c/snapshots/test_diagnostics.ambr b/tests/components/v2c/snapshots/test_diagnostics.ambr
index 780a00acd64be3da81a480e3168a65e252b1c3ed..96567b80c54766413384147c6e5183f4ee5c671a 100644
--- a/tests/components/v2c/snapshots/test_diagnostics.ambr
+++ b/tests/components/v2c/snapshots/test_diagnostics.ambr
@@ -16,8 +16,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': 'ABC123',
       'version': 1,
diff --git a/tests/components/vicare/snapshots/test_diagnostics.ambr b/tests/components/vicare/snapshots/test_diagnostics.ambr
index 0b1dcef5a297a818d46cf8f91fa30cb51970655d..ae9b05389c710e4c24bcc1ed328a3a131866d8b7 100644
--- a/tests/components/vicare/snapshots/test_diagnostics.ambr
+++ b/tests/components/vicare/snapshots/test_diagnostics.ambr
@@ -4731,8 +4731,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': 'ViCare',
       'version': 1,
diff --git a/tests/components/vodafone_station/snapshots/test_diagnostics.ambr b/tests/components/vodafone_station/snapshots/test_diagnostics.ambr
index dd268f4ed1a4736bb2270521293af4e691a02a61..c258b14dc2d4f598b68f8614e438abb7c770ca0d 100644
--- a/tests/components/vodafone_station/snapshots/test_diagnostics.ambr
+++ b/tests/components/vodafone_station/snapshots/test_diagnostics.ambr
@@ -35,8 +35,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/watttime/snapshots/test_diagnostics.ambr b/tests/components/watttime/snapshots/test_diagnostics.ambr
index 3cc5e1d6f66b6373d5bc80612a652e51a0554d87..0c137acc36ba9f20a8752663bcc9758c5c81fc11 100644
--- a/tests/components/watttime/snapshots/test_diagnostics.ambr
+++ b/tests/components/watttime/snapshots/test_diagnostics.ambr
@@ -27,8 +27,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': '**REDACTED**',
       'version': 1,
diff --git a/tests/components/webmin/snapshots/test_diagnostics.ambr b/tests/components/webmin/snapshots/test_diagnostics.ambr
index c64fa212a985b61b2671d87cbab38d043f3e5ccc..8299b0eafbaabf85bde73c6c8d6bfecba979bc54 100644
--- a/tests/components/webmin/snapshots/test_diagnostics.ambr
+++ b/tests/components/webmin/snapshots/test_diagnostics.ambr
@@ -253,8 +253,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': '**REDACTED**',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/webostv/test_diagnostics.py b/tests/components/webostv/test_diagnostics.py
index 7f54e9409668978e0fad618c0dcaa43409df8c65..3d7cb00e021ad07a799fda7f74489aef21df6121 100644
--- a/tests/components/webostv/test_diagnostics.py
+++ b/tests/components/webostv/test_diagnostics.py
@@ -61,6 +61,5 @@ async def test_diagnostics(
             "created_at": entry.created_at.isoformat(),
             "modified_at": entry.modified_at.isoformat(),
             "discovery_keys": {},
-            "subentries": [],
         },
     }
diff --git a/tests/components/whirlpool/snapshots/test_diagnostics.ambr b/tests/components/whirlpool/snapshots/test_diagnostics.ambr
index ee8abe04bf1cc007faa1309ff62a74238f56c035..c60ce17b9524e0da6cddf2bcaf0369940a3371c4 100644
--- a/tests/components/whirlpool/snapshots/test_diagnostics.ambr
+++ b/tests/components/whirlpool/snapshots/test_diagnostics.ambr
@@ -38,8 +38,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/whois/snapshots/test_config_flow.ambr b/tests/components/whois/snapshots/test_config_flow.ambr
index 0d99b0596e3829df182f62c638402d3187934499..937502d4d6c901311df56cb96359b3abae806efe 100644
--- a/tests/components/whois/snapshots/test_config_flow.ambr
+++ b/tests/components/whois/snapshots/test_config_flow.ambr
@@ -30,14 +30,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Example.com',
       'unique_id': 'example.com',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Example.com',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -74,14 +70,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Example.com',
       'unique_id': 'example.com',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Example.com',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -118,14 +110,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Example.com',
       'unique_id': 'example.com',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Example.com',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -162,14 +150,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Example.com',
       'unique_id': 'example.com',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Example.com',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -206,14 +190,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Example.com',
       'unique_id': 'example.com',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Example.com',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/workday/snapshots/test_diagnostics.ambr b/tests/components/workday/snapshots/test_diagnostics.ambr
index e7331b911a81a69ca30e70eae5b5fa3f75b76362..f41b86b7f6dc188f017b0f3dc03060b38a67dbc1 100644
--- a/tests/components/workday/snapshots/test_diagnostics.ambr
+++ b/tests/components/workday/snapshots/test_diagnostics.ambr
@@ -40,8 +40,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 1,
diff --git a/tests/components/wyoming/snapshots/test_config_flow.ambr b/tests/components/wyoming/snapshots/test_config_flow.ambr
index d288c53140736315398d38cc799488c1a52362bb..bdead0f20288af245f5dbd2440bc0b4ebaf4a904 100644
--- a/tests/components/wyoming/snapshots/test_config_flow.ambr
+++ b/tests/components/wyoming/snapshots/test_config_flow.ambr
@@ -36,14 +36,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'hassio',
-      'subentries': list([
-      ]),
       'title': 'Piper',
       'unique_id': '1234',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Piper',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -86,14 +82,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'hassio',
-      'subentries': list([
-      ]),
       'title': 'Piper',
       'unique_id': '1234',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Piper',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
@@ -135,14 +127,10 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'zeroconf',
-      'subentries': list([
-      ]),
       'title': 'Test Satellite',
       'unique_id': 'test_zeroconf_name._wyoming._tcp.local._Test Satellite',
       'version': 1,
     }),
-    'subentries': tuple(
-    ),
     'title': 'Test Satellite',
     'type': <FlowResultType.CREATE_ENTRY: 'create_entry'>,
     'version': 1,
diff --git a/tests/components/zha/snapshots/test_diagnostics.ambr b/tests/components/zha/snapshots/test_diagnostics.ambr
index 08807f65d5dbe4673b3d16050886e25f6b49168e..f46a06e84b8ffc2b18a09ae21663263d3693b9c7 100644
--- a/tests/components/zha/snapshots/test_diagnostics.ambr
+++ b/tests/components/zha/snapshots/test_diagnostics.ambr
@@ -113,8 +113,6 @@
       'pref_disable_new_entities': False,
       'pref_disable_polling': False,
       'source': 'user',
-      'subentries': list([
-      ]),
       'title': 'Mock Title',
       'unique_id': None,
       'version': 4,
diff --git a/tests/snapshots/test_config_entries.ambr b/tests/snapshots/test_config_entries.ambr
index 08b532677f4d382a8228bb5d9cfed6d1ad0939a5..51e56f4874e272ffe127d141eb9213ece4b49337 100644
--- a/tests/snapshots/test_config_entries.ambr
+++ b/tests/snapshots/test_config_entries.ambr
@@ -16,8 +16,6 @@
     'pref_disable_new_entities': False,
     'pref_disable_polling': False,
     'source': 'user',
-    'subentries': list([
-    ]),
     'title': 'Mock Title',
     'unique_id': None,
     'version': 1,
diff --git a/tests/test_config_entries.py b/tests/test_config_entries.py
index 1ad152e8e42bb30035ef0be9e2787f770af150ce..aba85a35349d32bce91b92a1763ffae6d045e784 100644
--- a/tests/test_config_entries.py
+++ b/tests/test_config_entries.py
@@ -4,7 +4,6 @@ from __future__ import annotations
 
 import asyncio
 from collections.abc import Generator
-from contextlib import AbstractContextManager, nullcontext as does_not_raise
 from datetime import timedelta
 import logging
 import re
@@ -906,7 +905,7 @@ async def test_entries_excludes_ignore_and_disabled(
 
 
 async def test_saving_and_loading(
-    hass: HomeAssistant, freezer: FrozenDateTimeFactory, hass_storage: dict[str, Any]
+    hass: HomeAssistant, freezer: FrozenDateTimeFactory
 ) -> None:
     """Test that we're saving and loading correctly."""
     mock_integration(
@@ -923,17 +922,7 @@ async def test_saving_and_loading(
         async def async_step_user(self, user_input=None):
             """Test user step."""
             await self.async_set_unique_id("unique")
-            subentries = [
-                config_entries.ConfigSubentryData(
-                    data={"foo": "bar"}, title="subentry 1"
-                ),
-                config_entries.ConfigSubentryData(
-                    data={"sun": "moon"}, title="subentry 2", unique_id="very_unique"
-                ),
-            ]
-            return self.async_create_entry(
-                title="Test Title", data={"token": "abcd"}, subentries=subentries
-            )
+            return self.async_create_entry(title="Test Title", data={"token": "abcd"})
 
     with mock_config_flow("test", TestFlow):
         await hass.config_entries.flow.async_init(
@@ -982,98 +971,6 @@ async def test_saving_and_loading(
     # To execute the save
     await hass.async_block_till_done()
 
-    stored_data = hass_storage["core.config_entries"]
-    assert stored_data == {
-        "data": {
-            "entries": [
-                {
-                    "created_at": ANY,
-                    "data": {
-                        "token": "abcd",
-                    },
-                    "disabled_by": None,
-                    "discovery_keys": {},
-                    "domain": "test",
-                    "entry_id": ANY,
-                    "minor_version": 1,
-                    "modified_at": ANY,
-                    "options": {},
-                    "pref_disable_new_entities": True,
-                    "pref_disable_polling": True,
-                    "source": "user",
-                    "subentries": [
-                        {
-                            "data": {"foo": "bar"},
-                            "subentry_id": ANY,
-                            "title": "subentry 1",
-                            "unique_id": None,
-                        },
-                        {
-                            "data": {"sun": "moon"},
-                            "subentry_id": ANY,
-                            "title": "subentry 2",
-                            "unique_id": "very_unique",
-                        },
-                    ],
-                    "title": "Test Title",
-                    "unique_id": "unique",
-                    "version": 5,
-                },
-                {
-                    "created_at": ANY,
-                    "data": {
-                        "username": "bla",
-                    },
-                    "disabled_by": None,
-                    "discovery_keys": {
-                        "test": [
-                            {"domain": "test", "key": "blah", "version": 1},
-                        ],
-                    },
-                    "domain": "test",
-                    "entry_id": ANY,
-                    "minor_version": 1,
-                    "modified_at": ANY,
-                    "options": {},
-                    "pref_disable_new_entities": False,
-                    "pref_disable_polling": False,
-                    "source": "user",
-                    "subentries": [],
-                    "title": "Test 2 Title",
-                    "unique_id": None,
-                    "version": 3,
-                },
-                {
-                    "created_at": ANY,
-                    "data": {
-                        "username": "bla",
-                    },
-                    "disabled_by": None,
-                    "discovery_keys": {
-                        "test": [
-                            {"domain": "test", "key": ["a", "b"], "version": 1},
-                        ],
-                    },
-                    "domain": "test",
-                    "entry_id": ANY,
-                    "minor_version": 1,
-                    "modified_at": ANY,
-                    "options": {},
-                    "pref_disable_new_entities": False,
-                    "pref_disable_polling": False,
-                    "source": "user",
-                    "subentries": [],
-                    "title": "Test 2 Title",
-                    "unique_id": None,
-                    "version": 3,
-                },
-            ],
-        },
-        "key": "core.config_entries",
-        "minor_version": 5,
-        "version": 1,
-    }
-
     # Now load written data in new config manager
     manager = config_entries.ConfigEntries(hass, {})
     await manager.async_initialize()
@@ -1086,25 +983,6 @@ async def test_saving_and_loading(
     ):
         assert orig.as_dict() == loaded.as_dict()
 
-    hass.config_entries.async_update_entry(
-        entry_1,
-        pref_disable_polling=False,
-        pref_disable_new_entities=False,
-    )
-
-    # To trigger the call_later
-    freezer.tick(1.0)
-    async_fire_time_changed(hass)
-    # To execute the save
-    await hass.async_block_till_done()
-
-    # Assert no data is lost when storing again
-    expected_stored_data = stored_data
-    expected_stored_data["data"]["entries"][0]["modified_at"] = ANY
-    expected_stored_data["data"]["entries"][0]["pref_disable_new_entities"] = False
-    expected_stored_data["data"]["entries"][0]["pref_disable_polling"] = False
-    assert hass_storage["core.config_entries"] == expected_stored_data | {}
-
 
 @freeze_time("2024-02-14 12:00:00")
 async def test_as_dict(snapshot: SnapshotAssertion) -> None:
@@ -1538,42 +1416,6 @@ async def test_update_entry_options_and_trigger_listener(
     assert len(update_listener_calls) == 1
 
 
-async def test_update_subentry_and_trigger_listener(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test that we can update subentry and trigger listener."""
-    entry = MockConfigEntry(domain="test", options={"first": True})
-    entry.add_to_manager(manager)
-    update_listener_calls = []
-
-    subentry = config_entries.ConfigSubentry(
-        data={"test": "test"}, unique_id="test", title="Mock title"
-    )
-
-    async def update_listener(
-        hass: HomeAssistant, entry: config_entries.ConfigEntry
-    ) -> None:
-        """Test function."""
-        assert entry.subentries == expected_subentries
-        update_listener_calls.append(None)
-
-    entry.add_update_listener(update_listener)
-
-    expected_subentries = {subentry.subentry_id: subentry}
-    assert manager.async_add_subentry(entry, subentry) is True
-
-    await hass.async_block_till_done(wait_background_tasks=True)
-    assert entry.subentries == expected_subentries
-    assert len(update_listener_calls) == 1
-
-    expected_subentries = {}
-    assert manager.async_remove_subentry(entry, subentry.subentry_id) is True
-
-    await hass.async_block_till_done(wait_background_tasks=True)
-    assert entry.subentries == expected_subentries
-    assert len(update_listener_calls) == 2
-
-
 async def test_setup_raise_not_ready(
     hass: HomeAssistant,
     manager: config_entries.ConfigEntries,
@@ -1900,453 +1742,17 @@ async def test_entry_options_unknown_config_entry(
     mock_integration(hass, MockModule("test"))
     mock_platform(hass, "test.config_flow", None)
 
-    with pytest.raises(config_entries.UnknownEntry):
-        await manager.options.async_create_flow(
-            "blah", context={"source": "test"}, data=None
-        )
-
-
-async def test_create_entry_subentries(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test a config entry being created with subentries."""
-
-    subentrydata = config_entries.ConfigSubentryData(
-        data={"test": "test"},
-        title="Mock title",
-        unique_id="test",
-    )
-
-    async def mock_async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
-        """Mock setup."""
-        hass.async_create_task(
-            hass.config_entries.flow.async_init(
-                "comp",
-                context={"source": config_entries.SOURCE_IMPORT},
-                data={"data": "data", "subentry": subentrydata},
-            )
-        )
-        return True
-
-    async_setup_entry = AsyncMock(return_value=True)
-    mock_integration(
-        hass,
-        MockModule(
-            "comp", async_setup=mock_async_setup, async_setup_entry=async_setup_entry
-        ),
-    )
-    mock_platform(hass, "comp.config_flow", None)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        VERSION = 1
-
-        async def async_step_import(self, user_input):
-            """Test import step creating entry, with subentry."""
-            return self.async_create_entry(
-                title="title",
-                data={"example": user_input["data"]},
-                subentries=[user_input["subentry"]],
-            )
-
-    with patch.dict(config_entries.HANDLERS, {"comp": TestFlow}):
-        assert await async_setup_component(hass, "comp", {})
-
-        await hass.async_block_till_done()
-
-        assert len(async_setup_entry.mock_calls) == 1
-
-        entries = hass.config_entries.async_entries("comp")
-        assert len(entries) == 1
-        assert entries[0].supported_subentries == ()
-        assert entries[0].data == {"example": "data"}
-        assert len(entries[0].subentries) == 1
-        subentry_id = list(entries[0].subentries)[0]
-        subentry = config_entries.ConfigSubentry(
-            data=subentrydata["data"],
-            subentry_id=subentry_id,
-            title=subentrydata["title"],
-            unique_id="test",
-        )
-        assert entries[0].subentries == {subentry_id: subentry}
-
-
-async def test_entry_subentry(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test that we can add a subentry to an entry."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow):
-        flow = await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
-        )
-
-        flow.handler = (entry.entry_id, "test")  # Set to keep reference to config entry
-
-        await manager.subentries.async_finish_flow(
-            flow,
-            {
-                "data": {"second": True},
-                "title": "Mock title",
-                "type": data_entry_flow.FlowResultType.CREATE_ENTRY,
-                "unique_id": "test",
-            },
-        )
-
-        assert entry.data == {"first": True}
-        assert entry.options == {}
-        subentry_id = list(entry.subentries)[0]
-        assert entry.subentries == {
-            subentry_id: config_entries.ConfigSubentry(
-                data={"second": True},
-                subentry_id=subentry_id,
-                title="Mock title",
-                unique_id="test",
-            )
-        }
-        assert entry.supported_subentries == ("test",)
-
-
-async def test_entry_subentry_non_string(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test adding an invalid subentry to an entry."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow):
-        flow = await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
-        )
-
-        flow.handler = (entry.entry_id, "test")  # Set to keep reference to config entry
-
-        with pytest.raises(HomeAssistantError):
-            await manager.subentries.async_finish_flow(
-                flow,
-                {
-                    "data": {"second": True},
-                    "title": "Mock title",
-                    "type": data_entry_flow.FlowResultType.CREATE_ENTRY,
-                    "unique_id": 123,
-                },
-            )
-
-
-@pytest.mark.parametrize("context", [None, {}, {"bla": "bleh"}])
-async def test_entry_subentry_no_context(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries, context: dict | None
-) -> None:
-    """Test starting a subentry flow without "source" in context."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow), pytest.raises(KeyError):
-        await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context=context, data=None
-        )
-
-
-@pytest.mark.parametrize(
-    ("unique_id", "expected_result"),
-    [(None, does_not_raise()), ("test", pytest.raises(HomeAssistantError))],
-)
-async def test_entry_subentry_duplicate(
-    hass: HomeAssistant,
-    manager: config_entries.ConfigEntries,
-    unique_id: str | None,
-    expected_result: AbstractContextManager,
-) -> None:
-    """Test adding a duplicated subentry to an entry."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(
-        domain="test",
-        data={"first": True},
-        subentries_data=[
-            config_entries.ConfigSubentryData(
-                data={},
-                subentry_id="blabla",
-                title="Mock title",
-                unique_id=unique_id,
-            )
-        ],
-    )
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
+    class TestFlow:
         """Test flow."""
 
         @staticmethod
         @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow):
-        flow = await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
-        )
-
-        flow.handler = (entry.entry_id, "test")  # Set to keep reference to config entry
-
-        with expected_result:
-            await manager.subentries.async_finish_flow(
-                flow,
-                {
-                    "data": {"second": True},
-                    "title": "Mock title",
-                    "type": data_entry_flow.FlowResultType.CREATE_ENTRY,
-                    "unique_id": unique_id,
-                },
-            )
-
-
-async def test_entry_subentry_abort(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test that we can abort subentry flow."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow):
-        flow = await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
-        )
-
-        flow.handler = (entry.entry_id, "test")  # Set to keep reference to config entry
-
-        assert await manager.subentries.async_finish_flow(
-            flow, {"type": data_entry_flow.FlowResultType.ABORT, "reason": "test"}
-        )
-
-
-async def test_entry_subentry_unknown_config_entry(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test attempting to start a subentry flow for an unknown config entry."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
+        def async_get_options_flow(config_entry):
+            """Test options flow."""
 
     with pytest.raises(config_entries.UnknownEntry):
-        await manager.subentries.async_create_flow(
-            ("blah", "blah"), context={"source": "test"}, data=None
-        )
-
-
-async def test_entry_subentry_deleted_config_entry(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test attempting to finish a subentry flow for a deleted config entry."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with mock_config_flow("test", TestFlow):
-        flow = await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
-        )
-
-        flow.handler = (entry.entry_id, "test")  # Set to keep reference to config entry
-
-        await hass.config_entries.async_remove(entry.entry_id)
-
-        with pytest.raises(config_entries.UnknownEntry):
-            await manager.subentries.async_finish_flow(
-                flow,
-                {
-                    "data": {"second": True},
-                    "title": "Mock title",
-                    "type": data_entry_flow.FlowResultType.CREATE_ENTRY,
-                    "unique_id": "test",
-                },
-            )
-
-
-async def test_entry_subentry_unsupported(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test attempting to start a subentry flow for a config entry without support."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-        @staticmethod
-        @callback
-        def async_get_subentry_flow(config_entry, subentry_type: str):
-            """Test subentry flow."""
-
-            class SubentryFlowHandler(data_entry_flow.FlowHandler):
-                """Test subentry flow handler."""
-
-            return SubentryFlowHandler()
-
-        @classmethod
-        @callback
-        def async_supported_subentries(
-            cls, config_entry: ConfigEntry
-        ) -> tuple[str, ...]:
-            return ("test",)
-
-    with (
-        mock_config_flow("test", TestFlow),
-        pytest.raises(data_entry_flow.UnknownHandler),
-    ):
-        await manager.subentries.async_create_flow(
-            (
-                entry.entry_id,
-                "unknown",
-            ),
-            context={"source": "test"},
-            data=None,
-        )
-
-
-async def test_entry_subentry_unsupported_subentry_type(
-    hass: HomeAssistant, manager: config_entries.ConfigEntries
-) -> None:
-    """Test attempting to start a subentry flow for a config entry without support."""
-    mock_integration(hass, MockModule("test"))
-    mock_platform(hass, "test.config_flow", None)
-    entry = MockConfigEntry(domain="test", data={"first": True})
-    entry.add_to_manager(manager)
-
-    class TestFlow(config_entries.ConfigFlow):
-        """Test flow."""
-
-    with (
-        mock_config_flow("test", TestFlow),
-        pytest.raises(data_entry_flow.UnknownHandler),
-    ):
-        await manager.subentries.async_create_flow(
-            (entry.entry_id, "test"), context={"source": "test"}, data=None
+        await manager.options.async_create_flow(
+            "blah", context={"source": "test"}, data=None
         )
 
 
@@ -4505,20 +3911,21 @@ async def test_updating_entry_with_and_without_changes(
 
     assert manager.async_update_entry(entry) is False
 
-    for change, expected_value in (
-        ({"data": {"second": True, "third": 456}}, {"second": True, "third": 456}),
-        ({"data": {"second": True}}, {"second": True}),
-        ({"minor_version": 2}, 2),
-        ({"options": {"hello": True}}, {"hello": True}),
-        ({"pref_disable_new_entities": True}, True),
-        ({"pref_disable_polling": True}, True),
-        ({"title": "sometitle"}, "sometitle"),
-        ({"unique_id": "abcd1234"}, "abcd1234"),
-        ({"version": 2}, 2),
+    for change in (
+        {"data": {"second": True, "third": 456}},
+        {"data": {"second": True}},
+        {"minor_version": 2},
+        {"options": {"hello": True}},
+        {"pref_disable_new_entities": True},
+        {"pref_disable_polling": True},
+        {"title": "sometitle"},
+        {"unique_id": "abcd1234"},
+        {"version": 2},
     ):
         assert manager.async_update_entry(entry, **change) is True
         key = next(iter(change))
-        assert getattr(entry, key) == expected_value
+        value = next(iter(change.values()))
+        assert getattr(entry, key) == value
         assert manager.async_update_entry(entry, **change) is False
 
     assert manager.async_entry_for_domain_unique_id("test", "abc123") is None
@@ -6052,7 +5459,6 @@ async def test_unhashable_unique_id_fails(
         minor_version=1,
         options={},
         source="test",
-        subentries_data=(),
         title="title",
         unique_id=unique_id,
         version=1,
@@ -6088,7 +5494,6 @@ async def test_unhashable_unique_id_fails_on_update(
         minor_version=1,
         options={},
         source="test",
-        subentries_data=(),
         title="title",
         unique_id="123",
         version=1,
@@ -6119,7 +5524,6 @@ async def test_string_unique_id_no_warning(
         minor_version=1,
         options={},
         source="test",
-        subentries_data=(),
         title="title",
         unique_id="123",
         version=1,
@@ -6162,7 +5566,6 @@ async def test_hashable_unique_id(
         minor_version=1,
         options={},
         source="test",
-        subentries_data=(),
         title="title",
         unique_id=unique_id,
         version=1,
@@ -6197,7 +5600,6 @@ async def test_no_unique_id_no_warning(
         minor_version=1,
         options={},
         source="test",
-        subentries_data=(),
         title="title",
         unique_id=None,
         version=1,
@@ -7122,7 +6524,6 @@ async def test_migration_from_1_2(
                     "pref_disable_new_entities": False,
                     "pref_disable_polling": False,
                     "source": "import",
-                    "subentries": {},
                     "title": "Sun",
                     "unique_id": None,
                     "version": 1,