"""Support for namecheap DNS services.""" import logging import voluptuous as vol from homeassistant.config_entries import SOURCE_IMPORT from homeassistant.const import CONF_DOMAIN, CONF_HOST, CONF_PASSWORD from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv from homeassistant.helpers.typing import ConfigType from .const import DOMAIN from .coordinator import NamecheapConfigEntry, NamecheapDnsUpdateCoordinator _LOGGER = logging.getLogger(__name__) CONFIG_SCHEMA = vol.Schema( { DOMAIN: vol.Schema( { vol.Required(CONF_DOMAIN): cv.string, vol.Required(CONF_PASSWORD): cv.string, vol.Optional(CONF_HOST, default="@"): cv.string, } ) }, extra=vol.ALLOW_EXTRA, ) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Initialize the namecheap DNS component.""" if DOMAIN in config: hass.async_create_task( hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_IMPORT}, data=config[DOMAIN] ) ) return True async def async_setup_entry(hass: HomeAssistant, entry: NamecheapConfigEntry) -> bool: """Set up Namecheap DynamicDNS from a config entry.""" coordinator = NamecheapDnsUpdateCoordinator(hass, entry) await coordinator.async_config_entry_first_refresh() entry.runtime_data = coordinator # Add a dummy listener as we do not have regular entities entry.async_on_unload(coordinator.async_add_listener(lambda: None)) return True async def async_unload_entry(hass: HomeAssistant, entry: NamecheapConfigEntry) -> bool: """Unload a config entry.""" return True