From 2220fccf7a15e0b3fed830231f59487b7770a04a Mon Sep 17 00:00:00 2001 From: matt1432 Date: Sat, 5 Oct 2024 16:17:14 -0400 Subject: [PATCH] feat(netd): add code generation --- .../home-assistant/netdaemon/.gitignore | 1 + .../netdaemon/HomeAssistantGenerated.cs | 10560 ++++++++++++++++ .../home-assistant/netdaemon/appsettings.json | 5 + .../home-assistant/netdaemon/default.nix | 14 +- .../home-assistant/netdaemon/program.cs | 6 +- flake.lock | Bin 53554 -> 53554 bytes 6 files changed, 10579 insertions(+), 7 deletions(-) create mode 100644 devices/homie/modules/home-assistant/netdaemon/HomeAssistantGenerated.cs diff --git a/devices/homie/modules/home-assistant/netdaemon/.gitignore b/devices/homie/modules/home-assistant/netdaemon/.gitignore index 7de5508b..ee601ae0 100644 --- a/devices/homie/modules/home-assistant/netdaemon/.gitignore +++ b/devices/homie/modules/home-assistant/netdaemon/.gitignore @@ -1,2 +1,3 @@ obj bin +NetDaemonCodegen diff --git a/devices/homie/modules/home-assistant/netdaemon/HomeAssistantGenerated.cs b/devices/homie/modules/home-assistant/netdaemon/HomeAssistantGenerated.cs new file mode 100644 index 00000000..b5bd7153 --- /dev/null +++ b/devices/homie/modules/home-assistant/netdaemon/HomeAssistantGenerated.cs @@ -0,0 +1,10560 @@ +//------------------------------------------------------------------------------ +// +// Generated using NetDaemon CodeGenerator nd-codegen v24.37.1.0 +// At: 2024-10-05T16:11:38.2552699-04:00 +// +// *** Make sure the version of the codegen tool and your nugets Joysoftware.NetDaemon.* have the same version.*** +// You can use following command to keep it up to date with the latest version: +// dotnet tool update NetDaemon.HassModel.CodeGen +// +// To update this file with latest entities run this command in your project directory: +// dotnet tool run nd-codegen +// +// In the template projects we provided a convenience powershell script that will update +// the codegen and nugets to latest versions update_all_dependencies.ps1. +// +// For more information: https://netdaemon.xyz/docs/user/hass_model/hass_model_codegen +// For more information about NetDaemon: https://netdaemon.xyz/ +// +//------------------------------------------------------------------------------ +#nullable enable +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using System.Text.Json; +using System.Text.Json.Serialization; +using NetDaemon.HassModel; +using NetDaemon.HassModel.Entities; +using NetDaemon.HassModel.Entities.Core; + +namespace HomeAssistantGenerated; +public static class GeneratedExtensions +{ + ///Registers all injectable generated types in the serviceCollection + public static IServiceCollection AddHomeAssistantGenerated(this IServiceCollection serviceCollection) + { + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + return serviceCollection; + } +} + +public interface IEntities +{ + LightEntities Light { get; } + + MediaPlayerEntities MediaPlayer { get; } + + AutomationEntities Automation { get; } + + BinarySensorEntities BinarySensor { get; } + + ButtonEntities Button { get; } + + CalendarEntities Calendar { get; } + + ConversationEntities Conversation { get; } + + DeviceTrackerEntities DeviceTracker { get; } + + InputBooleanEntities InputBoolean { get; } + + InputTextEntities InputText { get; } + + LockEntities Lock { get; } + + NumberEntities Number { get; } + + PersonEntities Person { get; } + + RemoteEntities Remote { get; } + + ScriptEntities Script { get; } + + SelectEntities Select { get; } + + SensorEntities Sensor { get; } + + SttEntities Stt { get; } + + SunEntities Sun { get; } + + SwitchEntities Switch { get; } + + TimerEntities Timer { get; } + + TodoEntities Todo { get; } + + TtsEntities Tts { get; } + + WakeWordEntities WakeWord { get; } + + WeatherEntities Weather { get; } + + ZoneEntities Zone { get; } +} + +public partial class Entities : IEntities +{ + private readonly IHaContext _haContext; + public Entities(IHaContext haContext) + { + _haContext = haContext; + } + + public LightEntities Light => new(_haContext); + public MediaPlayerEntities MediaPlayer => new(_haContext); + public AutomationEntities Automation => new(_haContext); + public BinarySensorEntities BinarySensor => new(_haContext); + public ButtonEntities Button => new(_haContext); + public CalendarEntities Calendar => new(_haContext); + public ConversationEntities Conversation => new(_haContext); + public DeviceTrackerEntities DeviceTracker => new(_haContext); + public InputBooleanEntities InputBoolean => new(_haContext); + public InputTextEntities InputText => new(_haContext); + public LockEntities Lock => new(_haContext); + public NumberEntities Number => new(_haContext); + public PersonEntities Person => new(_haContext); + public RemoteEntities Remote => new(_haContext); + public ScriptEntities Script => new(_haContext); + public SelectEntities Select => new(_haContext); + public SensorEntities Sensor => new(_haContext); + public SttEntities Stt => new(_haContext); + public SunEntities Sun => new(_haContext); + public SwitchEntities Switch => new(_haContext); + public TimerEntities Timer => new(_haContext); + public TodoEntities Todo => new(_haContext); + public TtsEntities Tts => new(_haContext); + public WakeWordEntities WakeWord => new(_haContext); + public WeatherEntities Weather => new(_haContext); + public ZoneEntities Zone => new(_haContext); +} + +public partial class LightEntities +{ + private readonly IHaContext _haContext; + public LightEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all light entities currently registered (at runtime) in Home Assistant as LightEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("light.")).Select(e => new LightEntity(e)); + ///M5Stack Atom Echo 31196c + public LightEntity M5stackAtomEcho31196cM5stackAtomEcho31196c => new(_haContext, "light.m5stack_atom_echo_31196c_m5stack_atom_echo_31196c"); +} + +public partial class MediaPlayerEntities +{ + private readonly IHaContext _haContext; + public MediaPlayerEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all media_player entities currently registered (at runtime) in Home Assistant as MediaPlayerEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("media_player.")).Select(e => new MediaPlayerEntity(e)); + ///UE Boom 2 + public MediaPlayerEntity MusicPlayerDaemon => new(_haContext, "media_player.music_player_daemon"); + ///onn. 4K Streaming Box + public MediaPlayerEntity Onn4kStreamingBox => new(_haContext, "media_player.onn_4k_streaming_box"); + ///onn. 4K Streaming Box + public MediaPlayerEntity Onn4kStreamingBox2 => new(_haContext, "media_player.onn_4k_streaming_box_2"); + ///Spotify matt + public MediaPlayerEntity SpotifyMatt => new(_haContext, "media_player.spotify_matt"); + ///SpotifyPlus matt + public MediaPlayerEntity Spotifyplus => new(_haContext, "media_player.spotifyplus"); +} + +public partial class AutomationEntities +{ + private readonly IHaContext _haContext; + public AutomationEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all automation entities currently registered (at runtime) in Home Assistant as AutomationEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("automation.")).Select(e => new AutomationEntity(e)); + ///Assist - TimerFinished + public AutomationEntity AssistTimerfinished => new(_haContext, "automation.assist_timerfinished"); + ///Assist - TimerReached + public AutomationEntity AssistTimerreached => new(_haContext, "automation.assist_timerreached"); + ///Turn On UE + public AutomationEntity TurnOnUe => new(_haContext, "automation.turn_on_ue"); +} + +public partial class BinarySensorEntities +{ + private readonly IHaContext _haContext; + public BinarySensorEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all binary_sensor entities currently registered (at runtime) in Home Assistant as BinarySensorEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("binary_sensor.")).Select(e => new BinarySensorEntity(e)); + ///CODA-4680-FIZ WAN status + public BinarySensorEntity Coda4680FizWanStatus => new(_haContext, "binary_sensor.coda_4680_fiz_wan_status"); + ///M5Stack Atom Echo 31196c Assist in progress + public BinarySensorEntity M5stackAtomEcho131196cAssistInProgress => new(_haContext, "binary_sensor.m5stack_atom_echo_1_31196c_assist_in_progress"); + ///M5Stack Atom Echo 31196c Button + public BinarySensorEntity M5stackAtomEcho131196cButton => new(_haContext, "binary_sensor.m5stack_atom_echo_1_31196c_button"); + ///Pixel 8 Bluetooth state + public BinarySensorEntity Pixel8BluetoothState => new(_haContext, "binary_sensor.pixel_8_bluetooth_state"); + ///Pixel 8 Headphones + public BinarySensorEntity Pixel8Headphones => new(_haContext, "binary_sensor.pixel_8_headphones"); + ///Pixel 8 Hotspot state + public BinarySensorEntity Pixel8HotspotState => new(_haContext, "binary_sensor.pixel_8_hotspot_state"); + ///Pixel 8 Is charging + public BinarySensorEntity Pixel8IsCharging => new(_haContext, "binary_sensor.pixel_8_is_charging"); + ///Pixel 8 Mic muted + public BinarySensorEntity Pixel8MicMuted => new(_haContext, "binary_sensor.pixel_8_mic_muted"); + ///Pixel 8 Mobile data + public BinarySensorEntity Pixel8MobileData => new(_haContext, "binary_sensor.pixel_8_mobile_data"); + ///Pixel 8 Mobile data roaming + public BinarySensorEntity Pixel8MobileDataRoaming => new(_haContext, "binary_sensor.pixel_8_mobile_data_roaming"); + ///Pixel 8 Music active + public BinarySensorEntity Pixel8MusicActive => new(_haContext, "binary_sensor.pixel_8_music_active"); + ///Pixel 8 NFC state + public BinarySensorEntity Pixel8NfcState => new(_haContext, "binary_sensor.pixel_8_nfc_state"); + ///Pixel 8 Speakerphone + public BinarySensorEntity Pixel8Speakerphone => new(_haContext, "binary_sensor.pixel_8_speakerphone"); + ///Pixel 8 WiFi state + public BinarySensorEntity Pixel8WifiState => new(_haContext, "binary_sensor.pixel_8_wifi_state"); +} + +public partial class ButtonEntities +{ + private readonly IHaContext _haContext; + public ButtonEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all button entities currently registered (at runtime) in Home Assistant as ButtonEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("button.")).Select(e => new ButtonEntity(e)); + ///M5Stack Atom Echo 31196c Factory reset + public ButtonEntity M5stackAtomEcho131196cFactoryReset => new(_haContext, "button.m5stack_atom_echo_1_31196c_factory_reset"); + ///M5Stack Atom Echo 31196c Safe Mode Boot + public ButtonEntity M5stackAtomEcho31196cSafeModeBoot => new(_haContext, "button.m5stack_atom_echo_31196c_safe_mode_boot"); +} + +public partial class CalendarEntities +{ + private readonly IHaContext _haContext; + public CalendarEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all calendar entities currently registered (at runtime) in Home Assistant as CalendarEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("calendar.")).Select(e => new CalendarEntity(e)); + ///Canada, QC + public CalendarEntity CanadaQc => new(_haContext, "calendar.canada_qc"); + ///Contact birthdays + public CalendarEntity ContactBirthdays => new(_haContext, "calendar.contact_birthdays"); + ///Personal + public CalendarEntity Personal => new(_haContext, "calendar.personal"); +} + +public partial class ConversationEntities +{ + private readonly IHaContext _haContext; + public ConversationEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all conversation entities currently registered (at runtime) in Home Assistant as ConversationEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("conversation.")).Select(e => new ConversationEntity(e)); + ///Home Assistant + public ConversationEntity HomeAssistant => new(_haContext, "conversation.home_assistant"); +} + +public partial class DeviceTrackerEntities +{ + private readonly IHaContext _haContext; + public DeviceTrackerEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all device_tracker entities currently registered (at runtime) in Home Assistant as DeviceTrackerEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("device_tracker.")).Select(e => new DeviceTrackerEntity(e)); + ///Pixel 8 + public DeviceTrackerEntity Pixel8 => new(_haContext, "device_tracker.pixel_8"); +} + +public partial class InputBooleanEntities +{ + private readonly IHaContext _haContext; + public InputBooleanEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all input_boolean entities currently registered (at runtime) in Home Assistant as InputBooleanEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("input_boolean.")).Select(e => new InputBooleanEntity(e)); + ///netdaemon_app_model_test_script + public InputBooleanEntity NetdaemonAppModelTestScript => new(_haContext, "input_boolean.netdaemon_app_model_test_script"); +} + +public partial class InputTextEntities +{ + private readonly IHaContext _haContext; + public InputTextEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all input_text entities currently registered (at runtime) in Home Assistant as InputTextEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("input_text.")).Select(e => new InputTextEntity(e)); + ///Assist - Timer 1 Location + public InputTextEntity AssistTimer1Location => new(_haContext, "input_text.assist_timer1_location"); + ///Assist - Timer 2 Location + public InputTextEntity AssistTimer2Location => new(_haContext, "input_text.assist_timer2_location"); + ///Assist - Timer 3 Location + public InputTextEntity AssistTimer3Location => new(_haContext, "input_text.assist_timer3_location"); +} + +public partial class LockEntities +{ + private readonly IHaContext _haContext; + public LockEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all lock entities currently registered (at runtime) in Home Assistant as LockEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("lock.")).Select(e => new LockEntity(e)); + ///Smartplug 1 Child lock + public LockEntity Smartplug1ChildLock => new(_haContext, "lock.smartplug_1_child_lock"); + ///Smartplug2 Child lock + public LockEntity Smartplug2ChildLock => new(_haContext, "lock.smartplug2_child_lock"); + ///Smartplug3 Child lock + public LockEntity Smartplug3ChildLock => new(_haContext, "lock.smartplug3_child_lock"); +} + +public partial class NumberEntities +{ + private readonly IHaContext _haContext; + public NumberEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all number entities currently registered (at runtime) in Home Assistant as NumberEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("number.")).Select(e => new NumberEntity(e)); + ///Smartplug 1 Timer + public NumberEntity Smartplug1Timer => new(_haContext, "number.smartplug_1_timer"); + ///Smartplug2 Timer + public NumberEntity Smartplug2Timer => new(_haContext, "number.smartplug2_timer"); + ///Smartplug3 Timer + public NumberEntity Smartplug3Timer => new(_haContext, "number.smartplug3_timer"); +} + +public partial class PersonEntities +{ + private readonly IHaContext _haContext; + public PersonEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all person entities currently registered (at runtime) in Home Assistant as PersonEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("person.")).Select(e => new PersonEntity(e)); + ///Mathis Hurtubise + public PersonEntity MathisHurtubise => new(_haContext, "person.mathis_hurtubise"); +} + +public partial class RemoteEntities +{ + private readonly IHaContext _haContext; + public RemoteEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all remote entities currently registered (at runtime) in Home Assistant as RemoteEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("remote.")).Select(e => new RemoteEntity(e)); + ///onn. 4K Streaming Box + public RemoteEntity Onn4kStreamingBox => new(_haContext, "remote.onn_4k_streaming_box"); +} + +public partial class ScriptEntities +{ + private readonly IHaContext _haContext; + public ScriptEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all script entities currently registered (at runtime) in Home Assistant as ScriptEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("script.")).Select(e => new ScriptEntity(e)); + ///Assist - TimerPause + public ScriptEntity AssistTimerpause => new(_haContext, "script.assist_timerpause"); + ///Assist - TimerStart + public ScriptEntity AssistTimerstart => new(_haContext, "script.assist_timerstart"); + ///Assist - TimerStop + public ScriptEntity AssistTimerstop => new(_haContext, "script.assist_timerstop"); + ///Spotify - Play Artist + public ScriptEntity PlayArtist => new(_haContext, "script.play_artist"); + ///Music - TurnOnUE + public ScriptEntity TurnOnUe => new(_haContext, "script.turn_on_ue"); +} + +public partial class SelectEntities +{ + private readonly IHaContext _haContext; + public SelectEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all select entities currently registered (at runtime) in Home Assistant as SelectEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("select.")).Select(e => new SelectEntity(e)); + ///M5Stack Atom Echo 31196c Assist pipeline + public SelectEntity M5stackAtomEcho131196cAssistPipeline => new(_haContext, "select.m5stack_atom_echo_1_31196c_assist_pipeline"); + ///M5Stack Atom Echo 31196c Finished speaking detection + public SelectEntity M5stackAtomEcho131196cFinishedSpeakingDetection => new(_haContext, "select.m5stack_atom_echo_1_31196c_finished_speaking_detection"); + ///M5Stack Atom Echo 31196c Wake word engine location + public SelectEntity M5stackAtomEcho131196cWakeWordEngineLocation => new(_haContext, "select.m5stack_atom_echo_1_31196c_wake_word_engine_location"); + ///Smartplug 1 Initial state + public SelectEntity Smartplug1InitialState => new(_haContext, "select.smartplug_1_initial_state"); + ///Smartplug 1 Light mode + public SelectEntity Smartplug1LightMode => new(_haContext, "select.smartplug_1_light_mode"); + ///Smartplug2 Initial state + public SelectEntity Smartplug2InitialState => new(_haContext, "select.smartplug2_initial_state"); + ///Smartplug2 Light mode + public SelectEntity Smartplug2LightMode => new(_haContext, "select.smartplug2_light_mode"); + ///Smartplug3 Initial state + public SelectEntity Smartplug3InitialState => new(_haContext, "select.smartplug3_initial_state"); + ///Smartplug3 Light mode + public SelectEntity Smartplug3LightMode => new(_haContext, "select.smartplug3_light_mode"); +} + +public partial class SensorEntities +{ + private readonly IHaContext _haContext; + public SensorEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all sensor entities currently registered (at runtime) in Home Assistant as SensorEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.")).Select(e => new SensorEntity(e)); + /// Enumerates all non-numeric sensor entities currently registered (at runtime) in Home Assistant as SensorEntity + public IEnumerable EnumerateAllNonNumeric() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.") && !(e.EntityState?.AttributesJson?.TryGetProperty("unit_of_measurement", out _) ?? false)).Select(e => new SensorEntity(e)); + /// Enumerates all numeric sensor entities currently registered (at runtime) in Home Assistant as NumericSensorEntity + public IEnumerable EnumerateAllNumeric() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sensor.") && (e.EntityState?.AttributesJson?.TryGetProperty("unit_of_measurement", out _) ?? false)).Select(e => new NumericSensorEntity(e)); + ///CODA-4680-FIZ External IP + public SensorEntity Coda4680FizExternalIp => new(_haContext, "sensor.coda_4680_fiz_external_ip"); + ///Pixel 8 Audio mode + public SensorEntity Pixel8AudioMode => new(_haContext, "sensor.pixel_8_audio_mode"); + ///Pixel 8 Battery health + public SensorEntity Pixel8BatteryHealth => new(_haContext, "sensor.pixel_8_battery_health"); + ///Pixel 8 Battery state + public SensorEntity Pixel8BatteryState => new(_haContext, "sensor.pixel_8_battery_state"); + ///Pixel 8 Beacon monitor + public SensorEntity Pixel8BeaconMonitor => new(_haContext, "sensor.pixel_8_beacon_monitor"); + ///Pixel 8 BLE transmitter + public SensorEntity Pixel8BleTransmitter => new(_haContext, "sensor.pixel_8_ble_transmitter"); + ///Pixel 8 Charger type + public SensorEntity Pixel8ChargerType => new(_haContext, "sensor.pixel_8_charger_type"); + ///Pixel 8 Current version + public SensorEntity Pixel8CurrentVersion => new(_haContext, "sensor.pixel_8_current_version"); + ///Pixel 8 Do Not Disturb sensor + public SensorEntity Pixel8DoNotDisturbSensor => new(_haContext, "sensor.pixel_8_do_not_disturb_sensor"); + ///Pixel 8 Last notification + public SensorEntity Pixel8LastNotification => new(_haContext, "sensor.pixel_8_last_notification"); + ///Pixel 8 Last reboot + public SensorEntity Pixel8LastReboot => new(_haContext, "sensor.pixel_8_last_reboot"); + ///Pixel 8 Last removed notification + public SensorEntity Pixel8LastRemovedNotification => new(_haContext, "sensor.pixel_8_last_removed_notification"); + ///Pixel 8 Last update trigger + public SensorEntity Pixel8LastUpdateTrigger => new(_haContext, "sensor.pixel_8_last_update_trigger"); + ///Pixel 8 Last used app + public SensorEntity Pixel8LastUsedApp => new(_haContext, "sensor.pixel_8_last_used_app"); + ///Pixel 8 Media session + public SensorEntity Pixel8MediaSession => new(_haContext, "sensor.pixel_8_media_session"); + ///Pixel 8 Network type + public SensorEntity Pixel8NetworkType => new(_haContext, "sensor.pixel_8_network_type"); + ///Pixel 8 Next alarm + public SensorEntity Pixel8NextAlarm => new(_haContext, "sensor.pixel_8_next_alarm"); + ///Pixel 8 OS version + public SensorEntity Pixel8OsVersion => new(_haContext, "sensor.pixel_8_os_version"); + ///Pixel 8 Public IP address + public SensorEntity Pixel8PublicIpAddress => new(_haContext, "sensor.pixel_8_public_ip_address"); + ///Pixel 8 Ringer mode + public SensorEntity Pixel8RingerMode => new(_haContext, "sensor.pixel_8_ringer_mode"); + ///Pixel 8 Screen brightness + public SensorEntity Pixel8ScreenBrightness => new(_haContext, "sensor.pixel_8_screen_brightness"); + ///Pixel 8 Volume level accessibility + public SensorEntity Pixel8VolumeLevelAccessibility => new(_haContext, "sensor.pixel_8_volume_level_accessibility"); + ///Pixel 8 Volume level alarm + public SensorEntity Pixel8VolumeLevelAlarm => new(_haContext, "sensor.pixel_8_volume_level_alarm"); + ///Pixel 8 Volume level call + public SensorEntity Pixel8VolumeLevelCall => new(_haContext, "sensor.pixel_8_volume_level_call"); + ///Pixel 8 Volume level DTMF + public SensorEntity Pixel8VolumeLevelDtmf => new(_haContext, "sensor.pixel_8_volume_level_dtmf"); + ///Pixel 8 Volume level music + public SensorEntity Pixel8VolumeLevelMusic => new(_haContext, "sensor.pixel_8_volume_level_music"); + ///Pixel 8 Volume level notification + public SensorEntity Pixel8VolumeLevelNotification => new(_haContext, "sensor.pixel_8_volume_level_notification"); + ///Pixel 8 Volume level ringer + public SensorEntity Pixel8VolumeLevelRinger => new(_haContext, "sensor.pixel_8_volume_level_ringer"); + ///Pixel 8 Volume level system + public SensorEntity Pixel8VolumeLevelSystem => new(_haContext, "sensor.pixel_8_volume_level_system"); + ///Pixel 8 WiFi BSSID + public SensorEntity Pixel8WifiBssid => new(_haContext, "sensor.pixel_8_wifi_bssid"); + ///Pixel 8 WiFi connection + public SensorEntity Pixel8WifiConnection => new(_haContext, "sensor.pixel_8_wifi_connection"); + ///Pixel 8 WiFi IP address + public SensorEntity Pixel8WifiIpAddress => new(_haContext, "sensor.pixel_8_wifi_ip_address"); + ///Sun Next dawn + public SensorEntity SunNextDawn => new(_haContext, "sensor.sun_next_dawn"); + ///Sun Next dusk + public SensorEntity SunNextDusk => new(_haContext, "sensor.sun_next_dusk"); + ///Sun Next midnight + public SensorEntity SunNextMidnight => new(_haContext, "sensor.sun_next_midnight"); + ///Sun Next noon + public SensorEntity SunNextNoon => new(_haContext, "sensor.sun_next_noon"); + ///Sun Next rising + public SensorEntity SunNextRising => new(_haContext, "sensor.sun_next_rising"); + ///Sun Next setting + public SensorEntity SunNextSetting => new(_haContext, "sensor.sun_next_setting"); + ///CODA-4680-FIZ Download speed + public NumericSensorEntity Coda4680FizDownloadSpeed => new(_haContext, "sensor.coda_4680_fiz_download_speed"); + ///CODA-4680-FIZ Upload speed + public NumericSensorEntity Coda4680FizUploadSpeed => new(_haContext, "sensor.coda_4680_fiz_upload_speed"); + ///Pixel 8 Battery level + public NumericSensorEntity Pixel8BatteryLevel => new(_haContext, "sensor.pixel_8_battery_level"); + ///Pixel 8 Battery power + public NumericSensorEntity Pixel8BatteryPower => new(_haContext, "sensor.pixel_8_battery_power"); + ///Pixel 8 Battery temperature + public NumericSensorEntity Pixel8BatteryTemperature => new(_haContext, "sensor.pixel_8_battery_temperature"); + ///Pixel 8 Bluetooth connection + public NumericSensorEntity Pixel8BluetoothConnection => new(_haContext, "sensor.pixel_8_bluetooth_connection"); + ///Pixel 8 IPv6 addresses + public NumericSensorEntity Pixel8Ipv6Addresses => new(_haContext, "sensor.pixel_8_ipv6_addresses"); + ///Pixel 8 Light sensor + public NumericSensorEntity Pixel8LightSensor => new(_haContext, "sensor.pixel_8_light_sensor"); + ///Pixel 8 Remaining charge time + public NumericSensorEntity Pixel8RemainingChargeTime => new(_haContext, "sensor.pixel_8_remaining_charge_time"); + ///Pixel 8 WiFi frequency + public NumericSensorEntity Pixel8WifiFrequency => new(_haContext, "sensor.pixel_8_wifi_frequency"); + ///Pixel 8 WiFi link speed + public NumericSensorEntity Pixel8WifiLinkSpeed => new(_haContext, "sensor.pixel_8_wifi_link_speed"); + ///Pixel 8 WiFi signal strength + public NumericSensorEntity Pixel8WifiSignalStrength => new(_haContext, "sensor.pixel_8_wifi_signal_strength"); +} + +public partial class SttEntities +{ + private readonly IHaContext _haContext; + public SttEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all stt entities currently registered (at runtime) in Home Assistant as SttEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("stt.")).Select(e => new SttEntity(e)); + ///faster-whisper + public SttEntity FasterWhisper => new(_haContext, "stt.faster_whisper"); +} + +public partial class SunEntities +{ + private readonly IHaContext _haContext; + public SunEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all sun entities currently registered (at runtime) in Home Assistant as SunEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("sun.")).Select(e => new SunEntity(e)); + ///Sun + public SunEntity Sun => new(_haContext, "sun.sun"); +} + +public partial class SwitchEntities +{ + private readonly IHaContext _haContext; + public SwitchEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all switch entities currently registered (at runtime) in Home Assistant as SwitchEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("switch.")).Select(e => new SwitchEntity(e)); + ///M5Stack Atom Echo 31196c Use listen light + public SwitchEntity M5stackAtomEcho131196cUseListenLight => new(_haContext, "switch.m5stack_atom_echo_1_31196c_use_listen_light"); + ///M5Stack Atom Echo 31196c Use wake word + public SwitchEntity M5stackAtomEcho31196cUseWakeWord => new(_haContext, "switch.m5stack_atom_echo_31196c_use_wake_word"); + ///Salon Lamp + public SwitchEntity Smartplug1 => new(_haContext, "switch.smartplug1"); + ///Smartplug2 None + public SwitchEntity Smartplug2None => new(_haContext, "switch.smartplug2_none"); + ///Office Lamp + public SwitchEntity Smartplug3 => new(_haContext, "switch.smartplug3"); +} + +public partial class TimerEntities +{ + private readonly IHaContext _haContext; + public TimerEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all timer entities currently registered (at runtime) in Home Assistant as TimerEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("timer.")).Select(e => new TimerEntity(e)); + ///Assist - Timer 1 + public TimerEntity AssistTimer1 => new(_haContext, "timer.assist_timer1"); + ///Assist - Timer 2 + public TimerEntity AssistTimer2 => new(_haContext, "timer.assist_timer2"); + ///Assist - Timer 3 + public TimerEntity AssistTimer3 => new(_haContext, "timer.assist_timer3"); +} + +public partial class TodoEntities +{ + private readonly IHaContext _haContext; + public TodoEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all todo entities currently registered (at runtime) in Home Assistant as TodoEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("todo.")).Select(e => new TodoEntity(e)); + ///Shopping List + public TodoEntity ShoppingList => new(_haContext, "todo.shopping_list"); +} + +public partial class TtsEntities +{ + private readonly IHaContext _haContext; + public TtsEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all tts entities currently registered (at runtime) in Home Assistant as TtsEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("tts.")).Select(e => new TtsEntity(e)); + ///piper + public TtsEntity Piper => new(_haContext, "tts.piper"); +} + +public partial class WakeWordEntities +{ + private readonly IHaContext _haContext; + public WakeWordEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all wake_word entities currently registered (at runtime) in Home Assistant as WakeWordEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("wake_word.")).Select(e => new WakeWordEntity(e)); + ///openwakeword + public WakeWordEntity Openwakeword => new(_haContext, "wake_word.openwakeword"); +} + +public partial class WeatherEntities +{ + private readonly IHaContext _haContext; + public WeatherEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all weather entities currently registered (at runtime) in Home Assistant as WeatherEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("weather.")).Select(e => new WeatherEntity(e)); + ///Forecast Home + public WeatherEntity ForecastHome => new(_haContext, "weather.forecast_home"); +} + +public partial class ZoneEntities +{ + private readonly IHaContext _haContext; + public ZoneEntities(IHaContext haContext) + { + _haContext = haContext; + } + + /// Enumerates all zone entities currently registered (at runtime) in Home Assistant as ZoneEntity + public IEnumerable EnumerateAll() => _haContext.GetAllEntities().Where(e => e.EntityId.StartsWith("zone.")).Select(e => new ZoneEntity(e)); + ///Home + public ZoneEntity Home => new(_haContext, "zone.home"); +} + +public partial record LightEntity : Entity, LightAttributes>, ILightEntityCore +{ + public LightEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public LightEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record LightAttributes +{ + [JsonPropertyName("supported_color_modes")] + public IReadOnlyList? SupportedColorModes { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } + + [JsonPropertyName("color_mode")] + public string? ColorMode { get; init; } + + [JsonPropertyName("min_color_temp_kelvin")] + public double? MinColorTempKelvin { get; init; } + + [JsonPropertyName("max_color_temp_kelvin")] + public double? MaxColorTempKelvin { get; init; } + + [JsonPropertyName("min_mireds")] + public double? MinMireds { get; init; } + + [JsonPropertyName("max_mireds")] + public double? MaxMireds { get; init; } + + [JsonPropertyName("brightness")] + public double? Brightness { get; init; } + + [JsonPropertyName("color_temp_kelvin")] + public double? ColorTempKelvin { get; init; } + + [JsonPropertyName("color_temp")] + public double? ColorTemp { get; init; } + + [JsonPropertyName("hs_color")] + public IReadOnlyList? HsColor { get; init; } + + [JsonPropertyName("rgb_color")] + public IReadOnlyList? RgbColor { get; init; } + + [JsonPropertyName("xy_color")] + public IReadOnlyList? XyColor { get; init; } + + [JsonPropertyName("entity_id")] + public IReadOnlyList? EntityId { get; init; } + + [JsonPropertyName("effect_list")] + public IReadOnlyList? EffectList { get; init; } + + [JsonPropertyName("color")] + public object? Color { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record MediaPlayerEntity : Entity, MediaPlayerAttributes>, IMediaPlayerEntityCore +{ + public MediaPlayerEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public MediaPlayerEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record MediaPlayerAttributes +{ + [JsonPropertyName("app_id")] + public string? AppId { get; init; } + + [JsonPropertyName("app_name")] + public string? AppName { get; init; } + + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("entity_picture_local")] + public string? EntityPictureLocal { get; init; } + + [JsonPropertyName("entity_picture")] + public string? EntityPicture { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } + + [JsonPropertyName("volume_level")] + public double? VolumeLevel { get; init; } + + [JsonPropertyName("is_volume_muted")] + public bool? IsVolumeMuted { get; init; } + + [JsonPropertyName("media_content_id")] + public string? MediaContentId { get; init; } + + [JsonPropertyName("media_content_type")] + public string? MediaContentType { get; init; } + + [JsonPropertyName("media_duration")] + public double? MediaDuration { get; init; } + + [JsonPropertyName("media_position")] + public double? MediaPosition { get; init; } + + [JsonPropertyName("media_position_updated_at")] + public string? MediaPositionUpdatedAt { get; init; } + + [JsonPropertyName("media_title")] + public string? MediaTitle { get; init; } + + [JsonPropertyName("media_album_name")] + public string? MediaAlbumName { get; init; } + + [JsonPropertyName("media_image_url")] + public string? MediaImageUrl { get; init; } + + [JsonPropertyName("media_artist")] + public string? MediaArtist { get; init; } + + [JsonPropertyName("sound_mode_list")] + public IReadOnlyList? SoundModeList { get; init; } + + [JsonPropertyName("media_track")] + public object? MediaTrack { get; init; } + + [JsonPropertyName("shuffle")] + public bool? Shuffle { get; init; } + + [JsonPropertyName("repeat")] + public string? Repeat { get; init; } + + [JsonPropertyName("source_list")] + public IReadOnlyList? SourceList { get; init; } + + [JsonPropertyName("source")] + public string? Source { get; init; } + + [JsonPropertyName("adb_response")] + public object? AdbResponse { get; init; } + + [JsonPropertyName("hdmi_input")] + public object? HdmiInput { get; init; } + + [JsonPropertyName("sound_mode")] + public string? SoundMode { get; init; } + + [JsonPropertyName("sound_mode_raw")] + public string? SoundModeRaw { get; init; } + + [JsonPropertyName("assumed_state")] + public bool? AssumedState { get; init; } + + [JsonPropertyName("sp_device_id")] + public object? SpDeviceId { get; init; } + + [JsonPropertyName("sp_device_name")] + public object? SpDeviceName { get; init; } + + [JsonPropertyName("sp_device_is_brand_sonos")] + public bool? SpDeviceIsBrandSonos { get; init; } + + [JsonPropertyName("sp_item_type")] + public string? SpItemType { get; init; } + + [JsonPropertyName("sp_user_country")] + public string? SpUserCountry { get; init; } + + [JsonPropertyName("sp_user_display_name")] + public string? SpUserDisplayName { get; init; } + + [JsonPropertyName("sp_user_email")] + public string? SpUserEmail { get; init; } + + [JsonPropertyName("sp_user_id")] + public string? SpUserId { get; init; } + + [JsonPropertyName("sp_user_product")] + public string? SpUserProduct { get; init; } + + [JsonPropertyName("sp_user_uri")] + public string? SpUserUri { get; init; } +} + +public partial record AutomationEntity : Entity, AutomationAttributes>, IAutomationEntityCore +{ + public AutomationEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public AutomationEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record AutomationAttributes +{ + [JsonPropertyName("last_triggered")] + public string? LastTriggered { get; init; } + + [JsonPropertyName("mode")] + public string? Mode { get; init; } + + [JsonPropertyName("current")] + public double? Current { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("id")] + public string? Id { get; init; } + + [JsonPropertyName("max")] + public double? Max { get; init; } +} + +public partial record BinarySensorEntity : Entity, BinarySensorAttributes>, IBinarySensorEntityCore +{ + public BinarySensorEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public BinarySensorEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record BinarySensorAttributes +{ + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } +} + +public partial record ButtonEntity : Entity, ButtonAttributes>, IButtonEntityCore +{ + public ButtonEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public ButtonEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record ButtonAttributes +{ + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record CalendarEntity : Entity, CalendarAttributes>, ICalendarEntityCore +{ + public CalendarEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public CalendarEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record CalendarAttributes +{ + [JsonPropertyName("message")] + public string? Message { get; init; } + + [JsonPropertyName("all_day")] + public bool? AllDay { get; init; } + + [JsonPropertyName("start_time")] + public string? StartTime { get; init; } + + [JsonPropertyName("end_time")] + public string? EndTime { get; init; } + + [JsonPropertyName("location")] + public string? Location { get; init; } + + [JsonPropertyName("description")] + public string? Description { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record ConversationEntity : Entity, ConversationAttributes> +{ + public ConversationEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public ConversationEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record ConversationAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } +} + +public partial record DeviceTrackerEntity : Entity, DeviceTrackerAttributes>, IDeviceTrackerEntityCore +{ + public DeviceTrackerEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public DeviceTrackerEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record DeviceTrackerAttributes +{ + [JsonPropertyName("source_type")] + public string? SourceType { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record InputBooleanEntity : Entity, InputBooleanAttributes>, IInputBooleanEntityCore +{ + public InputBooleanEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public InputBooleanEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record InputBooleanAttributes +{ + [JsonPropertyName("editable")] + public bool? Editable { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record InputTextEntity : Entity, InputTextAttributes>, IInputTextEntityCore +{ + public InputTextEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public InputTextEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record InputTextAttributes +{ + [JsonPropertyName("editable")] + public bool? Editable { get; init; } + + [JsonPropertyName("min")] + public double? Min { get; init; } + + [JsonPropertyName("max")] + public double? Max { get; init; } + + [JsonPropertyName("pattern")] + public object? Pattern { get; init; } + + [JsonPropertyName("mode")] + public string? Mode { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record LockEntity : Entity, LockAttributes>, ILockEntityCore +{ + public LockEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public LockEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record LockAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } +} + +public partial record NumberEntity : NumericEntity, NumberAttributes>, INumberEntityCore +{ + public NumberEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public NumberEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record NumberAttributes +{ + [JsonPropertyName("min")] + public double? Min { get; init; } + + [JsonPropertyName("max")] + public double? Max { get; init; } + + [JsonPropertyName("step")] + public double? Step { get; init; } + + [JsonPropertyName("mode")] + public string? Mode { get; init; } + + [JsonPropertyName("unit_of_measurement")] + public string? UnitOfMeasurement { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record PersonEntity : Entity, PersonAttributes>, IPersonEntityCore +{ + public PersonEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public PersonEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record PersonAttributes +{ + [JsonPropertyName("editable")] + public bool? Editable { get; init; } + + [JsonPropertyName("id")] + public string? Id { get; init; } + + [JsonPropertyName("device_trackers")] + public IReadOnlyList? DeviceTrackers { get; init; } + + [JsonPropertyName("user_id")] + public string? UserId { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record RemoteEntity : Entity, RemoteAttributes>, IRemoteEntityCore +{ + public RemoteEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public RemoteEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record RemoteAttributes +{ + [JsonPropertyName("activity_list")] + public IReadOnlyList? ActivityList { get; init; } + + [JsonPropertyName("current_activity")] + public string? CurrentActivity { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } +} + +public partial record ScriptEntity : Entity, ScriptAttributes>, IScriptEntityCore +{ + public ScriptEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public ScriptEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record ScriptAttributes +{ + [JsonPropertyName("last_triggered")] + public string? LastTriggered { get; init; } + + [JsonPropertyName("mode")] + public string? Mode { get; init; } + + [JsonPropertyName("current")] + public double? Current { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("settings")] + public object? Settings { get; init; } +} + +public partial record SelectEntity : Entity, SelectAttributes>, ISelectEntityCore +{ + public SelectEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public SelectEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record SelectAttributes +{ + [JsonPropertyName("options")] + public IReadOnlyList? Options { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } +} + +public partial record SensorEntity : Entity, SensorAttributes>, ISensorEntityCore +{ + public SensorEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public SensorEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record SensorAttributes +{ + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("options")] + public IReadOnlyList? Options { get; init; } + + [JsonPropertyName("Advertise mode")] + public string? Advertisemode { get; init; } + + [JsonPropertyName("Measured power")] + public double? Measuredpower { get; init; } + + [JsonPropertyName("Supports transmitter")] + public bool? Supportstransmitter { get; init; } + + [JsonPropertyName("Transmitting power")] + public string? Transmittingpower { get; init; } + + [JsonPropertyName("id")] + public string? Id { get; init; } + + [JsonPropertyName("automatic")] + public bool? Automatic { get; init; } + + [JsonPropertyName("Label")] + public string? Label { get; init; } + + [JsonPropertyName("Local Time")] + public string? LocalTime { get; init; } + + [JsonPropertyName("Time in Milliseconds")] + public double? TimeinMilliseconds { get; init; } + + [JsonPropertyName("is_hidden")] + public bool? IsHidden { get; init; } + + [JsonPropertyName("metered")] + public bool? Metered { get; init; } +} + +public partial record NumericSensorEntity : NumericEntity, NumericSensorAttributes>, ISensorEntityCore +{ + public NumericSensorEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public NumericSensorEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record NumericSensorAttributes +{ + [JsonPropertyName("state_class")] + public string? StateClass { get; init; } + + [JsonPropertyName("unit_of_measurement")] + public string? UnitOfMeasurement { get; init; } + + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("current")] + public double? Current { get; init; } + + [JsonPropertyName("voltage")] + public double? Voltage { get; init; } + + [JsonPropertyName("connected_not_paired_devices")] + public IReadOnlyList? ConnectedNotPairedDevices { get; init; } + + [JsonPropertyName("connected_paired_devices")] + public IReadOnlyList? ConnectedPairedDevices { get; init; } + + [JsonPropertyName("paired_devices")] + public IReadOnlyList? PairedDevices { get; init; } + + [JsonPropertyName("ip6_addresses")] + public IReadOnlyList? Ip6Addresses { get; init; } +} + +public partial record SttEntity : Entity, SttAttributes> +{ + public SttEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public SttEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record SttAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record SunEntity : Entity, SunAttributes>, ISunEntityCore +{ + public SunEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public SunEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record SunAttributes +{ + [JsonPropertyName("next_dawn")] + public string? NextDawn { get; init; } + + [JsonPropertyName("next_dusk")] + public string? NextDusk { get; init; } + + [JsonPropertyName("next_midnight")] + public string? NextMidnight { get; init; } + + [JsonPropertyName("next_noon")] + public string? NextNoon { get; init; } + + [JsonPropertyName("next_rising")] + public string? NextRising { get; init; } + + [JsonPropertyName("next_setting")] + public string? NextSetting { get; init; } + + [JsonPropertyName("elevation")] + public double? Elevation { get; init; } + + [JsonPropertyName("azimuth")] + public double? Azimuth { get; init; } + + [JsonPropertyName("rising")] + public bool? Rising { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record SwitchEntity : Entity, SwitchAttributes>, ISwitchEntityCore +{ + public SwitchEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public SwitchEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record SwitchAttributes +{ + [JsonPropertyName("cyclic_schedule")] + public string? CyclicSchedule { get; init; } + + [JsonPropertyName("random_schedule")] + public string? RandomSchedule { get; init; } + + [JsonPropertyName("inching")] + public string? Inching { get; init; } + + [JsonPropertyName("device_class")] + public string? DeviceClass { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record TimerEntity : Entity, TimerAttributes>, ITimerEntityCore +{ + public TimerEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public TimerEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record TimerAttributes +{ + [JsonPropertyName("duration")] + public string? Duration { get; init; } + + [JsonPropertyName("editable")] + public bool? Editable { get; init; } + + [JsonPropertyName("restore")] + public bool? Restore { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record TodoEntity : Entity, TodoAttributes> +{ + public TodoEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public TodoEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record TodoAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } +} + +public partial record TtsEntity : Entity, TtsAttributes> +{ + public TtsEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public TtsEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record TtsAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record WakeWordEntity : Entity, WakeWordAttributes> +{ + public WakeWordEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public WakeWordEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record WakeWordAttributes +{ + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public partial record WeatherEntity : Entity, WeatherAttributes>, IWeatherEntityCore +{ + public WeatherEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public WeatherEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record WeatherAttributes +{ + [JsonPropertyName("temperature")] + public double? Temperature { get; init; } + + [JsonPropertyName("dew_point")] + public double? DewPoint { get; init; } + + [JsonPropertyName("temperature_unit")] + public string? TemperatureUnit { get; init; } + + [JsonPropertyName("humidity")] + public double? Humidity { get; init; } + + [JsonPropertyName("cloud_coverage")] + public double? CloudCoverage { get; init; } + + [JsonPropertyName("pressure")] + public double? Pressure { get; init; } + + [JsonPropertyName("pressure_unit")] + public string? PressureUnit { get; init; } + + [JsonPropertyName("wind_bearing")] + public double? WindBearing { get; init; } + + [JsonPropertyName("wind_speed")] + public double? WindSpeed { get; init; } + + [JsonPropertyName("wind_speed_unit")] + public string? WindSpeedUnit { get; init; } + + [JsonPropertyName("visibility_unit")] + public string? VisibilityUnit { get; init; } + + [JsonPropertyName("precipitation_unit")] + public string? PrecipitationUnit { get; init; } + + [JsonPropertyName("attribution")] + public string? Attribution { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } + + [JsonPropertyName("supported_features")] + public double? SupportedFeatures { get; init; } +} + +public partial record ZoneEntity : Entity, ZoneAttributes>, IZoneEntityCore +{ + public ZoneEntity(IHaContext haContext, string entityId) : base(haContext, entityId) + { + } + + public ZoneEntity(IEntityCore entity) : base(entity) + { + } +} + +public partial record ZoneAttributes +{ + [JsonPropertyName("latitude")] + public double? Latitude { get; init; } + + [JsonPropertyName("longitude")] + public double? Longitude { get; init; } + + [JsonPropertyName("radius")] + public double? Radius { get; init; } + + [JsonPropertyName("passive")] + public bool? Passive { get; init; } + + [JsonPropertyName("persons")] + public IReadOnlyList? Persons { get; init; } + + [JsonPropertyName("editable")] + public bool? Editable { get; init; } + + [JsonPropertyName("icon")] + public string? Icon { get; init; } + + [JsonPropertyName("friendly_name")] + public string? FriendlyName { get; init; } +} + +public interface IServices +{ + AutomationServices Automation { get; } + + BackupServices Backup { get; } + + ButtonServices Button { get; } + + CalendarServices Calendar { get; } + + CastServices Cast { get; } + + ClimateServices Climate { get; } + + ConversationServices Conversation { get; } + + CounterServices Counter { get; } + + DeviceTrackerServices DeviceTracker { get; } + + ExtendedOllamaConversationServices ExtendedOllamaConversation { get; } + + FfmpegServices Ffmpeg { get; } + + FrontendServices Frontend { get; } + + HomeassistantServices Homeassistant { get; } + + InputBooleanServices InputBoolean { get; } + + InputButtonServices InputButton { get; } + + InputDatetimeServices InputDatetime { get; } + + InputNumberServices InputNumber { get; } + + InputSelectServices InputSelect { get; } + + InputTextServices InputText { get; } + + LightServices Light { get; } + + LockServices Lock { get; } + + LogbookServices Logbook { get; } + + LoggerServices Logger { get; } + + LovelaceServices Lovelace { get; } + + MediaPlayerServices MediaPlayer { get; } + + NetdaemonServices Netdaemon { get; } + + NotifyServices Notify { get; } + + NumberServices Number { get; } + + PersistentNotificationServices PersistentNotification { get; } + + PersonServices Person { get; } + + RecorderServices Recorder { get; } + + RemoteServices Remote { get; } + + RestServices Rest { get; } + + SceneServices Scene { get; } + + ScheduleServices Schedule { get; } + + ScriptServices Script { get; } + + SelectServices Select { get; } + + ShellCommandServices ShellCommand { get; } + + ShoppingListServices ShoppingList { get; } + + SpotifyplusServices Spotifyplus { get; } + + SwitchServices Switch { get; } + + SystemLogServices SystemLog { get; } + + TimerServices Timer { get; } + + TodoServices Todo { get; } + + TtsServices Tts { get; } + + WeatherServices Weather { get; } + + ZoneServices Zone { get; } +} + +public partial class Services : IServices +{ + private readonly IHaContext _haContext; + public Services(IHaContext haContext) + { + _haContext = haContext; + } + + public AutomationServices Automation => new(_haContext); + public BackupServices Backup => new(_haContext); + public ButtonServices Button => new(_haContext); + public CalendarServices Calendar => new(_haContext); + public CastServices Cast => new(_haContext); + public ClimateServices Climate => new(_haContext); + public ConversationServices Conversation => new(_haContext); + public CounterServices Counter => new(_haContext); + public DeviceTrackerServices DeviceTracker => new(_haContext); + public ExtendedOllamaConversationServices ExtendedOllamaConversation => new(_haContext); + public FfmpegServices Ffmpeg => new(_haContext); + public FrontendServices Frontend => new(_haContext); + public HomeassistantServices Homeassistant => new(_haContext); + public InputBooleanServices InputBoolean => new(_haContext); + public InputButtonServices InputButton => new(_haContext); + public InputDatetimeServices InputDatetime => new(_haContext); + public InputNumberServices InputNumber => new(_haContext); + public InputSelectServices InputSelect => new(_haContext); + public InputTextServices InputText => new(_haContext); + public LightServices Light => new(_haContext); + public LockServices Lock => new(_haContext); + public LogbookServices Logbook => new(_haContext); + public LoggerServices Logger => new(_haContext); + public LovelaceServices Lovelace => new(_haContext); + public MediaPlayerServices MediaPlayer => new(_haContext); + public NetdaemonServices Netdaemon => new(_haContext); + public NotifyServices Notify => new(_haContext); + public NumberServices Number => new(_haContext); + public PersistentNotificationServices PersistentNotification => new(_haContext); + public PersonServices Person => new(_haContext); + public RecorderServices Recorder => new(_haContext); + public RemoteServices Remote => new(_haContext); + public RestServices Rest => new(_haContext); + public SceneServices Scene => new(_haContext); + public ScheduleServices Schedule => new(_haContext); + public ScriptServices Script => new(_haContext); + public SelectServices Select => new(_haContext); + public ShellCommandServices ShellCommand => new(_haContext); + public ShoppingListServices ShoppingList => new(_haContext); + public SpotifyplusServices Spotifyplus => new(_haContext); + public SwitchServices Switch => new(_haContext); + public SystemLogServices SystemLog => new(_haContext); + public TimerServices Timer => new(_haContext); + public TodoServices Todo => new(_haContext); + public TtsServices Tts => new(_haContext); + public WeatherServices Weather => new(_haContext); + public ZoneServices Zone => new(_haContext); +} + +public partial class AutomationServices +{ + private readonly IHaContext _haContext; + public AutomationServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads the automation configuration. + public void Reload(object? data = null) + { + _haContext.CallService("automation", "reload", null, data); + } + + ///Toggles (enable / disable) an automation. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("automation", "toggle", target, data); + } + + ///Triggers the actions of an automation. + ///The target for this service call + public void Trigger(ServiceTarget target, AutomationTriggerParameters data) + { + _haContext.CallService("automation", "trigger", target, data); + } + + ///Triggers the actions of an automation. + ///Defines whether or not the conditions will be skipped. + public void Trigger(ServiceTarget target, bool? skipCondition = null) + { + _haContext.CallService("automation", "trigger", target, new AutomationTriggerParameters { SkipCondition = skipCondition }); + } + + ///Disables an automation. + ///The target for this service call + public void TurnOff(ServiceTarget target, AutomationTurnOffParameters data) + { + _haContext.CallService("automation", "turn_off", target, data); + } + + ///Disables an automation. + ///Stops currently running actions. + public void TurnOff(ServiceTarget target, bool? stopActions = null) + { + _haContext.CallService("automation", "turn_off", target, new AutomationTurnOffParameters { StopActions = stopActions }); + } + + ///Enables an automation. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("automation", "turn_on", target, data); + } +} + +public partial record AutomationTriggerParameters +{ + ///Defines whether or not the conditions will be skipped. + [JsonPropertyName("skip_condition")] + public bool? SkipCondition { get; init; } +} + +public partial record AutomationTurnOffParameters +{ + ///Stops currently running actions. + [JsonPropertyName("stop_actions")] + public bool? StopActions { get; init; } +} + +public partial class BackupServices +{ + private readonly IHaContext _haContext; + public BackupServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Creates a new backup. + public void Create(object? data = null) + { + _haContext.CallService("backup", "create", null, data); + } +} + +public partial class ButtonServices +{ + private readonly IHaContext _haContext; + public ButtonServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Press the button entity. + ///The target for this service call + public void Press(ServiceTarget target, object? data = null) + { + _haContext.CallService("button", "press", target, data); + } +} + +public partial class CalendarServices +{ + private readonly IHaContext _haContext; + public CalendarServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Adds a new calendar event. + ///The target for this service call + public void CreateEvent(ServiceTarget target, CalendarCreateEventParameters data) + { + _haContext.CallService("calendar", "create_event", target, data); + } + + ///Adds a new calendar event. + ///Defines the short summary or subject for the event. eg: Department Party + ///A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design. + ///The date and time the event should start. eg: 2022-03-22 20:00:00 + ///The date and time the event should end. eg: 2022-03-22 22:00:00 + ///The date the all-day event should start. eg: 2022-03-22 + ///The date the all-day event should end (exclusive). eg: 2022-03-23 + ///Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2} + ///The location of the event. eg: Conference Room - F123, Bldg. 002 + public void CreateEvent(ServiceTarget target, string summary, string? description = null, DateTime? startDateTime = null, DateTime? endDateTime = null, DateOnly? startDate = null, DateOnly? endDate = null, object? @in = null, string? location = null) + { + _haContext.CallService("calendar", "create_event", target, new CalendarCreateEventParameters { Summary = summary, Description = description, StartDateTime = startDateTime, EndDateTime = endDateTime, StartDate = startDate, EndDate = endDate, In = @in, Location = location }); + } + + ///Get events on a calendar within a time range. + ///The target for this service call + public void GetEvents(ServiceTarget target, CalendarGetEventsParameters data) + { + _haContext.CallService("calendar", "get_events", target, data); + } + + ///Get events on a calendar within a time range. + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + ///Returns active events from start_date_time until the specified duration. + public void GetEvents(ServiceTarget target, DateTime? startDateTime = null, DateTime? endDateTime = null, object? duration = null) + { + _haContext.CallService("calendar", "get_events", target, new CalendarGetEventsParameters { StartDateTime = startDateTime, EndDateTime = endDateTime, Duration = duration }); + } + + ///Get events on a calendar within a time range. + ///The target for this service call + public Task GetEventsAsync(ServiceTarget target, CalendarGetEventsParameters data) + { + return _haContext.CallServiceWithResponseAsync("calendar", "get_events", target, data); + } + + ///Get events on a calendar within a time range. + ///The target for this service call + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + ///Returns active events from start_date_time until the specified duration. + public Task GetEventsAsync(ServiceTarget target, DateTime? startDateTime = null, DateTime? endDateTime = null, object? duration = null) + { + return _haContext.CallServiceWithResponseAsync("calendar", "get_events", target, new CalendarGetEventsParameters { StartDateTime = startDateTime, EndDateTime = endDateTime, Duration = duration }); + } +} + +public partial record CalendarCreateEventParameters +{ + ///Defines the short summary or subject for the event. eg: Department Party + [JsonPropertyName("summary")] + public string? Summary { get; init; } + + ///A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design. + [JsonPropertyName("description")] + public string? Description { get; init; } + + ///The date and time the event should start. eg: 2022-03-22 20:00:00 + [JsonPropertyName("start_date_time")] + public DateTime? StartDateTime { get; init; } + + ///The date and time the event should end. eg: 2022-03-22 22:00:00 + [JsonPropertyName("end_date_time")] + public DateTime? EndDateTime { get; init; } + + ///The date the all-day event should start. eg: 2022-03-22 + [JsonPropertyName("start_date")] + public DateOnly? StartDate { get; init; } + + ///The date the all-day event should end (exclusive). eg: 2022-03-23 + [JsonPropertyName("end_date")] + public DateOnly? EndDate { get; init; } + + ///Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2} + [JsonPropertyName("in")] + public object? In { get; init; } + + ///The location of the event. eg: Conference Room - F123, Bldg. 002 + [JsonPropertyName("location")] + public string? Location { get; init; } +} + +public partial record CalendarGetEventsParameters +{ + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + [JsonPropertyName("start_date_time")] + public DateTime? StartDateTime { get; init; } + + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + [JsonPropertyName("end_date_time")] + public DateTime? EndDateTime { get; init; } + + ///Returns active events from start_date_time until the specified duration. + [JsonPropertyName("duration")] + public object? Duration { get; init; } +} + +public partial class CastServices +{ + private readonly IHaContext _haContext; + public CastServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Shows a dashboard view on a Chromecast device. + public void ShowLovelaceView(CastShowLovelaceViewParameters data) + { + _haContext.CallService("cast", "show_lovelace_view", null, data); + } + + ///Shows a dashboard view on a Chromecast device. + ///Media player entity to show the dashboard view on. + ///The URL path of the dashboard to show. eg: lovelace-cast + ///The path of the dashboard view to show. eg: downstairs + public void ShowLovelaceView(string entityId, string dashboardPath, string? viewPath = null) + { + _haContext.CallService("cast", "show_lovelace_view", null, new CastShowLovelaceViewParameters { EntityId = entityId, DashboardPath = dashboardPath, ViewPath = viewPath }); + } +} + +public partial record CastShowLovelaceViewParameters +{ + ///Media player entity to show the dashboard view on. + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The URL path of the dashboard to show. eg: lovelace-cast + [JsonPropertyName("dashboard_path")] + public string? DashboardPath { get; init; } + + ///The path of the dashboard view to show. eg: downstairs + [JsonPropertyName("view_path")] + public string? ViewPath { get; init; } +} + +public partial class ClimateServices +{ + private readonly IHaContext _haContext; + public ClimateServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Turns auxiliary heater on/off. + ///The target for this service call + public void SetAuxHeat(ServiceTarget target, ClimateSetAuxHeatParameters data) + { + _haContext.CallService("climate", "set_aux_heat", target, data); + } + + ///Turns auxiliary heater on/off. + ///New value of auxiliary heater. + public void SetAuxHeat(ServiceTarget target, bool auxHeat) + { + _haContext.CallService("climate", "set_aux_heat", target, new ClimateSetAuxHeatParameters { AuxHeat = auxHeat }); + } + + ///Sets fan operation mode. + ///The target for this service call + public void SetFanMode(ServiceTarget target, ClimateSetFanModeParameters data) + { + _haContext.CallService("climate", "set_fan_mode", target, data); + } + + ///Sets fan operation mode. + ///Fan operation mode. eg: low + public void SetFanMode(ServiceTarget target, string fanMode) + { + _haContext.CallService("climate", "set_fan_mode", target, new ClimateSetFanModeParameters { FanMode = fanMode }); + } + + ///Sets target humidity. + ///The target for this service call + public void SetHumidity(ServiceTarget target, ClimateSetHumidityParameters data) + { + _haContext.CallService("climate", "set_humidity", target, data); + } + + ///Sets target humidity. + ///Target humidity. + public void SetHumidity(ServiceTarget target, double humidity) + { + _haContext.CallService("climate", "set_humidity", target, new ClimateSetHumidityParameters { Humidity = humidity }); + } + + ///Sets HVAC operation mode. + ///The target for this service call + public void SetHvacMode(ServiceTarget target, ClimateSetHvacModeParameters data) + { + _haContext.CallService("climate", "set_hvac_mode", target, data); + } + + ///Sets HVAC operation mode. + ///HVAC operation mode. + public void SetHvacMode(ServiceTarget target, object? hvacMode = null) + { + _haContext.CallService("climate", "set_hvac_mode", target, new ClimateSetHvacModeParameters { HvacMode = hvacMode }); + } + + ///Sets preset mode. + ///The target for this service call + public void SetPresetMode(ServiceTarget target, ClimateSetPresetModeParameters data) + { + _haContext.CallService("climate", "set_preset_mode", target, data); + } + + ///Sets preset mode. + ///Preset mode. eg: away + public void SetPresetMode(ServiceTarget target, string presetMode) + { + _haContext.CallService("climate", "set_preset_mode", target, new ClimateSetPresetModeParameters { PresetMode = presetMode }); + } + + ///Sets swing operation mode. + ///The target for this service call + public void SetSwingMode(ServiceTarget target, ClimateSetSwingModeParameters data) + { + _haContext.CallService("climate", "set_swing_mode", target, data); + } + + ///Sets swing operation mode. + ///Swing operation mode. eg: horizontal + public void SetSwingMode(ServiceTarget target, string swingMode) + { + _haContext.CallService("climate", "set_swing_mode", target, new ClimateSetSwingModeParameters { SwingMode = swingMode }); + } + + ///Sets target temperature. + ///The target for this service call + public void SetTemperature(ServiceTarget target, ClimateSetTemperatureParameters data) + { + _haContext.CallService("climate", "set_temperature", target, data); + } + + ///Sets target temperature. + ///Target temperature. + ///High target temperature. + ///Low target temperature. + ///HVAC operation mode. + public void SetTemperature(ServiceTarget target, double? temperature = null, double? targetTempHigh = null, double? targetTempLow = null, object? hvacMode = null) + { + _haContext.CallService("climate", "set_temperature", target, new ClimateSetTemperatureParameters { Temperature = temperature, TargetTempHigh = targetTempHigh, TargetTempLow = targetTempLow, HvacMode = hvacMode }); + } + + ///Toggles climate device, from on to off, or off to on. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("climate", "toggle", target, data); + } + + ///Turns climate device off. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("climate", "turn_off", target, data); + } + + ///Turns climate device on. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("climate", "turn_on", target, data); + } +} + +public partial record ClimateSetAuxHeatParameters +{ + ///New value of auxiliary heater. + [JsonPropertyName("aux_heat")] + public bool? AuxHeat { get; init; } +} + +public partial record ClimateSetFanModeParameters +{ + ///Fan operation mode. eg: low + [JsonPropertyName("fan_mode")] + public string? FanMode { get; init; } +} + +public partial record ClimateSetHumidityParameters +{ + ///Target humidity. + [JsonPropertyName("humidity")] + public double? Humidity { get; init; } +} + +public partial record ClimateSetHvacModeParameters +{ + ///HVAC operation mode. + [JsonPropertyName("hvac_mode")] + public object? HvacMode { get; init; } +} + +public partial record ClimateSetPresetModeParameters +{ + ///Preset mode. eg: away + [JsonPropertyName("preset_mode")] + public string? PresetMode { get; init; } +} + +public partial record ClimateSetSwingModeParameters +{ + ///Swing operation mode. eg: horizontal + [JsonPropertyName("swing_mode")] + public string? SwingMode { get; init; } +} + +public partial record ClimateSetTemperatureParameters +{ + ///Target temperature. + [JsonPropertyName("temperature")] + public double? Temperature { get; init; } + + ///High target temperature. + [JsonPropertyName("target_temp_high")] + public double? TargetTempHigh { get; init; } + + ///Low target temperature. + [JsonPropertyName("target_temp_low")] + public double? TargetTempLow { get; init; } + + ///HVAC operation mode. + [JsonPropertyName("hvac_mode")] + public object? HvacMode { get; init; } +} + +public partial class ConversationServices +{ + private readonly IHaContext _haContext; + public ConversationServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Launches a conversation from a transcribed text. + public void Process(ConversationProcessParameters data) + { + _haContext.CallService("conversation", "process", null, data); + } + + ///Launches a conversation from a transcribed text. + ///Transcribed text input. eg: Turn all lights on + ///Language of text. Defaults to server language. eg: NL + ///Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant + ///ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1 + public void Process(string text, string? language = null, object? agentId = null, string? conversationId = null) + { + _haContext.CallService("conversation", "process", null, new ConversationProcessParameters { Text = text, Language = language, AgentId = agentId, ConversationId = conversationId }); + } + + ///Launches a conversation from a transcribed text. + public Task ProcessAsync(ConversationProcessParameters data) + { + return _haContext.CallServiceWithResponseAsync("conversation", "process", null, data); + } + + ///Launches a conversation from a transcribed text. + ///Transcribed text input. eg: Turn all lights on + ///Language of text. Defaults to server language. eg: NL + ///Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant + ///ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1 + public Task ProcessAsync(string text, string? language = null, object? agentId = null, string? conversationId = null) + { + return _haContext.CallServiceWithResponseAsync("conversation", "process", null, new ConversationProcessParameters { Text = text, Language = language, AgentId = agentId, ConversationId = conversationId }); + } + + ///Reloads the intent configuration. + public void Reload(ConversationReloadParameters data) + { + _haContext.CallService("conversation", "reload", null, data); + } + + ///Reloads the intent configuration. + ///Language to clear cached intents for. Defaults to server language. eg: NL + ///Conversation agent to reload. eg: homeassistant + public void Reload(string? language = null, object? agentId = null) + { + _haContext.CallService("conversation", "reload", null, new ConversationReloadParameters { Language = language, AgentId = agentId }); + } +} + +public partial record ConversationProcessParameters +{ + ///Transcribed text input. eg: Turn all lights on + [JsonPropertyName("text")] + public string? Text { get; init; } + + ///Language of text. Defaults to server language. eg: NL + [JsonPropertyName("language")] + public string? Language { get; init; } + + ///Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands. eg: homeassistant + [JsonPropertyName("agent_id")] + public object? AgentId { get; init; } + + ///ID of the conversation, to be able to continue a previous conversation eg: my_conversation_1 + [JsonPropertyName("conversation_id")] + public string? ConversationId { get; init; } +} + +public partial record ConversationReloadParameters +{ + ///Language to clear cached intents for. Defaults to server language. eg: NL + [JsonPropertyName("language")] + public string? Language { get; init; } + + ///Conversation agent to reload. eg: homeassistant + [JsonPropertyName("agent_id")] + public object? AgentId { get; init; } +} + +public partial class CounterServices +{ + private readonly IHaContext _haContext; + public CounterServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Decrements a counter. + ///The target for this service call + public void Decrement(ServiceTarget target, object? data = null) + { + _haContext.CallService("counter", "decrement", target, data); + } + + ///Increments a counter. + ///The target for this service call + public void Increment(ServiceTarget target, object? data = null) + { + _haContext.CallService("counter", "increment", target, data); + } + + ///Resets a counter. + ///The target for this service call + public void Reset(ServiceTarget target, object? data = null) + { + _haContext.CallService("counter", "reset", target, data); + } + + ///Sets the counter value. + ///The target for this service call + public void SetValue(ServiceTarget target, CounterSetValueParameters data) + { + _haContext.CallService("counter", "set_value", target, data); + } + + ///Sets the counter value. + ///The new counter value the entity should be set to. + public void SetValue(ServiceTarget target, double value) + { + _haContext.CallService("counter", "set_value", target, new CounterSetValueParameters { Value = value }); + } +} + +public partial record CounterSetValueParameters +{ + ///The new counter value the entity should be set to. + [JsonPropertyName("value")] + public double? Value { get; init; } +} + +public partial class DeviceTrackerServices +{ + private readonly IHaContext _haContext; + public DeviceTrackerServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Records a seen tracked device. + public void See(DeviceTrackerSeeParameters data) + { + _haContext.CallService("device_tracker", "see", null, data); + } + + ///Records a seen tracked device. + ///MAC address of the device. eg: FF:FF:FF:FF:FF:FF + ///ID of the device (find the ID in `known_devices.yaml`). eg: phonedave + ///Hostname of the device. eg: Dave + ///Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone. eg: home + ///GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539]). eg: [51.509802, -0.086692] + ///Accuracy of the GPS coordinates. + ///Battery level of the device. + public void See(string? mac = null, string? devId = null, string? hostName = null, string? locationName = null, object? gps = null, double? gpsAccuracy = null, double? battery = null) + { + _haContext.CallService("device_tracker", "see", null, new DeviceTrackerSeeParameters { Mac = mac, DevId = devId, HostName = hostName, LocationName = locationName, Gps = gps, GpsAccuracy = gpsAccuracy, Battery = battery }); + } +} + +public partial record DeviceTrackerSeeParameters +{ + ///MAC address of the device. eg: FF:FF:FF:FF:FF:FF + [JsonPropertyName("mac")] + public string? Mac { get; init; } + + ///ID of the device (find the ID in `known_devices.yaml`). eg: phonedave + [JsonPropertyName("dev_id")] + public string? DevId { get; init; } + + ///Hostname of the device. eg: Dave + [JsonPropertyName("host_name")] + public string? HostName { get; init; } + + ///Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone. eg: home + [JsonPropertyName("location_name")] + public string? LocationName { get; init; } + + ///GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539]). eg: [51.509802, -0.086692] + [JsonPropertyName("gps")] + public object? Gps { get; init; } + + ///Accuracy of the GPS coordinates. + [JsonPropertyName("gps_accuracy")] + public double? GpsAccuracy { get; init; } + + ///Battery level of the device. + [JsonPropertyName("battery")] + public double? Battery { get; init; } +} + +public partial class ExtendedOllamaConversationServices +{ + private readonly IHaContext _haContext; + public ExtendedOllamaConversationServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Take in images and answer questions about them + public void QueryImage(ExtendedOllamaConversationQueryImageParameters data) + { + _haContext.CallService("extended_ollama_conversation", "query_image", null, data); + } + + ///Take in images and answer questions about them + ///The config entry to use for this service + ///The model eg: gpt-4-vision-preview + ///The text to ask about image eg: What’s in this image? + ///A list of images that would be asked eg: {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"} + ///The maximum tokens eg: 300 + public void QueryImage(object configEntry, string prompt, object images, string? model = null, double? maxTokens = null) + { + _haContext.CallService("extended_ollama_conversation", "query_image", null, new ExtendedOllamaConversationQueryImageParameters { ConfigEntry = configEntry, Model = model, Prompt = prompt, Images = images, MaxTokens = maxTokens }); + } + + ///Take in images and answer questions about them + public Task QueryImageAsync(ExtendedOllamaConversationQueryImageParameters data) + { + return _haContext.CallServiceWithResponseAsync("extended_ollama_conversation", "query_image", null, data); + } + + ///Take in images and answer questions about them + ///The config entry to use for this service + ///The model eg: gpt-4-vision-preview + ///The text to ask about image eg: What’s in this image? + ///A list of images that would be asked eg: {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"} + ///The maximum tokens eg: 300 + public Task QueryImageAsync(object configEntry, string prompt, object images, string? model = null, double? maxTokens = null) + { + return _haContext.CallServiceWithResponseAsync("extended_ollama_conversation", "query_image", null, new ExtendedOllamaConversationQueryImageParameters { ConfigEntry = configEntry, Model = model, Prompt = prompt, Images = images, MaxTokens = maxTokens }); + } +} + +public partial record ExtendedOllamaConversationQueryImageParameters +{ + ///The config entry to use for this service + [JsonPropertyName("config_entry")] + public object? ConfigEntry { get; init; } + + ///The model eg: gpt-4-vision-preview + [JsonPropertyName("model")] + public string? Model { get; init; } + + ///The text to ask about image eg: What’s in this image? + [JsonPropertyName("prompt")] + public string? Prompt { get; init; } + + ///A list of images that would be asked eg: {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"} + [JsonPropertyName("images")] + public object? Images { get; init; } + + ///The maximum tokens eg: 300 + [JsonPropertyName("max_tokens")] + public double? MaxTokens { get; init; } +} + +public partial class FfmpegServices +{ + private readonly IHaContext _haContext; + public FfmpegServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Sends a restart command to a ffmpeg based sensor. + public void Restart(FfmpegRestartParameters data) + { + _haContext.CallService("ffmpeg", "restart", null, data); + } + + ///Sends a restart command to a ffmpeg based sensor. + ///Name of entity that will restart. Platform dependent. + public void Restart(string? entityId = null) + { + _haContext.CallService("ffmpeg", "restart", null, new FfmpegRestartParameters { EntityId = entityId }); + } + + ///Sends a start command to a ffmpeg based sensor. + public void Start(FfmpegStartParameters data) + { + _haContext.CallService("ffmpeg", "start", null, data); + } + + ///Sends a start command to a ffmpeg based sensor. + ///Name of entity that will start. Platform dependent. + public void Start(string? entityId = null) + { + _haContext.CallService("ffmpeg", "start", null, new FfmpegStartParameters { EntityId = entityId }); + } + + ///Sends a stop command to a ffmpeg based sensor. + public void Stop(FfmpegStopParameters data) + { + _haContext.CallService("ffmpeg", "stop", null, data); + } + + ///Sends a stop command to a ffmpeg based sensor. + ///Name of entity that will stop. Platform dependent. + public void Stop(string? entityId = null) + { + _haContext.CallService("ffmpeg", "stop", null, new FfmpegStopParameters { EntityId = entityId }); + } +} + +public partial record FfmpegRestartParameters +{ + ///Name of entity that will restart. Platform dependent. + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } +} + +public partial record FfmpegStartParameters +{ + ///Name of entity that will start. Platform dependent. + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } +} + +public partial record FfmpegStopParameters +{ + ///Name of entity that will stop. Platform dependent. + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } +} + +public partial class FrontendServices +{ + private readonly IHaContext _haContext; + public FrontendServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads themes from the YAML-configuration. + public void ReloadThemes(object? data = null) + { + _haContext.CallService("frontend", "reload_themes", null, data); + } + + ///Sets the default theme Home Assistant uses. Can be overridden by a user. + public void SetTheme(FrontendSetThemeParameters data) + { + _haContext.CallService("frontend", "set_theme", null, data); + } + + ///Sets the default theme Home Assistant uses. Can be overridden by a user. + ///Name of a theme. eg: default + ///Theme mode. + public void SetTheme(object name, object? mode = null) + { + _haContext.CallService("frontend", "set_theme", null, new FrontendSetThemeParameters { Name = name, Mode = mode }); + } +} + +public partial record FrontendSetThemeParameters +{ + ///Name of a theme. eg: default + [JsonPropertyName("name")] + public object? Name { get; init; } + + ///Theme mode. + [JsonPropertyName("mode")] + public object? Mode { get; init; } +} + +public partial class HomeassistantServices +{ + private readonly IHaContext _haContext; + public HomeassistantServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Checks the Home Assistant YAML-configuration files for errors. Errors will be shown in the Home Assistant logs. + public void CheckConfig(object? data = null) + { + _haContext.CallService("homeassistant", "check_config", null, data); + } + + ///Reload all YAML configuration that can be reloaded without restarting Home Assistant. + public void ReloadAll(object? data = null) + { + _haContext.CallService("homeassistant", "reload_all", null, data); + } + + ///Reloads the specified config entry. + ///The target for this service call + public void ReloadConfigEntry(ServiceTarget target, HomeassistantReloadConfigEntryParameters data) + { + _haContext.CallService("homeassistant", "reload_config_entry", target, data); + } + + ///Reloads the specified config entry. + ///The configuration entry ID of the entry to be reloaded. eg: 8955375327824e14ba89e4b29cc3ec9a + public void ReloadConfigEntry(ServiceTarget target, string? entryId = null) + { + _haContext.CallService("homeassistant", "reload_config_entry", target, new HomeassistantReloadConfigEntryParameters { EntryId = entryId }); + } + + ///Reloads the core configuration from the YAML-configuration. + public void ReloadCoreConfig(object? data = null) + { + _haContext.CallService("homeassistant", "reload_core_config", null, data); + } + + ///Reloads Jinja2 templates found in the `custom_templates` folder in your config. New values will be applied on the next render of the template. + public void ReloadCustomTemplates(object? data = null) + { + _haContext.CallService("homeassistant", "reload_custom_templates", null, data); + } + + ///Restarts Home Assistant. + public void Restart(object? data = null) + { + _haContext.CallService("homeassistant", "restart", null, data); + } + + ///Saves the persistent states immediately. Maintains the normal periodic saving interval. + public void SavePersistentStates(object? data = null) + { + _haContext.CallService("homeassistant", "save_persistent_states", null, data); + } + + ///Updates the Home Assistant location. + public void SetLocation(HomeassistantSetLocationParameters data) + { + _haContext.CallService("homeassistant", "set_location", null, data); + } + + ///Updates the Home Assistant location. + ///Latitude of your location. eg: 32.87336 + ///Longitude of your location. eg: 117.22743 + ///Elevation of your location. eg: 120 + public void SetLocation(double latitude, double longitude, double? elevation = null) + { + _haContext.CallService("homeassistant", "set_location", null, new HomeassistantSetLocationParameters { Latitude = latitude, Longitude = longitude, Elevation = elevation }); + } + + ///Stops Home Assistant. + public void Stop(object? data = null) + { + _haContext.CallService("homeassistant", "stop", null, data); + } + + ///Generic action to toggle devices on/off under any domain. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("homeassistant", "toggle", target, data); + } + + ///Generic action to turn devices off under any domain. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("homeassistant", "turn_off", target, data); + } + + ///Generic action to turn devices on under any domain. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("homeassistant", "turn_on", target, data); + } + + ///Forces one or more entities to update its data. + public void UpdateEntity(HomeassistantUpdateEntityParameters data) + { + _haContext.CallService("homeassistant", "update_entity", null, data); + } + + ///Forces one or more entities to update its data. + ///List of entities to force update. + public void UpdateEntity(IEnumerable entityId) + { + _haContext.CallService("homeassistant", "update_entity", null, new HomeassistantUpdateEntityParameters { EntityId = entityId }); + } +} + +public partial record HomeassistantReloadConfigEntryParameters +{ + ///The configuration entry ID of the entry to be reloaded. eg: 8955375327824e14ba89e4b29cc3ec9a + [JsonPropertyName("entry_id")] + public string? EntryId { get; init; } +} + +public partial record HomeassistantSetLocationParameters +{ + ///Latitude of your location. eg: 32.87336 + [JsonPropertyName("latitude")] + public double? Latitude { get; init; } + + ///Longitude of your location. eg: 117.22743 + [JsonPropertyName("longitude")] + public double? Longitude { get; init; } + + ///Elevation of your location. eg: 120 + [JsonPropertyName("elevation")] + public double? Elevation { get; init; } +} + +public partial record HomeassistantUpdateEntityParameters +{ + ///List of entities to force update. + [JsonPropertyName("entity_id")] + public IEnumerable? EntityId { get; init; } +} + +public partial class InputBooleanServices +{ + private readonly IHaContext _haContext; + public InputBooleanServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_boolean", "reload", null, data); + } + + ///Toggles the helper on/off. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_boolean", "toggle", target, data); + } + + ///Turns off the helper. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_boolean", "turn_off", target, data); + } + + ///Turns on the helper. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_boolean", "turn_on", target, data); + } +} + +public partial class InputButtonServices +{ + private readonly IHaContext _haContext; + public InputButtonServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Mimics the physical button press on the device. + ///The target for this service call + public void Press(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_button", "press", target, data); + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_button", "reload", null, data); + } +} + +public partial class InputDatetimeServices +{ + private readonly IHaContext _haContext; + public InputDatetimeServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_datetime", "reload", null, data); + } + + ///Sets the date and/or time. + ///The target for this service call + public void SetDatetime(ServiceTarget target, InputDatetimeSetDatetimeParameters data) + { + _haContext.CallService("input_datetime", "set_datetime", target, data); + } + + ///Sets the date and/or time. + ///The target date. eg: "2019-04-20" + ///The target time. eg: "05:04:20" + ///The target date & time. eg: "2019-04-20 05:04:20" + ///The target date & time, expressed by a UNIX timestamp. + public void SetDatetime(ServiceTarget target, string? date = null, TimeOnly? time = null, string? datetime = null, double? timestamp = null) + { + _haContext.CallService("input_datetime", "set_datetime", target, new InputDatetimeSetDatetimeParameters { Date = date, Time = time, Datetime = datetime, Timestamp = timestamp }); + } +} + +public partial record InputDatetimeSetDatetimeParameters +{ + ///The target date. eg: "2019-04-20" + [JsonPropertyName("date")] + public string? Date { get; init; } + + ///The target time. eg: "05:04:20" + [JsonPropertyName("time")] + public TimeOnly? Time { get; init; } + + ///The target date & time. eg: "2019-04-20 05:04:20" + [JsonPropertyName("datetime")] + public string? Datetime { get; init; } + + ///The target date & time, expressed by a UNIX timestamp. + [JsonPropertyName("timestamp")] + public double? Timestamp { get; init; } +} + +public partial class InputNumberServices +{ + private readonly IHaContext _haContext; + public InputNumberServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Decrements the current value by 1 step. + ///The target for this service call + public void Decrement(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_number", "decrement", target, data); + } + + ///Increments the value by 1 step. + ///The target for this service call + public void Increment(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_number", "increment", target, data); + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_number", "reload", null, data); + } + + ///Sets the value. + ///The target for this service call + public void SetValue(ServiceTarget target, InputNumberSetValueParameters data) + { + _haContext.CallService("input_number", "set_value", target, data); + } + + ///Sets the value. + ///The target value. + public void SetValue(ServiceTarget target, double value) + { + _haContext.CallService("input_number", "set_value", target, new InputNumberSetValueParameters { Value = value }); + } +} + +public partial record InputNumberSetValueParameters +{ + ///The target value. + [JsonPropertyName("value")] + public double? Value { get; init; } +} + +public partial class InputSelectServices +{ + private readonly IHaContext _haContext; + public InputSelectServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_select", "reload", null, data); + } + + ///Selects the first option. + ///The target for this service call + public void SelectFirst(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_select", "select_first", target, data); + } + + ///Selects the last option. + ///The target for this service call + public void SelectLast(ServiceTarget target, object? data = null) + { + _haContext.CallService("input_select", "select_last", target, data); + } + + ///Select the next option. + ///The target for this service call + public void SelectNext(ServiceTarget target, InputSelectSelectNextParameters data) + { + _haContext.CallService("input_select", "select_next", target, data); + } + + ///Select the next option. + ///If the option should cycle from the last to the first option on the list. + public void SelectNext(ServiceTarget target, bool? cycle = null) + { + _haContext.CallService("input_select", "select_next", target, new InputSelectSelectNextParameters { Cycle = cycle }); + } + + ///Selects an option. + ///The target for this service call + public void SelectOption(ServiceTarget target, InputSelectSelectOptionParameters data) + { + _haContext.CallService("input_select", "select_option", target, data); + } + + ///Selects an option. + ///Option to be selected. eg: "Item A" + public void SelectOption(ServiceTarget target, string option) + { + _haContext.CallService("input_select", "select_option", target, new InputSelectSelectOptionParameters { Option = option }); + } + + ///Selects the previous option. + ///The target for this service call + public void SelectPrevious(ServiceTarget target, InputSelectSelectPreviousParameters data) + { + _haContext.CallService("input_select", "select_previous", target, data); + } + + ///Selects the previous option. + ///If the option should cycle from the last to the first option on the list. + public void SelectPrevious(ServiceTarget target, bool? cycle = null) + { + _haContext.CallService("input_select", "select_previous", target, new InputSelectSelectPreviousParameters { Cycle = cycle }); + } + + ///Sets the options. + ///The target for this service call + public void SetOptions(ServiceTarget target, InputSelectSetOptionsParameters data) + { + _haContext.CallService("input_select", "set_options", target, data); + } + + ///Sets the options. + ///List of options. eg: ["Item A", "Item B", "Item C"] + public void SetOptions(ServiceTarget target, IEnumerable options) + { + _haContext.CallService("input_select", "set_options", target, new InputSelectSetOptionsParameters { Options = options }); + } +} + +public partial record InputSelectSelectNextParameters +{ + ///If the option should cycle from the last to the first option on the list. + [JsonPropertyName("cycle")] + public bool? Cycle { get; init; } +} + +public partial record InputSelectSelectOptionParameters +{ + ///Option to be selected. eg: "Item A" + [JsonPropertyName("option")] + public string? Option { get; init; } +} + +public partial record InputSelectSelectPreviousParameters +{ + ///If the option should cycle from the last to the first option on the list. + [JsonPropertyName("cycle")] + public bool? Cycle { get; init; } +} + +public partial record InputSelectSetOptionsParameters +{ + ///List of options. eg: ["Item A", "Item B", "Item C"] + [JsonPropertyName("options")] + public IEnumerable? Options { get; init; } +} + +public partial class InputTextServices +{ + private readonly IHaContext _haContext; + public InputTextServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads helpers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("input_text", "reload", null, data); + } + + ///Sets the value. + ///The target for this service call + public void SetValue(ServiceTarget target, InputTextSetValueParameters data) + { + _haContext.CallService("input_text", "set_value", target, data); + } + + ///Sets the value. + ///The target value. eg: This is an example text + public void SetValue(ServiceTarget target, string value) + { + _haContext.CallService("input_text", "set_value", target, new InputTextSetValueParameters { Value = value }); + } +} + +public partial record InputTextSetValueParameters +{ + ///The target value. eg: This is an example text + [JsonPropertyName("value")] + public string? Value { get; init; } +} + +public partial class LightServices +{ + private readonly IHaContext _haContext; + public LightServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + ///The target for this service call + public void Toggle(ServiceTarget target, LightToggleParameters data) + { + _haContext.CallService("light", "toggle", target, data); + } + + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// eg: relax + /// + public void Toggle(ServiceTarget target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, object? white = null, string? profile = null, object? flash = null) + { + _haContext.CallService("light", "toggle", target, new LightToggleParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, White = white, Profile = profile, Flash = flash }); + } + + ///Turn off one or more lights. + ///The target for this service call + public void TurnOff(ServiceTarget target, LightTurnOffParameters data) + { + _haContext.CallService("light", "turn_off", target, data); + } + + ///Turn off one or more lights. + ///Duration it takes to get to next state. + /// + public void TurnOff(ServiceTarget target, double? transition = null, object? flash = null) + { + _haContext.CallService("light", "turn_off", target, new LightTurnOffParameters { Transition = transition, Flash = flash }); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + ///The target for this service call + public void TurnOn(ServiceTarget target, LightTurnOnParameters data) + { + _haContext.CallService("light", "turn_on", target, data); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Change brightness by a percentage. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// + /// eg: relax + /// + public void TurnOn(ServiceTarget target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, double? brightnessStepPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, double? brightnessStep = null, object? white = null, string? profile = null, object? flash = null) + { + _haContext.CallService("light", "turn_on", target, new LightTurnOnParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, BrightnessStepPct = brightnessStepPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, BrightnessStep = brightnessStep, White = white, Profile = profile, Flash = flash }); + } +} + +public partial record LightToggleParameters +{ + ///Duration it takes to get to next state. + [JsonPropertyName("transition")] + public double? Transition { get; init; } + + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + [JsonPropertyName("rgb_color")] + public IReadOnlyCollection? RgbColor { get; init; } + + ///Color temperature in Kelvin. + [JsonPropertyName("kelvin")] + public object? Kelvin { get; init; } + + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + [JsonPropertyName("brightness_pct")] + public double? BrightnessPct { get; init; } + + ///Light effect. + [JsonPropertyName("effect")] + public string? Effect { get; init; } + + /// eg: [255, 100, 100, 50] + [JsonPropertyName("rgbw_color")] + public object? RgbwColor { get; init; } + + /// eg: [255, 100, 100, 50, 70] + [JsonPropertyName("rgbww_color")] + public object? RgbwwColor { get; init; } + + [JsonPropertyName("color_name")] + public object? ColorName { get; init; } + + /// eg: [300, 70] + [JsonPropertyName("hs_color")] + public object? HsColor { get; init; } + + /// eg: [0.52, 0.43] + [JsonPropertyName("xy_color")] + public object? XyColor { get; init; } + + [JsonPropertyName("color_temp")] + public object? ColorTemp { get; init; } + + [JsonPropertyName("brightness")] + public double? Brightness { get; init; } + + [JsonPropertyName("white")] + public object? White { get; init; } + + /// eg: relax + [JsonPropertyName("profile")] + public string? Profile { get; init; } + + [JsonPropertyName("flash")] + public object? Flash { get; init; } +} + +public partial record LightTurnOffParameters +{ + ///Duration it takes to get to next state. + [JsonPropertyName("transition")] + public double? Transition { get; init; } + + [JsonPropertyName("flash")] + public object? Flash { get; init; } +} + +public partial record LightTurnOnParameters +{ + ///Duration it takes to get to next state. + [JsonPropertyName("transition")] + public double? Transition { get; init; } + + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + [JsonPropertyName("rgb_color")] + public IReadOnlyCollection? RgbColor { get; init; } + + ///Color temperature in Kelvin. + [JsonPropertyName("kelvin")] + public object? Kelvin { get; init; } + + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + [JsonPropertyName("brightness_pct")] + public double? BrightnessPct { get; init; } + + ///Change brightness by a percentage. + [JsonPropertyName("brightness_step_pct")] + public double? BrightnessStepPct { get; init; } + + ///Light effect. + [JsonPropertyName("effect")] + public string? Effect { get; init; } + + /// eg: [255, 100, 100, 50] + [JsonPropertyName("rgbw_color")] + public object? RgbwColor { get; init; } + + /// eg: [255, 100, 100, 50, 70] + [JsonPropertyName("rgbww_color")] + public object? RgbwwColor { get; init; } + + [JsonPropertyName("color_name")] + public object? ColorName { get; init; } + + /// eg: [300, 70] + [JsonPropertyName("hs_color")] + public object? HsColor { get; init; } + + /// eg: [0.52, 0.43] + [JsonPropertyName("xy_color")] + public object? XyColor { get; init; } + + [JsonPropertyName("color_temp")] + public object? ColorTemp { get; init; } + + [JsonPropertyName("brightness")] + public double? Brightness { get; init; } + + [JsonPropertyName("brightness_step")] + public double? BrightnessStep { get; init; } + + [JsonPropertyName("white")] + public object? White { get; init; } + + /// eg: relax + [JsonPropertyName("profile")] + public string? Profile { get; init; } + + [JsonPropertyName("flash")] + public object? Flash { get; init; } +} + +public partial class LockServices +{ + private readonly IHaContext _haContext; + public LockServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Locks a lock. + ///The target for this service call + public void Lock(ServiceTarget target, LockLockParameters data) + { + _haContext.CallService("lock", "lock", target, data); + } + + ///Locks a lock. + ///Code used to lock the lock. eg: 1234 + public void Lock(ServiceTarget target, string? code = null) + { + _haContext.CallService("lock", "lock", target, new LockLockParameters { Code = code }); + } + + ///Opens a lock. + ///The target for this service call + public void Open(ServiceTarget target, LockOpenParameters data) + { + _haContext.CallService("lock", "open", target, data); + } + + ///Opens a lock. + ///Code used to open the lock. eg: 1234 + public void Open(ServiceTarget target, string? code = null) + { + _haContext.CallService("lock", "open", target, new LockOpenParameters { Code = code }); + } + + ///Unlocks a lock. + ///The target for this service call + public void Unlock(ServiceTarget target, LockUnlockParameters data) + { + _haContext.CallService("lock", "unlock", target, data); + } + + ///Unlocks a lock. + ///Code used to unlock the lock. eg: 1234 + public void Unlock(ServiceTarget target, string? code = null) + { + _haContext.CallService("lock", "unlock", target, new LockUnlockParameters { Code = code }); + } +} + +public partial record LockLockParameters +{ + ///Code used to lock the lock. eg: 1234 + [JsonPropertyName("code")] + public string? Code { get; init; } +} + +public partial record LockOpenParameters +{ + ///Code used to open the lock. eg: 1234 + [JsonPropertyName("code")] + public string? Code { get; init; } +} + +public partial record LockUnlockParameters +{ + ///Code used to unlock the lock. eg: 1234 + [JsonPropertyName("code")] + public string? Code { get; init; } +} + +public partial class LogbookServices +{ + private readonly IHaContext _haContext; + public LogbookServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Creates a custom entry in the logbook. + public void Log(LogbookLogParameters data) + { + _haContext.CallService("logbook", "log", null, data); + } + + ///Creates a custom entry in the logbook. + ///Custom name for an entity, can be referenced using an `entity_id`. eg: Kitchen + ///Message of the logbook entry. eg: is being used + ///Entity to reference in the logbook entry. + ///Determines which icon is used in the logbook entry. The icon illustrates the integration domain related to this logbook entry. eg: light + public void Log(string name, string message, string? entityId = null, string? domain = null) + { + _haContext.CallService("logbook", "log", null, new LogbookLogParameters { Name = name, Message = message, EntityId = entityId, Domain = domain }); + } +} + +public partial record LogbookLogParameters +{ + ///Custom name for an entity, can be referenced using an `entity_id`. eg: Kitchen + [JsonPropertyName("name")] + public string? Name { get; init; } + + ///Message of the logbook entry. eg: is being used + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Entity to reference in the logbook entry. + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///Determines which icon is used in the logbook entry. The icon illustrates the integration domain related to this logbook entry. eg: light + [JsonPropertyName("domain")] + public string? Domain { get; init; } +} + +public partial class LoggerServices +{ + private readonly IHaContext _haContext; + public LoggerServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Sets the default log level for integrations. + public void SetDefaultLevel(LoggerSetDefaultLevelParameters data) + { + _haContext.CallService("logger", "set_default_level", null, data); + } + + ///Sets the default log level for integrations. + ///Default severity level for all integrations. + public void SetDefaultLevel(object? level = null) + { + _haContext.CallService("logger", "set_default_level", null, new LoggerSetDefaultLevelParameters { Level = level }); + } + + ///Sets the log level for one or more integrations. + public void SetLevel(object? data = null) + { + _haContext.CallService("logger", "set_level", null, data); + } +} + +public partial record LoggerSetDefaultLevelParameters +{ + ///Default severity level for all integrations. + [JsonPropertyName("level")] + public object? Level { get; init; } +} + +public partial class LovelaceServices +{ + private readonly IHaContext _haContext; + public LovelaceServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads dashboard resources from the YAML-configuration. + public void ReloadResources(object? data = null) + { + _haContext.CallService("lovelace", "reload_resources", null, data); + } +} + +public partial class MediaPlayerServices +{ + private readonly IHaContext _haContext; + public MediaPlayerServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Clears the playlist. + ///The target for this service call + public void ClearPlaylist(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "clear_playlist", target, data); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + ///The target for this service call + public void Join(ServiceTarget target, MediaPlayerJoinParameters data) + { + _haContext.CallService("media_player", "join", target, data); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + ///The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 + public void Join(ServiceTarget target, IEnumerable groupMembers) + { + _haContext.CallService("media_player", "join", target, new MediaPlayerJoinParameters { GroupMembers = groupMembers }); + } + + ///Selects the next track. + ///The target for this service call + public void MediaNextTrack(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_next_track", target, data); + } + + ///Pauses. + ///The target for this service call + public void MediaPause(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_pause", target, data); + } + + ///Starts playing. + ///The target for this service call + public void MediaPlay(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_play", target, data); + } + + ///Toggles play/pause. + ///The target for this service call + public void MediaPlayPause(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_play_pause", target, data); + } + + ///Selects the previous track. + ///The target for this service call + public void MediaPreviousTrack(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_previous_track", target, data); + } + + ///Allows you to go to a different part of the media that is currently playing. + ///The target for this service call + public void MediaSeek(ServiceTarget target, MediaPlayerMediaSeekParameters data) + { + _haContext.CallService("media_player", "media_seek", target, data); + } + + ///Allows you to go to a different part of the media that is currently playing. + ///Target position in the currently playing media. The format is platform dependent. + public void MediaSeek(ServiceTarget target, double seekPosition) + { + _haContext.CallService("media_player", "media_seek", target, new MediaPlayerMediaSeekParameters { SeekPosition = seekPosition }); + } + + ///Stops playing. + ///The target for this service call + public void MediaStop(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "media_stop", target, data); + } + + ///Starts playing specified media. + ///The target for this service call + public void PlayMedia(ServiceTarget target, MediaPlayerPlayMediaParameters data) + { + _haContext.CallService("media_player", "play_media", target, data); + } + + ///Starts playing specified media. + ///The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png + ///The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music + ///If the content should be played now or be added to the queue. + ///If the media should be played as an announcement. eg: true + public void PlayMedia(ServiceTarget target, string mediaContentId, string mediaContentType, object? enqueue = null, bool? announce = null) + { + _haContext.CallService("media_player", "play_media", target, new MediaPlayerPlayMediaParameters { MediaContentId = mediaContentId, MediaContentType = mediaContentType, Enqueue = enqueue, Announce = announce }); + } + + ///Playback mode that plays the media in a loop. + ///The target for this service call + public void RepeatSet(ServiceTarget target, MediaPlayerRepeatSetParameters data) + { + _haContext.CallService("media_player", "repeat_set", target, data); + } + + ///Playback mode that plays the media in a loop. + ///Repeat mode to set. + public void RepeatSet(ServiceTarget target, object repeat) + { + _haContext.CallService("media_player", "repeat_set", target, new MediaPlayerRepeatSetParameters { Repeat = repeat }); + } + + ///Selects a specific sound mode. + ///The target for this service call + public void SelectSoundMode(ServiceTarget target, MediaPlayerSelectSoundModeParameters data) + { + _haContext.CallService("media_player", "select_sound_mode", target, data); + } + + ///Selects a specific sound mode. + ///Name of the sound mode to switch to. eg: Music + public void SelectSoundMode(ServiceTarget target, string? soundMode = null) + { + _haContext.CallService("media_player", "select_sound_mode", target, new MediaPlayerSelectSoundModeParameters { SoundMode = soundMode }); + } + + ///Sends the media player the command to change input source. + ///The target for this service call + public void SelectSource(ServiceTarget target, MediaPlayerSelectSourceParameters data) + { + _haContext.CallService("media_player", "select_source", target, data); + } + + ///Sends the media player the command to change input source. + ///Name of the source to switch to. Platform dependent. eg: video1 + public void SelectSource(ServiceTarget target, string source) + { + _haContext.CallService("media_player", "select_source", target, new MediaPlayerSelectSourceParameters { Source = source }); + } + + ///Playback mode that selects the media in randomized order. + ///The target for this service call + public void ShuffleSet(ServiceTarget target, MediaPlayerShuffleSetParameters data) + { + _haContext.CallService("media_player", "shuffle_set", target, data); + } + + ///Playback mode that selects the media in randomized order. + ///Whether or not shuffle mode is enabled. + public void ShuffleSet(ServiceTarget target, bool shuffle) + { + _haContext.CallService("media_player", "shuffle_set", target, new MediaPlayerShuffleSetParameters { Shuffle = shuffle }); + } + + ///Toggles a media player on/off. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "toggle", target, data); + } + + ///Turns off the power of the media player. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "turn_off", target, data); + } + + ///Turns on the power of the media player. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "turn_on", target, data); + } + + ///Removes the player from a group. Only works on platforms which support player groups. + ///The target for this service call + public void Unjoin(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "unjoin", target, data); + } + + ///Turns down the volume. + ///The target for this service call + public void VolumeDown(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "volume_down", target, data); + } + + ///Mutes or unmutes the media player. + ///The target for this service call + public void VolumeMute(ServiceTarget target, MediaPlayerVolumeMuteParameters data) + { + _haContext.CallService("media_player", "volume_mute", target, data); + } + + ///Mutes or unmutes the media player. + ///Defines whether or not it is muted. + public void VolumeMute(ServiceTarget target, bool isVolumeMuted) + { + _haContext.CallService("media_player", "volume_mute", target, new MediaPlayerVolumeMuteParameters { IsVolumeMuted = isVolumeMuted }); + } + + ///Sets the volume level. + ///The target for this service call + public void VolumeSet(ServiceTarget target, MediaPlayerVolumeSetParameters data) + { + _haContext.CallService("media_player", "volume_set", target, data); + } + + ///Sets the volume level. + ///The volume. 0 is inaudible, 1 is the maximum volume. + public void VolumeSet(ServiceTarget target, double volumeLevel) + { + _haContext.CallService("media_player", "volume_set", target, new MediaPlayerVolumeSetParameters { VolumeLevel = volumeLevel }); + } + + ///Turns up the volume. + ///The target for this service call + public void VolumeUp(ServiceTarget target, object? data = null) + { + _haContext.CallService("media_player", "volume_up", target, data); + } +} + +public partial record MediaPlayerJoinParameters +{ + ///The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 + [JsonPropertyName("group_members")] + public IEnumerable? GroupMembers { get; init; } +} + +public partial record MediaPlayerMediaSeekParameters +{ + ///Target position in the currently playing media. The format is platform dependent. + [JsonPropertyName("seek_position")] + public double? SeekPosition { get; init; } +} + +public partial record MediaPlayerPlayMediaParameters +{ + ///The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png + [JsonPropertyName("media_content_id")] + public string? MediaContentId { get; init; } + + ///The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music + [JsonPropertyName("media_content_type")] + public string? MediaContentType { get; init; } + + ///If the content should be played now or be added to the queue. + [JsonPropertyName("enqueue")] + public object? Enqueue { get; init; } + + ///If the media should be played as an announcement. eg: true + [JsonPropertyName("announce")] + public bool? Announce { get; init; } +} + +public partial record MediaPlayerRepeatSetParameters +{ + ///Repeat mode to set. + [JsonPropertyName("repeat")] + public object? Repeat { get; init; } +} + +public partial record MediaPlayerSelectSoundModeParameters +{ + ///Name of the sound mode to switch to. eg: Music + [JsonPropertyName("sound_mode")] + public string? SoundMode { get; init; } +} + +public partial record MediaPlayerSelectSourceParameters +{ + ///Name of the source to switch to. Platform dependent. eg: video1 + [JsonPropertyName("source")] + public string? Source { get; init; } +} + +public partial record MediaPlayerShuffleSetParameters +{ + ///Whether or not shuffle mode is enabled. + [JsonPropertyName("shuffle")] + public bool? Shuffle { get; init; } +} + +public partial record MediaPlayerVolumeMuteParameters +{ + ///Defines whether or not it is muted. + [JsonPropertyName("is_volume_muted")] + public bool? IsVolumeMuted { get; init; } +} + +public partial record MediaPlayerVolumeSetParameters +{ + ///The volume. 0 is inaudible, 1 is the maximum volume. + [JsonPropertyName("volume_level")] + public double? VolumeLevel { get; init; } +} + +public partial class NetdaemonServices +{ + private readonly IHaContext _haContext; + public NetdaemonServices(IHaContext haContext) + { + _haContext = haContext; + } + + public void CallbackDemo(object? data = null) + { + _haContext.CallService("netdaemon", "callback_demo", null, data); + } + + ///Create an entity + public void EntityCreate(NetdaemonEntityCreateParameters data) + { + _haContext.CallService("netdaemon", "entity_create", null, data); + } + + ///Create an entity + ///The entity ID of the entity eg: sensor.awesome + ///The state of the entity eg: Lorem ipsum + ///The icon for the entity eg: mdi:rocket-launch-outline + ///The unit of measurement for the entity + ///List of options for a select entity + ///The attributes of the entity + public void EntityCreate(object? entityId = null, object? state = null, object? icon = null, object? unit = null, object? options = null, object? attributes = null) + { + _haContext.CallService("netdaemon", "entity_create", null, new NetdaemonEntityCreateParameters { EntityId = entityId, State = state, Icon = icon, Unit = unit, Options = options, Attributes = attributes }); + } + + ///Remove an entity + public void EntityRemove(NetdaemonEntityRemoveParameters data) + { + _haContext.CallService("netdaemon", "entity_remove", null, data); + } + + ///Remove an entity + ///The entity ID of the entity eg: sensor.awesome + public void EntityRemove(object? entityId = null) + { + _haContext.CallService("netdaemon", "entity_remove", null, new NetdaemonEntityRemoveParameters { EntityId = entityId }); + } + + ///Update an entity + public void EntityUpdate(NetdaemonEntityUpdateParameters data) + { + _haContext.CallService("netdaemon", "entity_update", null, data); + } + + ///Update an entity + ///The entity ID of the entity eg: sensor.awesome + ///The state of the entity eg: Lorem ipsum + ///The icon for the entity eg: mdi:rocket-launch-outline + ///The unit of measurement for the entity + ///List of options for a select entity + ///The attributes of the entity + public void EntityUpdate(object? entityId = null, object? state = null, object? icon = null, object? unit = null, object? options = null, object? attributes = null) + { + _haContext.CallService("netdaemon", "entity_update", null, new NetdaemonEntityUpdateParameters { EntityId = entityId, State = state, Icon = icon, Unit = unit, Options = options, Attributes = attributes }); + } + + ///Register a new service for netdaemon, used by the daemon and not to be used by users + public void RegisterService(NetdaemonRegisterServiceParameters data) + { + _haContext.CallService("netdaemon", "register_service", null, data); + } + + ///Register a new service for netdaemon, used by the daemon and not to be used by users + ///The name of the service to register + ///The class that implements the service call + ///The method to call + public void RegisterService(object? service = null, object? @class = null, object? @method = null) + { + _haContext.CallService("netdaemon", "register_service", null, new NetdaemonRegisterServiceParameters { Service = service, Class = @class, Method = @method }); + } + + public void ReloadApps(object? data = null) + { + _haContext.CallService("netdaemon", "reload_apps", null, data); + } +} + +public partial record NetdaemonEntityCreateParameters +{ + ///The entity ID of the entity eg: sensor.awesome + [JsonPropertyName("entity_id")] + public object? EntityId { get; init; } + + ///The state of the entity eg: Lorem ipsum + [JsonPropertyName("state")] + public object? State { get; init; } + + ///The icon for the entity eg: mdi:rocket-launch-outline + [JsonPropertyName("icon")] + public object? Icon { get; init; } + + ///The unit of measurement for the entity + [JsonPropertyName("unit")] + public object? Unit { get; init; } + + ///List of options for a select entity + [JsonPropertyName("options")] + public object? Options { get; init; } + + ///The attributes of the entity + [JsonPropertyName("attributes")] + public object? Attributes { get; init; } +} + +public partial record NetdaemonEntityRemoveParameters +{ + ///The entity ID of the entity eg: sensor.awesome + [JsonPropertyName("entity_id")] + public object? EntityId { get; init; } +} + +public partial record NetdaemonEntityUpdateParameters +{ + ///The entity ID of the entity eg: sensor.awesome + [JsonPropertyName("entity_id")] + public object? EntityId { get; init; } + + ///The state of the entity eg: Lorem ipsum + [JsonPropertyName("state")] + public object? State { get; init; } + + ///The icon for the entity eg: mdi:rocket-launch-outline + [JsonPropertyName("icon")] + public object? Icon { get; init; } + + ///The unit of measurement for the entity + [JsonPropertyName("unit")] + public object? Unit { get; init; } + + ///List of options for a select entity + [JsonPropertyName("options")] + public object? Options { get; init; } + + ///The attributes of the entity + [JsonPropertyName("attributes")] + public object? Attributes { get; init; } +} + +public partial record NetdaemonRegisterServiceParameters +{ + ///The name of the service to register + [JsonPropertyName("service")] + public object? Service { get; init; } + + ///The class that implements the service call + [JsonPropertyName("class")] + public object? Class { get; init; } + + ///The method to call + [JsonPropertyName("method")] + public object? Method { get; init; } +} + +public partial class NotifyServices +{ + private readonly IHaContext _haContext; + public NotifyServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Sends a notification message using the mobile_app_pixel_8 integration. + public void MobileAppPixel8(NotifyMobileAppPixel8Parameters data) + { + _haContext.CallService("notify", "mobile_app_pixel_8", null, data); + } + + ///Sends a notification message using the mobile_app_pixel_8 integration. + /// eg: The garage door has been open for 10 minutes. + /// eg: Your Garage Door Friend + /// eg: platform specific + /// eg: platform specific + public void MobileAppPixel8(string message, string? title = null, object? target = null, object? data = null) + { + _haContext.CallService("notify", "mobile_app_pixel_8", null, new NotifyMobileAppPixel8Parameters { Message = message, Title = title, Target = target, Data = data }); + } + + ///Sends a notification message using the notify service. + public void Notify(NotifyNotifyParameters data) + { + _haContext.CallService("notify", "notify", null, data); + } + + ///Sends a notification message using the notify service. + /// eg: The garage door has been open for 10 minutes. + /// eg: Your Garage Door Friend + /// eg: platform specific + /// eg: platform specific + public void Notify(string message, string? title = null, object? target = null, object? data = null) + { + _haContext.CallService("notify", "notify", null, new NotifyNotifyParameters { Message = message, Title = title, Target = target, Data = data }); + } + + ///Sends a notification that is visible in the notifications panel. + public void PersistentNotification(NotifyPersistentNotificationParameters data) + { + _haContext.CallService("notify", "persistent_notification", null, data); + } + + ///Sends a notification that is visible in the notifications panel. + ///Message body of the notification. eg: The garage door has been open for 10 minutes. + ///Title of the notification. eg: Your Garage Door Friend + ///Some integrations provide extended functionality. For information on how to use _data_, refer to the integration documentation.. eg: platform specific + public void PersistentNotification(string message, string? title = null, object? data = null) + { + _haContext.CallService("notify", "persistent_notification", null, new NotifyPersistentNotificationParameters { Message = message, Title = title, Data = data }); + } + + ///Sends a notification message. + ///The target for this service call + public void SendMessage(ServiceTarget target, NotifySendMessageParameters data) + { + _haContext.CallService("notify", "send_message", target, data); + } + + ///Sends a notification message. + ///Your notification message. + ///Title for your notification message. + public void SendMessage(ServiceTarget target, string message, string? title = null) + { + _haContext.CallService("notify", "send_message", target, new NotifySendMessageParameters { Message = message, Title = title }); + } +} + +public partial record NotifyMobileAppPixel8Parameters +{ + /// eg: The garage door has been open for 10 minutes. + [JsonPropertyName("message")] + public string? Message { get; init; } + + /// eg: Your Garage Door Friend + [JsonPropertyName("title")] + public string? Title { get; init; } + + /// eg: platform specific + [JsonPropertyName("target")] + public object? Target { get; init; } + + /// eg: platform specific + [JsonPropertyName("data")] + public object? Data { get; init; } +} + +public partial record NotifyNotifyParameters +{ + /// eg: The garage door has been open for 10 minutes. + [JsonPropertyName("message")] + public string? Message { get; init; } + + /// eg: Your Garage Door Friend + [JsonPropertyName("title")] + public string? Title { get; init; } + + /// eg: platform specific + [JsonPropertyName("target")] + public object? Target { get; init; } + + /// eg: platform specific + [JsonPropertyName("data")] + public object? Data { get; init; } +} + +public partial record NotifyPersistentNotificationParameters +{ + ///Message body of the notification. eg: The garage door has been open for 10 minutes. + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Title of the notification. eg: Your Garage Door Friend + [JsonPropertyName("title")] + public string? Title { get; init; } + + ///Some integrations provide extended functionality. For information on how to use _data_, refer to the integration documentation.. eg: platform specific + [JsonPropertyName("data")] + public object? Data { get; init; } +} + +public partial record NotifySendMessageParameters +{ + ///Your notification message. + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Title for your notification message. + [JsonPropertyName("title")] + public string? Title { get; init; } +} + +public partial class NumberServices +{ + private readonly IHaContext _haContext; + public NumberServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Sets the value of a number. + ///The target for this service call + public void SetValue(ServiceTarget target, NumberSetValueParameters data) + { + _haContext.CallService("number", "set_value", target, data); + } + + ///Sets the value of a number. + ///The target value to set. eg: 42 + public void SetValue(ServiceTarget target, string? value = null) + { + _haContext.CallService("number", "set_value", target, new NumberSetValueParameters { Value = value }); + } +} + +public partial record NumberSetValueParameters +{ + ///The target value to set. eg: 42 + [JsonPropertyName("value")] + public string? Value { get; init; } +} + +public partial class PersistentNotificationServices +{ + private readonly IHaContext _haContext; + public PersistentNotificationServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Shows a notification on the notifications panel. + public void Create(PersistentNotificationCreateParameters data) + { + _haContext.CallService("persistent_notification", "create", null, data); + } + + ///Shows a notification on the notifications panel. + ///Message body of the notification. eg: Please check your configuration.yaml. + ///Optional title of the notification. eg: Test notification + ///ID of the notification. This new notification will overwrite an existing notification with the same ID. eg: 1234 + public void Create(string message, string? title = null, string? notificationId = null) + { + _haContext.CallService("persistent_notification", "create", null, new PersistentNotificationCreateParameters { Message = message, Title = title, NotificationId = notificationId }); + } + + ///Removes a notification from the notifications panel. + public void Dismiss(PersistentNotificationDismissParameters data) + { + _haContext.CallService("persistent_notification", "dismiss", null, data); + } + + ///Removes a notification from the notifications panel. + ///ID of the notification to be removed. eg: 1234 + public void Dismiss(string notificationId) + { + _haContext.CallService("persistent_notification", "dismiss", null, new PersistentNotificationDismissParameters { NotificationId = notificationId }); + } + + ///Removes all notifications from the notifications panel. + public void DismissAll(object? data = null) + { + _haContext.CallService("persistent_notification", "dismiss_all", null, data); + } +} + +public partial record PersistentNotificationCreateParameters +{ + ///Message body of the notification. eg: Please check your configuration.yaml. + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Optional title of the notification. eg: Test notification + [JsonPropertyName("title")] + public string? Title { get; init; } + + ///ID of the notification. This new notification will overwrite an existing notification with the same ID. eg: 1234 + [JsonPropertyName("notification_id")] + public string? NotificationId { get; init; } +} + +public partial record PersistentNotificationDismissParameters +{ + ///ID of the notification to be removed. eg: 1234 + [JsonPropertyName("notification_id")] + public string? NotificationId { get; init; } +} + +public partial class PersonServices +{ + private readonly IHaContext _haContext; + public PersonServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads persons from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("person", "reload", null, data); + } +} + +public partial class RecorderServices +{ + private readonly IHaContext _haContext; + public RecorderServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Stops the recording of events and state changes. + public void Disable(object? data = null) + { + _haContext.CallService("recorder", "disable", null, data); + } + + ///Starts the recording of events and state changes. + public void Enable(object? data = null) + { + _haContext.CallService("recorder", "enable", null, data); + } + + ///Starts purge task - to clean up old data from your database. + public void Purge(RecorderPurgeParameters data) + { + _haContext.CallService("recorder", "purge", null, data); + } + + ///Starts purge task - to clean up old data from your database. + ///Number of days to keep the data in the database. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. + ///Attempt to save disk space by rewriting the entire database file. + ///Apply `entity_id` and `event_type` filters in addition to time-based purge. + public void Purge(double? keepDays = null, bool? repack = null, bool? applyFilter = null) + { + _haContext.CallService("recorder", "purge", null, new RecorderPurgeParameters { KeepDays = keepDays, Repack = repack, ApplyFilter = applyFilter }); + } + + ///Starts a purge task to remove the data related to specific entities from your database. + public void PurgeEntities(RecorderPurgeEntitiesParameters data) + { + _haContext.CallService("recorder", "purge_entities", null, data); + } + + ///Starts a purge task to remove the data related to specific entities from your database. + ///List of entities for which the data is to be removed from the recorder database. + ///List of domains for which the data needs to be removed from the recorder database. eg: sun + ///List of glob patterns used to select the entities for which the data is to be removed from the recorder database. eg: domain*.object_id* + ///Number of days to keep the data for rows matching the filter. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. The default of 0 days will remove all matching rows immediately. + public void PurgeEntities(IEnumerable? entityId = null, object? domains = null, object? entityGlobs = null, double? keepDays = null) + { + _haContext.CallService("recorder", "purge_entities", null, new RecorderPurgeEntitiesParameters { EntityId = entityId, Domains = domains, EntityGlobs = entityGlobs, KeepDays = keepDays }); + } +} + +public partial record RecorderPurgeParameters +{ + ///Number of days to keep the data in the database. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. + [JsonPropertyName("keep_days")] + public double? KeepDays { get; init; } + + ///Attempt to save disk space by rewriting the entire database file. + [JsonPropertyName("repack")] + public bool? Repack { get; init; } + + ///Apply `entity_id` and `event_type` filters in addition to time-based purge. + [JsonPropertyName("apply_filter")] + public bool? ApplyFilter { get; init; } +} + +public partial record RecorderPurgeEntitiesParameters +{ + ///List of entities for which the data is to be removed from the recorder database. + [JsonPropertyName("entity_id")] + public IEnumerable? EntityId { get; init; } + + ///List of domains for which the data needs to be removed from the recorder database. eg: sun + [JsonPropertyName("domains")] + public object? Domains { get; init; } + + ///List of glob patterns used to select the entities for which the data is to be removed from the recorder database. eg: domain*.object_id* + [JsonPropertyName("entity_globs")] + public object? EntityGlobs { get; init; } + + ///Number of days to keep the data for rows matching the filter. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. The default of 0 days will remove all matching rows immediately. + [JsonPropertyName("keep_days")] + public double? KeepDays { get; init; } +} + +public partial class RemoteServices +{ + private readonly IHaContext _haContext; + public RemoteServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Deletes a command or a list of commands from the database. + ///The target for this service call + public void DeleteCommand(ServiceTarget target, RemoteDeleteCommandParameters data) + { + _haContext.CallService("remote", "delete_command", target, data); + } + + ///Deletes a command or a list of commands from the database. + ///Device from which commands will be deleted. eg: television + ///The single command or the list of commands to be deleted. eg: Mute + public void DeleteCommand(ServiceTarget target, object command, string? device = null) + { + _haContext.CallService("remote", "delete_command", target, new RemoteDeleteCommandParameters { Device = device, Command = command }); + } + + ///Learns a command or a list of commands from a device. + ///The target for this service call + public void LearnCommand(ServiceTarget target, RemoteLearnCommandParameters data) + { + _haContext.CallService("remote", "learn_command", target, data); + } + + ///Learns a command or a list of commands from a device. + ///Device ID to learn command from. eg: television + ///A single command or a list of commands to learn. eg: Turn on + ///The type of command to be learned. + ///If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state. + ///Timeout for the command to be learned. + public void LearnCommand(ServiceTarget target, string? device = null, object? command = null, object? commandType = null, bool? alternative = null, long? timeout = null) + { + _haContext.CallService("remote", "learn_command", target, new RemoteLearnCommandParameters { Device = device, Command = command, CommandType = commandType, Alternative = alternative, Timeout = timeout }); + } + + ///Sends a command or a list of commands to a device. + ///The target for this service call + public void SendCommand(ServiceTarget target, RemoteSendCommandParameters data) + { + _haContext.CallService("remote", "send_command", target, data); + } + + ///Sends a command or a list of commands to a device. + ///Device ID to send command to. eg: 32756745 + ///A single command or a list of commands to send. eg: Play + ///The number of times you want to repeat the commands. + ///The time you want to wait in between repeated commands. + ///The time you want to have it held before the release is send. + public void SendCommand(ServiceTarget target, object command, string? device = null, double? numRepeats = null, double? delaySecs = null, double? holdSecs = null) + { + _haContext.CallService("remote", "send_command", target, new RemoteSendCommandParameters { Device = device, Command = command, NumRepeats = numRepeats, DelaySecs = delaySecs, HoldSecs = holdSecs }); + } + + ///Toggles a device on/off. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("remote", "toggle", target, data); + } + + ///Turns the device off. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("remote", "turn_off", target, data); + } + + ///Sends the power on command. + ///The target for this service call + public void TurnOn(ServiceTarget target, RemoteTurnOnParameters data) + { + _haContext.CallService("remote", "turn_on", target, data); + } + + ///Sends the power on command. + ///Activity ID or activity name to be started. eg: BedroomTV + public void TurnOn(ServiceTarget target, string? activity = null) + { + _haContext.CallService("remote", "turn_on", target, new RemoteTurnOnParameters { Activity = activity }); + } +} + +public partial record RemoteDeleteCommandParameters +{ + ///Device from which commands will be deleted. eg: television + [JsonPropertyName("device")] + public string? Device { get; init; } + + ///The single command or the list of commands to be deleted. eg: Mute + [JsonPropertyName("command")] + public object? Command { get; init; } +} + +public partial record RemoteLearnCommandParameters +{ + ///Device ID to learn command from. eg: television + [JsonPropertyName("device")] + public string? Device { get; init; } + + ///A single command or a list of commands to learn. eg: Turn on + [JsonPropertyName("command")] + public object? Command { get; init; } + + ///The type of command to be learned. + [JsonPropertyName("command_type")] + public object? CommandType { get; init; } + + ///If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state. + [JsonPropertyName("alternative")] + public bool? Alternative { get; init; } + + ///Timeout for the command to be learned. + [JsonPropertyName("timeout")] + public long? Timeout { get; init; } +} + +public partial record RemoteSendCommandParameters +{ + ///Device ID to send command to. eg: 32756745 + [JsonPropertyName("device")] + public string? Device { get; init; } + + ///A single command or a list of commands to send. eg: Play + [JsonPropertyName("command")] + public object? Command { get; init; } + + ///The number of times you want to repeat the commands. + [JsonPropertyName("num_repeats")] + public double? NumRepeats { get; init; } + + ///The time you want to wait in between repeated commands. + [JsonPropertyName("delay_secs")] + public double? DelaySecs { get; init; } + + ///The time you want to have it held before the release is send. + [JsonPropertyName("hold_secs")] + public double? HoldSecs { get; init; } +} + +public partial record RemoteTurnOnParameters +{ + ///Activity ID or activity name to be started. eg: BedroomTV + [JsonPropertyName("activity")] + public string? Activity { get; init; } +} + +public partial class RestServices +{ + private readonly IHaContext _haContext; + public RestServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads REST entities from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("rest", "reload", null, data); + } +} + +public partial class SceneServices +{ + private readonly IHaContext _haContext; + public SceneServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Activates a scene with configuration. + public void Apply(SceneApplyParameters data) + { + _haContext.CallService("scene", "apply", null, data); + } + + ///Activates a scene with configuration. + ///List of entities and their target state. eg: light.kitchen: "on" light.ceiling: state: "on" brightness: 80 + ///Time it takes the devices to transition into the states defined in the scene. + public void Apply(object entities, double? transition = null) + { + _haContext.CallService("scene", "apply", null, new SceneApplyParameters { Entities = entities, Transition = transition }); + } + + ///Creates a new scene. + public void Create(SceneCreateParameters data) + { + _haContext.CallService("scene", "create", null, data); + } + + ///Creates a new scene. + ///The entity ID of the new scene. eg: all_lights + ///List of entities and their target state. If your entities are already in the target state right now, use `snapshot_entities` instead. eg: light.tv_back_light: "on" light.ceiling: state: "on" brightness: 200 + ///List of entities to be included in the snapshot. By taking a snapshot, you record the current state of those entities. If you do not want to use the current state of all your entities for this scene, you can combine the `snapshot_entities` with `entities`. eg: - light.ceiling - light.kitchen + public void Create(string sceneId, object? entities = null, IEnumerable? snapshotEntities = null) + { + _haContext.CallService("scene", "create", null, new SceneCreateParameters { SceneId = sceneId, Entities = entities, SnapshotEntities = snapshotEntities }); + } + + ///Deletes a dynamically created scene. + ///The target for this service call + public void Delete(ServiceTarget target, object? data = null) + { + _haContext.CallService("scene", "delete", target, data); + } + + ///Reloads the scenes from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("scene", "reload", null, data); + } + + ///Activates a scene. + ///The target for this service call + public void TurnOn(ServiceTarget target, SceneTurnOnParameters data) + { + _haContext.CallService("scene", "turn_on", target, data); + } + + ///Activates a scene. + ///Time it takes the devices to transition into the states defined in the scene. + public void TurnOn(ServiceTarget target, double? transition = null) + { + _haContext.CallService("scene", "turn_on", target, new SceneTurnOnParameters { Transition = transition }); + } +} + +public partial record SceneApplyParameters +{ + ///List of entities and their target state. eg: light.kitchen: "on" light.ceiling: state: "on" brightness: 80 + [JsonPropertyName("entities")] + public object? Entities { get; init; } + + ///Time it takes the devices to transition into the states defined in the scene. + [JsonPropertyName("transition")] + public double? Transition { get; init; } +} + +public partial record SceneCreateParameters +{ + ///The entity ID of the new scene. eg: all_lights + [JsonPropertyName("scene_id")] + public string? SceneId { get; init; } + + ///List of entities and their target state. If your entities are already in the target state right now, use `snapshot_entities` instead. eg: light.tv_back_light: "on" light.ceiling: state: "on" brightness: 200 + [JsonPropertyName("entities")] + public object? Entities { get; init; } + + ///List of entities to be included in the snapshot. By taking a snapshot, you record the current state of those entities. If you do not want to use the current state of all your entities for this scene, you can combine the `snapshot_entities` with `entities`. eg: - light.ceiling - light.kitchen + [JsonPropertyName("snapshot_entities")] + public IEnumerable? SnapshotEntities { get; init; } +} + +public partial record SceneTurnOnParameters +{ + ///Time it takes the devices to transition into the states defined in the scene. + [JsonPropertyName("transition")] + public double? Transition { get; init; } +} + +public partial class ScheduleServices +{ + private readonly IHaContext _haContext; + public ScheduleServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads schedules from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("schedule", "reload", null, data); + } +} + +public partial class ScriptServices +{ + private readonly IHaContext _haContext; + public ScriptServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Script for pausing a timer using HA Assist. + public void AssistTimerpause(object? data = null) + { + _haContext.CallService("script", "assist_timerpause", null, data); + } + + ///Script for pausing a timer using HA Assist. + public Task AssistTimerpauseAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("script", "assist_timerpause", null, data); + } + + ///Script for starting a timer using HA Assist. + public void AssistTimerstart(object? data = null) + { + _haContext.CallService("script", "assist_timerstart", null, data); + } + + ///Script for starting a timer using HA Assist. + public Task AssistTimerstartAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("script", "assist_timerstart", null, data); + } + + ///Script for stopping a timer using HA Assist. + public void AssistTimerstop(object? data = null) + { + _haContext.CallService("script", "assist_timerstop", null, data); + } + + ///Script for stopping a timer using HA Assist. + public Task AssistTimerstopAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("script", "assist_timerstop", null, data); + } + + public void PlayArtist(object? data = null) + { + _haContext.CallService("script", "play_artist", null, data); + } + + public Task PlayArtistAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("script", "play_artist", null, data); + } + + ///Reloads all the available scripts. + public void Reload(object? data = null) + { + _haContext.CallService("script", "reload", null, data); + } + + ///Toggle a script. Starts it, if isn't running, stops it otherwise. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("script", "toggle", target, data); + } + + ///Stops a running script. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("script", "turn_off", target, data); + } + + ///Runs the sequence of actions defined in a script. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("script", "turn_on", target, data); + } + + ///Script for turning on the UE Boom 2 speaker. + public void TurnOnUe(object? data = null) + { + _haContext.CallService("script", "turn_on_ue", null, data); + } + + ///Script for turning on the UE Boom 2 speaker. + public Task TurnOnUeAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("script", "turn_on_ue", null, data); + } +} + +public partial class SelectServices +{ + private readonly IHaContext _haContext; + public SelectServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Selects the first option. + ///The target for this service call + public void SelectFirst(ServiceTarget target, object? data = null) + { + _haContext.CallService("select", "select_first", target, data); + } + + ///Selects the last option. + ///The target for this service call + public void SelectLast(ServiceTarget target, object? data = null) + { + _haContext.CallService("select", "select_last", target, data); + } + + ///Selects the next option. + ///The target for this service call + public void SelectNext(ServiceTarget target, SelectSelectNextParameters data) + { + _haContext.CallService("select", "select_next", target, data); + } + + ///Selects the next option. + ///If the option should cycle from the last to the first. + public void SelectNext(ServiceTarget target, bool? cycle = null) + { + _haContext.CallService("select", "select_next", target, new SelectSelectNextParameters { Cycle = cycle }); + } + + ///Selects an option. + ///The target for this service call + public void SelectOption(ServiceTarget target, SelectSelectOptionParameters data) + { + _haContext.CallService("select", "select_option", target, data); + } + + ///Selects an option. + ///Option to be selected. eg: "Item A" + public void SelectOption(ServiceTarget target, string option) + { + _haContext.CallService("select", "select_option", target, new SelectSelectOptionParameters { Option = option }); + } + + ///Selects the previous option. + ///The target for this service call + public void SelectPrevious(ServiceTarget target, SelectSelectPreviousParameters data) + { + _haContext.CallService("select", "select_previous", target, data); + } + + ///Selects the previous option. + ///If the option should cycle from the first to the last. + public void SelectPrevious(ServiceTarget target, bool? cycle = null) + { + _haContext.CallService("select", "select_previous", target, new SelectSelectPreviousParameters { Cycle = cycle }); + } +} + +public partial record SelectSelectNextParameters +{ + ///If the option should cycle from the last to the first. + [JsonPropertyName("cycle")] + public bool? Cycle { get; init; } +} + +public partial record SelectSelectOptionParameters +{ + ///Option to be selected. eg: "Item A" + [JsonPropertyName("option")] + public string? Option { get; init; } +} + +public partial record SelectSelectPreviousParameters +{ + ///If the option should cycle from the first to the last. + [JsonPropertyName("cycle")] + public bool? Cycle { get; init; } +} + +public partial class ShellCommandServices +{ + private readonly IHaContext _haContext; + public ShellCommandServices(IHaContext haContext) + { + _haContext = haContext; + } + + public void TurnOnUe(object? data = null) + { + _haContext.CallService("shell_command", "turn_on_ue", null, data); + } + + public Task TurnOnUeAsync(object? data = null) + { + return _haContext.CallServiceWithResponseAsync("shell_command", "turn_on_ue", null, data); + } +} + +public partial class ShoppingListServices +{ + private readonly IHaContext _haContext; + public ShoppingListServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Adds an item to the shopping list. + public void AddItem(ShoppingListAddItemParameters data) + { + _haContext.CallService("shopping_list", "add_item", null, data); + } + + ///Adds an item to the shopping list. + ///The name of the item to add. eg: Beer + public void AddItem(string name) + { + _haContext.CallService("shopping_list", "add_item", null, new ShoppingListAddItemParameters { Name = name }); + } + + ///Clears completed items from the shopping list. + public void ClearCompletedItems(object? data = null) + { + _haContext.CallService("shopping_list", "clear_completed_items", null, data); + } + + ///Marks all items as completed in the shopping list (without removing them from the list). + public void CompleteAll(object? data = null) + { + _haContext.CallService("shopping_list", "complete_all", null, data); + } + + ///Marks the first item with matching name as completed in the shopping list. + public void CompleteItem(ShoppingListCompleteItemParameters data) + { + _haContext.CallService("shopping_list", "complete_item", null, data); + } + + ///Marks the first item with matching name as completed in the shopping list. + ///The name of the item to mark as completed (without removing). eg: Beer + public void CompleteItem(string name) + { + _haContext.CallService("shopping_list", "complete_item", null, new ShoppingListCompleteItemParameters { Name = name }); + } + + ///Marks all items as incomplete in the shopping list. + public void IncompleteAll(object? data = null) + { + _haContext.CallService("shopping_list", "incomplete_all", null, data); + } + + ///Marks the first item with matching name as incomplete in the shopping list. + public void IncompleteItem(ShoppingListIncompleteItemParameters data) + { + _haContext.CallService("shopping_list", "incomplete_item", null, data); + } + + ///Marks the first item with matching name as incomplete in the shopping list. + ///The name of the item to mark as incomplete. eg: Beer + public void IncompleteItem(string name) + { + _haContext.CallService("shopping_list", "incomplete_item", null, new ShoppingListIncompleteItemParameters { Name = name }); + } + + ///Removes the first item with matching name from the shopping list. + public void RemoveItem(ShoppingListRemoveItemParameters data) + { + _haContext.CallService("shopping_list", "remove_item", null, data); + } + + ///Removes the first item with matching name from the shopping list. + ///The name of the item to remove. eg: Beer + public void RemoveItem(string name) + { + _haContext.CallService("shopping_list", "remove_item", null, new ShoppingListRemoveItemParameters { Name = name }); + } + + ///Sorts all items by name in the shopping list. + public void Sort(ShoppingListSortParameters data) + { + _haContext.CallService("shopping_list", "sort", null, data); + } + + ///Sorts all items by name in the shopping list. + ///Whether to sort in reverse (descending) order. + public void Sort(bool? reverse = null) + { + _haContext.CallService("shopping_list", "sort", null, new ShoppingListSortParameters { Reverse = reverse }); + } +} + +public partial record ShoppingListAddItemParameters +{ + ///The name of the item to add. eg: Beer + [JsonPropertyName("name")] + public string? Name { get; init; } +} + +public partial record ShoppingListCompleteItemParameters +{ + ///The name of the item to mark as completed (without removing). eg: Beer + [JsonPropertyName("name")] + public string? Name { get; init; } +} + +public partial record ShoppingListIncompleteItemParameters +{ + ///The name of the item to mark as incomplete. eg: Beer + [JsonPropertyName("name")] + public string? Name { get; init; } +} + +public partial record ShoppingListRemoveItemParameters +{ + ///The name of the item to remove. eg: Beer + [JsonPropertyName("name")] + public string? Name { get; init; } +} + +public partial record ShoppingListSortParameters +{ + ///Whether to sort in reverse (descending) order. + [JsonPropertyName("reverse")] + public bool? Reverse { get; init; } +} + +public partial class SpotifyplusServices +{ + private readonly IHaContext _haContext; + public SpotifyplusServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites. + public void CheckAlbumFavorites(SpotifyplusCheckAlbumFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "check_album_favorites", null, data); + } + + ///Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + public void CheckAlbumFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_album_favorites", null, new SpotifyplusCheckAlbumFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites. + public Task CheckAlbumFavoritesAsync(SpotifyplusCheckAlbumFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_album_favorites", null, data); + } + + ///Check if one or more albums (or the currently playing album) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + public Task CheckAlbumFavoritesAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_album_favorites", null, new SpotifyplusCheckAlbumFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites. + public void CheckArtistsFollowing(SpotifyplusCheckArtistsFollowingParameters data) + { + _haContext.CallService("spotifyplus", "check_artists_following", null, data); + } + + ///Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + public void CheckArtistsFollowing(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_artists_following", null, new SpotifyplusCheckArtistsFollowingParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites. + public Task CheckArtistsFollowingAsync(SpotifyplusCheckArtistsFollowingParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_artists_following", null, data); + } + + ///Check if one or more artists (or the currently playing artists) is followed in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + public Task CheckArtistsFollowingAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_artists_following", null, new SpotifyplusCheckArtistsFollowingParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites. + public void CheckAudiobookFavorites(SpotifyplusCheckAudiobookFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "check_audiobook_favorites", null, data); + } + + ///Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + public void CheckAudiobookFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_audiobook_favorites", null, new SpotifyplusCheckAudiobookFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites. + public Task CheckAudiobookFavoritesAsync(SpotifyplusCheckAudiobookFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_audiobook_favorites", null, data); + } + + ///Check if one or more audiobooks (or the currently playing audiobook) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + public Task CheckAudiobookFavoritesAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_audiobook_favorites", null, new SpotifyplusCheckAudiobookFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites. + public void CheckEpisodeFavorites(SpotifyplusCheckEpisodeFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "check_episode_favorites", null, data); + } + + ///Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + public void CheckEpisodeFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_episode_favorites", null, new SpotifyplusCheckEpisodeFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites. + public Task CheckEpisodeFavoritesAsync(SpotifyplusCheckEpisodeFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_episode_favorites", null, data); + } + + ///Check if one or more episodes (or the currently playing episode) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + public Task CheckEpisodeFavoritesAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_episode_favorites", null, new SpotifyplusCheckEpisodeFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites. + public void CheckShowFavorites(SpotifyplusCheckShowFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "check_show_favorites", null, data); + } + + ///Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + public void CheckShowFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_show_favorites", null, new SpotifyplusCheckShowFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites. + public Task CheckShowFavoritesAsync(SpotifyplusCheckShowFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_show_favorites", null, data); + } + + ///Check if one or more shows (or the currently playing show) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + public Task CheckShowFavoritesAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_show_favorites", null, new SpotifyplusCheckShowFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites. + public void CheckTrackFavorites(SpotifyplusCheckTrackFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "check_track_favorites", null, data); + } + + ///Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + public void CheckTrackFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "check_track_favorites", null, new SpotifyplusCheckTrackFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites. + public Task CheckTrackFavoritesAsync(SpotifyplusCheckTrackFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_track_favorites", null, data); + } + + ///Check if one or more tracks (or the currently playing track) exists in the current user's 'Your Library' favorites. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + public Task CheckTrackFavoritesAsync(string entityId, string? ids = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "check_track_favorites", null, new SpotifyplusCheckTrackFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Add the current user as a follower of one or more artists. + public void FollowArtists(SpotifyplusFollowArtistsParameters data) + { + _haContext.CallService("spotifyplus", "follow_artists", null, data); + } + + ///Add the current user as a follower of one or more artists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + public void FollowArtists(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "follow_artists", null, new SpotifyplusFollowArtistsParameters { EntityId = entityId, Ids = ids }); + } + + ///Add the current user as a follower of a playlist. + public void FollowPlaylist(SpotifyplusFollowPlaylistParameters data) + { + _haContext.CallService("spotifyplus", "follow_playlist", null, data); + } + + ///Add the current user as a follower of a playlist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n + ///If true the playlist will be included in user's public playlists, if false it will remain private. eg: True + public void FollowPlaylist(string entityId, string? playlistId = null, bool? @public = null) + { + _haContext.CallService("spotifyplus", "follow_playlist", null, new SpotifyplusFollowPlaylistParameters { EntityId = entityId, PlaylistId = playlistId, Public = @public }); + } + + ///Add the current user as a follower of one or more users. + public void FollowUsers(SpotifyplusFollowUsersParameters data) + { + _haContext.CallService("spotifyplus", "follow_users", null, data); + } + + ///Add the current user as a follower of one or more users. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of the Spotify user IDs (e.g. 'smedjan,3758dfdsfjk435hjk6k79lm0n3c4'). A maximum of 50 IDs can be sent in one request. eg: smedjan,3758dfdsfjk435hjk6k79lm0n3c4 + public void FollowUsers(string entityId, string ids) + { + _haContext.CallService("spotifyplus", "follow_users", null, new SpotifyplusFollowUsersParameters { EntityId = entityId, Ids = ids }); + } + + ///Get Spotify catalog information for a single album. + public void GetAlbum(SpotifyplusGetAlbumParameters data) + { + _haContext.CallService("spotifyplus", "get_album", null, data); + } + + ///Get Spotify catalog information for a single album. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public void GetAlbum(string entityId, string? albumId = null, string? market = null) + { + _haContext.CallService("spotifyplus", "get_album", null, new SpotifyplusGetAlbumParameters { EntityId = entityId, AlbumId = albumId, Market = market }); + } + + ///Get Spotify catalog information for a single album. + public Task GetAlbumAsync(SpotifyplusGetAlbumParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album", null, data); + } + + ///Get Spotify catalog information for a single album. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public Task GetAlbumAsync(string entityId, string? albumId = null, string? market = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album", null, new SpotifyplusGetAlbumParameters { EntityId = entityId, AlbumId = albumId, Market = market }); + } + + ///Get a list of the albums saved in the current Spotify user's 'Your Library'. + public void GetAlbumFavorites(SpotifyplusGetAlbumFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_album_favorites", null, data); + } + + ///Get a list of the albums saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetAlbumFavorites(string entityId, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_album_favorites", null, new SpotifyplusGetAlbumFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the albums saved in the current Spotify user's 'Your Library'. + public Task GetAlbumFavoritesAsync(SpotifyplusGetAlbumFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album_favorites", null, data); + } + + ///Get a list of the albums saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetAlbumFavoritesAsync(string entityId, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album_favorites", null, new SpotifyplusGetAlbumFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of new album releases featured in Spotify. + public void GetAlbumNewReleases(SpotifyplusGetAlbumNewReleasesParameters data) + { + _haContext.CallService("spotifyplus", "get_album_new_releases", null, data); + } + + ///Get a list of new album releases featured in Spotify. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetAlbumNewReleases(string entityId, double? limit = null, double? offset = null, string? country = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_album_new_releases", null, new SpotifyplusGetAlbumNewReleasesParameters { EntityId = entityId, Limit = limit, Offset = offset, Country = country, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of new album releases featured in Spotify. + public Task GetAlbumNewReleasesAsync(SpotifyplusGetAlbumNewReleasesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album_new_releases", null, data); + } + + ///Get a list of new album releases featured in Spotify. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetAlbumNewReleasesAsync(string entityId, double? limit = null, double? offset = null, string? country = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_album_new_releases", null, new SpotifyplusGetAlbumNewReleasesParameters { EntityId = entityId, Limit = limit, Offset = offset, Country = country, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get Spotify catalog information for a single artist. + public void GetArtist(SpotifyplusGetArtistParameters data) + { + _haContext.CallService("spotifyplus", "get_artist", null, data); + } + + ///Get Spotify catalog information for a single artist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + public void GetArtist(string entityId, string? artistId = null) + { + _haContext.CallService("spotifyplus", "get_artist", null, new SpotifyplusGetArtistParameters { EntityId = entityId, ArtistId = artistId }); + } + + ///Get Spotify catalog information for a single artist. + public Task GetArtistAsync(SpotifyplusGetArtistParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artist", null, data); + } + + ///Get Spotify catalog information for a single artist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + public Task GetArtistAsync(string entityId, string? artistId = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artist", null, new SpotifyplusGetArtistParameters { EntityId = entityId, ArtistId = artistId }); + } + + ///Get Spotify catalog information about an artist's albums. + public void GetArtistAlbums(SpotifyplusGetArtistAlbumsParameters data) + { + _haContext.CallService("spotifyplus", "get_artist_albums", null, data); + } + + ///Get Spotify catalog information about an artist's albums. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + ///A comma-separated list of keywords that will be used to filter the response. If not supplied, only `album` types will be returned. Valid values are `album`, `single`, `appears_on`, `compilation`. eg: album + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetArtistAlbums(string entityId, string? artistId = null, string? includeGroups = null, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_artist_albums", null, new SpotifyplusGetArtistAlbumsParameters { EntityId = entityId, ArtistId = artistId, IncludeGroups = includeGroups, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get Spotify catalog information about an artist's albums. + public Task GetArtistAlbumsAsync(SpotifyplusGetArtistAlbumsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artist_albums", null, data); + } + + ///Get Spotify catalog information about an artist's albums. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + ///A comma-separated list of keywords that will be used to filter the response. If not supplied, only `album` types will be returned. Valid values are `album`, `single`, `appears_on`, `compilation`. eg: album + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetArtistAlbumsAsync(string entityId, string? artistId = null, string? includeGroups = null, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artist_albums", null, new SpotifyplusGetArtistAlbumsParameters { EntityId = entityId, ArtistId = artistId, IncludeGroups = includeGroups, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get the current user's followed artists. + public void GetArtistsFollowed(SpotifyplusGetArtistsFollowedParameters data) + { + _haContext.CallService("spotifyplus", "get_artists_followed", null, data); + } + + ///Get the current user's followed artists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetArtistsFollowed(string entityId, string? after = null, double? limit = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_artists_followed", null, new SpotifyplusGetArtistsFollowedParameters { EntityId = entityId, After = after, Limit = limit, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get the current user's followed artists. + public Task GetArtistsFollowedAsync(SpotifyplusGetArtistsFollowedParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artists_followed", null, data); + } + + ///Get the current user's followed artists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetArtistsFollowedAsync(string entityId, string? after = null, double? limit = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_artists_followed", null, new SpotifyplusGetArtistsFollowedParameters { EntityId = entityId, After = after, Limit = limit, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the audiobooks saved in the current Spotify user's 'Your Library'. + public void GetAudiobookFavorites(SpotifyplusGetAudiobookFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_audiobook_favorites", null, data); + } + + ///Get a list of the audiobooks saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetAudiobookFavorites(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_audiobook_favorites", null, new SpotifyplusGetAudiobookFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the audiobooks saved in the current Spotify user's 'Your Library'. + public Task GetAudiobookFavoritesAsync(SpotifyplusGetAudiobookFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_audiobook_favorites", null, data); + } + + ///Get a list of the audiobooks saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetAudiobookFavoritesAsync(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_audiobook_favorites", null, new SpotifyplusGetAudiobookFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a sorted list of ALL categories used to tag items in Spotify. + public void GetBrowseCategorysList(SpotifyplusGetBrowseCategorysListParameters data) + { + _haContext.CallService("spotifyplus", "get_browse_categorys_list", null, data); + } + + ///Get a sorted list of ALL categories used to tag items in Spotify. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: False + public void GetBrowseCategorysList(string entityId, string? country = null, string? locale = null, bool? refresh = null) + { + _haContext.CallService("spotifyplus", "get_browse_categorys_list", null, new SpotifyplusGetBrowseCategorysListParameters { EntityId = entityId, Country = country, Locale = locale, Refresh = refresh }); + } + + ///Get a sorted list of ALL categories used to tag items in Spotify. + public Task GetBrowseCategorysListAsync(SpotifyplusGetBrowseCategorysListParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_browse_categorys_list", null, data); + } + + ///Get a sorted list of ALL categories used to tag items in Spotify. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: False + public Task GetBrowseCategorysListAsync(string entityId, string? country = null, string? locale = null, bool? refresh = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_browse_categorys_list", null, new SpotifyplusGetBrowseCategorysListParameters { EntityId = entityId, Country = country, Locale = locale, Refresh = refresh }); + } + + ///Get a list of Spotify playlists tagged with a particular category. + public void GetCategoryPlaylists(SpotifyplusGetCategoryPlaylistsParameters data) + { + _haContext.CallService("spotifyplus", "get_category_playlists", null, data); + } + + ///Get a list of Spotify playlists tagged with a particular category. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify category ID (not name) for the category. eg: dinner + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetCategoryPlaylists(string entityId, string categoryId, double? limit = null, double? offset = null, string? country = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_category_playlists", null, new SpotifyplusGetCategoryPlaylistsParameters { EntityId = entityId, CategoryId = categoryId, Limit = limit, Offset = offset, Country = country, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of Spotify playlists tagged with a particular category. + public Task GetCategoryPlaylistsAsync(SpotifyplusGetCategoryPlaylistsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_category_playlists", null, data); + } + + ///Get a list of Spotify playlists tagged with a particular category. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify category ID (not name) for the category. eg: dinner + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetCategoryPlaylistsAsync(string entityId, string categoryId, double? limit = null, double? offset = null, string? country = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_category_playlists", null, new SpotifyplusGetCategoryPlaylistsParameters { EntityId = entityId, CategoryId = categoryId, Limit = limit, Offset = offset, Country = country, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get Spotify catalog information for a single episode. + public void GetEpisode(SpotifyplusGetEpisodeParameters data) + { + _haContext.CallService("spotifyplus", "get_episode", null, data); + } + + ///Get Spotify catalog information for a single episode. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public void GetEpisode(string entityId, string? episodeId = null, string? market = null) + { + _haContext.CallService("spotifyplus", "get_episode", null, new SpotifyplusGetEpisodeParameters { EntityId = entityId, EpisodeId = episodeId, Market = market }); + } + + ///Get Spotify catalog information for a single episode. + public Task GetEpisodeAsync(SpotifyplusGetEpisodeParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_episode", null, data); + } + + ///Get Spotify catalog information for a single episode. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public Task GetEpisodeAsync(string entityId, string? episodeId = null, string? market = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_episode", null, new SpotifyplusGetEpisodeParameters { EntityId = entityId, EpisodeId = episodeId, Market = market }); + } + + ///Get a list of the episodes saved in the current Spotify user's 'Your Library'. + public void GetEpisodeFavorites(SpotifyplusGetEpisodeFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_episode_favorites", null, data); + } + + ///Get a list of the episodes saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetEpisodeFavorites(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_episode_favorites", null, new SpotifyplusGetEpisodeFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the episodes saved in the current Spotify user's 'Your Library'. + public Task GetEpisodeFavoritesAsync(SpotifyplusGetEpisodeFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_episode_favorites", null, data); + } + + ///Get a list of the episodes saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetEpisodeFavoritesAsync(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_episode_favorites", null, new SpotifyplusGetEpisodeFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of Spotify featured playlists. + public void GetFeaturedPlaylists(SpotifyplusGetFeaturedPlaylistsParameters data) + { + _haContext.CallService("spotifyplus", "get_featured_playlists", null, data); + } + + ///Get a list of Spotify featured playlists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + ///A timestamp in ISO 8601 format (yyyy-MM-ddTHH:mm:ss). Use this parameter to specify the user's local time to get results tailored for that specific date and time in the day. If not provided, the response defaults to the current UTC time. eg: 2023-10-23T09:00:00 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetFeaturedPlaylists(string entityId, double? limit = null, double? offset = null, string? country = null, string? locale = null, string? timestamp = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_featured_playlists", null, new SpotifyplusGetFeaturedPlaylistsParameters { EntityId = entityId, Limit = limit, Offset = offset, Country = country, Locale = locale, Timestamp = timestamp, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of Spotify featured playlists. + public Task GetFeaturedPlaylistsAsync(SpotifyplusGetFeaturedPlaylistsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_featured_playlists", null, data); + } + + ///Get a list of Spotify featured playlists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + ///A timestamp in ISO 8601 format (yyyy-MM-ddTHH:mm:ss). Use this parameter to specify the user's local time to get results tailored for that specific date and time in the day. If not provided, the response defaults to the current UTC time. eg: 2023-10-23T09:00:00 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetFeaturedPlaylistsAsync(string entityId, double? limit = null, double? offset = null, string? country = null, string? locale = null, string? timestamp = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_featured_playlists", null, new SpotifyplusGetFeaturedPlaylistsParameters { EntityId = entityId, Limit = limit, Offset = offset, Country = country, Locale = locale, Timestamp = timestamp, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get information about a user's available Spotify Connect player devices. Some device models are not supported and will not be listed in the API response. + public void GetPlayerDevices(SpotifyplusGetPlayerDevicesParameters data) + { + _haContext.CallService("spotifyplus", "get_player_devices", null, data); + } + + ///Get information about a user's available Spotify Connect player devices. Some device models are not supported and will not be listed in the API response. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: True + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetPlayerDevices(string entityId, bool? refresh = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_player_devices", null, new SpotifyplusGetPlayerDevicesParameters { EntityId = entityId, Refresh = refresh, SortResult = sortResult }); + } + + ///Get information about a user's available Spotify Connect player devices. Some device models are not supported and will not be listed in the API response. + public Task GetPlayerDevicesAsync(SpotifyplusGetPlayerDevicesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_devices", null, data); + } + + ///Get information about a user's available Spotify Connect player devices. Some device models are not supported and will not be listed in the API response. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: True + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetPlayerDevicesAsync(string entityId, bool? refresh = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_devices", null, new SpotifyplusGetPlayerDevicesParameters { EntityId = entityId, Refresh = refresh, SortResult = sortResult }); + } + + ///Get the object currently being played on the user's Spotify account. + public void GetPlayerNowPlaying(SpotifyplusGetPlayerNowPlayingParameters data) + { + _haContext.CallService("spotifyplus", "get_player_now_playing", null, data); + } + + ///Get the object currently being played on the user's Spotify account. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public void GetPlayerNowPlaying(string entityId, string? market = null, string? additionalTypes = null) + { + _haContext.CallService("spotifyplus", "get_player_now_playing", null, new SpotifyplusGetPlayerNowPlayingParameters { EntityId = entityId, Market = market, AdditionalTypes = additionalTypes }); + } + + ///Get the object currently being played on the user's Spotify account. + public Task GetPlayerNowPlayingAsync(SpotifyplusGetPlayerNowPlayingParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_now_playing", null, data); + } + + ///Get the object currently being played on the user's Spotify account. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public Task GetPlayerNowPlayingAsync(string entityId, string? market = null, string? additionalTypes = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_now_playing", null, new SpotifyplusGetPlayerNowPlayingParameters { EntityId = entityId, Market = market, AdditionalTypes = additionalTypes }); + } + + ///Get information about the user's current playback state, including track or episode, progress, and active device. + public void GetPlayerPlaybackState(SpotifyplusGetPlayerPlaybackStateParameters data) + { + _haContext.CallService("spotifyplus", "get_player_playback_state", null, data); + } + + ///Get information about the user's current playback state, including track or episode, progress, and active device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public void GetPlayerPlaybackState(string entityId, string? market = null, string? additionalTypes = null) + { + _haContext.CallService("spotifyplus", "get_player_playback_state", null, new SpotifyplusGetPlayerPlaybackStateParameters { EntityId = entityId, Market = market, AdditionalTypes = additionalTypes }); + } + + ///Get information about the user's current playback state, including track or episode, progress, and active device. + public Task GetPlayerPlaybackStateAsync(SpotifyplusGetPlayerPlaybackStateParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_playback_state", null, data); + } + + ///Get information about the user's current playback state, including track or episode, progress, and active device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public Task GetPlayerPlaybackStateAsync(string entityId, string? market = null, string? additionalTypes = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_playback_state", null, new SpotifyplusGetPlayerPlaybackStateParameters { EntityId = entityId, Market = market, AdditionalTypes = additionalTypes }); + } + + ///Get the list of objects that make up the user's playback queue. + public void GetPlayerQueueInfo(SpotifyplusGetPlayerQueueInfoParameters data) + { + _haContext.CallService("spotifyplus", "get_player_queue_info", null, data); + } + + ///Get the list of objects that make up the user's playback queue. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + public void GetPlayerQueueInfo(string entityId) + { + _haContext.CallService("spotifyplus", "get_player_queue_info", null, new SpotifyplusGetPlayerQueueInfoParameters { EntityId = entityId }); + } + + ///Get the list of objects that make up the user's playback queue. + public Task GetPlayerQueueInfoAsync(SpotifyplusGetPlayerQueueInfoParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_queue_info", null, data); + } + + ///Get the list of objects that make up the user's playback queue. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + public Task GetPlayerQueueInfoAsync(string entityId) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_queue_info", null, new SpotifyplusGetPlayerQueueInfoParameters { EntityId = entityId }); + } + + ///Get tracks from the current user's recently played tracks; currently doesn't support podcast episodes, and only 50 items may be returned due to spotify limits. + public void GetPlayerRecentTracks(SpotifyplusGetPlayerRecentTracksParameters data) + { + _haContext.CallService("spotifyplus", "get_player_recent_tracks", null, data); + } + + ///Get tracks from the current user's recently played tracks; currently doesn't support podcast episodes, and only 50 items may be returned due to spotify limits. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///Returns all items after (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `after` is specified, `before` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218456821 + ///Returns all items before (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `before` is specified, `after` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218467821 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void GetPlayerRecentTracks(string entityId, double? limit = null, double? after = null, double? before = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "get_player_recent_tracks", null, new SpotifyplusGetPlayerRecentTracksParameters { EntityId = entityId, Limit = limit, After = after, Before = before, LimitTotal = limitTotal }); + } + + ///Get tracks from the current user's recently played tracks; currently doesn't support podcast episodes, and only 50 items may be returned due to spotify limits. + public Task GetPlayerRecentTracksAsync(SpotifyplusGetPlayerRecentTracksParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_recent_tracks", null, data); + } + + ///Get tracks from the current user's recently played tracks; currently doesn't support podcast episodes, and only 50 items may be returned due to spotify limits. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///Returns all items after (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `after` is specified, `before` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218456821 + ///Returns all items before (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `before` is specified, `after` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218467821 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task GetPlayerRecentTracksAsync(string entityId, double? limit = null, double? after = null, double? before = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_player_recent_tracks", null, new SpotifyplusGetPlayerRecentTracksParameters { EntityId = entityId, Limit = limit, After = after, Before = before, LimitTotal = limitTotal }); + } + + ///Get a playlist owned by a Spotify user. + public void GetPlaylist(SpotifyplusGetPlaylistParameters data) + { + _haContext.CallService("spotifyplus", "get_playlist", null, data); + } + + ///Get a playlist owned by a Spotify user. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of fields to return from the Spotify Web API. All fields are returned if omitted. eg: description,id,name,public,snapshot_id,type,uri,tracks(limit,next,offset,previous,total,items(track(id,name,track_number,type,uri,album(id,images,name,total_tracks,type,uri,artists(id,name,type,uri))))) + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public void GetPlaylist(string entityId, string? playlistId = null, string? market = null, string? fields = null, string? additionalTypes = null) + { + _haContext.CallService("spotifyplus", "get_playlist", null, new SpotifyplusGetPlaylistParameters { EntityId = entityId, PlaylistId = playlistId, Market = market, Fields = fields, AdditionalTypes = additionalTypes }); + } + + ///Get a playlist owned by a Spotify user. + public Task GetPlaylistAsync(SpotifyplusGetPlaylistParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_playlist", null, data); + } + + ///Get a playlist owned by a Spotify user. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///A comma-separated list of fields to return from the Spotify Web API. All fields are returned if omitted. eg: description,id,name,public,snapshot_id,type,uri,tracks(limit,next,offset,previous,total,items(track(id,name,track_number,type,uri,album(id,images,name,total_tracks,type,uri,artists(id,name,type,uri))))) + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + public Task GetPlaylistAsync(string entityId, string? playlistId = null, string? market = null, string? fields = null, string? additionalTypes = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_playlist", null, new SpotifyplusGetPlaylistParameters { EntityId = entityId, PlaylistId = playlistId, Market = market, Fields = fields, AdditionalTypes = additionalTypes }); + } + + ///Get a list of the playlists owned or followed by the current Spotify user. + public void GetPlaylistFavorites(SpotifyplusGetPlaylistFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_playlist_favorites", null, data); + } + + ///Get a list of the playlists owned or followed by the current Spotify user. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetPlaylistFavorites(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_playlist_favorites", null, new SpotifyplusGetPlaylistFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the playlists owned or followed by the current Spotify user. + public Task GetPlaylistFavoritesAsync(SpotifyplusGetPlaylistFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_playlist_favorites", null, data); + } + + ///Get a list of the playlists owned or followed by the current Spotify user. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetPlaylistFavoritesAsync(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_playlist_favorites", null, new SpotifyplusGetPlaylistFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get Spotify catalog information for a single show. + public void GetShow(SpotifyplusGetShowParameters data) + { + _haContext.CallService("spotifyplus", "get_show", null, data); + } + + ///Get Spotify catalog information for a single show. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public void GetShow(string entityId, string? showId = null, string? market = null) + { + _haContext.CallService("spotifyplus", "get_show", null, new SpotifyplusGetShowParameters { EntityId = entityId, ShowId = showId, Market = market }); + } + + ///Get Spotify catalog information for a single show. + public Task GetShowAsync(SpotifyplusGetShowParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show", null, data); + } + + ///Get Spotify catalog information for a single show. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + public Task GetShowAsync(string entityId, string? showId = null, string? market = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show", null, new SpotifyplusGetShowParameters { EntityId = entityId, ShowId = showId, Market = market }); + } + + ///Get Spotify catalog information about a show's episodes. + public void GetShowEpisodes(SpotifyplusGetShowEpisodesParameters data) + { + _haContext.CallService("spotifyplus", "get_show_episodes", null, data); + } + + ///Get Spotify catalog information about a show's episodes. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void GetShowEpisodes(string entityId, string? showId = null, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "get_show_episodes", null, new SpotifyplusGetShowEpisodesParameters { EntityId = entityId, ShowId = showId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about a show's episodes. + public Task GetShowEpisodesAsync(SpotifyplusGetShowEpisodesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show_episodes", null, data); + } + + ///Get Spotify catalog information about a show's episodes. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task GetShowEpisodesAsync(string entityId, string? showId = null, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show_episodes", null, new SpotifyplusGetShowEpisodesParameters { EntityId = entityId, ShowId = showId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal }); + } + + ///Get a list of the shows saved in the current Spotify user's 'Your Library'. + public void GetShowFavorites(SpotifyplusGetShowFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_show_favorites", null, data); + } + + ///Get a list of the shows saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetShowFavorites(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_show_favorites", null, new SpotifyplusGetShowFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the shows saved in the current Spotify user's 'Your Library'. + public Task GetShowFavoritesAsync(SpotifyplusGetShowFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show_favorites", null, data); + } + + ///Get a list of the shows saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetShowFavoritesAsync(string entityId, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_show_favorites", null, new SpotifyplusGetShowFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it. + public void GetSpotifyConnectDevice(SpotifyplusGetSpotifyConnectDeviceParameters data) + { + _haContext.CallService("spotifyplus", "get_spotify_connect_device", null, data); + } + + ///Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The id (e.g. '30fbc80e35598f3c242f2120413c943dfd9715fe') or name (e.g. 'Office') of the Spotify Connect Player device this command is targeting. If an '*' is specified, then the SpotifyPlus default device is used. eg: Bose-ST10-1 + ///If True, the active user context of the resolved device is checked to ensure it matches the Spotify Connect user context specified in the SpotifyPlus configuration options. If False, the user context will not be checked. Default is True. eg: True + ///Maximum time to wait (in seconds) for the device to become active in the Spotify Connect device list. This value is only used if a Connect command has to be issued to activate the device. Default is 5; value range is 0 - 10. eg: 0.50 + ///True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True + ///True to activate the device if necessary; otherwise, False. eg: True + ///Time delay (in seconds) to wait AFTER issuing any command to the device. This delay will give the spotify zeroconf api time to process the change before another command is issued. Default is 0.25; value range is 0 - 10. eg: 0.25 + public void GetSpotifyConnectDevice(string entityId, string deviceValue, bool? verifyUserContext = null, double? verifyTimeout = null, bool? refreshDeviceList = null, bool? activateDevice = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "get_spotify_connect_device", null, new SpotifyplusGetSpotifyConnectDeviceParameters { EntityId = entityId, DeviceValue = deviceValue, VerifyUserContext = verifyUserContext, VerifyTimeout = verifyTimeout, RefreshDeviceList = refreshDeviceList, ActivateDevice = activateDevice, Delay = delay }); + } + + ///Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it. + public Task GetSpotifyConnectDeviceAsync(SpotifyplusGetSpotifyConnectDeviceParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_spotify_connect_device", null, data); + } + + ///Get information about a specific Spotify Connect player device, and (optionally) activate the device if it requires it. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The id (e.g. '30fbc80e35598f3c242f2120413c943dfd9715fe') or name (e.g. 'Office') of the Spotify Connect Player device this command is targeting. If an '*' is specified, then the SpotifyPlus default device is used. eg: Bose-ST10-1 + ///If True, the active user context of the resolved device is checked to ensure it matches the Spotify Connect user context specified in the SpotifyPlus configuration options. If False, the user context will not be checked. Default is True. eg: True + ///Maximum time to wait (in seconds) for the device to become active in the Spotify Connect device list. This value is only used if a Connect command has to be issued to activate the device. Default is 5; value range is 0 - 10. eg: 0.50 + ///True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True + ///True to activate the device if necessary; otherwise, False. eg: True + ///Time delay (in seconds) to wait AFTER issuing any command to the device. This delay will give the spotify zeroconf api time to process the change before another command is issued. Default is 0.25; value range is 0 - 10. eg: 0.25 + public Task GetSpotifyConnectDeviceAsync(string entityId, string deviceValue, bool? verifyUserContext = null, double? verifyTimeout = null, bool? refreshDeviceList = null, bool? activateDevice = null, double? delay = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_spotify_connect_device", null, new SpotifyplusGetSpotifyConnectDeviceParameters { EntityId = entityId, DeviceValue = deviceValue, VerifyUserContext = verifyUserContext, VerifyTimeout = verifyTimeout, RefreshDeviceList = refreshDeviceList, ActivateDevice = activateDevice, Delay = delay }); + } + + ///Get information about all available Spotify Connect player (both static and dynamic) devices. + public void GetSpotifyConnectDevices(SpotifyplusGetSpotifyConnectDevicesParameters data) + { + _haContext.CallService("spotifyplus", "get_spotify_connect_devices", null, data); + } + + ///Get information about all available Spotify Connect player (both static and dynamic) devices. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///True (default) to return real-time information from the spotify zeroconf api and update the cache; otherwise, False to just return the cached value. eg: True + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetSpotifyConnectDevices(string entityId, bool? refresh = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_spotify_connect_devices", null, new SpotifyplusGetSpotifyConnectDevicesParameters { EntityId = entityId, Refresh = refresh, SortResult = sortResult }); + } + + ///Get information about all available Spotify Connect player (both static and dynamic) devices. + public Task GetSpotifyConnectDevicesAsync(SpotifyplusGetSpotifyConnectDevicesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_spotify_connect_devices", null, data); + } + + ///Get information about all available Spotify Connect player (both static and dynamic) devices. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///True (default) to return real-time information from the spotify zeroconf api and update the cache; otherwise, False to just return the cached value. eg: True + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetSpotifyConnectDevicesAsync(string entityId, bool? refresh = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_spotify_connect_devices", null, new SpotifyplusGetSpotifyConnectDevicesParameters { EntityId = entityId, Refresh = refresh, SortResult = sortResult }); + } + + ///Get Spotify catalog information for a single track. + public void GetTrack(SpotifyplusGetTrackParameters data) + { + _haContext.CallService("spotifyplus", "get_track", null, data); + } + + ///Get Spotify catalog information for a single track. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy + public void GetTrack(string entityId, string? trackId = null) + { + _haContext.CallService("spotifyplus", "get_track", null, new SpotifyplusGetTrackParameters { EntityId = entityId, TrackId = trackId }); + } + + ///Get Spotify catalog information for a single track. + public Task GetTrackAsync(SpotifyplusGetTrackParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_track", null, data); + } + + ///Get Spotify catalog information for a single track. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy + public Task GetTrackAsync(string entityId, string? trackId = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_track", null, new SpotifyplusGetTrackParameters { EntityId = entityId, TrackId = trackId }); + } + + ///Get a list of the tracks saved in the current Spotify user's 'Your Library'. + public void GetTrackFavorites(SpotifyplusGetTrackFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "get_track_favorites", null, data); + } + + ///Get a list of the tracks saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetTrackFavorites(string entityId, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_track_favorites", null, new SpotifyplusGetTrackFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get a list of the tracks saved in the current Spotify user's 'Your Library'. + public Task GetTrackFavoritesAsync(SpotifyplusGetTrackFavoritesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_track_favorites", null, data); + } + + ///Get a list of the tracks saved in the current Spotify user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetTrackFavoritesAsync(string entityId, double? limit = null, double? offset = null, string? market = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_track_favorites", null, new SpotifyplusGetTrackFavoritesParameters { EntityId = entityId, Limit = limit, Offset = offset, Market = market, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get audio features for multiple tracks based on their Spotify IDs. + public void GetTracksAudioFeatures(SpotifyplusGetTracksAudioFeaturesParameters data) + { + _haContext.CallService("spotifyplus", "get_tracks_audio_features", null, data); + } + + ///Get audio features for multiple tracks based on their Spotify IDs. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B + public void GetTracksAudioFeatures(string entityId, string ids) + { + _haContext.CallService("spotifyplus", "get_tracks_audio_features", null, new SpotifyplusGetTracksAudioFeaturesParameters { EntityId = entityId, Ids = ids }); + } + + ///Get audio features for multiple tracks based on their Spotify IDs. + public Task GetTracksAudioFeaturesAsync(SpotifyplusGetTracksAudioFeaturesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_tracks_audio_features", null, data); + } + + ///Get audio features for multiple tracks based on their Spotify IDs. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B + public Task GetTracksAudioFeaturesAsync(string entityId, string ids) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_tracks_audio_features", null, new SpotifyplusGetTracksAudioFeaturesParameters { EntityId = entityId, Ids = ids }); + } + + ///Get the current user's top artists based on calculated affinity. + public void GetUsersTopArtists(SpotifyplusGetUsersTopArtistsParameters data) + { + _haContext.CallService("spotifyplus", "get_users_top_artists", null, data); + } + + ///Get the current user's top artists based on calculated affinity. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetUsersTopArtists(string entityId, string? timeRange = null, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_users_top_artists", null, new SpotifyplusGetUsersTopArtistsParameters { EntityId = entityId, TimeRange = timeRange, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get the current user's top artists based on calculated affinity. + public Task GetUsersTopArtistsAsync(SpotifyplusGetUsersTopArtistsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_users_top_artists", null, data); + } + + ///Get the current user's top artists based on calculated affinity. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetUsersTopArtistsAsync(string entityId, string? timeRange = null, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_users_top_artists", null, new SpotifyplusGetUsersTopArtistsParameters { EntityId = entityId, TimeRange = timeRange, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get the current user's top tracks based on calculated affinity. + public void GetUsersTopTracks(SpotifyplusGetUsersTopTracksParameters data) + { + _haContext.CallService("spotifyplus", "get_users_top_tracks", null, data); + } + + ///Get the current user's top tracks based on calculated affinity. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public void GetUsersTopTracks(string entityId, string? timeRange = null, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + _haContext.CallService("spotifyplus", "get_users_top_tracks", null, new SpotifyplusGetUsersTopTracksParameters { EntityId = entityId, TimeRange = timeRange, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Get the current user's top tracks based on calculated affinity. + public Task GetUsersTopTracksAsync(SpotifyplusGetUsersTopTracksParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_users_top_tracks", null, data); + } + + ///Get the current user's top tracks based on calculated affinity. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + public Task GetUsersTopTracksAsync(string entityId, string? timeRange = null, double? limit = null, double? offset = null, double? limitTotal = null, bool? sortResult = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "get_users_top_tracks", null, new SpotifyplusGetUsersTopTracksParameters { EntityId = entityId, TimeRange = timeRange, Limit = limit, Offset = offset, LimitTotal = limitTotal, SortResult = sortResult }); + } + + ///Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context. + public void PlayerActivateDevices(SpotifyplusPlayerActivateDevicesParameters data) + { + _haContext.CallService("spotifyplus", "player_activate_devices", null, data); + } + + ///Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///If True, the active user context of the resolved device is checked to ensure it matches the specified Spotify Connect user context. If False, the user context will not be checked. Default is False. eg: True + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerActivateDevices(string entityId, bool? verifyUserContext = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_activate_devices", null, new SpotifyplusPlayerActivateDevicesParameters { EntityId = entityId, VerifyUserContext = verifyUserContext, Delay = delay }); + } + + ///Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context. + public Task PlayerActivateDevicesAsync(SpotifyplusPlayerActivateDevicesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "player_activate_devices", null, data); + } + + ///Activates all Spotify Connect player devices, and (optionally) switches the active user context to the current user context. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///If True, the active user context of the resolved device is checked to ensure it matches the specified Spotify Connect user context. If False, the user context will not be checked. Default is False. eg: True + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public Task PlayerActivateDevicesAsync(string entityId, bool? verifyUserContext = null, double? delay = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "player_activate_devices", null, new SpotifyplusPlayerActivateDevicesParameters { EntityId = entityId, VerifyUserContext = verifyUserContext, Delay = delay }); + } + + ///Start playing one or more tracks of the specified context on a Spotify Connect device. + public void PlayerMediaPlayContext(SpotifyplusPlayerMediaPlayContextParameters data) + { + _haContext.CallService("spotifyplus", "player_media_play_context", null, data); + } + + ///Start playing one or more tracks of the specified context on a Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///Spotify URI of the context to play (e.g. `spotify:album:6vc9OTcyd3hyzabCmsdnwE`). Valid contexts are albums, artists & playlists. eg: spotify:album:6vc9OTcyd3hyzabCmsdnwE + ///Indicates from what Uri in the context playback should start (e.g. `1kWUud3vY5ij5r62zxpTRy`. Only available when contextUri corresponds to an artist, album or playlist. The offsetPosition argument will be used if this value is null. eg: spotify:track:1kWUud3vY5ij5r62zxpTRy + ///Indicates from what position in the context playback should start. The value is zero-based, and can't be negative. Only available when contextUri corresponds to an album or playlist. eg: 3 + ///The position (in milliseconds) to seek to; must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next track. eg: 0 + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerMediaPlayContext(string entityId, string contextUri, string? offsetUri = null, double? offsetPosition = null, double? positionMs = null, string? deviceId = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_media_play_context", null, new SpotifyplusPlayerMediaPlayContextParameters { EntityId = entityId, ContextUri = contextUri, OffsetUri = offsetUri, OffsetPosition = offsetPosition, PositionMs = positionMs, DeviceId = deviceId, Delay = delay }); + } + + ///Start playing track favorites on the specified Spotify Connect device. + public void PlayerMediaPlayTrackFavorites(SpotifyplusPlayerMediaPlayTrackFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "player_media_play_track_favorites", null, data); + } + + ///Start playing track favorites on the specified Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + ///True to resolve the supplied `deviceId` value; otherwise, False not resolve the `deviceId` value as it has already been resolved. Default is True. eg: True + ///The maximum number of items to retrieve from favorites. Default is 200. eg: 200 + public void PlayerMediaPlayTrackFavorites(string entityId, string? deviceId = null, bool? shuffle = null, double? delay = null, bool? resolveDeviceId = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "player_media_play_track_favorites", null, new SpotifyplusPlayerMediaPlayTrackFavoritesParameters { EntityId = entityId, DeviceId = deviceId, Shuffle = shuffle, Delay = delay, ResolveDeviceId = resolveDeviceId, LimitTotal = limitTotal }); + } + + ///Start playing one or more tracks on the specified Spotify Connect device. + public void PlayerMediaPlayTracks(SpotifyplusPlayerMediaPlayTracksParameters data) + { + _haContext.CallService("spotifyplus", "player_media_play_tracks", null, data); + } + + ///Start playing one or more tracks on the specified Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A list of Spotify track URIs to play; can be track or episode URIs. A maximum of 50 items can be added in one request. eg: spotify:track:6zd8T1PBe9JFHmuVnurdRp,spotify:track:1kWUud3vY5ij5r62zxpTRy + ///The position (in milliseconds) to seek to; must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next track. eg: 0 + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerMediaPlayTracks(string entityId, string uris, double? positionMs = null, string? deviceId = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_media_play_tracks", null, new SpotifyplusPlayerMediaPlayTracksParameters { EntityId = entityId, Uris = uris, PositionMs = positionMs, DeviceId = deviceId, Delay = delay }); + } + + ///Resolves a Spotify Connect device identifier from a specified device id, name, alias id, or alias name. This will ensure that the device id can be found on the network, as well as connect to the device if necessary with the current user context. + public void PlayerResolveDeviceId(SpotifyplusPlayerResolveDeviceIdParameters data) + { + _haContext.CallService("spotifyplus", "player_resolve_device_id", null, data); + } + + ///Resolves a Spotify Connect device identifier from a specified device id, name, alias id, or alias name. This will ensure that the device id can be found on the network, as well as connect to the device if necessary with the current user context. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1 + ///If True, the active user context of the resolved device is checked to ensure it matches the user context specified on the class constructor. If False, the user context will not be checked. Default is True. eg: True + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 5.0; value range is 0 - 10. eg: 5.0 + public void PlayerResolveDeviceId(string entityId, string deviceValue, bool? verifyUserContext = null, double? verifyTimeout = null) + { + _haContext.CallService("spotifyplus", "player_resolve_device_id", null, new SpotifyplusPlayerResolveDeviceIdParameters { EntityId = entityId, DeviceValue = deviceValue, VerifyUserContext = verifyUserContext, VerifyTimeout = verifyTimeout }); + } + + ///Resolves a Spotify Connect device identifier from a specified device id, name, alias id, or alias name. This will ensure that the device id can be found on the network, as well as connect to the device if necessary with the current user context. + public Task PlayerResolveDeviceIdAsync(SpotifyplusPlayerResolveDeviceIdParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "player_resolve_device_id", null, data); + } + + ///Resolves a Spotify Connect device identifier from a specified device id, name, alias id, or alias name. This will ensure that the device id can be found on the network, as well as connect to the device if necessary with the current user context. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1 + ///If True, the active user context of the resolved device is checked to ensure it matches the user context specified on the class constructor. If False, the user context will not be checked. Default is True. eg: True + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 5.0; value range is 0 - 10. eg: 5.0 + public Task PlayerResolveDeviceIdAsync(string entityId, string deviceValue, bool? verifyUserContext = null, double? verifyTimeout = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "player_resolve_device_id", null, new SpotifyplusPlayerResolveDeviceIdParameters { EntityId = entityId, DeviceValue = deviceValue, VerifyUserContext = verifyUserContext, VerifyTimeout = verifyTimeout }); + } + + ///Set repeat mode for the specified Spotify Connect device. + public void PlayerSetRepeatMode(SpotifyplusPlayerSetRepeatModeParameters data) + { + _haContext.CallService("spotifyplus", "player_set_repeat_mode", null, data); + } + + ///Set repeat mode for the specified Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The repeat mode state to set; `track` will repeat the current track; `context` will repeat the current context; `off` will turn repeat off. Default is 'off'. eg: off + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerSetRepeatMode(string entityId, object state, string? deviceId = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_set_repeat_mode", null, new SpotifyplusPlayerSetRepeatModeParameters { EntityId = entityId, State = state, DeviceId = deviceId, Delay = delay }); + } + + ///Set shuffle mode for the specified Spotify Connect device. + public void PlayerSetShuffleMode(SpotifyplusPlayerSetShuffleModeParameters data) + { + _haContext.CallService("spotifyplus", "player_set_shuffle_mode", null, data); + } + + ///Set shuffle mode for the specified Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerSetShuffleMode(string entityId, bool state, string? deviceId = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_set_shuffle_mode", null, new SpotifyplusPlayerSetShuffleModeParameters { EntityId = entityId, State = state, DeviceId = deviceId, Delay = delay }); + } + + ///Set volume level for the specified Spotify Connect device. + public void PlayerSetVolumeLevel(SpotifyplusPlayerSetVolumeLevelParameters data) + { + _haContext.CallService("spotifyplus", "player_set_volume_level", null, data); + } + + ///Set volume level for the specified Spotify Connect device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The volume level to set, expressed as a percentage value (e.g. 25). Must be a value from 0 (muted) to 100 (max volume) inclusive. eg: 25 + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + public void PlayerSetVolumeLevel(string entityId, double volumeLevel, string? deviceId = null, double? delay = null) + { + _haContext.CallService("spotifyplus", "player_set_volume_level", null, new SpotifyplusPlayerSetVolumeLevelParameters { EntityId = entityId, VolumeLevel = volumeLevel, DeviceId = deviceId, Delay = delay }); + } + + ///Transfer playback to a new Spotify Connect device and optionally begin playback. + public void PlayerTransferPlayback(SpotifyplusPlayerTransferPlaybackParameters data) + { + _haContext.CallService("spotifyplus", "player_transfer_playback", null, data); + } + + ///Transfer playback to a new Spotify Connect device and optionally begin playback. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The id or name of the Spotify Connect Player device on which playback should be started/transferred. If no device is specified, then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + ///True (default) to start playback on the new device; otherise, False to keep the current playback state on the existing device. eg: True + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + ///True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True + ///True to issue a Spotify Connect Disconnect call prior to transfer, which will force the device to reconnect to Spotify Connect; otherwise, False to not disconnect. Default is True. eg: True + public void PlayerTransferPlayback(string entityId, string? deviceId = null, bool? play = null, double? delay = null, bool? refreshDeviceList = null, bool? forceActivateDevice = null) + { + _haContext.CallService("spotifyplus", "player_transfer_playback", null, new SpotifyplusPlayerTransferPlaybackParameters { EntityId = entityId, DeviceId = deviceId, Play = play, Delay = delay, RefreshDeviceList = refreshDeviceList, ForceActivateDevice = forceActivateDevice }); + } + + ///Change a playlist's details (name, description, and public / private state). + public void PlaylistChange(SpotifyplusPlaylistChangeParameters data) + { + _haContext.CallService("spotifyplus", "playlist_change", null, data); + } + + ///Change a playlist's details (name, description, and public / private state). + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. `5AC9ZXA7nJ7oGWO911FuDG`). eg: 5AC9ZXA7nJ7oGWO911FuDG + ///The updated name of the playlist (e.g. `My Updated Playlist`). This name does not need to be unique; a user may have several playlists with the same name. eg: My Updated Playlist + ///The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist updated by the SpotifyPlus integration + ///If true, the playlist will be public; if false, it will be private. eg: False + ///If true, the playlist will be collaborative (other users can modify it). To create a collaborative playlist you must also set the public argument to false. eg: False + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. Omit this parameter if you do not wish to update the existing playlist image. eg: www/images/spotify_playlist_default_image.png + public void PlaylistChange(string entityId, string playlistId, string name, string description, bool @public, bool collaborative, string? imagePath = null) + { + _haContext.CallService("spotifyplus", "playlist_change", null, new SpotifyplusPlaylistChangeParameters { EntityId = entityId, PlaylistId = playlistId, Name = name, Description = description, Public = @public, Collaborative = collaborative, ImagePath = imagePath }); + } + + ///Replace the image used to represent a specific playlist. + public void PlaylistCoverImageAdd(SpotifyplusPlaylistCoverImageAddParameters data) + { + _haContext.CallService("spotifyplus", "playlist_cover_image_add", null, data); + } + + ///Replace the image used to represent a specific playlist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5v5ETK9WFXAnGQ3MRubKuE + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. eg: www/images/spotify_playlist_default_image.png + public void PlaylistCoverImageAdd(string entityId, string playlistId, string imagePath) + { + _haContext.CallService("spotifyplus", "playlist_cover_image_add", null, new SpotifyplusPlaylistCoverImageAddParameters { EntityId = entityId, PlaylistId = playlistId, ImagePath = imagePath }); + } + + ///Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks. + public void PlaylistCreate(SpotifyplusPlaylistCreateParameters data) + { + _haContext.CallService("spotifyplus", "playlist_create", null, data); + } + + ///Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The user's Spotify user ID (e.g. 32k99y2kg5lnn3mxhtmd2bpdkjfu). Omit this argument to use the Spotify User ID of the player entity_id. eg: 32k99y2kg5lnn3mxhtmd2bpdkjfu + ///The name for the new playlist (e.g. `My New Playlist`). This name does not need to be unique; a user may have several playlists with the same name. eg: My New Playlist + ///The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration + ///If true, the playlist will be public; if false, it will be private. eg: False + ///If true, the playlist will be collaborative (other users can modify it). To create a collaborative playlist you must also set the public argument to false. eg: False + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. Omit this parameter if you do not wish to add a playlist image. eg: www/images/spotify_playlist_default_image.png + public void PlaylistCreate(string entityId, string name, string description, bool @public, bool collaborative, string? userId = null, string? imagePath = null) + { + _haContext.CallService("spotifyplus", "playlist_create", null, new SpotifyplusPlaylistCreateParameters { EntityId = entityId, UserId = userId, Name = name, Description = description, Public = @public, Collaborative = collaborative, ImagePath = imagePath }); + } + + ///Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks. + public Task PlaylistCreateAsync(SpotifyplusPlaylistCreateParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "playlist_create", null, data); + } + + ///Create an empty playlist for a Spotify user. The playlist will remain empty until you add tracks. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The user's Spotify user ID (e.g. 32k99y2kg5lnn3mxhtmd2bpdkjfu). Omit this argument to use the Spotify User ID of the player entity_id. eg: 32k99y2kg5lnn3mxhtmd2bpdkjfu + ///The name for the new playlist (e.g. `My New Playlist`). This name does not need to be unique; a user may have several playlists with the same name. eg: My New Playlist + ///The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration + ///If true, the playlist will be public; if false, it will be private. eg: False + ///If true, the playlist will be collaborative (other users can modify it). To create a collaborative playlist you must also set the public argument to false. eg: False + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. Omit this parameter if you do not wish to add a playlist image. eg: www/images/spotify_playlist_default_image.png + public Task PlaylistCreateAsync(string entityId, string name, string description, bool @public, bool collaborative, string? userId = null, string? imagePath = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "playlist_create", null, new SpotifyplusPlaylistCreateParameters { EntityId = entityId, UserId = userId, Name = name, Description = description, Public = @public, Collaborative = collaborative, ImagePath = imagePath }); + } + + ///Add one or more items to a user's playlist. Items are added in the order they are listed in the `uris` argument. + public void PlaylistItemsAdd(SpotifyplusPlaylistItemsAddParameters data) + { + _haContext.CallService("spotifyplus", "playlist_items_add", null, data); + } + + ///Add one or more items to a user's playlist. Items are added in the order they are listed in the `uris` argument. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + ///A comma-separated list of Spotify URIs to add; can be track or episode URIs (e.g. spotify:track:4iV5W9uYEdYUVa79Axb7Rh). A maximum of 100 items can be specified in one request. If nothing is specified, then the track (or episode) uri currently playing is used. eg: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:episode:512ojhOuo1ktJprKbVcKyQ + ///The position to insert the items, a zero-based index. For example, to insert the items in the first position use a value of 0; to insert the items in the third position use a value of 2. Omit the parameter to append the items to the end of the playlist. eg: 0 + public void PlaylistItemsAdd(string entityId, string playlistId, string? uris = null, double? position = null) + { + _haContext.CallService("spotifyplus", "playlist_items_add", null, new SpotifyplusPlaylistItemsAddParameters { EntityId = entityId, PlaylistId = playlistId, Uris = uris, Position = position }); + } + + ///Removes (clears) all items from a user's playlist. + public void PlaylistItemsClear(SpotifyplusPlaylistItemsClearParameters data) + { + _haContext.CallService("spotifyplus", "playlist_items_clear", null, data); + } + + ///Removes (clears) all items from a user's playlist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + public void PlaylistItemsClear(string entityId, string playlistId) + { + _haContext.CallService("spotifyplus", "playlist_items_clear", null, new SpotifyplusPlaylistItemsClearParameters { EntityId = entityId, PlaylistId = playlistId }); + } + + ///Remove one or more items from a user's playlist. + public void PlaylistItemsRemove(SpotifyplusPlaylistItemsRemoveParameters data) + { + _haContext.CallService("spotifyplus", "playlist_items_remove", null, data); + } + + ///Remove one or more items from a user's playlist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + ///A comma-separated list of Spotify URIs to remove; can be track or episode URIs (e.g. spotify:track:4iV5W9uYEdYUVa79Axb7Rh). A maximum of 100 items can be specified in one request. If nothing is specified, then the track (or episode) uri currently playing is used. eg: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:episode:512ojhOuo1ktJprKbVcKyQ + ///The playlist's snapshot ID against which you want to make the changes (e.g. `MzgsMWVkNDY3MTQ5YjVjYWE0MzAyNjkyZWMyOThjNjE3YWMwOTY0ZmJjYg==`). The API will validate that the specified items exist and make the changes, even if more recent changes have been made to the playlist. If omitted, the current playlist is updated. eg: MzgsMWVkNDY3MTQ5YjVjYWE0MzAyNjkyZWMyOThjNjE3YWMwOTY0ZmJjYg== + public void PlaylistItemsRemove(string entityId, string playlistId, string? uris = null, string? snapshotId = null) + { + _haContext.CallService("spotifyplus", "playlist_items_remove", null, new SpotifyplusPlaylistItemsRemoveParameters { EntityId = entityId, PlaylistId = playlistId, Uris = uris, SnapshotId = snapshotId }); + } + + ///Remove one or more albums from the current user's 'Your Library'. + public void RemoveAlbumFavorites(SpotifyplusRemoveAlbumFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "remove_album_favorites", null, data); + } + + ///Remove one or more albums from the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + public void RemoveAlbumFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "remove_album_favorites", null, new SpotifyplusRemoveAlbumFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Remove one or more audiobooks from the current user's 'Your Library'. + public void RemoveAudiobookFavorites(SpotifyplusRemoveAudiobookFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "remove_audiobook_favorites", null, data); + } + + ///Remove one or more audiobooks from the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + public void RemoveAudiobookFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "remove_audiobook_favorites", null, new SpotifyplusRemoveAudiobookFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Remove one or more episodes from the current user's 'Your Library'. + public void RemoveEpisodeFavorites(SpotifyplusRemoveEpisodeFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "remove_episode_favorites", null, data); + } + + ///Remove one or more episodes from the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + public void RemoveEpisodeFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "remove_episode_favorites", null, new SpotifyplusRemoveEpisodeFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Remove one or more albums from the current user's 'Your Library'. + public void RemoveShowFavorites(SpotifyplusRemoveShowFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "remove_show_favorites", null, data); + } + + ///Remove one or more albums from the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + public void RemoveShowFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "remove_show_favorites", null, new SpotifyplusRemoveShowFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Remove one or more tracks from the current user's 'Your Library'. + public void RemoveTrackFavorites(SpotifyplusRemoveTrackFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "remove_track_favorites", null, data); + } + + ///Remove one or more tracks from the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + public void RemoveTrackFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "remove_track_favorites", null, new SpotifyplusRemoveTrackFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Save one or more albums to the current user's 'Your Library'. + public void SaveAlbumFavorites(SpotifyplusSaveAlbumFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "save_album_favorites", null, data); + } + + ///Save one or more albums to the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + public void SaveAlbumFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "save_album_favorites", null, new SpotifyplusSaveAlbumFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Save one or more audiobook to the current user's 'Your Library'. + public void SaveAudiobookFavorites(SpotifyplusSaveAudiobookFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "save_audiobook_favorites", null, data); + } + + ///Save one or more audiobook to the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + public void SaveAudiobookFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "save_audiobook_favorites", null, new SpotifyplusSaveAudiobookFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Save one or more episodes to the current user's 'Your Library'. + public void SaveEpisodeFavorites(SpotifyplusSaveEpisodeFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "save_episode_favorites", null, data); + } + + ///Save one or more episodes to the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + public void SaveEpisodeFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "save_episode_favorites", null, new SpotifyplusSaveEpisodeFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Save one or more shows to the current user's 'Your Library'. + public void SaveShowFavorites(SpotifyplusSaveShowFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "save_show_favorites", null, data); + } + + ///Save one or more shows to the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + public void SaveShowFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "save_show_favorites", null, new SpotifyplusSaveShowFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Save one or more tracks to the current user's 'Your Library'. + public void SaveTrackFavorites(SpotifyplusSaveTrackFavoritesParameters data) + { + _haContext.CallService("spotifyplus", "save_track_favorites", null, data); + } + + ///Save one or more tracks to the current user's 'Your Library'. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + public void SaveTrackFavorites(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "save_track_favorites", null, new SpotifyplusSaveTrackFavoritesParameters { EntityId = entityId, Ids = ids }); + } + + ///Get Spotify catalog information about Albums that match a keyword string. + public void SearchAlbums(SpotifyplusSearchAlbumsParameters data) + { + _haContext.CallService("spotifyplus", "search_albums", null, data); + } + + ///Get Spotify catalog information about Albums that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Welcome to the New + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchAlbums(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_albums", null, new SpotifyplusSearchAlbumsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Albums that match a keyword string. + public Task SearchAlbumsAsync(SpotifyplusSearchAlbumsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_albums", null, data); + } + + ///Get Spotify catalog information about Albums that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Welcome to the New + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchAlbumsAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_albums", null, new SpotifyplusSearchAlbumsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Artists that match a keyword string. + public void SearchArtists(SpotifyplusSearchArtistsParameters data) + { + _haContext.CallService("spotifyplus", "search_artists", null, data); + } + + ///Get Spotify catalog information about Artists that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: MercyMe + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchArtists(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_artists", null, new SpotifyplusSearchArtistsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Artists that match a keyword string. + public Task SearchArtistsAsync(SpotifyplusSearchArtistsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_artists", null, data); + } + + ///Get Spotify catalog information about Artists that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: MercyMe + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchArtistsAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_artists", null, new SpotifyplusSearchArtistsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Audiobooks that match a keyword string. + public void SearchAudiobooks(SpotifyplusSearchAudiobooksParameters data) + { + _haContext.CallService("spotifyplus", "search_audiobooks", null, data); + } + + ///Get Spotify catalog information about Audiobooks that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: The Elfstones of Shannara + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchAudiobooks(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_audiobooks", null, new SpotifyplusSearchAudiobooksParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Audiobooks that match a keyword string. + public Task SearchAudiobooksAsync(SpotifyplusSearchAudiobooksParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_audiobooks", null, data); + } + + ///Get Spotify catalog information about Audiobooks that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: The Elfstones of Shannara + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchAudiobooksAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_audiobooks", null, new SpotifyplusSearchAudiobooksParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Episodes that match a keyword string. + public void SearchEpisodes(SpotifyplusSearchEpisodesParameters data) + { + _haContext.CallService("spotifyplus", "search_episodes", null, data); + } + + ///Get Spotify catalog information about Episodes that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Armchair Anonymous + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchEpisodes(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_episodes", null, new SpotifyplusSearchEpisodesParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Episodes that match a keyword string. + public Task SearchEpisodesAsync(SpotifyplusSearchEpisodesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_episodes", null, data); + } + + ///Get Spotify catalog information about Episodes that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Armchair Anonymous + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchEpisodesAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_episodes", null, new SpotifyplusSearchEpisodesParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Playlists that match a keyword string. + public void SearchPlaylists(SpotifyplusSearchPlaylistsParameters data) + { + _haContext.CallService("spotifyplus", "search_playlists", null, data); + } + + ///Get Spotify catalog information about Playlists that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Daily Mix + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchPlaylists(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_playlists", null, new SpotifyplusSearchPlaylistsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Playlists that match a keyword string. + public Task SearchPlaylistsAsync(SpotifyplusSearchPlaylistsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_playlists", null, data); + } + + ///Get Spotify catalog information about Playlists that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Daily Mix + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchPlaylistsAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_playlists", null, new SpotifyplusSearchPlaylistsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Shows that match a keyword string. + public void SearchShows(SpotifyplusSearchShowsParameters data) + { + _haContext.CallService("spotifyplus", "search_shows", null, data); + } + + ///Get Spotify catalog information about Shows that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Dax Shepard + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchShows(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_shows", null, new SpotifyplusSearchShowsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Shows that match a keyword string. + public Task SearchShowsAsync(SpotifyplusSearchShowsParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_shows", null, data); + } + + ///Get Spotify catalog information about Shows that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Dax Shepard + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchShowsAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_shows", null, new SpotifyplusSearchShowsParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Tracks that match a keyword string. + public void SearchTracks(SpotifyplusSearchTracksParameters data) + { + _haContext.CallService("spotifyplus", "search_tracks", null, data); + } + + ///Get Spotify catalog information about Tracks that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Dear Younger Me + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public void SearchTracks(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + _haContext.CallService("spotifyplus", "search_tracks", null, new SpotifyplusSearchTracksParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Get Spotify catalog information about Tracks that match a keyword string. + public Task SearchTracksAsync(SpotifyplusSearchTracksParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_tracks", null, data); + } + + ///Get Spotify catalog information about Tracks that match a keyword string. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The criteria to search for. eg: Dear Younger Me + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + public Task SearchTracksAsync(string entityId, string criteria, double? limit = null, double? offset = null, string? market = null, string? includeExternal = null, double? limitTotal = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "search_tracks", null, new SpotifyplusSearchTracksParameters { EntityId = entityId, Criteria = criteria, Limit = limit, Offset = offset, Market = market, IncludeExternal = includeExternal, LimitTotal = limitTotal }); + } + + ///Remove the current user as a follower of one or more artists. + public void UnfollowArtists(SpotifyplusUnfollowArtistsParameters data) + { + _haContext.CallService("spotifyplus", "unfollow_artists", null, data); + } + + ///Remove the current user as a follower of one or more artists. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + public void UnfollowArtists(string entityId, string? ids = null) + { + _haContext.CallService("spotifyplus", "unfollow_artists", null, new SpotifyplusUnfollowArtistsParameters { EntityId = entityId, Ids = ids }); + } + + ///Remove the current user as a follower of a playlist. + public void UnfollowPlaylist(SpotifyplusUnfollowPlaylistParameters data) + { + _haContext.CallService("spotifyplus", "unfollow_playlist", null, data); + } + + ///Remove the current user as a follower of a playlist. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n + public void UnfollowPlaylist(string entityId, string? playlistId = null) + { + _haContext.CallService("spotifyplus", "unfollow_playlist", null, new SpotifyplusUnfollowPlaylistParameters { EntityId = entityId, PlaylistId = playlistId }); + } + + ///Remove the current user as a follower of one or more users. + public void UnfollowUsers(SpotifyplusUnfollowUsersParameters data) + { + _haContext.CallService("spotifyplus", "unfollow_users", null, data); + } + + ///Remove the current user as a follower of one or more users. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + ///A comma-separated list of Spotify user IDs (e.g. `smedjan,3758dfdsfjk435hjk6k79lm0n3c4`). A maximum of 50 IDs can be sent in one request. eg: smedjan,3758dfdsfjk435hjk6k79lm0n3c4 + public void UnfollowUsers(string entityId, string ids) + { + _haContext.CallService("spotifyplus", "unfollow_users", null, new SpotifyplusUnfollowUsersParameters { EntityId = entityId, Ids = ids }); + } + + ///Calls the `addUser` Spotify Zeroconf API endpoint to issue a call to SpConnectionLoginBlob. If successful, the associated device id is added to the Spotify Connect active device list for the specified user account. This will also issue a `resetUsers` call prior to the `addUser` call. + public void ZeroconfDeviceConnect(SpotifyplusZeroconfDeviceConnectParameters data) + { + _haContext.CallService("spotifyplus", "zeroconf_device_connect", null, data); + } + + ///Calls the `addUser` Spotify Zeroconf API endpoint to issue a call to SpConnectionLoginBlob. If successful, the associated device id is added to the Spotify Connect active device list for the specified user account. This will also issue a `resetUsers` call prior to the `addUser` call. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + ///Spotify user name to login with (e.g. 'yourusername@mail.com'). This MUST match the account name (or one of them) that was used to configure Spotify Connect on the manufacturer device. eg: yourusername@mail.com + ///Spotify Connect user password to login with. eg: yourpassword + ///Spotify Connect login id to login with (e.g. '31l77fd87g8h9j00k89f07jf87ge'). This is also known as the canonical user id value. This MUST be the value that relates to the `username` argument. eg: 31l77y75hfnhk79f7gk6jkk878mg + ///True if a Disconnect should be made prior to the Connect call. This will ensure that the active user is logged out, which must be done if switching user accounts; otherwise, False to not issue a Disconnect call. Default is False. eg: False + ///True to ensure that the device id is present in the Spotify Connect device list before issuing a call to Connect; Connect will not be called if the device id is already in the list; otherwise, False to always call Connect to add the device. Default is False. eg: False + public void ZeroconfDeviceConnect(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string username, string password, string? version = null, bool? useSsl = null, string? loginid = null, bool? preDisconnect = null, bool? verifyDeviceListEntry = null) + { + _haContext.CallService("spotifyplus", "zeroconf_device_connect", null, new SpotifyplusZeroconfDeviceConnectParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl, Username = username, Password = password, Loginid = loginid, PreDisconnect = preDisconnect, VerifyDeviceListEntry = verifyDeviceListEntry }); + } + + ///Calls the `addUser` Spotify Zeroconf API endpoint to issue a call to SpConnectionLoginBlob. If successful, the associated device id is added to the Spotify Connect active device list for the specified user account. This will also issue a `resetUsers` call prior to the `addUser` call. + public Task ZeroconfDeviceConnectAsync(SpotifyplusZeroconfDeviceConnectParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_connect", null, data); + } + + ///Calls the `addUser` Spotify Zeroconf API endpoint to issue a call to SpConnectionLoginBlob. If successful, the associated device id is added to the Spotify Connect active device list for the specified user account. This will also issue a `resetUsers` call prior to the `addUser` call. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + ///Spotify user name to login with (e.g. 'yourusername@mail.com'). This MUST match the account name (or one of them) that was used to configure Spotify Connect on the manufacturer device. eg: yourusername@mail.com + ///Spotify Connect user password to login with. eg: yourpassword + ///Spotify Connect login id to login with (e.g. '31l77fd87g8h9j00k89f07jf87ge'). This is also known as the canonical user id value. This MUST be the value that relates to the `username` argument. eg: 31l77y75hfnhk79f7gk6jkk878mg + ///True if a Disconnect should be made prior to the Connect call. This will ensure that the active user is logged out, which must be done if switching user accounts; otherwise, False to not issue a Disconnect call. Default is False. eg: False + ///True to ensure that the device id is present in the Spotify Connect device list before issuing a call to Connect; Connect will not be called if the device id is already in the list; otherwise, False to always call Connect to add the device. Default is False. eg: False + public Task ZeroconfDeviceConnectAsync(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string username, string password, string? version = null, bool? useSsl = null, string? loginid = null, bool? preDisconnect = null, bool? verifyDeviceListEntry = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_connect", null, new SpotifyplusZeroconfDeviceConnectParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl, Username = username, Password = password, Loginid = loginid, PreDisconnect = preDisconnect, VerifyDeviceListEntry = verifyDeviceListEntry }); + } + + ///Calls the `resetUsers` Spotify Zeroconf API endpoint to issue a call to SpConnectionLogout. The currently logged in user (if any) will be logged out of Spotify Connect, and the device id removed from the active Spotify Connect device list. + public void ZeroconfDeviceDisconnect(SpotifyplusZeroconfDeviceDisconnectParameters data) + { + _haContext.CallService("spotifyplus", "zeroconf_device_disconnect", null, data); + } + + ///Calls the `resetUsers` Spotify Zeroconf API endpoint to issue a call to SpConnectionLogout. The currently logged in user (if any) will be logged out of Spotify Connect, and the device id removed from the active Spotify Connect device list. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + public void ZeroconfDeviceDisconnect(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null) + { + _haContext.CallService("spotifyplus", "zeroconf_device_disconnect", null, new SpotifyplusZeroconfDeviceDisconnectParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl }); + } + + ///Calls the `resetUsers` Spotify Zeroconf API endpoint to issue a call to SpConnectionLogout. The currently logged in user (if any) will be logged out of Spotify Connect, and the device id removed from the active Spotify Connect device list. + public Task ZeroconfDeviceDisconnectAsync(SpotifyplusZeroconfDeviceDisconnectParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_disconnect", null, data); + } + + ///Calls the `resetUsers` Spotify Zeroconf API endpoint to issue a call to SpConnectionLogout. The currently logged in user (if any) will be logged out of Spotify Connect, and the device id removed from the active Spotify Connect device list. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + public Task ZeroconfDeviceDisconnectAsync(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_disconnect", null, new SpotifyplusZeroconfDeviceDisconnectParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl }); + } + + ///Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device. + public void ZeroconfDeviceGetinfo(SpotifyplusZeroconfDeviceGetinfoParameters data) + { + _haContext.CallService("spotifyplus", "zeroconf_device_getinfo", null, data); + } + + ///Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + public void ZeroconfDeviceGetinfo(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null) + { + _haContext.CallService("spotifyplus", "zeroconf_device_getinfo", null, new SpotifyplusZeroconfDeviceGetinfoParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl }); + } + + ///Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device. + public Task ZeroconfDeviceGetinfoAsync(SpotifyplusZeroconfDeviceGetinfoParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_getinfo", null, data); + } + + ///Calls the `getInfo` Spotify Zeroconf API endpoint to return information about the device. + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + public Task ZeroconfDeviceGetinfoAsync(string entityId, string hostIpv4Address, double hostIpPort, string cpath, string? version = null, bool? useSsl = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_device_getinfo", null, new SpotifyplusZeroconfDeviceGetinfoParameters { EntityId = entityId, HostIpv4Address = hostIpv4Address, HostIpPort = hostIpPort, Cpath = cpath, Version = version, UseSsl = useSsl }); + } + + ///Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device. + public void ZeroconfDiscoverDevices(SpotifyplusZeroconfDiscoverDevicesParameters data) + { + _haContext.CallService("spotifyplus", "zeroconf_discover_devices", null, data); + } + + ///Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device. + ///Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username + ///Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0 + public void ZeroconfDiscoverDevices(string entityId, double? timeout = null) + { + _haContext.CallService("spotifyplus", "zeroconf_discover_devices", null, new SpotifyplusZeroconfDiscoverDevicesParameters { EntityId = entityId, Timeout = timeout }); + } + + ///Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device. + public Task ZeroconfDiscoverDevicesAsync(SpotifyplusZeroconfDiscoverDevicesParameters data) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_discover_devices", null, data); + } + + ///Discover Spotify Connect devices on the local network via the ZeroConf (aka MDNS) service, and return details about each device. + ///Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username + ///Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0 + public Task ZeroconfDiscoverDevicesAsync(string entityId, double? timeout = null) + { + return _haContext.CallServiceWithResponseAsync("spotifyplus", "zeroconf_discover_devices", null, new SpotifyplusZeroconfDiscoverDevicesParameters { EntityId = entityId, Timeout = timeout }); + } +} + +public partial record SpotifyplusCheckAlbumFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusCheckArtistsFollowingParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusCheckAudiobookFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusCheckEpisodeFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusCheckShowFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusCheckTrackFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusFollowArtistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusFollowPlaylistParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///If true the playlist will be included in user's public playlists, if false it will remain private. eg: True + [JsonPropertyName("public")] + public bool? Public { get; init; } +} + +public partial record SpotifyplusFollowUsersParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of the Spotify user IDs (e.g. 'smedjan,3758dfdsfjk435hjk6k79lm0n3c4'). A maximum of 50 IDs can be sent in one request. eg: smedjan,3758dfdsfjk435hjk6k79lm0n3c4 + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusGetAlbumParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the album. If omitted, the currently playing album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE + [JsonPropertyName("album_id")] + public string? AlbumId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } +} + +public partial record SpotifyplusGetAlbumFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetAlbumNewReleasesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("country")] + public string? Country { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetArtistParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + [JsonPropertyName("artist_id")] + public string? ArtistId { get; init; } +} + +public partial record SpotifyplusGetArtistAlbumsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the artist. If omitted, the currently playing artist uri id value is used. eg: 6APm8EjxOHSYM5B4i3vT3q + [JsonPropertyName("artist_id")] + public string? ArtistId { get; init; } + + ///A comma-separated list of keywords that will be used to filter the response. If not supplied, only `album` types will be returned. Valid values are `album`, `single`, `appears_on`, `compilation`. eg: album + [JsonPropertyName("include_groups")] + public string? IncludeGroups { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetArtistsFollowedParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The last artist ID retrieved from the previous request, or null for the first request. eg: 6APm8EjxOHSYM5B4i3vT3q + [JsonPropertyName("after")] + public string? After { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetAudiobookFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetBrowseCategorysListParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("country")] + public string? Country { get; init; } + + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + [JsonPropertyName("locale")] + public string? Locale { get; init; } + + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: False + [JsonPropertyName("refresh")] + public bool? Refresh { get; init; } +} + +public partial record SpotifyplusGetCategoryPlaylistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify category ID (not name) for the category. eg: dinner + [JsonPropertyName("category_id")] + public string? CategoryId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("country")] + public string? Country { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetEpisodeParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the episode. If omitted, the currently playing episode uri id value is used. eg: 26c0zVyOv1lzfYpBXdh1zC + [JsonPropertyName("episode_id")] + public string? EpisodeId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } +} + +public partial record SpotifyplusGetEpisodeFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetFeaturedPlaylistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("country")] + public string? Country { get; init; } + + ///The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore. For example `es_MX`, meaning `Spanish (Mexico)`. Provide this parameter if you want the results returned in a particular language (where available). Note that if locale is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). eg: es_MX + [JsonPropertyName("locale")] + public string? Locale { get; init; } + + ///A timestamp in ISO 8601 format (yyyy-MM-ddTHH:mm:ss). Use this parameter to specify the user's local time to get results tailored for that specific date and time in the day. If not provided, the response defaults to the current UTC time. eg: 2023-10-23T09:00:00 + [JsonPropertyName("timestamp")] + public string? Timestamp { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetPlayerDevicesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///True to return real-time information from the spotify web api and update the cache; otherwise, False to just return the cached value. eg: True + [JsonPropertyName("refresh")] + public bool? Refresh { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetPlayerNowPlayingParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + [JsonPropertyName("additional_types")] + public string? AdditionalTypes { get; init; } +} + +public partial record SpotifyplusGetPlayerPlaybackStateParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + [JsonPropertyName("additional_types")] + public string? AdditionalTypes { get; init; } +} + +public partial record SpotifyplusGetPlayerQueueInfoParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } +} + +public partial record SpotifyplusGetPlayerRecentTracksParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///Returns all items after (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `after` is specified, `before` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218456821 + [JsonPropertyName("after")] + public double? After { get; init; } + + ///Returns all items before (but not including) this cursor position, which is a Unix timestamp in milliseconds. If `before` is specified, `after` must not be specified. Use with limit to get the next set of items. Default is `0` (the first item). eg: 1706218467821 + [JsonPropertyName("before")] + public double? Before { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusGetPlaylistParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist. If omitted, the currently playing playlist uri id value is used. eg: 5v5ETK9WFXAnGQ3MRubKuE + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///A comma-separated list of fields to return from the Spotify Web API. All fields are returned if omitted. eg: description,id,name,public,snapshot_id,type,uri,tracks(limit,next,offset,previous,total,items(track(id,name,track_number,type,uri,album(id,images,name,total_tracks,type,uri,artists(id,name,type,uri))))) + [JsonPropertyName("fields")] + public string? Fields { get; init; } + + ///A comma-separated list of item types that your client supports besides the default track type. Valid types are 'track' and 'episode'. eg: episode + [JsonPropertyName("additional_types")] + public string? AdditionalTypes { get; init; } +} + +public partial record SpotifyplusGetPlaylistFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetShowParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the show. If omitted, the currently playing show uri id value is used. eg: 5CfCWKI5pZ28U0uOzXkDHe + [JsonPropertyName("show_id")] + public string? ShowId { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } +} + +public partial record SpotifyplusGetShowEpisodesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID for the show. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE + [JsonPropertyName("show_id")] + public string? ShowId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusGetShowFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetSpotifyConnectDeviceParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The id (e.g. '30fbc80e35598f3c242f2120413c943dfd9715fe') or name (e.g. 'Office') of the Spotify Connect Player device this command is targeting. If an '*' is specified, then the SpotifyPlus default device is used. eg: Bose-ST10-1 + [JsonPropertyName("device_value")] + public string? DeviceValue { get; init; } + + ///If True, the active user context of the resolved device is checked to ensure it matches the Spotify Connect user context specified in the SpotifyPlus configuration options. If False, the user context will not be checked. Default is True. eg: True + [JsonPropertyName("verify_user_context")] + public bool? VerifyUserContext { get; init; } + + ///Maximum time to wait (in seconds) for the device to become active in the Spotify Connect device list. This value is only used if a Connect command has to be issued to activate the device. Default is 5; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("verify_timeout")] + public double? VerifyTimeout { get; init; } + + ///True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True + [JsonPropertyName("refresh_device_list")] + public bool? RefreshDeviceList { get; init; } + + ///True to activate the device if necessary; otherwise, False. eg: True + [JsonPropertyName("activate_device")] + public bool? ActivateDevice { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing any command to the device. This delay will give the spotify zeroconf api time to process the change before another command is issued. Default is 0.25; value range is 0 - 10. eg: 0.25 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusGetSpotifyConnectDevicesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///True (default) to return real-time information from the spotify zeroconf api and update the cache; otherwise, False to just return the cached value. eg: True + [JsonPropertyName("refresh")] + public bool? Refresh { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetTrackParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the track. If omitted, the currently playing track uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy + [JsonPropertyName("track_id")] + public string? TrackId { get; init; } +} + +public partial record SpotifyplusGetTrackFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetTracksAudioFeaturesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of the Spotify track IDs. Maximum of 100 IDs. Example `7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B`. eg: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusGetUsersTopArtistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + [JsonPropertyName("time_range")] + public string? TimeRange { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusGetUsersTopTracksParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///Over what time frame the affinities are computed. Valid values are `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), and `short_term` (approximately last 4 weeks). eg: long_term + [JsonPropertyName("time_range")] + public string? TimeRange { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } + + ///True to sort result items by name prior to returning to the caller; otherwise, False to return results in the order that the Spotify Web API returned them. eg: True + [JsonPropertyName("sort_result")] + public bool? SortResult { get; init; } +} + +public partial record SpotifyplusPlayerActivateDevicesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///If True, the active user context of the resolved device is checked to ensure it matches the specified Spotify Connect user context. If False, the user context will not be checked. Default is False. eg: True + [JsonPropertyName("verify_user_context")] + public bool? VerifyUserContext { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerMediaPlayContextParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///Spotify URI of the context to play (e.g. `spotify:album:6vc9OTcyd3hyzabCmsdnwE`). Valid contexts are albums, artists & playlists. eg: spotify:album:6vc9OTcyd3hyzabCmsdnwE + [JsonPropertyName("context_uri")] + public string? ContextUri { get; init; } + + ///Indicates from what Uri in the context playback should start (e.g. `1kWUud3vY5ij5r62zxpTRy`. Only available when contextUri corresponds to an artist, album or playlist. The offsetPosition argument will be used if this value is null. eg: spotify:track:1kWUud3vY5ij5r62zxpTRy + [JsonPropertyName("offset_uri")] + public string? OffsetUri { get; init; } + + ///Indicates from what position in the context playback should start. The value is zero-based, and can't be negative. Only available when contextUri corresponds to an album or playlist. eg: 3 + [JsonPropertyName("offset_position")] + public double? OffsetPosition { get; init; } + + ///The position (in milliseconds) to seek to; must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next track. eg: 0 + [JsonPropertyName("position_ms")] + public double? PositionMs { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerMediaPlayTrackFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True + [JsonPropertyName("shuffle")] + public bool? Shuffle { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } + + ///True to resolve the supplied `deviceId` value; otherwise, False not resolve the `deviceId` value as it has already been resolved. Default is True. eg: True + [JsonPropertyName("resolve_device_id")] + public bool? ResolveDeviceId { get; init; } + + ///The maximum number of items to retrieve from favorites. Default is 200. eg: 200 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusPlayerMediaPlayTracksParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A list of Spotify track URIs to play; can be track or episode URIs. A maximum of 50 items can be added in one request. eg: spotify:track:6zd8T1PBe9JFHmuVnurdRp,spotify:track:1kWUud3vY5ij5r62zxpTRy + [JsonPropertyName("uris")] + public string? Uris { get; init; } + + ///The position (in milliseconds) to seek to; must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next track. eg: 0 + [JsonPropertyName("position_ms")] + public double? PositionMs { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerResolveDeviceIdParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The device id (e.g. '0d1841b0976bae2a3a310dd74c0f337465899bc8') or name (e.g. 'Bose-ST10-1') value to resolve. eg: Bose-ST10-1 + [JsonPropertyName("device_value")] + public string? DeviceValue { get; init; } + + ///If True, the active user context of the resolved device is checked to ensure it matches the user context specified on the class constructor. If False, the user context will not be checked. Default is True. eg: True + [JsonPropertyName("verify_user_context")] + public bool? VerifyUserContext { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 5.0; value range is 0 - 10. eg: 5.0 + [JsonPropertyName("verify_timeout")] + public double? VerifyTimeout { get; init; } +} + +public partial record SpotifyplusPlayerSetRepeatModeParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The repeat mode state to set; `track` will repeat the current track; `context` will repeat the current context; `off` will turn repeat off. Default is 'off'. eg: off + [JsonPropertyName("state")] + public object? State { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerSetShuffleModeParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///True to set player shuffle mode to on; otherwise, False for no shuffle. eg: True + [JsonPropertyName("state")] + public bool? State { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerSetVolumeLevelParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The volume level to set, expressed as a percentage value (e.g. 25). Must be a value from 0 (muted) to 100 (max volume) inclusive. eg: 25 + [JsonPropertyName("volume_level")] + public double? VolumeLevel { get; init; } + + ///The id or name of the Spotify Connect Player device this command is targeting. If not supplied, the user's currently active device is the target. If no device is active (or an '*' is specified), then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the command to the player. This delay will give the spotify web api time to process the change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } +} + +public partial record SpotifyplusPlayerTransferPlaybackParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The id or name of the Spotify Connect Player device on which playback should be started/transferred. If no device is specified, then the SpotifyPlus default device is activated. eg: 0d1841b0976bae2a3a310dd74c0f337465899bc8 + [JsonPropertyName("device_id")] + public string? DeviceId { get; init; } + + ///True (default) to start playback on the new device; otherise, False to keep the current playback state on the existing device. eg: True + [JsonPropertyName("play")] + public bool? Play { get; init; } + + ///Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary). This delay will give the spotify web api time to process the device list change before another command is issued. Default is 0.50; value range is 0 - 10. eg: 0.50 + [JsonPropertyName("delay")] + public double? Delay { get; init; } + + ///True to refresh the Spotify Connect device list; otherwise, False to use the Spotify Connect device list cache. Default is True. eg: True + [JsonPropertyName("refresh_device_list")] + public bool? RefreshDeviceList { get; init; } + + ///True to issue a Spotify Connect Disconnect call prior to transfer, which will force the device to reconnect to Spotify Connect; otherwise, False to not disconnect. Default is True. eg: True + [JsonPropertyName("force_activate_device")] + public bool? ForceActivateDevice { get; init; } +} + +public partial record SpotifyplusPlaylistChangeParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. `5AC9ZXA7nJ7oGWO911FuDG`). eg: 5AC9ZXA7nJ7oGWO911FuDG + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///The updated name of the playlist (e.g. `My Updated Playlist`). This name does not need to be unique; a user may have several playlists with the same name. eg: My Updated Playlist + [JsonPropertyName("name")] + public string? Name { get; init; } + + ///The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist updated by the SpotifyPlus integration + [JsonPropertyName("description")] + public string? Description { get; init; } + + ///If true, the playlist will be public; if false, it will be private. eg: False + [JsonPropertyName("public")] + public bool? Public { get; init; } + + ///If true, the playlist will be collaborative (other users can modify it). To create a collaborative playlist you must also set the public argument to false. eg: False + [JsonPropertyName("collaborative")] + public bool? Collaborative { get; init; } + + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. Omit this parameter if you do not wish to update the existing playlist image. eg: www/images/spotify_playlist_default_image.png + [JsonPropertyName("image_path")] + public string? ImagePath { get; init; } +} + +public partial record SpotifyplusPlaylistCoverImageAddParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5v5ETK9WFXAnGQ3MRubKuE + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. eg: www/images/spotify_playlist_default_image.png + [JsonPropertyName("image_path")] + public string? ImagePath { get; init; } +} + +public partial record SpotifyplusPlaylistCreateParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The user's Spotify user ID (e.g. 32k99y2kg5lnn3mxhtmd2bpdkjfu). Omit this argument to use the Spotify User ID of the player entity_id. eg: 32k99y2kg5lnn3mxhtmd2bpdkjfu + [JsonPropertyName("user_id")] + public string? UserId { get; init; } + + ///The name for the new playlist (e.g. `My New Playlist`). This name does not need to be unique; a user may have several playlists with the same name. eg: My New Playlist + [JsonPropertyName("name")] + public string? Name { get; init; } + + ///The playlist description, as displayed in Spotify Clients and in the Web API. eg: A Playlist created by the SpotifyPlus integration + [JsonPropertyName("description")] + public string? Description { get; init; } + + ///If true, the playlist will be public; if false, it will be private. eg: False + [JsonPropertyName("public")] + public bool? Public { get; init; } + + ///If true, the playlist will be collaborative (other users can modify it). To create a collaborative playlist you must also set the public argument to false. eg: False + [JsonPropertyName("collaborative")] + public bool? Collaborative { get; init; } + + ///The fully-qualified path of the image to be uploaded (e.g. `www/images/spotify_playlist_default_image.png`). The image must be in PNG or JPEG format, and cannot exceed 256KB in Base64 encoded size. Omit this parameter if you do not wish to add a playlist image. eg: www/images/spotify_playlist_default_image.png + [JsonPropertyName("image_path")] + public string? ImagePath { get; init; } +} + +public partial record SpotifyplusPlaylistItemsAddParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///A comma-separated list of Spotify URIs to add; can be track or episode URIs (e.g. spotify:track:4iV5W9uYEdYUVa79Axb7Rh). A maximum of 100 items can be specified in one request. If nothing is specified, then the track (or episode) uri currently playing is used. eg: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:episode:512ojhOuo1ktJprKbVcKyQ + [JsonPropertyName("uris")] + public string? Uris { get; init; } + + ///The position to insert the items, a zero-based index. For example, to insert the items in the first position use a value of 0; to insert the items in the third position use a value of 2. Omit the parameter to append the items to the end of the playlist. eg: 0 + [JsonPropertyName("position")] + public double? Position { get; init; } +} + +public partial record SpotifyplusPlaylistItemsClearParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } +} + +public partial record SpotifyplusPlaylistItemsRemoveParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. 5AC9ZXA7nJ7oGWO911FuDG). eg: 5AC9ZXA7nJ7oGWO911FuDG + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } + + ///A comma-separated list of Spotify URIs to remove; can be track or episode URIs (e.g. spotify:track:4iV5W9uYEdYUVa79Axb7Rh). A maximum of 100 items can be specified in one request. If nothing is specified, then the track (or episode) uri currently playing is used. eg: spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:episode:512ojhOuo1ktJprKbVcKyQ + [JsonPropertyName("uris")] + public string? Uris { get; init; } + + ///The playlist's snapshot ID against which you want to make the changes (e.g. `MzgsMWVkNDY3MTQ5YjVjYWE0MzAyNjkyZWMyOThjNjE3YWMwOTY0ZmJjYg==`). The API will validate that the specified items exist and make the changes, even if more recent changes have been made to the playlist. If omitted, the current playlist is updated. eg: MzgsMWVkNDY3MTQ5YjVjYWE0MzAyNjkyZWMyOThjNjE3YWMwOTY0ZmJjYg== + [JsonPropertyName("snapshot_id")] + public string? SnapshotId { get; init; } +} + +public partial record SpotifyplusRemoveAlbumFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusRemoveAudiobookFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusRemoveEpisodeFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusRemoveShowFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusRemoveTrackFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSaveAlbumFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify album id's (e.g. `6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX`). A maximum of 50 id's may be specified. If omitted, the currently playing track album uri id value is used. eg: 6vc9OTcyd3hyzabCmsdnwE,382ObEPsp2rxGrnsizN5TX + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSaveAudiobookFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify audiobook id's (e.g. `3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe`). A maximum of 50 id's may be specified. If omitted, the currently playing audiobook uri id value is used. eg: 3PFyizE2tGCSRLusl2Qizf,7iHfbu1YPACw6oZPAFJtqe + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSaveEpisodeFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify episode id's (e.g. `3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4`). A maximum of 50 id's may be specified. If omitted, the currently playing episode uri id value is used. eg: 3F97boSWlXi8OzuhWClZHQ,1hPX5WJY6ja6yopgVPBqm4 + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSaveShowFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify show id's (e.g. `6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk`). A maximum of 50 id's may be specified. If omitted, the currently playing show uri id value is used. eg: 6kAsbP8pxwaU2kPibKTuHE,4rOoJ6Egrf8K2IrywzwOMk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSaveTrackFavoritesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify track id's (e.g. `1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK`). A maximum of 50 id's may be specified. If omitted, the currently playing context uri id value is used. eg: 1kWUud3vY5ij5r62zxpTRy,4eoYKv2kDwJS7gRGh5q6SK + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusSearchAlbumsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: Welcome to the New + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchArtistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: MercyMe + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchAudiobooksParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: The Elfstones of Shannara + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchEpisodesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: Armchair Anonymous + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchPlaylistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: Daily Mix + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchShowsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: Dax Shepard + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusSearchTracksParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The criteria to search for. eg: Dear Younger Me + [JsonPropertyName("criteria")] + public string? Criteria { get; init; } + + ///The maximum number of items to return in a page of items when manual paging is used. Default is 20, Range is 1 to 50. See the limit_total argument for automatic paging option. eg: 20 + [JsonPropertyName("limit")] + public double? Limit { get; init; } + + ///The page index offset of the first item to return. Use with limit to get the next set of items. Default is 0 (the first item). eg: 0 + [JsonPropertyName("offset")] + public double? Offset { get; init; } + + ///An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned. The country associated with the Spotify user account will take priority over this parameter. eg: ES + [JsonPropertyName("market")] + public string? Market { get; init; } + + ///If 'audio' is specified it signals that the client can play externally hosted audio content, and marks the content as playable in the response. By default externally hosted audio content is marked as unplayable in the response. Allowed values are 'audio'. eg: audio + [JsonPropertyName("include_external")] + public string? IncludeExternal { get; init; } + + ///The maximum number of items to return for the request. If specified, this argument overrides the limit and offset argument values and paging is automatically used to retrieve all available items up to the specified limit total. eg: 20 + [JsonPropertyName("limit_total")] + public double? LimitTotal { get; init; } +} + +public partial record SpotifyplusUnfollowArtistsParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify artist id's (e.g. `2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk`). A maximum of 50 id's may be specified. If omitted, the currently playing track artist uri id value is used. eg: 2CIMQHirSU0MQqyYHq0eOx,1IQ2e1buppatiN1bxUVkrk + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusUnfollowPlaylistParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///The Spotify ID of the playlist (e.g. `3cEYpjA9oz9GiPac4AsH4n`). If omitted, the currently playing playlist uri id value is used. eg: 3cEYpjA9oz9GiPac4AsH4n + [JsonPropertyName("playlist_id")] + public string? PlaylistId { get; init; } +} + +public partial record SpotifyplusUnfollowUsersParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify Web API. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///A comma-separated list of Spotify user IDs (e.g. `smedjan,3758dfdsfjk435hjk6k79lm0n3c4`). A maximum of 50 IDs can be sent in one request. eg: smedjan,3758dfdsfjk435hjk6k79lm0n3c4 + [JsonPropertyName("ids")] + public string? Ids { get; init; } +} + +public partial record SpotifyplusZeroconfDeviceConnectParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + [JsonPropertyName("host_ipv4_address")] + public string? HostIpv4Address { get; init; } + + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + [JsonPropertyName("host_ip_port")] + public double? HostIpPort { get; init; } + + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + [JsonPropertyName("cpath")] + public string? Cpath { get; init; } + + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + [JsonPropertyName("version")] + public string? Version { get; init; } + + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + [JsonPropertyName("use_ssl")] + public bool? UseSsl { get; init; } + + ///Spotify user name to login with (e.g. 'yourusername@mail.com'). This MUST match the account name (or one of them) that was used to configure Spotify Connect on the manufacturer device. eg: yourusername@mail.com + [JsonPropertyName("username")] + public string? Username { get; init; } + + ///Spotify Connect user password to login with. eg: yourpassword + [JsonPropertyName("password")] + public string? Password { get; init; } + + ///Spotify Connect login id to login with (e.g. '31l77fd87g8h9j00k89f07jf87ge'). This is also known as the canonical user id value. This MUST be the value that relates to the `username` argument. eg: 31l77y75hfnhk79f7gk6jkk878mg + [JsonPropertyName("loginid")] + public string? Loginid { get; init; } + + ///True if a Disconnect should be made prior to the Connect call. This will ensure that the active user is logged out, which must be done if switching user accounts; otherwise, False to not issue a Disconnect call. Default is False. eg: False + [JsonPropertyName("pre_disconnect")] + public bool? PreDisconnect { get; init; } + + ///True to ensure that the device id is present in the Spotify Connect device list before issuing a call to Connect; Connect will not be called if the device id is already in the list; otherwise, False to always call Connect to add the device. Default is False. eg: False + [JsonPropertyName("verify_device_list_entry")] + public bool? VerifyDeviceListEntry { get; init; } +} + +public partial record SpotifyplusZeroconfDeviceDisconnectParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + [JsonPropertyName("host_ipv4_address")] + public string? HostIpv4Address { get; init; } + + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + [JsonPropertyName("host_ip_port")] + public double? HostIpPort { get; init; } + + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + [JsonPropertyName("cpath")] + public string? Cpath { get; init; } + + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + [JsonPropertyName("version")] + public string? Version { get; init; } + + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + [JsonPropertyName("use_ssl")] + public bool? UseSsl { get; init; } +} + +public partial record SpotifyplusZeroconfDeviceGetinfoParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the Spotify ZeroConf API service. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///IPV4 address at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. '192.168.1.81'). eg: 192.168.1.81 + [JsonPropertyName("host_ipv4_address")] + public string? HostIpv4Address { get; init; } + + ///Port number at which the Spotify Connect Zeroconf API can be reached on the Spotify Connect device (e.g. 8200). eg: 8200 + [JsonPropertyName("host_ip_port")] + public double? HostIpPort { get; init; } + + ///Spotify Connect Zeroconf API CPath property value (e.g. '/zc'). eg: /zc + [JsonPropertyName("cpath")] + public string? Cpath { get; init; } + + ///Spotify Connect Zeroconf API version number that the device supports (e.g. '1.0'). eg: 1.0 + [JsonPropertyName("version")] + public string? Version { get; init; } + + ///True if the host device utilizes HTTPS Secure Sockets Layer (SSL) support; otherwise, False to utilize HTTP. Default is False (HTTP). eg: False + [JsonPropertyName("use_ssl")] + public bool? UseSsl { get; init; } +} + +public partial record SpotifyplusZeroconfDiscoverDevicesParameters +{ + ///Entity ID of the SpotifyPlus device that will make the request to the ZeroConf service. eg: media_player.spotifyplus_username + [JsonPropertyName("entity_id")] + public string? EntityId { get; init; } + + ///Maximum amount of time to wait (in seconds) for the discovery to complete. Default is 5, range is 1 thru 10. eg: 5.0 + [JsonPropertyName("timeout")] + public double? Timeout { get; init; } +} + +public partial class SwitchServices +{ + private readonly IHaContext _haContext; + public SwitchServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Toggles a switch on/off. + ///The target for this service call + public void Toggle(ServiceTarget target, object? data = null) + { + _haContext.CallService("switch", "toggle", target, data); + } + + ///Turns a switch off. + ///The target for this service call + public void TurnOff(ServiceTarget target, object? data = null) + { + _haContext.CallService("switch", "turn_off", target, data); + } + + ///Turns a switch on. + ///The target for this service call + public void TurnOn(ServiceTarget target, object? data = null) + { + _haContext.CallService("switch", "turn_on", target, data); + } +} + +public partial class SystemLogServices +{ + private readonly IHaContext _haContext; + public SystemLogServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Clears all log entries. + public void Clear(object? data = null) + { + _haContext.CallService("system_log", "clear", null, data); + } + + ///Write log entry. + public void Write(SystemLogWriteParameters data) + { + _haContext.CallService("system_log", "write", null, data); + } + + ///Write log entry. + ///Message to log. eg: Something went wrong + ///Log level. + ///Logger name under which to log the message. Defaults to `system_log.external`. eg: mycomponent.myplatform + public void Write(string message, object? level = null, string? logger = null) + { + _haContext.CallService("system_log", "write", null, new SystemLogWriteParameters { Message = message, Level = level, Logger = logger }); + } +} + +public partial record SystemLogWriteParameters +{ + ///Message to log. eg: Something went wrong + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Log level. + [JsonPropertyName("level")] + public object? Level { get; init; } + + ///Logger name under which to log the message. Defaults to `system_log.external`. eg: mycomponent.myplatform + [JsonPropertyName("logger")] + public string? Logger { get; init; } +} + +public partial class TimerServices +{ + private readonly IHaContext _haContext; + public TimerServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Cancels a timer. + ///The target for this service call + public void Cancel(ServiceTarget target, object? data = null) + { + _haContext.CallService("timer", "cancel", target, data); + } + + ///Changes a timer. + ///The target for this service call + public void Change(ServiceTarget target, TimerChangeParameters data) + { + _haContext.CallService("timer", "change", target, data); + } + + ///Changes a timer. + ///Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60 + public void Change(ServiceTarget target, string duration) + { + _haContext.CallService("timer", "change", target, new TimerChangeParameters { Duration = duration }); + } + + ///Finishes a timer. + ///The target for this service call + public void Finish(ServiceTarget target, object? data = null) + { + _haContext.CallService("timer", "finish", target, data); + } + + ///Pauses a timer. + ///The target for this service call + public void Pause(ServiceTarget target, object? data = null) + { + _haContext.CallService("timer", "pause", target, data); + } + + ///Reloads timers from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("timer", "reload", null, data); + } + + ///Starts a timer. + ///The target for this service call + public void Start(ServiceTarget target, TimerStartParameters data) + { + _haContext.CallService("timer", "start", target, data); + } + + ///Starts a timer. + ///Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60 + public void Start(ServiceTarget target, string? duration = null) + { + _haContext.CallService("timer", "start", target, new TimerStartParameters { Duration = duration }); + } +} + +public partial record TimerChangeParameters +{ + ///Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60 + [JsonPropertyName("duration")] + public string? Duration { get; init; } +} + +public partial record TimerStartParameters +{ + ///Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60 + [JsonPropertyName("duration")] + public string? Duration { get; init; } +} + +public partial class TodoServices +{ + private readonly IHaContext _haContext; + public TodoServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Add a new to-do list item. + ///The target for this service call + public void AddItem(ServiceTarget target, TodoAddItemParameters data) + { + _haContext.CallService("todo", "add_item", target, data); + } + + ///Add a new to-do list item. + ///The name that represents the to-do item. eg: Submit income tax return + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public void AddItem(ServiceTarget target, string item, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + _haContext.CallService("todo", "add_item", target, new TodoAddItemParameters { Item = item, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } + + ///Get items on a to-do list. + ///The target for this service call + public void GetItems(ServiceTarget target, TodoGetItemsParameters data) + { + _haContext.CallService("todo", "get_items", target, data); + } + + ///Get items on a to-do list. + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + public void GetItems(ServiceTarget target, IEnumerable? status = null) + { + _haContext.CallService("todo", "get_items", target, new TodoGetItemsParameters { Status = status }); + } + + ///Get items on a to-do list. + ///The target for this service call + public Task GetItemsAsync(ServiceTarget target, TodoGetItemsParameters data) + { + return _haContext.CallServiceWithResponseAsync("todo", "get_items", target, data); + } + + ///Get items on a to-do list. + ///The target for this service call + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + public Task GetItemsAsync(ServiceTarget target, IEnumerable? status = null) + { + return _haContext.CallServiceWithResponseAsync("todo", "get_items", target, new TodoGetItemsParameters { Status = status }); + } + + ///Remove all to-do list items that have been completed. + ///The target for this service call + public void RemoveCompletedItems(ServiceTarget target, object? data = null) + { + _haContext.CallService("todo", "remove_completed_items", target, data); + } + + ///Remove an existing to-do list item by its name. + ///The target for this service call + public void RemoveItem(ServiceTarget target, TodoRemoveItemParameters data) + { + _haContext.CallService("todo", "remove_item", target, data); + } + + ///Remove an existing to-do list item by its name. + ///The name for the to-do list items. + public void RemoveItem(ServiceTarget target, string item) + { + _haContext.CallService("todo", "remove_item", target, new TodoRemoveItemParameters { Item = item }); + } + + ///Update an existing to-do list item based on its name. + ///The target for this service call + public void UpdateItem(ServiceTarget target, TodoUpdateItemParameters data) + { + _haContext.CallService("todo", "update_item", target, data); + } + + ///Update an existing to-do list item based on its name. + ///The name for the to-do list item. eg: Submit income tax return + ///The new name of the to-do item eg: Something else + ///A status or confirmation of the to-do item. eg: needs_action + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public void UpdateItem(ServiceTarget target, string item, string? rename = null, object? status = null, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + _haContext.CallService("todo", "update_item", target, new TodoUpdateItemParameters { Item = item, Rename = rename, Status = status, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } +} + +public partial record TodoAddItemParameters +{ + ///The name that represents the to-do item. eg: Submit income tax return + [JsonPropertyName("item")] + public string? Item { get; init; } + + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + [JsonPropertyName("due_date")] + public DateOnly? DueDate { get; init; } + + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + [JsonPropertyName("due_datetime")] + public DateTime? DueDatetime { get; init; } + + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + [JsonPropertyName("description")] + public string? Description { get; init; } +} + +public partial record TodoGetItemsParameters +{ + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + [JsonPropertyName("status")] + public IEnumerable? Status { get; init; } +} + +public partial record TodoRemoveItemParameters +{ + ///The name for the to-do list items. + [JsonPropertyName("item")] + public string? Item { get; init; } +} + +public partial record TodoUpdateItemParameters +{ + ///The name for the to-do list item. eg: Submit income tax return + [JsonPropertyName("item")] + public string? Item { get; init; } + + ///The new name of the to-do item eg: Something else + [JsonPropertyName("rename")] + public string? Rename { get; init; } + + ///A status or confirmation of the to-do item. eg: needs_action + [JsonPropertyName("status")] + public object? Status { get; init; } + + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + [JsonPropertyName("due_date")] + public DateOnly? DueDate { get; init; } + + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + [JsonPropertyName("due_datetime")] + public DateTime? DueDatetime { get; init; } + + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + [JsonPropertyName("description")] + public string? Description { get; init; } +} + +public partial class TtsServices +{ + private readonly IHaContext _haContext; + public TtsServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Removes all cached text-to-speech files and purges the memory. + public void ClearCache(object? data = null) + { + _haContext.CallService("tts", "clear_cache", null, data); + } + + ///Speaks something using text-to-speech on a media player. + ///The target for this service call + public void Speak(ServiceTarget target, TtsSpeakParameters data) + { + _haContext.CallService("tts", "speak", target, data); + } + + ///Speaks something using text-to-speech on a media player. + ///Media players to play the message. + ///The text you want to convert into speech so that you can listen to it on your device. eg: My name is hanna + ///Stores this message locally so that when the text is requested again, the output can be produced more quickly. + ///Language to use for speech generation. eg: ru + ///A dictionary containing integration-specific options. eg: platform specific + public void Speak(ServiceTarget target, string mediaPlayerEntityId, string message, bool? cache = null, string? language = null, object? options = null) + { + _haContext.CallService("tts", "speak", target, new TtsSpeakParameters { MediaPlayerEntityId = mediaPlayerEntityId, Message = message, Cache = cache, Language = language, Options = options }); + } +} + +public partial record TtsSpeakParameters +{ + ///Media players to play the message. + [JsonPropertyName("media_player_entity_id")] + public string? MediaPlayerEntityId { get; init; } + + ///The text you want to convert into speech so that you can listen to it on your device. eg: My name is hanna + [JsonPropertyName("message")] + public string? Message { get; init; } + + ///Stores this message locally so that when the text is requested again, the output can be produced more quickly. + [JsonPropertyName("cache")] + public bool? Cache { get; init; } + + ///Language to use for speech generation. eg: ru + [JsonPropertyName("language")] + public string? Language { get; init; } + + ///A dictionary containing integration-specific options. eg: platform specific + [JsonPropertyName("options")] + public object? Options { get; init; } +} + +public partial class WeatherServices +{ + private readonly IHaContext _haContext; + public WeatherServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Get weather forecasts. + ///The target for this service call + public void GetForecasts(ServiceTarget target, WeatherGetForecastsParameters data) + { + _haContext.CallService("weather", "get_forecasts", target, data); + } + + ///Get weather forecasts. + ///Forecast type: daily, hourly or twice daily. + public void GetForecasts(ServiceTarget target, object @type) + { + _haContext.CallService("weather", "get_forecasts", target, new WeatherGetForecastsParameters { Type = @type }); + } + + ///Get weather forecasts. + ///The target for this service call + public Task GetForecastsAsync(ServiceTarget target, WeatherGetForecastsParameters data) + { + return _haContext.CallServiceWithResponseAsync("weather", "get_forecasts", target, data); + } + + ///Get weather forecasts. + ///The target for this service call + ///Forecast type: daily, hourly or twice daily. + public Task GetForecastsAsync(ServiceTarget target, object @type) + { + return _haContext.CallServiceWithResponseAsync("weather", "get_forecasts", target, new WeatherGetForecastsParameters { Type = @type }); + } +} + +public partial record WeatherGetForecastsParameters +{ + ///Forecast type: daily, hourly or twice daily. + [JsonPropertyName("type")] + public object? Type { get; init; } +} + +public partial class ZoneServices +{ + private readonly IHaContext _haContext; + public ZoneServices(IHaContext haContext) + { + _haContext = haContext; + } + + ///Reloads zones from the YAML-configuration. + public void Reload(object? data = null) + { + _haContext.CallService("zone", "reload", null, data); + } +} + +public static class AutomationEntityExtensionMethods +{ + ///Toggles (enable / disable) an automation. + public static void Toggle(this IAutomationEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggles (enable / disable) an automation. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Triggers the actions of an automation. + public static void Trigger(this IAutomationEntityCore target, AutomationTriggerParameters data) + { + target.CallService("trigger", data); + } + + ///Triggers the actions of an automation. + public static void Trigger(this IEnumerable target, AutomationTriggerParameters data) + { + target.CallService("trigger", data); + } + + ///Triggers the actions of an automation. + ///The IAutomationEntityCore to call this service for + ///Defines whether or not the conditions will be skipped. + public static void Trigger(this IAutomationEntityCore target, bool? skipCondition = null) + { + target.CallService("trigger", new AutomationTriggerParameters { SkipCondition = skipCondition }); + } + + ///Triggers the actions of an automation. + ///The IEnumerable<IAutomationEntityCore> to call this service for + ///Defines whether or not the conditions will be skipped. + public static void Trigger(this IEnumerable target, bool? skipCondition = null) + { + target.CallService("trigger", new AutomationTriggerParameters { SkipCondition = skipCondition }); + } + + ///Disables an automation. + public static void TurnOff(this IAutomationEntityCore target, AutomationTurnOffParameters data) + { + target.CallService("turn_off", data); + } + + ///Disables an automation. + public static void TurnOff(this IEnumerable target, AutomationTurnOffParameters data) + { + target.CallService("turn_off", data); + } + + ///Disables an automation. + ///The IAutomationEntityCore to call this service for + ///Stops currently running actions. + public static void TurnOff(this IAutomationEntityCore target, bool? stopActions = null) + { + target.CallService("turn_off", new AutomationTurnOffParameters { StopActions = stopActions }); + } + + ///Disables an automation. + ///The IEnumerable<IAutomationEntityCore> to call this service for + ///Stops currently running actions. + public static void TurnOff(this IEnumerable target, bool? stopActions = null) + { + target.CallService("turn_off", new AutomationTurnOffParameters { StopActions = stopActions }); + } + + ///Enables an automation. + public static void TurnOn(this IAutomationEntityCore target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Enables an automation. + public static void TurnOn(this IEnumerable target, object? data = null) + { + target.CallService("turn_on", data); + } +} + +public static class ButtonEntityExtensionMethods +{ + ///Press the button entity. + public static void Press(this IButtonEntityCore target, object? data = null) + { + target.CallService("press", data); + } + + ///Press the button entity. + public static void Press(this IEnumerable target, object? data = null) + { + target.CallService("press", data); + } +} + +public static class CalendarEntityExtensionMethods +{ + ///Adds a new calendar event. + public static void CreateEvent(this ICalendarEntityCore target, CalendarCreateEventParameters data) + { + target.CallService("create_event", data); + } + + ///Adds a new calendar event. + public static void CreateEvent(this IEnumerable target, CalendarCreateEventParameters data) + { + target.CallService("create_event", data); + } + + ///Adds a new calendar event. + ///The ICalendarEntityCore to call this service for + ///Defines the short summary or subject for the event. eg: Department Party + ///A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design. + ///The date and time the event should start. eg: 2022-03-22 20:00:00 + ///The date and time the event should end. eg: 2022-03-22 22:00:00 + ///The date the all-day event should start. eg: 2022-03-22 + ///The date the all-day event should end (exclusive). eg: 2022-03-23 + ///Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2} + ///The location of the event. eg: Conference Room - F123, Bldg. 002 + public static void CreateEvent(this ICalendarEntityCore target, string summary, string? description = null, DateTime? startDateTime = null, DateTime? endDateTime = null, DateOnly? startDate = null, DateOnly? endDate = null, object? @in = null, string? location = null) + { + target.CallService("create_event", new CalendarCreateEventParameters { Summary = summary, Description = description, StartDateTime = startDateTime, EndDateTime = endDateTime, StartDate = startDate, EndDate = endDate, In = @in, Location = location }); + } + + ///Adds a new calendar event. + ///The IEnumerable<ICalendarEntityCore> to call this service for + ///Defines the short summary or subject for the event. eg: Department Party + ///A more complete description of the event than the one provided by the summary. eg: Meeting to provide technical review for 'Phoenix' design. + ///The date and time the event should start. eg: 2022-03-22 20:00:00 + ///The date and time the event should end. eg: 2022-03-22 22:00:00 + ///The date the all-day event should start. eg: 2022-03-22 + ///The date the all-day event should end (exclusive). eg: 2022-03-23 + ///Days or weeks that you want to create the event in. eg: {"days": 2} or {"weeks": 2} + ///The location of the event. eg: Conference Room - F123, Bldg. 002 + public static void CreateEvent(this IEnumerable target, string summary, string? description = null, DateTime? startDateTime = null, DateTime? endDateTime = null, DateOnly? startDate = null, DateOnly? endDate = null, object? @in = null, string? location = null) + { + target.CallService("create_event", new CalendarCreateEventParameters { Summary = summary, Description = description, StartDateTime = startDateTime, EndDateTime = endDateTime, StartDate = startDate, EndDate = endDate, In = @in, Location = location }); + } + + ///Get events on a calendar within a time range. + public static Task GetEventsAsync(this ICalendarEntityCore target, CalendarGetEventsParameters data) + { + return target.CallServiceWithResponseAsync("get_events", data); + } + + ///Get events on a calendar within a time range. + ///The ICalendarEntityCore to call this service for + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + ///Returns active events from start_date_time until the specified duration. + public static Task GetEventsAsync(this ICalendarEntityCore target, DateTime? startDateTime = null, DateTime? endDateTime = null, object? duration = null) + { + return target.CallServiceWithResponseAsync("get_events", new CalendarGetEventsParameters { StartDateTime = startDateTime, EndDateTime = endDateTime, Duration = duration }); + } + + ///Get events on a calendar within a time range. + public static void GetEvents(this ICalendarEntityCore target, CalendarGetEventsParameters data) + { + target.CallService("get_events", data); + } + + ///Get events on a calendar within a time range. + public static void GetEvents(this IEnumerable target, CalendarGetEventsParameters data) + { + target.CallService("get_events", data); + } + + ///Get events on a calendar within a time range. + ///The ICalendarEntityCore to call this service for + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + ///Returns active events from start_date_time until the specified duration. + public static void GetEvents(this ICalendarEntityCore target, DateTime? startDateTime = null, DateTime? endDateTime = null, object? duration = null) + { + target.CallService("get_events", new CalendarGetEventsParameters { StartDateTime = startDateTime, EndDateTime = endDateTime, Duration = duration }); + } + + ///Get events on a calendar within a time range. + ///The IEnumerable<ICalendarEntityCore> to call this service for + ///Returns active events after this time (exclusive). When not set, defaults to now. eg: 2022-03-22 20:00:00 + ///Returns active events before this time (exclusive). Cannot be used with 'duration'. eg: 2022-03-22 22:00:00 + ///Returns active events from start_date_time until the specified duration. + public static void GetEvents(this IEnumerable target, DateTime? startDateTime = null, DateTime? endDateTime = null, object? duration = null) + { + target.CallService("get_events", new CalendarGetEventsParameters { StartDateTime = startDateTime, EndDateTime = endDateTime, Duration = duration }); + } +} + +public static class InputBooleanEntityExtensionMethods +{ + ///Toggles the helper on/off. + public static void Toggle(this IInputBooleanEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggles the helper on/off. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Turns off the helper. + public static void TurnOff(this IInputBooleanEntityCore target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns off the helper. + public static void TurnOff(this IEnumerable target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns on the helper. + public static void TurnOn(this IInputBooleanEntityCore target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Turns on the helper. + public static void TurnOn(this IEnumerable target, object? data = null) + { + target.CallService("turn_on", data); + } +} + +public static class InputTextEntityExtensionMethods +{ + ///Sets the value. + public static void SetValue(this IInputTextEntityCore target, InputTextSetValueParameters data) + { + target.CallService("set_value", data); + } + + ///Sets the value. + public static void SetValue(this IEnumerable target, InputTextSetValueParameters data) + { + target.CallService("set_value", data); + } + + ///Sets the value. + ///The IInputTextEntityCore to call this service for + ///The target value. eg: This is an example text + public static void SetValue(this IInputTextEntityCore target, string value) + { + target.CallService("set_value", new InputTextSetValueParameters { Value = value }); + } + + ///Sets the value. + ///The IEnumerable<IInputTextEntityCore> to call this service for + ///The target value. eg: This is an example text + public static void SetValue(this IEnumerable target, string value) + { + target.CallService("set_value", new InputTextSetValueParameters { Value = value }); + } +} + +public static class LightEntityExtensionMethods +{ + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + public static void Toggle(this ILightEntityCore target, LightToggleParameters data) + { + target.CallService("toggle", data); + } + + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + public static void Toggle(this IEnumerable target, LightToggleParameters data) + { + target.CallService("toggle", data); + } + + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + ///The ILightEntityCore to call this service for + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// eg: relax + /// + public static void Toggle(this ILightEntityCore target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, object? white = null, string? profile = null, object? flash = null) + { + target.CallService("toggle", new LightToggleParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, White = white, Profile = profile, Flash = flash }); + } + + ///Toggles one or more lights, from on to off, or, off to on, based on their current state. + ///The IEnumerable<ILightEntityCore> to call this service for + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// eg: relax + /// + public static void Toggle(this IEnumerable target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, object? white = null, string? profile = null, object? flash = null) + { + target.CallService("toggle", new LightToggleParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, White = white, Profile = profile, Flash = flash }); + } + + ///Turn off one or more lights. + public static void TurnOff(this ILightEntityCore target, LightTurnOffParameters data) + { + target.CallService("turn_off", data); + } + + ///Turn off one or more lights. + public static void TurnOff(this IEnumerable target, LightTurnOffParameters data) + { + target.CallService("turn_off", data); + } + + ///Turn off one or more lights. + ///The ILightEntityCore to call this service for + ///Duration it takes to get to next state. + /// + public static void TurnOff(this ILightEntityCore target, double? transition = null, object? flash = null) + { + target.CallService("turn_off", new LightTurnOffParameters { Transition = transition, Flash = flash }); + } + + ///Turn off one or more lights. + ///The IEnumerable<ILightEntityCore> to call this service for + ///Duration it takes to get to next state. + /// + public static void TurnOff(this IEnumerable target, double? transition = null, object? flash = null) + { + target.CallService("turn_off", new LightTurnOffParameters { Transition = transition, Flash = flash }); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + public static void TurnOn(this ILightEntityCore target, LightTurnOnParameters data) + { + target.CallService("turn_on", data); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + public static void TurnOn(this IEnumerable target, LightTurnOnParameters data) + { + target.CallService("turn_on", data); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + ///The ILightEntityCore to call this service for + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Change brightness by a percentage. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// + /// eg: relax + /// + public static void TurnOn(this ILightEntityCore target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, double? brightnessStepPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, double? brightnessStep = null, object? white = null, string? profile = null, object? flash = null) + { + target.CallService("turn_on", new LightTurnOnParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, BrightnessStepPct = brightnessStepPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, BrightnessStep = brightnessStep, White = white, Profile = profile, Flash = flash }); + } + + ///Turn on one or more lights and adjust properties of the light, even when they are turned on already. + ///The IEnumerable<ILightEntityCore> to call this service for + ///Duration it takes to get to next state. + ///The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue. eg: [255, 100, 100] + ///Color temperature in Kelvin. + ///Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness. + ///Change brightness by a percentage. + ///Light effect. + /// eg: [255, 100, 100, 50] + /// eg: [255, 100, 100, 50, 70] + /// + /// eg: [300, 70] + /// eg: [0.52, 0.43] + /// + /// + /// + /// + /// eg: relax + /// + public static void TurnOn(this IEnumerable target, double? transition = null, IReadOnlyCollection? rgbColor = null, object? kelvin = null, double? brightnessPct = null, double? brightnessStepPct = null, string? effect = null, object? rgbwColor = null, object? rgbwwColor = null, object? colorName = null, object? hsColor = null, object? xyColor = null, object? colorTemp = null, double? brightness = null, double? brightnessStep = null, object? white = null, string? profile = null, object? flash = null) + { + target.CallService("turn_on", new LightTurnOnParameters { Transition = transition, RgbColor = rgbColor, Kelvin = kelvin, BrightnessPct = brightnessPct, BrightnessStepPct = brightnessStepPct, Effect = effect, RgbwColor = rgbwColor, RgbwwColor = rgbwwColor, ColorName = colorName, HsColor = hsColor, XyColor = xyColor, ColorTemp = colorTemp, Brightness = brightness, BrightnessStep = brightnessStep, White = white, Profile = profile, Flash = flash }); + } +} + +public static class LockEntityExtensionMethods +{ + ///Locks a lock. + public static void Lock(this ILockEntityCore target, LockLockParameters data) + { + target.CallService("lock", data); + } + + ///Locks a lock. + public static void Lock(this IEnumerable target, LockLockParameters data) + { + target.CallService("lock", data); + } + + ///Locks a lock. + ///The ILockEntityCore to call this service for + ///Code used to lock the lock. eg: 1234 + public static void Lock(this ILockEntityCore target, string? code = null) + { + target.CallService("lock", new LockLockParameters { Code = code }); + } + + ///Locks a lock. + ///The IEnumerable<ILockEntityCore> to call this service for + ///Code used to lock the lock. eg: 1234 + public static void Lock(this IEnumerable target, string? code = null) + { + target.CallService("lock", new LockLockParameters { Code = code }); + } + + ///Opens a lock. + public static void Open(this ILockEntityCore target, LockOpenParameters data) + { + target.CallService("open", data); + } + + ///Opens a lock. + public static void Open(this IEnumerable target, LockOpenParameters data) + { + target.CallService("open", data); + } + + ///Opens a lock. + ///The ILockEntityCore to call this service for + ///Code used to open the lock. eg: 1234 + public static void Open(this ILockEntityCore target, string? code = null) + { + target.CallService("open", new LockOpenParameters { Code = code }); + } + + ///Opens a lock. + ///The IEnumerable<ILockEntityCore> to call this service for + ///Code used to open the lock. eg: 1234 + public static void Open(this IEnumerable target, string? code = null) + { + target.CallService("open", new LockOpenParameters { Code = code }); + } + + ///Unlocks a lock. + public static void Unlock(this ILockEntityCore target, LockUnlockParameters data) + { + target.CallService("unlock", data); + } + + ///Unlocks a lock. + public static void Unlock(this IEnumerable target, LockUnlockParameters data) + { + target.CallService("unlock", data); + } + + ///Unlocks a lock. + ///The ILockEntityCore to call this service for + ///Code used to unlock the lock. eg: 1234 + public static void Unlock(this ILockEntityCore target, string? code = null) + { + target.CallService("unlock", new LockUnlockParameters { Code = code }); + } + + ///Unlocks a lock. + ///The IEnumerable<ILockEntityCore> to call this service for + ///Code used to unlock the lock. eg: 1234 + public static void Unlock(this IEnumerable target, string? code = null) + { + target.CallService("unlock", new LockUnlockParameters { Code = code }); + } +} + +public static class MediaPlayerEntityExtensionMethods +{ + ///Clears the playlist. + public static void ClearPlaylist(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("clear_playlist", data); + } + + ///Clears the playlist. + public static void ClearPlaylist(this IEnumerable target, object? data = null) + { + target.CallService("clear_playlist", data); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + public static void Join(this IMediaPlayerEntityCore target, MediaPlayerJoinParameters data) + { + target.CallService("join", data); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + public static void Join(this IEnumerable target, MediaPlayerJoinParameters data) + { + target.CallService("join", data); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + ///The IMediaPlayerEntityCore to call this service for + ///The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 + public static void Join(this IMediaPlayerEntityCore target, IEnumerable groupMembers) + { + target.CallService("join", new MediaPlayerJoinParameters { GroupMembers = groupMembers }); + } + + ///Groups media players together for synchronous playback. Only works on supported multiroom audio systems. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///The players which will be synced with the playback specified in `target`. eg: - media_player.multiroom_player2 - media_player.multiroom_player3 + public static void Join(this IEnumerable target, IEnumerable groupMembers) + { + target.CallService("join", new MediaPlayerJoinParameters { GroupMembers = groupMembers }); + } + + ///Selects the next track. + public static void MediaNextTrack(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_next_track", data); + } + + ///Selects the next track. + public static void MediaNextTrack(this IEnumerable target, object? data = null) + { + target.CallService("media_next_track", data); + } + + ///Pauses. + public static void MediaPause(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_pause", data); + } + + ///Pauses. + public static void MediaPause(this IEnumerable target, object? data = null) + { + target.CallService("media_pause", data); + } + + ///Starts playing. + public static void MediaPlay(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_play", data); + } + + ///Starts playing. + public static void MediaPlay(this IEnumerable target, object? data = null) + { + target.CallService("media_play", data); + } + + ///Toggles play/pause. + public static void MediaPlayPause(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_play_pause", data); + } + + ///Toggles play/pause. + public static void MediaPlayPause(this IEnumerable target, object? data = null) + { + target.CallService("media_play_pause", data); + } + + ///Selects the previous track. + public static void MediaPreviousTrack(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_previous_track", data); + } + + ///Selects the previous track. + public static void MediaPreviousTrack(this IEnumerable target, object? data = null) + { + target.CallService("media_previous_track", data); + } + + ///Allows you to go to a different part of the media that is currently playing. + public static void MediaSeek(this IMediaPlayerEntityCore target, MediaPlayerMediaSeekParameters data) + { + target.CallService("media_seek", data); + } + + ///Allows you to go to a different part of the media that is currently playing. + public static void MediaSeek(this IEnumerable target, MediaPlayerMediaSeekParameters data) + { + target.CallService("media_seek", data); + } + + ///Allows you to go to a different part of the media that is currently playing. + ///The IMediaPlayerEntityCore to call this service for + ///Target position in the currently playing media. The format is platform dependent. + public static void MediaSeek(this IMediaPlayerEntityCore target, double seekPosition) + { + target.CallService("media_seek", new MediaPlayerMediaSeekParameters { SeekPosition = seekPosition }); + } + + ///Allows you to go to a different part of the media that is currently playing. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Target position in the currently playing media. The format is platform dependent. + public static void MediaSeek(this IEnumerable target, double seekPosition) + { + target.CallService("media_seek", new MediaPlayerMediaSeekParameters { SeekPosition = seekPosition }); + } + + ///Stops playing. + public static void MediaStop(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("media_stop", data); + } + + ///Stops playing. + public static void MediaStop(this IEnumerable target, object? data = null) + { + target.CallService("media_stop", data); + } + + ///Starts playing specified media. + public static void PlayMedia(this IMediaPlayerEntityCore target, MediaPlayerPlayMediaParameters data) + { + target.CallService("play_media", data); + } + + ///Starts playing specified media. + public static void PlayMedia(this IEnumerable target, MediaPlayerPlayMediaParameters data) + { + target.CallService("play_media", data); + } + + ///Starts playing specified media. + ///The IMediaPlayerEntityCore to call this service for + ///The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png + ///The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music + ///If the content should be played now or be added to the queue. + ///If the media should be played as an announcement. eg: true + public static void PlayMedia(this IMediaPlayerEntityCore target, string mediaContentId, string mediaContentType, object? enqueue = null, bool? announce = null) + { + target.CallService("play_media", new MediaPlayerPlayMediaParameters { MediaContentId = mediaContentId, MediaContentType = mediaContentType, Enqueue = enqueue, Announce = announce }); + } + + ///Starts playing specified media. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///The ID of the content to play. Platform dependent. eg: https://home-assistant.io/images/cast/splash.png + ///The type of the content to play. Such as image, music, tv show, video, episode, channel, or playlist. eg: music + ///If the content should be played now or be added to the queue. + ///If the media should be played as an announcement. eg: true + public static void PlayMedia(this IEnumerable target, string mediaContentId, string mediaContentType, object? enqueue = null, bool? announce = null) + { + target.CallService("play_media", new MediaPlayerPlayMediaParameters { MediaContentId = mediaContentId, MediaContentType = mediaContentType, Enqueue = enqueue, Announce = announce }); + } + + ///Playback mode that plays the media in a loop. + public static void RepeatSet(this IMediaPlayerEntityCore target, MediaPlayerRepeatSetParameters data) + { + target.CallService("repeat_set", data); + } + + ///Playback mode that plays the media in a loop. + public static void RepeatSet(this IEnumerable target, MediaPlayerRepeatSetParameters data) + { + target.CallService("repeat_set", data); + } + + ///Playback mode that plays the media in a loop. + ///The IMediaPlayerEntityCore to call this service for + ///Repeat mode to set. + public static void RepeatSet(this IMediaPlayerEntityCore target, object repeat) + { + target.CallService("repeat_set", new MediaPlayerRepeatSetParameters { Repeat = repeat }); + } + + ///Playback mode that plays the media in a loop. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Repeat mode to set. + public static void RepeatSet(this IEnumerable target, object repeat) + { + target.CallService("repeat_set", new MediaPlayerRepeatSetParameters { Repeat = repeat }); + } + + ///Selects a specific sound mode. + public static void SelectSoundMode(this IMediaPlayerEntityCore target, MediaPlayerSelectSoundModeParameters data) + { + target.CallService("select_sound_mode", data); + } + + ///Selects a specific sound mode. + public static void SelectSoundMode(this IEnumerable target, MediaPlayerSelectSoundModeParameters data) + { + target.CallService("select_sound_mode", data); + } + + ///Selects a specific sound mode. + ///The IMediaPlayerEntityCore to call this service for + ///Name of the sound mode to switch to. eg: Music + public static void SelectSoundMode(this IMediaPlayerEntityCore target, string? soundMode = null) + { + target.CallService("select_sound_mode", new MediaPlayerSelectSoundModeParameters { SoundMode = soundMode }); + } + + ///Selects a specific sound mode. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Name of the sound mode to switch to. eg: Music + public static void SelectSoundMode(this IEnumerable target, string? soundMode = null) + { + target.CallService("select_sound_mode", new MediaPlayerSelectSoundModeParameters { SoundMode = soundMode }); + } + + ///Sends the media player the command to change input source. + public static void SelectSource(this IMediaPlayerEntityCore target, MediaPlayerSelectSourceParameters data) + { + target.CallService("select_source", data); + } + + ///Sends the media player the command to change input source. + public static void SelectSource(this IEnumerable target, MediaPlayerSelectSourceParameters data) + { + target.CallService("select_source", data); + } + + ///Sends the media player the command to change input source. + ///The IMediaPlayerEntityCore to call this service for + ///Name of the source to switch to. Platform dependent. eg: video1 + public static void SelectSource(this IMediaPlayerEntityCore target, string source) + { + target.CallService("select_source", new MediaPlayerSelectSourceParameters { Source = source }); + } + + ///Sends the media player the command to change input source. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Name of the source to switch to. Platform dependent. eg: video1 + public static void SelectSource(this IEnumerable target, string source) + { + target.CallService("select_source", new MediaPlayerSelectSourceParameters { Source = source }); + } + + ///Playback mode that selects the media in randomized order. + public static void ShuffleSet(this IMediaPlayerEntityCore target, MediaPlayerShuffleSetParameters data) + { + target.CallService("shuffle_set", data); + } + + ///Playback mode that selects the media in randomized order. + public static void ShuffleSet(this IEnumerable target, MediaPlayerShuffleSetParameters data) + { + target.CallService("shuffle_set", data); + } + + ///Playback mode that selects the media in randomized order. + ///The IMediaPlayerEntityCore to call this service for + ///Whether or not shuffle mode is enabled. + public static void ShuffleSet(this IMediaPlayerEntityCore target, bool shuffle) + { + target.CallService("shuffle_set", new MediaPlayerShuffleSetParameters { Shuffle = shuffle }); + } + + ///Playback mode that selects the media in randomized order. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Whether or not shuffle mode is enabled. + public static void ShuffleSet(this IEnumerable target, bool shuffle) + { + target.CallService("shuffle_set", new MediaPlayerShuffleSetParameters { Shuffle = shuffle }); + } + + ///Toggles a media player on/off. + public static void Toggle(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggles a media player on/off. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Turns off the power of the media player. + public static void TurnOff(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns off the power of the media player. + public static void TurnOff(this IEnumerable target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns on the power of the media player. + public static void TurnOn(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Turns on the power of the media player. + public static void TurnOn(this IEnumerable target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Removes the player from a group. Only works on platforms which support player groups. + public static void Unjoin(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("unjoin", data); + } + + ///Removes the player from a group. Only works on platforms which support player groups. + public static void Unjoin(this IEnumerable target, object? data = null) + { + target.CallService("unjoin", data); + } + + ///Turns down the volume. + public static void VolumeDown(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("volume_down", data); + } + + ///Turns down the volume. + public static void VolumeDown(this IEnumerable target, object? data = null) + { + target.CallService("volume_down", data); + } + + ///Mutes or unmutes the media player. + public static void VolumeMute(this IMediaPlayerEntityCore target, MediaPlayerVolumeMuteParameters data) + { + target.CallService("volume_mute", data); + } + + ///Mutes or unmutes the media player. + public static void VolumeMute(this IEnumerable target, MediaPlayerVolumeMuteParameters data) + { + target.CallService("volume_mute", data); + } + + ///Mutes or unmutes the media player. + ///The IMediaPlayerEntityCore to call this service for + ///Defines whether or not it is muted. + public static void VolumeMute(this IMediaPlayerEntityCore target, bool isVolumeMuted) + { + target.CallService("volume_mute", new MediaPlayerVolumeMuteParameters { IsVolumeMuted = isVolumeMuted }); + } + + ///Mutes or unmutes the media player. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///Defines whether or not it is muted. + public static void VolumeMute(this IEnumerable target, bool isVolumeMuted) + { + target.CallService("volume_mute", new MediaPlayerVolumeMuteParameters { IsVolumeMuted = isVolumeMuted }); + } + + ///Sets the volume level. + public static void VolumeSet(this IMediaPlayerEntityCore target, MediaPlayerVolumeSetParameters data) + { + target.CallService("volume_set", data); + } + + ///Sets the volume level. + public static void VolumeSet(this IEnumerable target, MediaPlayerVolumeSetParameters data) + { + target.CallService("volume_set", data); + } + + ///Sets the volume level. + ///The IMediaPlayerEntityCore to call this service for + ///The volume. 0 is inaudible, 1 is the maximum volume. + public static void VolumeSet(this IMediaPlayerEntityCore target, double volumeLevel) + { + target.CallService("volume_set", new MediaPlayerVolumeSetParameters { VolumeLevel = volumeLevel }); + } + + ///Sets the volume level. + ///The IEnumerable<IMediaPlayerEntityCore> to call this service for + ///The volume. 0 is inaudible, 1 is the maximum volume. + public static void VolumeSet(this IEnumerable target, double volumeLevel) + { + target.CallService("volume_set", new MediaPlayerVolumeSetParameters { VolumeLevel = volumeLevel }); + } + + ///Turns up the volume. + public static void VolumeUp(this IMediaPlayerEntityCore target, object? data = null) + { + target.CallService("volume_up", data); + } + + ///Turns up the volume. + public static void VolumeUp(this IEnumerable target, object? data = null) + { + target.CallService("volume_up", data); + } +} + +public static class NumberEntityExtensionMethods +{ + ///Sets the value of a number. + public static void SetValue(this INumberEntityCore target, NumberSetValueParameters data) + { + target.CallService("set_value", data); + } + + ///Sets the value of a number. + public static void SetValue(this IEnumerable target, NumberSetValueParameters data) + { + target.CallService("set_value", data); + } + + ///Sets the value of a number. + ///The INumberEntityCore to call this service for + ///The target value to set. eg: 42 + public static void SetValue(this INumberEntityCore target, string? value = null) + { + target.CallService("set_value", new NumberSetValueParameters { Value = value }); + } + + ///Sets the value of a number. + ///The IEnumerable<INumberEntityCore> to call this service for + ///The target value to set. eg: 42 + public static void SetValue(this IEnumerable target, string? value = null) + { + target.CallService("set_value", new NumberSetValueParameters { Value = value }); + } +} + +public static class RemoteEntityExtensionMethods +{ + ///Deletes a command or a list of commands from the database. + public static void DeleteCommand(this IRemoteEntityCore target, RemoteDeleteCommandParameters data) + { + target.CallService("delete_command", data); + } + + ///Deletes a command or a list of commands from the database. + public static void DeleteCommand(this IEnumerable target, RemoteDeleteCommandParameters data) + { + target.CallService("delete_command", data); + } + + ///Deletes a command or a list of commands from the database. + ///The IRemoteEntityCore to call this service for + ///Device from which commands will be deleted. eg: television + ///The single command or the list of commands to be deleted. eg: Mute + public static void DeleteCommand(this IRemoteEntityCore target, object command, string? device = null) + { + target.CallService("delete_command", new RemoteDeleteCommandParameters { Device = device, Command = command }); + } + + ///Deletes a command or a list of commands from the database. + ///The IEnumerable<IRemoteEntityCore> to call this service for + ///Device from which commands will be deleted. eg: television + ///The single command or the list of commands to be deleted. eg: Mute + public static void DeleteCommand(this IEnumerable target, object command, string? device = null) + { + target.CallService("delete_command", new RemoteDeleteCommandParameters { Device = device, Command = command }); + } + + ///Learns a command or a list of commands from a device. + public static void LearnCommand(this IRemoteEntityCore target, RemoteLearnCommandParameters data) + { + target.CallService("learn_command", data); + } + + ///Learns a command or a list of commands from a device. + public static void LearnCommand(this IEnumerable target, RemoteLearnCommandParameters data) + { + target.CallService("learn_command", data); + } + + ///Learns a command or a list of commands from a device. + ///The IRemoteEntityCore to call this service for + ///Device ID to learn command from. eg: television + ///A single command or a list of commands to learn. eg: Turn on + ///The type of command to be learned. + ///If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state. + ///Timeout for the command to be learned. + public static void LearnCommand(this IRemoteEntityCore target, string? device = null, object? command = null, object? commandType = null, bool? alternative = null, long? timeout = null) + { + target.CallService("learn_command", new RemoteLearnCommandParameters { Device = device, Command = command, CommandType = commandType, Alternative = alternative, Timeout = timeout }); + } + + ///Learns a command or a list of commands from a device. + ///The IEnumerable<IRemoteEntityCore> to call this service for + ///Device ID to learn command from. eg: television + ///A single command or a list of commands to learn. eg: Turn on + ///The type of command to be learned. + ///If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state. + ///Timeout for the command to be learned. + public static void LearnCommand(this IEnumerable target, string? device = null, object? command = null, object? commandType = null, bool? alternative = null, long? timeout = null) + { + target.CallService("learn_command", new RemoteLearnCommandParameters { Device = device, Command = command, CommandType = commandType, Alternative = alternative, Timeout = timeout }); + } + + ///Sends a command or a list of commands to a device. + public static void SendCommand(this IRemoteEntityCore target, RemoteSendCommandParameters data) + { + target.CallService("send_command", data); + } + + ///Sends a command or a list of commands to a device. + public static void SendCommand(this IEnumerable target, RemoteSendCommandParameters data) + { + target.CallService("send_command", data); + } + + ///Sends a command or a list of commands to a device. + ///The IRemoteEntityCore to call this service for + ///Device ID to send command to. eg: 32756745 + ///A single command or a list of commands to send. eg: Play + ///The number of times you want to repeat the commands. + ///The time you want to wait in between repeated commands. + ///The time you want to have it held before the release is send. + public static void SendCommand(this IRemoteEntityCore target, object command, string? device = null, double? numRepeats = null, double? delaySecs = null, double? holdSecs = null) + { + target.CallService("send_command", new RemoteSendCommandParameters { Device = device, Command = command, NumRepeats = numRepeats, DelaySecs = delaySecs, HoldSecs = holdSecs }); + } + + ///Sends a command or a list of commands to a device. + ///The IEnumerable<IRemoteEntityCore> to call this service for + ///Device ID to send command to. eg: 32756745 + ///A single command or a list of commands to send. eg: Play + ///The number of times you want to repeat the commands. + ///The time you want to wait in between repeated commands. + ///The time you want to have it held before the release is send. + public static void SendCommand(this IEnumerable target, object command, string? device = null, double? numRepeats = null, double? delaySecs = null, double? holdSecs = null) + { + target.CallService("send_command", new RemoteSendCommandParameters { Device = device, Command = command, NumRepeats = numRepeats, DelaySecs = delaySecs, HoldSecs = holdSecs }); + } + + ///Toggles a device on/off. + public static void Toggle(this IRemoteEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggles a device on/off. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Turns the device off. + public static void TurnOff(this IRemoteEntityCore target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns the device off. + public static void TurnOff(this IEnumerable target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Sends the power on command. + public static void TurnOn(this IRemoteEntityCore target, RemoteTurnOnParameters data) + { + target.CallService("turn_on", data); + } + + ///Sends the power on command. + public static void TurnOn(this IEnumerable target, RemoteTurnOnParameters data) + { + target.CallService("turn_on", data); + } + + ///Sends the power on command. + ///The IRemoteEntityCore to call this service for + ///Activity ID or activity name to be started. eg: BedroomTV + public static void TurnOn(this IRemoteEntityCore target, string? activity = null) + { + target.CallService("turn_on", new RemoteTurnOnParameters { Activity = activity }); + } + + ///Sends the power on command. + ///The IEnumerable<IRemoteEntityCore> to call this service for + ///Activity ID or activity name to be started. eg: BedroomTV + public static void TurnOn(this IEnumerable target, string? activity = null) + { + target.CallService("turn_on", new RemoteTurnOnParameters { Activity = activity }); + } +} + +public static class ScriptEntityExtensionMethods +{ + ///Toggle a script. Starts it, if isn't running, stops it otherwise. + public static void Toggle(this IScriptEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggle a script. Starts it, if isn't running, stops it otherwise. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Stops a running script. + public static void TurnOff(this IScriptEntityCore target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Stops a running script. + public static void TurnOff(this IEnumerable target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Runs the sequence of actions defined in a script. + public static void TurnOn(this IScriptEntityCore target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Runs the sequence of actions defined in a script. + public static void TurnOn(this IEnumerable target, object? data = null) + { + target.CallService("turn_on", data); + } +} + +public static class SelectEntityExtensionMethods +{ + ///Selects the first option. + public static void SelectFirst(this ISelectEntityCore target, object? data = null) + { + target.CallService("select_first", data); + } + + ///Selects the first option. + public static void SelectFirst(this IEnumerable target, object? data = null) + { + target.CallService("select_first", data); + } + + ///Selects the last option. + public static void SelectLast(this ISelectEntityCore target, object? data = null) + { + target.CallService("select_last", data); + } + + ///Selects the last option. + public static void SelectLast(this IEnumerable target, object? data = null) + { + target.CallService("select_last", data); + } + + ///Selects the next option. + public static void SelectNext(this ISelectEntityCore target, SelectSelectNextParameters data) + { + target.CallService("select_next", data); + } + + ///Selects the next option. + public static void SelectNext(this IEnumerable target, SelectSelectNextParameters data) + { + target.CallService("select_next", data); + } + + ///Selects the next option. + ///The ISelectEntityCore to call this service for + ///If the option should cycle from the last to the first. + public static void SelectNext(this ISelectEntityCore target, bool? cycle = null) + { + target.CallService("select_next", new SelectSelectNextParameters { Cycle = cycle }); + } + + ///Selects the next option. + ///The IEnumerable<ISelectEntityCore> to call this service for + ///If the option should cycle from the last to the first. + public static void SelectNext(this IEnumerable target, bool? cycle = null) + { + target.CallService("select_next", new SelectSelectNextParameters { Cycle = cycle }); + } + + ///Selects an option. + public static void SelectOption(this ISelectEntityCore target, SelectSelectOptionParameters data) + { + target.CallService("select_option", data); + } + + ///Selects an option. + public static void SelectOption(this IEnumerable target, SelectSelectOptionParameters data) + { + target.CallService("select_option", data); + } + + ///Selects an option. + ///The ISelectEntityCore to call this service for + ///Option to be selected. eg: "Item A" + public static void SelectOption(this ISelectEntityCore target, string option) + { + target.CallService("select_option", new SelectSelectOptionParameters { Option = option }); + } + + ///Selects an option. + ///The IEnumerable<ISelectEntityCore> to call this service for + ///Option to be selected. eg: "Item A" + public static void SelectOption(this IEnumerable target, string option) + { + target.CallService("select_option", new SelectSelectOptionParameters { Option = option }); + } + + ///Selects the previous option. + public static void SelectPrevious(this ISelectEntityCore target, SelectSelectPreviousParameters data) + { + target.CallService("select_previous", data); + } + + ///Selects the previous option. + public static void SelectPrevious(this IEnumerable target, SelectSelectPreviousParameters data) + { + target.CallService("select_previous", data); + } + + ///Selects the previous option. + ///The ISelectEntityCore to call this service for + ///If the option should cycle from the first to the last. + public static void SelectPrevious(this ISelectEntityCore target, bool? cycle = null) + { + target.CallService("select_previous", new SelectSelectPreviousParameters { Cycle = cycle }); + } + + ///Selects the previous option. + ///The IEnumerable<ISelectEntityCore> to call this service for + ///If the option should cycle from the first to the last. + public static void SelectPrevious(this IEnumerable target, bool? cycle = null) + { + target.CallService("select_previous", new SelectSelectPreviousParameters { Cycle = cycle }); + } +} + +public static class SwitchEntityExtensionMethods +{ + ///Toggles a switch on/off. + public static void Toggle(this ISwitchEntityCore target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Toggles a switch on/off. + public static void Toggle(this IEnumerable target, object? data = null) + { + target.CallService("toggle", data); + } + + ///Turns a switch off. + public static void TurnOff(this ISwitchEntityCore target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns a switch off. + public static void TurnOff(this IEnumerable target, object? data = null) + { + target.CallService("turn_off", data); + } + + ///Turns a switch on. + public static void TurnOn(this ISwitchEntityCore target, object? data = null) + { + target.CallService("turn_on", data); + } + + ///Turns a switch on. + public static void TurnOn(this IEnumerable target, object? data = null) + { + target.CallService("turn_on", data); + } +} + +public static class TimerEntityExtensionMethods +{ + ///Cancels a timer. + public static void Cancel(this ITimerEntityCore target, object? data = null) + { + target.CallService("cancel", data); + } + + ///Cancels a timer. + public static void Cancel(this IEnumerable target, object? data = null) + { + target.CallService("cancel", data); + } + + ///Changes a timer. + public static void Change(this ITimerEntityCore target, TimerChangeParameters data) + { + target.CallService("change", data); + } + + ///Changes a timer. + public static void Change(this IEnumerable target, TimerChangeParameters data) + { + target.CallService("change", data); + } + + ///Changes a timer. + ///The ITimerEntityCore to call this service for + ///Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60 + public static void Change(this ITimerEntityCore target, string duration) + { + target.CallService("change", new TimerChangeParameters { Duration = duration }); + } + + ///Changes a timer. + ///The IEnumerable<ITimerEntityCore> to call this service for + ///Duration to add or subtract to the running timer. eg: 00:01:00, 60 or -60 + public static void Change(this IEnumerable target, string duration) + { + target.CallService("change", new TimerChangeParameters { Duration = duration }); + } + + ///Finishes a timer. + public static void Finish(this ITimerEntityCore target, object? data = null) + { + target.CallService("finish", data); + } + + ///Finishes a timer. + public static void Finish(this IEnumerable target, object? data = null) + { + target.CallService("finish", data); + } + + ///Pauses a timer. + public static void Pause(this ITimerEntityCore target, object? data = null) + { + target.CallService("pause", data); + } + + ///Pauses a timer. + public static void Pause(this IEnumerable target, object? data = null) + { + target.CallService("pause", data); + } + + ///Starts a timer. + public static void Start(this ITimerEntityCore target, TimerStartParameters data) + { + target.CallService("start", data); + } + + ///Starts a timer. + public static void Start(this IEnumerable target, TimerStartParameters data) + { + target.CallService("start", data); + } + + ///Starts a timer. + ///The ITimerEntityCore to call this service for + ///Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60 + public static void Start(this ITimerEntityCore target, string? duration = null) + { + target.CallService("start", new TimerStartParameters { Duration = duration }); + } + + ///Starts a timer. + ///The IEnumerable<ITimerEntityCore> to call this service for + ///Duration the timer requires to finish. [optional]. eg: 00:01:00 or 60 + public static void Start(this IEnumerable target, string? duration = null) + { + target.CallService("start", new TimerStartParameters { Duration = duration }); + } +} + +public static class TodoEntityExtensionMethods +{ + ///Add a new to-do list item. + public static void AddItem(this TodoEntity target, TodoAddItemParameters data) + { + target.CallService("add_item", data); + } + + ///Add a new to-do list item. + public static void AddItem(this IEnumerable target, TodoAddItemParameters data) + { + target.CallService("add_item", data); + } + + ///Add a new to-do list item. + ///The TodoEntity to call this service for + ///The name that represents the to-do item. eg: Submit income tax return + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public static void AddItem(this TodoEntity target, string item, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + target.CallService("add_item", new TodoAddItemParameters { Item = item, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } + + ///Add a new to-do list item. + ///The IEnumerable<TodoEntity> to call this service for + ///The name that represents the to-do item. eg: Submit income tax return + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public static void AddItem(this IEnumerable target, string item, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + target.CallService("add_item", new TodoAddItemParameters { Item = item, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } + + ///Get items on a to-do list. + public static Task GetItemsAsync(this TodoEntity target, TodoGetItemsParameters data) + { + return target.CallServiceWithResponseAsync("get_items", data); + } + + ///Get items on a to-do list. + ///The TodoEntity to call this service for + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + public static Task GetItemsAsync(this TodoEntity target, IEnumerable? status = null) + { + return target.CallServiceWithResponseAsync("get_items", new TodoGetItemsParameters { Status = status }); + } + + ///Get items on a to-do list. + public static void GetItems(this TodoEntity target, TodoGetItemsParameters data) + { + target.CallService("get_items", data); + } + + ///Get items on a to-do list. + public static void GetItems(this IEnumerable target, TodoGetItemsParameters data) + { + target.CallService("get_items", data); + } + + ///Get items on a to-do list. + ///The TodoEntity to call this service for + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + public static void GetItems(this TodoEntity target, IEnumerable? status = null) + { + target.CallService("get_items", new TodoGetItemsParameters { Status = status }); + } + + ///Get items on a to-do list. + ///The IEnumerable<TodoEntity> to call this service for + ///Only return to-do items with the specified statuses. Returns not completed actions by default. eg: needs_action + public static void GetItems(this IEnumerable target, IEnumerable? status = null) + { + target.CallService("get_items", new TodoGetItemsParameters { Status = status }); + } + + ///Remove all to-do list items that have been completed. + public static void RemoveCompletedItems(this TodoEntity target, object? data = null) + { + target.CallService("remove_completed_items", data); + } + + ///Remove all to-do list items that have been completed. + public static void RemoveCompletedItems(this IEnumerable target, object? data = null) + { + target.CallService("remove_completed_items", data); + } + + ///Remove an existing to-do list item by its name. + public static void RemoveItem(this TodoEntity target, TodoRemoveItemParameters data) + { + target.CallService("remove_item", data); + } + + ///Remove an existing to-do list item by its name. + public static void RemoveItem(this IEnumerable target, TodoRemoveItemParameters data) + { + target.CallService("remove_item", data); + } + + ///Remove an existing to-do list item by its name. + ///The TodoEntity to call this service for + ///The name for the to-do list items. + public static void RemoveItem(this TodoEntity target, string item) + { + target.CallService("remove_item", new TodoRemoveItemParameters { Item = item }); + } + + ///Remove an existing to-do list item by its name. + ///The IEnumerable<TodoEntity> to call this service for + ///The name for the to-do list items. + public static void RemoveItem(this IEnumerable target, string item) + { + target.CallService("remove_item", new TodoRemoveItemParameters { Item = item }); + } + + ///Update an existing to-do list item based on its name. + public static void UpdateItem(this TodoEntity target, TodoUpdateItemParameters data) + { + target.CallService("update_item", data); + } + + ///Update an existing to-do list item based on its name. + public static void UpdateItem(this IEnumerable target, TodoUpdateItemParameters data) + { + target.CallService("update_item", data); + } + + ///Update an existing to-do list item based on its name. + ///The TodoEntity to call this service for + ///The name for the to-do list item. eg: Submit income tax return + ///The new name of the to-do item eg: Something else + ///A status or confirmation of the to-do item. eg: needs_action + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public static void UpdateItem(this TodoEntity target, string item, string? rename = null, object? status = null, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + target.CallService("update_item", new TodoUpdateItemParameters { Item = item, Rename = rename, Status = status, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } + + ///Update an existing to-do list item based on its name. + ///The IEnumerable<TodoEntity> to call this service for + ///The name for the to-do list item. eg: Submit income tax return + ///The new name of the to-do item eg: Something else + ///A status or confirmation of the to-do item. eg: needs_action + ///The date the to-do item is expected to be completed. eg: 2023-11-17 + ///The date and time the to-do item is expected to be completed. eg: 2023-11-17 13:30:00 + ///A more complete description of the to-do item than provided by the item name. eg: A more complete description of the to-do item than that provided by the summary. + public static void UpdateItem(this IEnumerable target, string item, string? rename = null, object? status = null, DateOnly? dueDate = null, DateTime? dueDatetime = null, string? description = null) + { + target.CallService("update_item", new TodoUpdateItemParameters { Item = item, Rename = rename, Status = status, DueDate = dueDate, DueDatetime = dueDatetime, Description = description }); + } +} + +public static class TtsEntityExtensionMethods +{ + ///Speaks something using text-to-speech on a media player. + public static void Speak(this TtsEntity target, TtsSpeakParameters data) + { + target.CallService("speak", data); + } + + ///Speaks something using text-to-speech on a media player. + public static void Speak(this IEnumerable target, TtsSpeakParameters data) + { + target.CallService("speak", data); + } + + ///Speaks something using text-to-speech on a media player. + ///The TtsEntity to call this service for + ///Media players to play the message. + ///The text you want to convert into speech so that you can listen to it on your device. eg: My name is hanna + ///Stores this message locally so that when the text is requested again, the output can be produced more quickly. + ///Language to use for speech generation. eg: ru + ///A dictionary containing integration-specific options. eg: platform specific + public static void Speak(this TtsEntity target, string mediaPlayerEntityId, string message, bool? cache = null, string? language = null, object? options = null) + { + target.CallService("speak", new TtsSpeakParameters { MediaPlayerEntityId = mediaPlayerEntityId, Message = message, Cache = cache, Language = language, Options = options }); + } + + ///Speaks something using text-to-speech on a media player. + ///The IEnumerable<TtsEntity> to call this service for + ///Media players to play the message. + ///The text you want to convert into speech so that you can listen to it on your device. eg: My name is hanna + ///Stores this message locally so that when the text is requested again, the output can be produced more quickly. + ///Language to use for speech generation. eg: ru + ///A dictionary containing integration-specific options. eg: platform specific + public static void Speak(this IEnumerable target, string mediaPlayerEntityId, string message, bool? cache = null, string? language = null, object? options = null) + { + target.CallService("speak", new TtsSpeakParameters { MediaPlayerEntityId = mediaPlayerEntityId, Message = message, Cache = cache, Language = language, Options = options }); + } +} + +public static class WeatherEntityExtensionMethods +{ + ///Get weather forecasts. + public static Task GetForecastsAsync(this IWeatherEntityCore target, WeatherGetForecastsParameters data) + { + return target.CallServiceWithResponseAsync("get_forecasts", data); + } + + ///Get weather forecasts. + ///The IWeatherEntityCore to call this service for + ///Forecast type: daily, hourly or twice daily. + public static Task GetForecastsAsync(this IWeatherEntityCore target, object @type) + { + return target.CallServiceWithResponseAsync("get_forecasts", new WeatherGetForecastsParameters { Type = @type }); + } + + ///Get weather forecasts. + public static void GetForecasts(this IWeatherEntityCore target, WeatherGetForecastsParameters data) + { + target.CallService("get_forecasts", data); + } + + ///Get weather forecasts. + public static void GetForecasts(this IEnumerable target, WeatherGetForecastsParameters data) + { + target.CallService("get_forecasts", data); + } + + ///Get weather forecasts. + ///The IWeatherEntityCore to call this service for + ///Forecast type: daily, hourly or twice daily. + public static void GetForecasts(this IWeatherEntityCore target, object @type) + { + target.CallService("get_forecasts", new WeatherGetForecastsParameters { Type = @type }); + } + + ///Get weather forecasts. + ///The IEnumerable<IWeatherEntityCore> to call this service for + ///Forecast type: daily, hourly or twice daily. + public static void GetForecasts(this IEnumerable target, object @type) + { + target.CallService("get_forecasts", new WeatherGetForecastsParameters { Type = @type }); + } +} \ No newline at end of file diff --git a/devices/homie/modules/home-assistant/netdaemon/appsettings.json b/devices/homie/modules/home-assistant/netdaemon/appsettings.json index 4d475992..ea2d6a6a 100644 --- a/devices/homie/modules/home-assistant/netdaemon/appsettings.json +++ b/devices/homie/modules/home-assistant/netdaemon/appsettings.json @@ -6,6 +6,11 @@ }, "ConsoleThemeType": "Ansi" }, + "HomeAssistant": { + "Host": "homie.nelim.org", + "Port": 443, + "Ssl": true + }, "NetDaemon": { "ApplicationConfigurationFolder": "./apps" }, diff --git a/devices/homie/modules/home-assistant/netdaemon/default.nix b/devices/homie/modules/home-assistant/netdaemon/default.nix index 61ca4359..b7a90bcc 100644 --- a/devices/homie/modules/home-assistant/netdaemon/default.nix +++ b/devices/homie/modules/home-assistant/netdaemon/default.nix @@ -42,10 +42,17 @@ in { environment.systemPackages = [ (pkgs.writeShellApplication { name = "updateNuDeps"; - runtimeInputs = [pkgs.dotnet-sdk_8]; + runtimeInputs = with pkgs; [ + dos2unix + dotnet-sdk_8 + ]; text = '' - # Update the codegen - dotnet tool update -g NetDaemon.HassModel.CodeGen + # Install codegen + dotnet tool install --create-manifest-if-needed NetDaemon.HassModel.CodeGen + + # Run it + dotnet tool run nd-codegen -token "$(sed 's/HomeAssistant__Token=//' ${secrets.netdaemon.path})" + dos2unix ./HomeAssistantGenerated.cs # Update all nugets to latest versions regex='PackageReference Include="([^"]*)" Version="([^"]*)"' @@ -63,6 +70,7 @@ in { ${compiled.passthru.fetch-deps} . alejandra . + rm -r "$FLAKE/.config" ''; }) ]; diff --git a/devices/homie/modules/home-assistant/netdaemon/program.cs b/devices/homie/modules/home-assistant/netdaemon/program.cs index 17a1e227..7664333c 100644 --- a/devices/homie/modules/home-assistant/netdaemon/program.cs +++ b/devices/homie/modules/home-assistant/netdaemon/program.cs @@ -4,8 +4,7 @@ using NetDaemon.Extensions.Logging; using NetDaemon.Extensions.Scheduler; using NetDaemon.Extensions.Tts; using NetDaemon.Runtime; -// Add next line if using code generator -//using HomeAssistantGenerated; +using HomeAssistantGenerated; #pragma warning disable CA1812 @@ -21,8 +20,7 @@ try .AddAppsFromAssembly(Assembly.GetExecutingAssembly()) .AddNetDaemonStateManager() .AddNetDaemonScheduler() - // Add next line if using code generator - // .AddHomeAssistantGenerated() + .AddHomeAssistantGenerated() ) .Build() .RunAsync() diff --git a/flake.lock b/flake.lock index 1310b5c8f9efd36ca6c13d9554cb57a3dd75d1d6..58b70c43f718d25eb88eee90655b9ba941aa28fa 100644 GIT binary patch delta 136 zcmV;30C)egq64y`1F&+c1vNG^H!_n!LLDnwbW$rgZ&FV$WJF;$H8v|bb$NPKc|u5I zX>3eVH8MhGSa~^ON=idwY;Tjlsx~NPI5Rb2Fl0AnVKXvjHaIajVl_81IW}f7IW=Wv qIWaV2GB#s1V=!Zr9jg}tI53mJ2o{sTt4fn<1s{`30}Hdjt8yjaWh`0% delta 135 zcmV;20C@khq64y`1F&+c1T-`;Gm}AC9xH8mdTVA$PkLuUS2j#gG+0P%HBMwta%@&^ zRx5E@Ff~hZFDqA0Y;|X4O_RT>HYhb=F*P