From cce23683f14b7a48d543cbde46ae3ab2877e0ee8 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 28 Sep 2022 14:17:39 +0200 Subject: [PATCH] Add additional integration_type options for integration manifests (#79193) * Add additional integration_type options for integration manifests * Rename integration_type internal to system --- homeassistant/components/air_quality/manifest.json | 3 ++- homeassistant/components/analytics/manifest.json | 3 ++- homeassistant/loader.py | 6 ++++-- script/hassfest/manifest.py | 4 +++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/air_quality/manifest.json b/homeassistant/components/air_quality/manifest.json index 978089d1816..587e9809e76 100644 --- a/homeassistant/components/air_quality/manifest.json +++ b/homeassistant/components/air_quality/manifest.json @@ -3,5 +3,6 @@ "name": "Air Quality", "documentation": "https://www.home-assistant.io/integrations/air_quality", "codeowners": ["@home-assistant/core"], - "quality_scale": "internal" + "quality_scale": "internal", + "integration_type": "entity" } diff --git a/homeassistant/components/analytics/manifest.json b/homeassistant/components/analytics/manifest.json index b52d85f5496..34c23a94c6d 100644 --- a/homeassistant/components/analytics/manifest.json +++ b/homeassistant/components/analytics/manifest.json @@ -6,5 +6,6 @@ "dependencies": ["api", "websocket_api"], "after_dependencies": ["energy"], "quality_scale": "internal", - "iot_class": "cloud_push" + "iot_class": "cloud_push", + "integration_type": "system" } diff --git a/homeassistant/loader.py b/homeassistant/loader.py index 9e326f00ffd..4eda2f9f651 100644 --- a/homeassistant/loader.py +++ b/homeassistant/loader.py @@ -129,7 +129,7 @@ class Manifest(TypedDict, total=False): name: str disabled: str domain: str - integration_type: Literal["integration", "hardware", "helper"] + integration_type: Literal["entity", "integration", "hardware", "helper", "system"] dependencies: list[str] after_dependencies: list[str] requirements: list[str] @@ -558,7 +558,9 @@ class Integration: return self.manifest.get("iot_class") @property - def integration_type(self) -> Literal["integration", "hardware", "helper"]: + def integration_type( + self, + ) -> Literal["entity", "integration", "hardware", "helper", "system"]: """Return the integration type.""" return self.manifest.get("integration_type", "integration") diff --git a/script/hassfest/manifest.py b/script/hassfest/manifest.py index 515a617757c..de227cbb59c 100644 --- a/script/hassfest/manifest.py +++ b/script/hassfest/manifest.py @@ -162,7 +162,9 @@ MANIFEST_SCHEMA = vol.Schema( { vol.Required("domain"): str, vol.Required("name"): str, - vol.Optional("integration_type"): vol.In(["hardware", "helper"]), + vol.Optional("integration_type"): vol.In( + ["entity", "hardware", "helper", "system"] + ), vol.Optional("config_flow"): bool, vol.Optional("mqtt"): [str], vol.Optional("zeroconf"): [