1 """Config Flow for Tesla Fleet integration."""
3 from __future__
import annotations
5 from collections.abc
import Mapping
14 from .const
import DOMAIN, LOGGER
15 from .oauth
import TeslaSystemImplementation
19 config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN
21 """Config flow to handle Tesla Fleet API OAuth2 authentication."""
31 self, user_input: dict[str, Any] |
None =
None
32 ) -> ConfigFlowResult:
33 """Handle a flow start."""
34 self.async_register_implementation(
44 ) -> ConfigFlowResult:
45 """Handle the initial step."""
48 data[
"token"][
"access_token"], options={
"verify_signature":
False}
52 await self.async_set_unique_id(uid)
53 if self.
sourcesource == SOURCE_REAUTH:
54 self._abort_if_unique_id_mismatch(reason=
"reauth_account_mismatch")
55 return self.async_update_reload_and_abort(
56 self._get_reauth_entry(), data=data
58 self._abort_if_unique_id_configured()
59 return self.async_create_entry(title=uid, data=data)
62 self, entry_data: Mapping[str, Any]
63 ) -> ConfigFlowResult:
64 """Perform reauth upon an API authentication error."""
68 self, user_input: dict[str, Any] |
None =
None
69 ) -> ConfigFlowResult:
70 """Confirm reauth dialog."""
71 if user_input
is None:
72 return self.async_show_form(
73 step_id=
"reauth_confirm",
74 description_placeholders={
"name":
"Tesla Fleet"},
logging.Logger logger(self)
ConfigFlowResult async_step_reauth_confirm(self, dict[str, Any]|None user_input=None)
ConfigFlowResult async_step_reauth(self, Mapping[str, Any] entry_data)
ConfigFlowResult async_oauth_create_entry(self, dict[str, Any] data)
ConfigFlowResult async_step_user(self, dict[str, Any]|None user_input=None)