feat(tesla_api_coverage): API.md impl matrix generation

This commit is contained in:
gak 2023-10-25 15:16:44 +11:00
parent 10fe1969c2
commit 514e8ec134
No known key found for this signature in database
3 changed files with 251 additions and 236 deletions

451
API.md
View file

@ -4,10 +4,9 @@ List of all known Tesla APIs, and if this crate supports it, and which of the Te
### Legend
- Blank - Unknown
- ✅ Supported by this crate
- 🟢 Supported by specified API
- 🔴 Not supported by specified API
- ✅ Supported by Teslatte
- 🔴 API exists but not supported by Teslatte
- Blank - API doesn't exist
Currently only the Owner API is partially supported by this crate.
@ -15,226 +14,236 @@ Currently only the Owner API is partially supported by this crate.
<!-- tesla_api_coverage start table -->
| API | Teslatte | Timdorr API | Fleet API | Command Mode |
| --- | --- | --- | --- | --- |
| actuate-trunk | | 🟢 | 🟢 | |
| add-key | | 🟢 | | 🟢 |
| add-key-request | | | | 🟢 |
| add-managed-charging-site | | 🟢 | | |
| adjust-volume | | 🟢 | 🟢 | |
| app-feedback-entitlements | | 🟢 | | |
| app-feedback-logs | | 🟢 | | |
| app-feedback-metadata | | 🟢 | | |
| auto-conditioning-start | ✅ | 🟢 | 🟢 | |
| auto-conditioning-stop | ✅ | 🟢 | 🟢 | |
| auto-seat-and-climate | | | | 🟢 |
| autosecure-modelx | | | | 🟢 |
| backup-key | | | 🟢 | |
| backup-reserve | | 🟢 | | |
| calendar-history-data | | 🟢 | | |
| calendar-sync | | 🟢 | | |
| cancel-software-update | | 🟢 | 🟢 | 🟢 |
| charge-max-range | ✅ | | 🟢 | |
| charge-port-close | | | | 🟢 |
| charge-port-door-close | ✅ | 🟢 | 🟢 | |
| charge-port-door-open | ✅ | 🟢 | 🟢 | |
| charge-port-open | | | | 🟢 |
| charge-standard | ✅ | | 🟢 | |
| charge-start | ✅ | 🟢 | 🟢 | |
| charge-stop | ✅ | 🟢 | 🟢 | |
| charging-sessions-only-for-business-fleet-owners | | | 🟢 | |
| charging-set-limit | | | | 🟢 |
| charging-start | | | | 🟢 |
| charging-stop | | | | 🟢 |
| check-energy-product-registration | | 🟢 | | |
| climate-off | | | | 🟢 |
| climate-on | | | | 🟢 |
| climate-set-temp | | | | 🟢 |
| create-energy-site-share-invite | | 🟢 | | |
| dashcam-save-clip | | 🟢 | | |
| deactivate-device-token | | 🟢 | | |
| door-lock | ✅ | 🟢 | 🟢 | |
| door-unlock | ✅ | 🟢 | 🟢 | |
| drive | | | | 🟢 |
| driving-plan | | 🟢 | | |
| energy-event | | 🟢 | | |
| energy-register-product | | 🟢 | | |
| energy-site-backup-time-remaining | | 🟢 | | |
| energy-site-command | | 🟢 | | |
| energy-site-enroll-program | | 🟢 | | |
| energy-site-import-export-config | | 🟢 | | |
| energy-site-onboarding-tips | | 🟢 | | |
| energy-site-opt-event | | 🟢 | | |
| energy-site-preference | | 🟢 | | |
| energy-site-program-details | | 🟢 | | |
| energy-site-programs | | 🟢 | | |
| energy-site-telemetry-history | | 🟢 | | |
| energy-site-user-settings | | 🟢 | | |
| energy-sites-calendar-history | ✅ | | | |
| energy-sites-live-status | ✅ | | | |
| energy-sites-site-info | ✅ | | | |
| energy-sites-site-status | ✅ | | | |
| energy-wall-connector-firmware-download-url | | 🟢 | | |
| erase-user-data | | | 🟢 | |
| feature-config | | 🟢 | 🟢 | |
| fetch-energy-site-share-invites | | 🟢 | | |
| fetch-energy-site-shared-users | | 🟢 | | |
| fetch-vehicle-shared-drivers | | 🟢 | | |
| flash-lights | ✅ | 🟢 | 🟢 | 🟢 |
| frunk-open | | | | 🟢 |
| get | | | | 🟢 |
| get-charge-on-solar-feature | | 🟢 | | |
| get-managed-charging-sites | | 🟢 | | |
| get-ownership-xp-config | | 🟢 | | |
| get-upcoming-service-visit-data | | 🟢 | | |
| guest-mode | | | 🟢 | |
| hermes-authorization | | 🟢 | | |
| hermes-vehicle-authorization | | 🟢 | | |
| honk | | | | 🟢 |
| honk-horn | ✅ | 🟢 | 🟢 | |
| list-keys | | | | 🟢 |
| lock | | | | 🟢 |
| mattermost | | 🟢 | | |
| me | | 🟢 | 🟢 | |
| media-next-fav | | 🟢 | 🟢 | |
| media-next-track | | 🟢 | 🟢 | |
| media-prev-fav | | 🟢 | 🟢 | |
| media-prev-track | | 🟢 | 🟢 | |
| media-set-volume | | | | 🟢 |
| media-toggle-playback | | 🟢 | 🟢 | |
| media-volume-down | | 🟢 | 🟢 | |
| media-volume-up | | 🟢 | | |
| message-center-message | | 🟢 | | |
| message-center-message-action-update | | 🟢 | | |
| message-center-message-count | | 🟢 | | |
| message-center-message-list | | 🟢 | | |
| mobile-enabled | | | 🟢 | |
| navigation-gps-request | | 🟢 | 🟢 | |
| navigation-request | | | 🟢 | |
| navigation-route | | 🟢 | | |
| navigation-sc-request | | 🟢 | 🟢 | |
| nearby-charging-sites | | 🟢 | 🟢 | |
| off-grid-vehicle-charging-reserve | | 🟢 | | |
| onboarding-experience | | 🟢 | | |
| onboarding-experience-page | | 🟢 | | |
| operation-mode | | 🟢 | | |
| orders | | 🟢 | 🟢 | |
| ping | | | | 🟢 |
| place-suggestions | | 🟢 | | |
| plan-trip | | 🟢 | | |
| post | | | | 🟢 |
| powerwall-energy-history | ✅ | | | |
| powerwall-order-page | | 🟢 | | |
| powerwall-order-session-data | | 🟢 | | |
| powerwall-status | ✅ | | | |
| product-info | | | | 🟢 |
| products | ✅ | 🟢 | | |
| public-key | | | 🟢 | |
| rate-tariffs | | 🟢 | | |
| redeem-energy-site-share-invite | | 🟢 | | |
| redeem-vehicle-share-invite | | 🟢 | | |
| referral-data | | 🟢 | | |
| referral-page | | 🟢 | | |
| region | | | 🟢 | |
| register | | | 🟢 | |
| release-notes | | 🟢 | | |
| remote-auto-seat-climate-request | | 🟢 | 🟢 | |
| remote-auto-steering-wheel-heat-climate-request | | 🟢 | 🟢 | |
| remote-boombox | | 🟢 | 🟢 | |
| remote-seat-cooler-request | | 🟢 | 🟢 | |
| remote-seat-heater-request | | 🟢 | 🟢 | |
| remote-start-drive | ✅ | 🟢 | 🟢 | |
| remote-steering-wheel-heat-level-request | | 🟢 | 🟢 | |
| remote-steering-wheel-heater-request | | 🟢 | 🟢 | |
| remove-energy-site-share-user | | 🟢 | | |
| remove-key | | | | 🟢 |
| remove-managed-charging-site | | 🟢 | | |
| remove-vehicle-share-driver | | 🟢 | | |
| rename-key | | | | 🟢 |
| reset-pin-to-drive-pin | | | 🟢 | |
| reset-valet-pin | | 🟢 | 🟢 | |
| retrieve-notification-preferences | | 🟢 | | |
| reverse-geocoding | | 🟢 | | |
| revoke-energy-site-share-invite | | 🟢 | | |
| revoke-vehicle-share-invite | | 🟢 | | |
| roadside-assistance-data | | 🟢 | | |
| roadside-assistance-page | | 🟢 | | |
| schedule-software-update | | 🟢 | 🟢 | |
| seat-heater | | | | 🟢 |
| send-device-key | | 🟢 | | |
| send-notification-confirmation | | 🟢 | | |
| send-notification-preferences | | 🟢 | | |
| send-to-vehicle | | 🟢 | | |
| sentry-mode | | | | 🟢 |
| service-data | | 🟢 | 🟢 | |
| session-info | | | | 🟢 |
| set-bioweapon-mode | | 🟢 | 🟢 | |
| set-cabin-overheat-protection | | 🟢 | 🟢 | |
| set-charge-limit | ✅ | 🟢 | 🟢 | |
| set-charging-amps | ✅ | 🟢 | 🟢 | |
| set-climate-keeper-mode | | 🟢 | 🟢 | |
| set-cop-temp | | 🟢 | 🟢 | |
| set-managed-charge-current-request | | | 🟢 | |
| set-managed-charger-location | | | 🟢 | |
| set-managed-scheduled-charging-time | | | 🟢 | |
| set-pin-to-drive | | | 🟢 | |
| set-preconditioning-max | | 🟢 | 🟢 | |
| set-scheduled-charging | ✅ | 🟢 | 🟢 | |
| set-scheduled-departure | ✅ | 🟢 | 🟢 | |
| set-sentry-mode | | 🟢 | 🟢 | |
| set-temps | ✅ | 🟢 | 🟢 | |
| set-valet-mode | | 🟢 | 🟢 | |
| set-vehicle-name | | | 🟢 | |
| share-invites | | 🟢 | 🟢 | |
| share-invites-create | | 🟢 | 🟢 | |
| share-invites-revoke | | | 🟢 | |
| site-address | | 🟢 | | |
| site-config | | 🟢 | | |
| site-data | | 🟢 | | |
| site-name | | 🟢 | | |
| site-tariff | | 🟢 | | |
| software-update-start | | | | 🟢 |
| solar-savings-forecast | | 🟢 | | |
| speed-limit-activate | | 🟢 | 🟢 | |
| speed-limit-clear-pin | | 🟢 | 🟢 | |
| speed-limit-deactivate | | 🟢 | 🟢 | |
| speed-limit-set-limit | | 🟢 | 🟢 | |
| splunk-telemetry | | 🟢 | | |
| static-charger-file | | 🟢 | | |
| static-supercharger-file | | 🟢 | | |
| status | | 🟢 | | |
| steering-wheel-heater | | | | 🟢 |
| storm-mode-settings | | 🟢 | | |
| sun-roof-control | | 🟢 | 🟢 | |
| take-drivenote | | 🟢 | 🟢 | |
| time-of-use-settings | | 🟢 | | |
| trigger-homelink | | 🟢 | 🟢 | |
| trigger-vehicle-screenshot | | 🟢 | | |
| trunk-close | | | | 🟢 |
| trunk-move | | | | 🟢 |
| trunk-open | | | | 🟢 |
| unlock | | | | 🟢 |
| update-calendar-entries | | | 🟢 | |
| update-charge-on-solar-feature | | 🟢 | | |
| user-account-upload-profile-picture | | 🟢 | | |
| user-reset-vault | | 🟢 | | |
| vehicle | | | 🟢 | |
| vehicle-charge-history | | 🟢 | | |
| vehicle-data | ✅ | 🟢 | 🟢 | |
| vehicle-download-vault | | 🟢 | | |
| vehicle-energy-sites | | 🟢 | | |
| vehicle-subscriptions | | | 🟢 | |
| vehicle-subscriptions-set | | | 🟢 | |
| vehicle-summary | | 🟢 | | |
| vehicle-upload-vault | | 🟢 | | |
| vehicles | ✅ | 🟢 | 🟢 | |
| wake | | | | 🟢 |
| wake-up | ✅ | 🟢 | 🟢 | |
| warranty-details | | | 🟢 | |
| window-control | | 🟢 | 🟢 | |
| API | Owners API (timdorr) | Fleet API | Command Mode |
| --- | --- | --- | --- |
| actuate-trunk | 🔴 | 🔴 | |
| add-key | 🔴 | | 🔴 |
| add-key-request | | | 🔴 |
| add-managed-charging-site | 🔴 | | |
| adjust-volume | 🔴 | 🔴 | |
| app-feedback-entitlements | 🔴 | | |
| app-feedback-logs | 🔴 | | |
| app-feedback-metadata | 🔴 | | |
| auto-conditioning-start | ✅ | 🔴 | 🔴 |
| auto-conditioning-stop | ✅ | 🔴 | |
| autosecure-modelx | | | 🔴 |
| backup-key | | 🔴 | |
| backup-reserve | 🔴 | | |
| calendar-history-data | 🔴 | | |
| calendar-sync | 🔴 | | |
| cancel-software-update | 🔴 | 🔴 | 🔴 |
| charge-max-range | ✅ | 🔴 | |
| charge-port-door-close | ✅ | 🔴 | 🔴 |
| charge-port-door-open | ✅ | 🔴 | 🔴 |
| charge-standard | ✅ | 🔴 | |
| charge-start | ✅ | 🔴 | 🔴 |
| charge-stop | ✅ | 🔴 | 🔴 |
| charging-sessions-only-for-business-fleet-owners | | 🔴 | |
| check-energy-product-registration | 🔴 | | |
| climate-off | | | 🔴 |
| climate-on | | | 🔴 |
| climate-set-temp | | | 🔴 |
| create-energy-site-share-invite | 🔴 | | |
| dashcam-save-clip | 🔴 | | |
| deactivate-device-token | 🔴 | | |
| door-lock | ✅ | 🔴 | |
| door-unlock | ✅ | 🔴 | |
| drive | | | 🔴 |
| driving-plan | 🔴 | | |
| energy-event | 🔴 | | |
| energy-register-product | 🔴 | | |
| energy-site-backup-time-remaining | 🔴 | | |
| energy-site-command | 🔴 | | |
| energy-site-enroll-program | 🔴 | | |
| energy-site-import-export-config | 🔴 | | |
| energy-site-onboarding-tips | 🔴 | | |
| energy-site-opt-event | 🔴 | | |
| energy-site-preference | 🔴 | | |
| energy-site-program-details | 🔴 | | |
| energy-site-programs | 🔴 | | |
| energy-site-telemetry-history | 🔴 | | |
| energy-site-user-settings | 🔴 | | |
| energy-sites-calendar-history | ✅ | | |
| energy-sites-live-status | ✅ | | |
| energy-sites-site-info | ✅ | | |
| energy-sites-site-status | ✅ | | |
| energy-wall-connector-firmware-download-url | 🔴 | | |
| erase-user-data | | 🔴 | |
| feature-config | 🔴 | 🔴 | |
| fetch-energy-site-share-invites | 🔴 | | |
| fetch-energy-site-shared-users | 🔴 | | |
| fetch-vehicle-shared-drivers | 🔴 | | |
| flash-lights | ✅ | 🔴 | 🔴 |
| frunk-open | | | 🔴 |
| get | | | 🔴 |
| get-charge-on-solar-feature | 🔴 | | |
| get-managed-charging-sites | 🔴 | | |
| get-ownership-xp-config | 🔴 | | |
| get-upcoming-service-visit-data | 🔴 | | |
| guest-mode | | 🔴 | |
| hermes-authorization | 🔴 | | |
| hermes-vehicle-authorization | 🔴 | | |
| honk-horn | ✅ | 🔴 | 🔴 |
| list-keys | | | 🔴 |
| lock | | | 🔴 |
| mattermost | 🔴 | | |
| me | 🔴 | 🔴 | |
| media-next-fav | 🔴 | 🔴 | |
| media-next-track | 🔴 | 🔴 | |
| media-prev-fav | 🔴 | 🔴 | |
| media-prev-track | 🔴 | 🔴 | |
| media-set-volume | | | 🔴 |
| media-toggle-playback | 🔴 | 🔴 | |
| media-volume-down | 🔴 | 🔴 | |
| media-volume-up | 🔴 | | |
| message-center-message | 🔴 | | |
| message-center-message-action-update | 🔴 | | |
| message-center-message-count | 🔴 | | |
| message-center-message-list | 🔴 | | |
| mobile-enabled | | 🔴 | |
| navigation-gps-request | 🔴 | 🔴 | |
| navigation-request | | 🔴 | |
| navigation-route | 🔴 | | |
| navigation-sc-request | 🔴 | 🔴 | |
| nearby-charging-sites | 🔴 | 🔴 | |
| off-grid-vehicle-charging-reserve | 🔴 | | |
| onboarding-experience | 🔴 | | |
| onboarding-experience-page | 🔴 | | |
| operation-mode | 🔴 | | |
| orders | 🔴 | 🔴 | |
| ping | | | 🔴 |
| place-suggestions | 🔴 | | |
| plan-trip | 🔴 | | |
| post | | | 🔴 |
| powerwall-energy-history | ✅ | | |
| powerwall-order-page | 🔴 | | |
| powerwall-order-session-data | 🔴 | | |
| powerwall-status | ✅ | | |
| product-info | | | 🔴 |
| products | ✅ | | |
| public-key | | 🔴 | |
| rate-tariffs | 🔴 | | |
| redeem-energy-site-share-invite | 🔴 | | |
| redeem-vehicle-share-invite | 🔴 | | |
| referral-data | 🔴 | | |
| referral-page | 🔴 | | |
| region | | 🔴 | |
| register | | 🔴 | |
| release-notes | 🔴 | | |
| remote-auto-seat-climate-request | 🔴 | 🔴 | |
| remote-auto-steering-wheel-heat-climate-request | 🔴 | 🔴 | |
| remote-boombox | 🔴 | 🔴 | |
| remote-seat-cooler-request | 🔴 | 🔴 | |
| remote-seat-heater-request | 🔴 | 🔴 | |
| remote-start-drive | ✅ | 🔴 | |
| remote-steering-wheel-heat-level-request | 🔴 | 🔴 | |
| remote-steering-wheel-heater-request | 🔴 | 🔴 | |
| remove-energy-site-share-user | 🔴 | | |
| remove-key | | | 🔴 |
| remove-managed-charging-site | 🔴 | | |
| remove-vehicle-share-driver | 🔴 | | |
| rename-key | | | 🔴 |
| reset-pin-to-drive-pin | | 🔴 | |
| reset-valet-pin | 🔴 | 🔴 | |
| retrieve-notification-preferences | 🔴 | | |
| reverse-geocoding | 🔴 | | |
| revoke-energy-site-share-invite | 🔴 | | |
| revoke-vehicle-share-invite | 🔴 | | |
| roadside-assistance-data | 🔴 | | |
| roadside-assistance-page | 🔴 | | |
| schedule-software-update | 🔴 | 🔴 | |
| seat-heater | | | 🔴 |
| send-device-key | 🔴 | | |
| send-notification-confirmation | 🔴 | | |
| send-notification-preferences | 🔴 | | |
| send-to-vehicle | 🔴 | | |
| sentry-mode | | | 🔴 |
| service-data | 🔴 | 🔴 | |
| session-info | | | 🔴 |
| set-bioweapon-mode | 🔴 | 🔴 | |
| set-cabin-overheat-protection | 🔴 | 🔴 | |
| set-charge-limit | ✅ | 🔴 | 🔴 |
| set-charging-amps | ✅ | 🔴 | |
| set-climate-keeper-mode | 🔴 | 🔴 | |
| set-cop-temp | 🔴 | 🔴 | |
| set-managed-charge-current-request | | 🔴 | |
| set-managed-charger-location | | 🔴 | |
| set-managed-scheduled-charging-time | | 🔴 | |
| set-pin-to-drive | | 🔴 | |
| set-preconditioning-max | 🔴 | 🔴 | |
| set-scheduled-charging | ✅ | 🔴 | |
| set-scheduled-departure | ✅ | 🔴 | |
| set-sentry-mode | 🔴 | 🔴 | |
| set-temps | ✅ | 🔴 | |
| set-valet-mode | 🔴 | 🔴 | |
| set-vehicle-name | | 🔴 | |
| share-invites | 🔴 | 🔴 | |
| share-invites-create | 🔴 | 🔴 | |
| share-invites-revoke | | 🔴 | |
| site-address | 🔴 | | |
| site-config | 🔴 | | |
| site-data | 🔴 | | |
| site-name | 🔴 | | |
| site-tariff | 🔴 | | |
| software-update-start | | | 🔴 |
| solar-savings-forecast | 🔴 | | |
| speed-limit-activate | 🔴 | 🔴 | |
| speed-limit-clear-pin | 🔴 | 🔴 | |
| speed-limit-deactivate | 🔴 | 🔴 | |
| speed-limit-set-limit | 🔴 | 🔴 | |
| splunk-telemetry | 🔴 | | |
| static-charger-file | 🔴 | | |
| static-supercharger-file | 🔴 | | |
| status | 🔴 | | |
| steering-wheel-heater | | | 🔴 |
| storm-mode-settings | 🔴 | | |
| sun-roof-control | 🔴 | 🔴 | |
| take-drivenote | 🔴 | 🔴 | |
| time-of-use-settings | 🔴 | | |
| trigger-homelink | 🔴 | 🔴 | |
| trigger-vehicle-screenshot | 🔴 | | |
| trunk-close | | | 🔴 |
| trunk-move | | | 🔴 |
| trunk-open | | | 🔴 |
| unlock | | | 🔴 |
| update-calendar-entries | | 🔴 | |
| update-charge-on-solar-feature | 🔴 | | |
| user-account-upload-profile-picture | 🔴 | | |
| user-reset-vault | 🔴 | | |
| vehicle | | 🔴 | |
| vehicle-charge-history | 🔴 | | |
| vehicle-data | ✅ | 🔴 | |
| vehicle-download-vault | 🔴 | | |
| vehicle-energy-sites | 🔴 | | |
| vehicle-subscriptions | | 🔴 | |
| vehicle-subscriptions-set | | 🔴 | |
| vehicle-summary | 🔴 | | |
| vehicle-upload-vault | 🔴 | | |
| vehicles | ✅ | 🔴 | |
| wake-up | ✅ | 🔴 | 🔴 |
| warranty-details | | 🔴 | |
| window-control | 🔴 | 🔴 | |
<!-- tesla_api_coverage end table -->

View file

@ -29,8 +29,8 @@ pub fn generate(merged: &HashMap<String, Endpoint>) -> anyhow::Result<()> {
let after = parts.next().unwrap();
let mut table = vec![];
table.push("| API | Teslatte | Timdorr API | Fleet API | Command Mode |".to_string());
table.push("| --- | --- | --- | --- | --- |".to_string());
table.push("| API | Owners API (timdorr) | Fleet API | Command Mode |".to_string());
table.push("| --- | --- | --- | --- |".to_string());
// Sort by URL for into a Vec for now. Keep the key.
let mut endpoints = merged.iter().collect::<Vec<(&String, &Endpoint)>>();
@ -40,26 +40,22 @@ pub fn generate(merged: &HashMap<String, Endpoint>) -> anyhow::Result<()> {
let mut row = vec![];
row.push(format!("{}", name));
if endpoint.teslatte.is_some() {
if endpoint.teslatte_owners_api.is_some() {
row.push("".to_string());
} else {
row.push("".to_string());
}
if endpoint.timdorr.is_some() {
row.push("🟢".to_string());
} else if endpoint.timdorr.is_some() {
row.push("🔴".to_string());
} else {
row.push("".to_string());
}
if endpoint.fleet.is_some() {
row.push("🟢".to_string());
row.push("🔴".to_string());
} else {
row.push("".to_string());
}
if endpoint.vehicle_command.is_some() {
row.push("🟢".to_string());
row.push("🔴".to_string());
} else {
row.push("".to_string());
}

View file

@ -93,7 +93,17 @@ async fn main() {
}
fn rename_vehicle_command(endpoints: &mut HashMap<String, VehicleCommandEndpoint>) {
let mut renames = vec![("software-update-cancel", "cancel-software-update")];
let mut renames = vec![
("auto-seat-and-climate", "auto-conditioning-start"),
("charging-set-limit", "set-charge-limit"),
("charging-start", "charge-start"),
("charging-stop", "charge-stop"),
("charge-port-open", "charge-port-door-open"),
("charge-port-close", "charge-port-door-close"),
("honk", "honk-horn"),
("software-update-cancel", "cancel-software-update"),
("wake", "wake-up"),
];
for (old_key, new_key) in renames {
let endpoint = endpoints.remove(old_key).unwrap();
@ -153,7 +163,7 @@ fn ensure_timdorr_matches_fleet(merged: &HashMap<String, Endpoint>) {
}
}
if !perfect {
panic!("Fleet and Timdorr don't match. See errors above.");
panic!("Fleet and timdorr don't match. See errors above.");
}
}
@ -180,7 +190,7 @@ pub fn remove_unwanted_endpoints(mut endpoints: &mut HashMap<String, Endpoint>)
#[derive(Debug)]
pub struct Endpoint {
pub name: String,
pub teslatte: Option<TeslatteEndpoint>,
pub teslatte_owners_api: Option<TeslatteEndpoint>,
pub fleet: Option<FleetEndpoint>,
pub vehicle_command: Option<VehicleCommandEndpoint>,
pub timdorr: Option<TimdorrEndpoint>,
@ -213,7 +223,7 @@ pub fn merge(
let endpoint = Endpoint {
name,
teslatte,
teslatte_owners_api: teslatte,
fleet,
vehicle_command,
timdorr,